This is the same command line as before, but -_condor_ckpt is now -_condor_restart. +{subsection: Checkpointing in Condor's vanilla universe} + +1: Register a signal handler for SIGTSTP; it should send SIGTSTP to the running "real" job. +2: Register a signal handler for SIGUSR2; it should send SIGUSR2 to the running "real" job. (As of July, 2012, this will never be used, but we anticipate adding support for periodic checkpoints in the vanilla universe.) +3: Is the checkpoint file ("my-real-job.ckpt") present? Then the arguments are "-_condor_restart my-real-job.ckpt". Otherwise the arguments are "-_condor_ckpt my-real-job.ckpt". +3: Start your "real" job +*:: Start under setarch to disable address randomization and similar that Condor checkpointing cannot cope with. The "-B" (limiting memory to 32 bit addresses) may not be necessary in all cases, but the specific circumstances are not known. The _<arguments>_ are as determined above. +*::: 32-bit: setarch i386 -L -B -R ./my-real-job _<arguments>_ +*::: 64-bit: setarch x86_64 -L -B -R ./my-real-job _<arguments>_ +*:: Note the PID, for use in the signal handlers mentioned above. +4: Wait for your "real" job to exit. +*:: If the job exited with SIGTSTP, then this is a checkpoint. + +In pseudocode: + +{code} +# Periodic checkpoint: +register signal SIGTSTP handler: + kill -TSTP $PID + +# Terminal checkpoint: +register signal SIGUSR2 handler: + kill -USR2 $PID + +# Modern address randomization and related cause us grief. Disable. +$ARCH = i386 (or x86_64) +$COMPAT = setarch $ARCH -L -B -R + +if a CKPT_FILENAME is NOT present + $COMPAT ./$PROGRAM -_condor_ckpt $CKPT_FILENAME + note the $PID +else + $COMPAT ./$PROGRAM -_condor_restart $CKPT_FILENAME + note the $PID +{endcode} + + + {section: Command line} A program that has been condor_compiled takes additional command line options. Generally speaking end users shouldn't need to know this; Condor will invoke them automatically. But for testing or doing checkpointing without the standard universe, this might be useful. _These are officially undocumented and may change without warning!_