Checkpointing.Action
— TypeAction
Stores the state of the checkpointing scheme after an action is taken. * actionflag
is the next action * iteration
is number of iterations for move forward * startiteration
is the loop step to start from * cpnum
is the checkpoint index number
Checkpointing.ActionFlag
— TypeActionFlag
Each checkpointing algorithm currently uses the same ActionFlag type for setting the next action in the checkpointing scheme none: no action store: store a checkpoint now equivalent to TAKESHOT in Alg. 79 restore: restore a checkpoint now equivalent to RESTORE in Alg. 79 forward: execute iteration(s) forward equivalent to ADVANCE in Alg. 79 firstuturn: tape iteration(s); optionally leave to return later; and (upon return) do the adjoint(s) equivalent to FIRSTTURN in Alg. 799 uturn: tape iteration(s) and do the adjoint(s) equivalent to YOUTURN in Alg. 79 done: we are done with adjoining the loop equivalent to the terminate
enum value in Alg. 79
Checkpointing.ArrayStorage
— TypeArrayStorage
Array (RAM) storage for checkpointing.
Checkpointing.HDF5Storage
— TypeHDF5Storage
A storage type for checkpointing that uses HDF5 files to store the checkpoints.
Checkpointing.Periodic
— TypePeriodic
Periodic checkpointing scheme.
Checkpointing.Revolve
— TypeRevolve
This is a Julia adaptation of the functionality of Revolve; see Alg. 799 published by Griewank et al. A minor extension is the optional bundle
parameter that allows to treat as many loop iterations in one tape/adjoint sweep. If bundle
is 1, the default, then the behavior is that of Alg. 799.
Checkpointing.Scheme
— TypeScheme
Abstract type from which all checkpointing schemes are derived.
Checkpointing.@checkpoint_struct
— Macro@checkpoint_struct(
alg,
model,
loop,
)
This macro is supposed to be only used in conjunction with ChainRules. It does not initialize the shadowcopy. Apply the checkpointing scheme alg
on the loop loop
expression. model
is the primal struct. shadowmodel
contains the adjoints and is created here. It is supposed to be initialized by ChainRules.