#include <revolve.h>
Inheritance diagram for Offline:
Public Member Functions | |
Offline (int st, int sn, Checkpoint *c, ostream &str) | |
This is the standard constructor that will be called if the number of time steps is a-priori known. | |
Offline (int sn, Checkpoint *c, Online *o, int f, ostream &str) | |
This constructor will be called for the optimal Reversal of a schedule resulting from Online Checkpointing. | |
Offline (Schedule *o, ostream &str) | |
This constructor does not do anything and will usually not be called. | |
Offline (Offline &o) | |
CopyConstructor. | |
ACTION::action | revolve (ostream &str) |
Since REVOLVE involves only a few integer operations its run-time is truly negligible within any nontrivial application. | |
int | get_check () |
int | get_capo () |
int | get_fine () |
int | get_snaps () |
int | get_commands () |
int | get_steps () |
bool | get_online () |
vector< int > | get_num_ch () |
int | get_num_ch (int i) |
void | set_fine (int f) |
void | set_capo (int c) |
~Offline () |
This class manages all Offline Checkpointing schedules. This class allows optimal Offline Checkpointing strategies if the number of time steps is a-priori known. This class also manages the optimal reversal of schedules resulting from Online Checkpointing
Definition at line 356 of file revolve.h.
Offline::Offline | ( | int | st, | |
int | sn, | |||
Checkpoint * | c, | |||
ostream & | str | |||
) |
This is the standard constructor that will be called if the number of time steps is a-priori known.
Offline::Offline | ( | int | sn, | |
Checkpoint * | c, | |||
Online * | o, | |||
int | f, | |||
ostream & | str | |||
) |
This constructor will be called for the optimal Reversal of a schedule resulting from Online Checkpointing.
Offline::Offline | ( | Schedule * | o, | |
ostream & | str | |||
) |
This constructor does not do anything and will usually not be called.
Offline::Offline | ( | Offline & | o | ) |
CopyConstructor.
ACTION::action Offline::revolve | ( | ostream & | str | ) | [virtual] |
Since REVOLVE involves only a few integer operations its run-time is truly negligible within any nontrivial application.
The parameter SNAPS is selected by the user (possibly with the help of the routines EXPENSE and ADJUST described below ) and remains unchanged throughout. The pair (CAPO,FINE) always represents the initial and final state of the subsequence of time steps currently being traversed backwards. The conditions CHECK >= -1 and CAPO <= FINE are necessary and sufficient for a regular response of REVOLVE. If either condition is violated the value 'error' is returned. When CHECK =-1 and CAPO = FINE then 'terminate' is returned as action value. This combination necessarily arises after a sufficiently large number of calls to REVOLVE, which depends only on the initial difference FINE-CAPO. The last parameter INFO determines how much information about the actions performed will be printed. When INFO =0 no information is sent to standard output. When INFO > 0 REVOLVE produces an output that contains a prediction of the number of forward steps and of the factor by which the execution will slow down. When an error occurs, the return value of INFO contains information about the reason: INFO = 10: number of checkpoints stored exceeds CHECKUP, increase constant CHECKUP and recompile. INFO = 11: number of checkpoints stored exceeds SNAPS, ensure SNAPS greater than 0 and increase initial FINE. INFO = 12: error occurs in NUMFORW. INFO = 13: enhancement of FINE, SNAPS checkpoints stored,SNAPS must be increased. INFO = 14: number of SNAPS exceeds CHECKUP, increase constant CHECKUP and recompile. INFO = 15: number of REPS exceeds REPSUP, increase constant REPSUP and recompile.
Implements Schedule.
int Offline::get_snaps | ( | ) |
int Offline::get_commands | ( | ) |
Reimplemented from Schedule.
Definition at line 377 of file revolve.h.
References Schedule::checkpoint, and Checkpoint::commands.
void Offline::set_fine | ( | int | f | ) | [virtual] |
void Offline::set_capo | ( | int | c | ) | [virtual] |