Slurm specific: I think via squeue -h -j $SLURM_JOB_ID -O TimeLeft, we can know how much runtime we have left.
When the remaining runtime is less than the training time of the previous epoch, we should stop now, so that Sisyphus can resubmit, and we don't waste the training of half an epoch.
Btw, how should we stop that Sisyphus will continue? Exit state 0 might incorrectly let Sisyphus think that we have fully finished? Exit status non-zero might let Sisyphus think there is a non-recoverable error? How does Sisyphus determine when a job can be resumed?
Slurm specific: I think via
squeue -h -j $SLURM_JOB_ID -O TimeLeft, we can know how much runtime we have left.When the remaining runtime is less than the training time of the previous epoch, we should stop now, so that Sisyphus can resubmit, and we don't waste the training of half an epoch.
Btw, how should we stop that Sisyphus will continue? Exit state 0 might incorrectly let Sisyphus think that we have fully finished? Exit status non-zero might let Sisyphus think there is a non-recoverable error? How does Sisyphus determine when a job can be resumed?