lamssi_cr(7)
π lamssi_cr β the checkpoint/restart tea π
okay bestie, welcome to lamssi_cr(7), aka the LAM SSI checkpoint/restart overview. sit down, grab a strawberry drink π, and let's get into it.
β¨ NAME β¨
lamssi_checkpoint_restart β the whole vibe is: an overview of LAM's MPI checkpoint / restart SSI modules. that's it, that's the name, no notes. π
πΈ DESCRIPTION πΈ
so the "kind" for checkpoint / restart SSI modules is cr. like, literally the string cr (no quotes, bestie, no quotes) is the prefix you slap onto your mpirun command line with the -ssi switch. for example:
mpirun -ssi cr blcr C my_mpi_program
LAM/MPI can involuntarily checkpoint and restart parallel MPI jobs. not a drill. but for that to happen you need two things: LAM/MPI has to have been compiled with thread support, and back-end checkpointing systems have to be available at run-time. also your MPI jobs have to run with at least MPI_THREAD_SERIALIZED support. and here's the cute part β if a job elects to run with checkpoint/restart support and an available cr module is found, the job's thread level gets automatically promoted to MPI_THREAD_SERIALIZED. free upgrade, we love to see it. π
see the User's Guide for more deets.
π Checkpoint Phases π
LAM defines three phases for checkpoint / restart support in each MPI process. three. a little trio. iconic:
- Checkpoint. β when the checkpoint request arrives, but before the actual checkpoint occurs.
- Continue. β after a checkpoint has successfully completed, in the same process as the checkpoint was invoked in.
- Restart β after a checkpoint has successfully completed, in a new / restarted process.
so likeβ¦ the Continue and Restart phases are literally identical except for which process they get invoked in, iykyk. the Continue phase gets invoked in the same process that the Checkpoint phase was invoked in. the Restart phase? only in newly restarted processes. periodt. β¨
π AVAILABLE MODULES π
LAM currently has two cr modules: blcr and self. for an MPI job to be able to be checkpointed and restarted, all of its MPI SSI modules must support checkpoint/restart. currently that means using the crtcp RPI module or the gm RPI module when compiled with gm_get() support (see the User's Guide for more details, bestie).
π blcr CR Module π
the Berkeley Lab Checkpoint/Restart (BLCR) single-node checkpointer is a software system from Lawrence Berkeley Labs. go check the project web page for more: http://www.nersc.gov/research/ftg/checkpoint/
the blcr module has one SSI parameter:
cr_blcr_priorityβ blcr's default priority is50.
π¦ self CR Module π¦
the self module, when used with checkpoint/restart SSI modules, will invoke the user-defined functions to save and restore checkpoints. it's literally just a mechanism for user-defined functions to be invoked at LAM's Checkpoint, Continue, and Restart phases. hence, the only data that is saved during the checkpoint is what is written in the user's checkpoint function. no MPI library state is saved at all. π
so because of that, the model for the self module is slightly different than, for example, the blcr module. specifically: the Restart function is not invoked in the same process image of the process that was checkpointed. the Restart phase gets invoked during MPI_INIT of a new instance of the application (i.e., it starts over from main()). main character energy, honestly β full reset. π
Multiple SSI parameters are available:
cr_self_user_prefixβ specify a string prefix for the name of the checkpoint, continue, and restart functions that should be invoked by LAM. that is, specifying-ssi cr_self_user_prefix foomeans that LAM expects to find three functions at run-time:int foo_checkpoint(),int foo_continue(), andint foo_restart(). this is a convenience parameter that can be used instead of the three parameters listed below. π«Άcr_self_user_checkpointβ name of the user function to invoke during the Checkpoint phase.cr_self_user_continueβ name of the user function to invoke during the Continue phase.cr_self_user_restartβ name of the user function to invoke during the Restart phase.
if none of these parameters are specified and the self module is selected, it will use the default prefix lam_cr_self. defaults, we love her. β¨
finally, the usual priority SSI parameter is also available:
cr_self_priorityβ self's default priority is25.
π SEE ALSO π
lamssi(7), mpirun(1), LAM User's Guide
ok that's the whole page, bestie, no cap. go forth and checkpoint responsibly. π
LAM 7.1.4 π July, 2007 β yeah she's an older icon but she still ate, fr fr. mwah π π
π¦ where this page comes from
- debian bookworm: lam-runtime 7.1.4-7+b1
- debian trixie: lam-runtime 7.1.4-7.2
- ubuntu jammy: lam-runtime 7.1.4-7
- ubuntu noble: lam-runtime 7.1.4-7.1build2
- ubuntu questing: lam-runtime 7.1.4-8
- ubuntu resolute: lam-runtime 7.1.4-8build1
- ubuntu stonking: lam-runtime 7.1.4-8build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms