Revision history for Perl extension LSF.
0.1 Mon Feb 18 12:10:31 2002
First release.
0.2 Wed Apr 03 10:03:25 2002
Second release. Includes LSF::JobManager
0.21 Thu Apr 04 10:40:57 2002
Simplified the test suite. A couple of things have been superceeded by the
addition of LSF::JobManager (and i still need to write a proper test suite)
0.3 Thu Apr 04 17:20:55
Now checks the version of LSF at startup. If it is version 4 then the
stdout/stderr of the bsub command is swapped. Required module System2 has
problems when called in a BEGIN block so i have switched to IPC::Run
0.4 Sun Apr 08 19:53:02
Errors can now be thrown via the RaiseError directive / class method.
The printing of the LSF command line stdout / stderr is separated out
and controlled by the PrintOutput and PrintError directives / class methods
0.5 Fri Jul 19 11:05:17
LSF::JobInfo is now defunct. The information obtained from the bjobs
command is expunged from the LSF logs far too quickly to be reliably
available in a long running batch environment. Replacing it is
LSF::JobHistory which calls and parses the bhist command.
Removed the jobs_with_status method from the LSF::JobManager module since
this didn't have a good rationale behind it and the exit status is now
obtainable from the LSF::JobHistory object.
Added a clear method to the LSF::JobManager class so that the jobs in a
job manager can be cleared and it can be reused.
Added a history method to the LSF::Job class so that an LSF::JobHistory
object can be obtained for a job.
Removed the info method from the LSF::Job class
The LSF::JobManager->wait_all_children method now uses LSF::JobHistory to
pre-cache the results of the bhist command for each job. There are hugely
significant performance benefits to calling a single bhist command line for
all jobs as opposed to once for each job.
0.6 Thu Aug 15 12:58:10
Added a test for the presense of the LSF executables into Makefile.PL
This way both naive users and the automatic testing service on cpan
won't try to 'make' the module without the executables being present.
0.7 Tues Oct 10 9:28:44
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.
0.8 Weds Oct 11 13:24:13
The LSF::JobHistory class did not correctly query LSF for completed jobs (fixed)
0.9 Fri Oct 25 12:02:19
The wait_all_children method of the LSF::JobManager class now takes a flattened hash
with valid keys 'depend' for a custom dependancy and 'history' to specify whether to
pre-cache the job history of submitted jobs (default is false).
Added wrappers to more of the command line tools as methods of the LSF::Job object.
See the LSF::Job perldoc page for a full list.
Platform computing recently released version 5.0 of the Load Share Facility. There are
numerous changes, not least of which that the Job Group functionality has disappeared.
I will more fully describe the changes and update this API in the forthcoming 1.0 release.