VertebrateResequencing/vr-codebase — pull request #48 by jrandall (2014-03-04 17:34:00+00:00)
Title: Feature/runner checkpointing

Adds a Runner.pm option +blcr, which enables LSF/BLCR checkpoint/restart support. Jobs will be submitted using `bsub ... cr_run` and will be killed and restarted (using `bsub ... cr_restart`) when they reach the queue run limit (instead of using bswitch).

Adds some (truly optional) farm options that can be useful in the context of checkpoint/restart:
- runtime_limit_seconds (asks Runner.pm to enforce this time limit regardless of what the queue limits are - defaults to the appropriate queue limit)
- chkpnts_per_run (will calculate the checkpoint period based on the runtime limit, defaults to 1)
- chkpnt_period_minutes (override the automatic period which is specified by chkpnts_per_run by explicitly setting the period)

Makes some strictly unnecessary changes to the code to improve readability (e.g. using explicit regex capture groups in place of $', labelling loop control statements, etc).

Adds required GRL copyright/license statements to the modified files (Runner.pm and RunnerLSF.pm).

Also adds some basic facility to change the CPUs required when resubmitting previously checkpointed jobs (e.g. by setting `bsub -nN` based on the idle factor of the previous run). This functionality is not as well tested as the core checkpoint/restart functionality.