Changes for version 0.7

  • Redesigned the LSF::JobManager::wait_all_children method. There was a flaw in that you could move each job in the manager to the top of its queue (via the LSF::Job::top method) but the pseudo-job that block waits for these to finish could not also be moved to the top of the queue. Thus in a queue with a lot of non-dependant jobs also submitted the pseudo-job would have to wait for all of these to complete before it did. The workaround is a new method LSF::Job->submit_top that automatically submits a job and then moves it to the top of its queue.
  • Added a work around for another flaw. If you submit a LOT of jobs then the dependancy expression generated by LSF::JobManager->wait_all_children will be greater than the shell arg limit and the command line will fail. LSF::JobManager->wait_all_children now can accept a single argument which is a dependancy expression. This is used in place of the autogenerated expression Thus jobs can be submitted with a Job Name flag ( -J jobname ) and then a dependancy provided that is for all jobs with that name e.g. "ended(/jobname*)"
  • Added a second syntax to LSF::JobHistory->new. If the first argument is an array ref then this is taken to be an array of parameters. All other arguments are taken to be job id's. The bhist command line then constructed is passed to xargs and the job id's are passed to it via stdin. This gets around the shell arg limit problem when LSF::JobManager tries to query the exit status of its contained jobs.
  • Removed a spurious 'use LSF::JobInfo' from LSF::Job that was causing it to fail in the 'make test' stage.

Modules

LSF
A perl API built on top of the LSF command line tools
create and manipulate LSF jobs
manipulate LSF job groups
get historical information about LSF jobs.
submit and wait for a set of LSF Jobs
get information about LSF queues.