LSF::Batch - Perl extension for use with the Platform Computing Corporation's Load Sharing Facility (LSF) Batch product.
use LSF::Batch; #initialization and reconfiguration $batch = new LSF::Batch("appname"); (calls lsb_init) $batch->reconfig or die $@; $batch->hostcontrol($host, HOST_CLOSE|HOST_OPEN|HOST_REBOOT|HOST_SHUTDOWN) or die $@; $batch->queuecontrol($queue, $opcode) or die $@ #error messages. Note: calls set $? and $@ and return appropriate #values upon failure. $msg = $batch->sysmsg; $batch->perror; #job submission and modification $job = $batch->submit( -J | -jobName => "foo", -q | -queue => "normal", -m | -hosts => [qw(a b c d)], -R | -resreq => "select[solaris && r1m<1.0]" -c | -cpulimit => 300, -W | -runlimit => 3600, -F | -filelimit => 100000, -M | -memlimit => 1000, -D | -datalimit => 122121, -S | -stacklimit => 122331, -C | -corelimit => 11111, -spec | -hostSpec => "foo", -w | -dependCond => "ended(foo2)", -b | -beginTime => time + 100, -t | -termTime => time + 1000, -sig | -sigValue => SIGINT,etc. -i | -inFile => "input", -o | -outFile => "output", -e | -errFile => "error", -command => "sleep 30", -k | -checkpointable => "/checkpoint", -period | -chkpntPeriod => 20, -f | -transfer => "file1 > file2", -f | -transfer => "file3 < file2", -E | -preExec => "run_me_first", -u | -mailUser => "user@mail", -P | -projectName => "work", -n | -numProcessors => 1, -maxNumProcessors => 4, -L | -loginShell => "/bin/ksh", -G | -userGroup => "workers", -X | -exception => "overrun(10)::kill;abend(1)::setexcept(fail)", -checkpointCopy, -checkpointForce, -x | -exclusive, -B | -notifyBegin, -N | -notifyEnd, -restartForce, -r | -rerunnable, -I | -interactive, -Ip | -pty, -Is | -ptyShell, -H | -hold, -K | -block, $job->modify( ... ) or die; #similar to submit interface #the jobArray function returns a hash of job objects, each corresponding #to an element of the job array. It is not the most elegant solution, but #it will work until someone comes up with a better way. %array = $job->jobArray($start, $end, $step); $job1 = $array{$start}; #under LSF 4.0, the jobid is a 64 bit number. Instead of requiring #a 64 bit perl, I split the jobid and array index from within the library. #Therefore, many calls take a job object rather than the jobID. You #can create a new job object by using new: $newjob = new LSF::Batch::jobPtr ($id,$index); $id = $job->jobId; $index = $job->arrayIdx; $queue = $job->queue; $job->chkpnt($period, $options) $job->mig(\@hosts, $options); $position = $job->move($position, $opcode); $filename = $job->peek; $job->signal($signal); $job->switch($queue); $job->run(\@hosts, options); #submitted job information $records = $batch->openjobinfo($jobid, $jobname, $user, $queue, $host, $options); $jobinfo = $batch->readjobinfo; $job = $jobinfo->job; $id = $jobinfo->jobId; $user = $jobinfo->user; $status = $jobinfo->status; $reasons = $jobinfo->reasons; $subreasons = $jobinfo->subreasons; $fromhost = $jobinfo->fromHost; $subtime = $jobinfo->submitTime; $starttime = $jobinfo->startTime; $endtime = $jobinfo->endTime; $cputime = $jobinfo->cpuTime; $umask = $jobinfo->umask; $cwd = $jobinfo->cwd; $homedir = $jobinfo->subHomeDir; $numexhosts = $jobinfo->numExHosts; @exhosts = $jobinfo->exHosts; $factor = $jobinfo->cpiFactor $nidx = $jobinfo->nIdx; $loadsched = $jobinfo->loadSched; $loadstop = $jobinfo->loadStop; $job = $jobinfo->submit; $rusage = $jobinfo->jRusage; $pendreason = $jobinfo->pendreason; $suspreason = $jobinfo->suspreason; $submit = $jobinfo->submit; #the submit object contains all the fields of the submit structure. $submit->jobName; $submit->queue; $submit->resReq; $submit->command; #etc. $batch->closejobinfo(); #Batch system information $params = $batch->paramterinfo; $params->defaultQueues; $params->defaultHostSpec; $params->mbatchdInterval; $params->sbatchdInterval; $params->jobAcceptInterval; $params->maxDispRetries; $params->maxSbdRetries; $params->preemptPeriod; $params->cleanPeriod; $params->maxNumJobs; $params->historyHours; $params->pgSuspendIt; @info = $batch->hostinfo(\@hosts); @info = $batch->hostinfo_ex(\@hosts, $resreq, $options); $hi = $info[0]; $host = $hi->host; $status = $hi->hStatus; $sched = $hi->busySched; $stop = $hi->busyStop; @load = $hi->load; @loadsched = $hi->loadSched; @loadstop = $hi->loadStop; $windows = $hi->windows; $ujl = $hi->userJobLimit; $maxj = $hi->maxJobs; $numj = $hi->numJobs; $nrun = $hi->numRUN; $nssusp = $hi->numSSUSP; $nususp = $hi->numUSUSP; $nresv = $hi->numRESERVE; $mig = $hi->mig; $attr = $hi->attr; @realload = $hi->realLoad; $sig = $hi->chkSig; @info = $batch->userinfo(\@users); $ui = $info[0]; $ui->user; $ui->procJobLimit; $ui->maxJobs; $ui->numStartJobs; $ui->numJobs; $ui->numPEND; $ui->numRUN; $ui->numSSUSP; $ui->numUSUSP; $ui->numRESERVE; %info = $batch->hostgrpinfo(\@groups, $options) @groups = keys %info; @members = values %info; %info = $batch->usergrpinfo(\@groups, $options) @groups = keys %info; @members = values %info; @queueinfo = $batch->queueinfo( \@queues, \@hosts, \@users, options) $qi = $queueinfo[0]; $queue = $qi->queue; $desc = $qi->description; $pri = $qi->priority; $nice = $qi->nice; @users = $qi->userList; @hosts = $qi->hostList; @loadSched = $qi->loadSched; @loadStop = $qi->loadStop; $ujoblim = $qi->userJobLimit; $pjoblim = $qi->procJobLimit; $windows = $qi->windows; @limits = $qi->rLimits; $hostspec = $qi->hostSpec; $qattrib = $qi->qAttrib; $qstat = $qi->qStatus; $maxjobs = $qi->maxJobs; $numjobs = $qi->numJobs; $numpend = $qi->numPEND; $numrun = $qi->numRUN; $nssusp = $qi->numSSUSP; $nususp = $qi->numUSUSP; $mig = $qi->mig; $dispatch = $qi->windowsD; $nqsqueues = $qi->nqsQueues; $usershared = $qi->userShares; $defaulthostspec = $qi->defaultHostSpec; $proclimit = $qi->procLimit; $admins = $qi->admins; $precmd = $qi->preCmd; $postcmd = $qi->postCmd; $requeuevalues = $qi->requeueEValues; $hostjoblimit = $qi->hostJobLimit; $resreq = $qi->resReq; $numreserve = $qi->numRESERVE; $holdtime = $qi->slotHoldTime; $sendto = $qi->sndJobsTo; $recvfrom = $qi->rcvJobsFrom; $resumecond = $qi->resumeCond; $stopcond = $qi->stopCond; $jobstarter = $qi->jobStarter; $suspendaction = $qi->suspendActCmd; $resumeaction = $qi->resumeActCmd; $termaction = $qi->terminateActCmd; @sigmap = $qi->sigMap; $preemption = $qi->preemption; @shareaccts = $qi->shareAccts; $sa = pop @shareaccts; $path = $sa->shareAcctPath $shares = $sa->shares; $priority = $sa->priority; $njobs = $sa->numStartJobs; $histtime = $sa->histCpuTime; $reserve = $sa->numReserveJobs; $runtime = $sa->runTime; @info = $batch->sharedresourceinfo(\@resources, $hostname); $sri = @info[0]; $name = $sri->resourceName; @instances = $sri->instances; $inst = @instances[0]; $total = $inst->totalValue; $reserve = $inst->reserveValue; @hosts = $inst->hostList; @info = $batch->hostpartinfo(\@partitions); $part = $info[0]; $name = $part->hostPart; $hosts = $part->hostList; @users = $part->users; $user = $users[0]; $name = $user->user; $shares = $user->shares; $priority = $user->priority; $numstart = $user->numStartJobs; $numreserve = $user->numReserveJobs; $cpu = $user->histCpuTime; open LOG, "/usr/local/lsf/work/clustername/logdir/lsb.events"; $line = 1; while( $er = $b->geteventrec( LOG, $line)){ $el = $er->eventLog; $lt = localtime $er->eventTime; print "event $line at $lt:"; if( $er->type == EVENT_JOB_NEW ){ $id = $el->jobId; $user = $el->userName; $res = $el->resReq; $q = $el->queue; print "New job $job submitted to queue $q by $user\n"; } ... else{ print "Received event of type ", $er->type, "\n"; } #NOT YET IMPLEMENTED: $batch->pendreason(...); $batch->suspreason(...);
LSF Batch provides access to batch queueing services across a cluster of machines.
This library is designed to be used with LSF version 4.x. Please see the "LSF Programmer's guide" and the LSF man pages for detailed documentation of this API.
The data structures used in the API have been wrapped in Perl objects for ease of use. The functions set $@ and $? where appropriate, or you can use the lserrno, sysmsg, and perror functions if you want.
The perl version of this API has been modified to some extent to act more "perlish" than the straightforward C API. For instance, return values have been changed to more closely match what a Perl programmer expects from a function. Other deviations from the original are noted in the documentation.
ACT_DONE ACT_FAIL ACT_NO ACT_PREEMPT ACT_START ALL_CALENDARS ALL_EVENTS ALL_JOB ALL_QUEUE ALL_USERS CALADD CALDEL CALMOD CALOCCS CALUNDEL CAL_FORCE CHECK_HOST CHECK_USER CONF_CHECK CONF_EXPAND CONF_NO_CHECK CONF_NO_EXPAND CONF_RETURN_HOSTSPEC CUR_JOB DEFAULT_MSG_DESC DEFAULT_NUMPRO DELETE_NUMBER DEL_NUMPRO DFT_QUEUE DONE_JOB EVEADD EVEDEL EVEMOD EVENT_ACTIVE EVENT_CAL_DELETE EVENT_CAL_MODIFY EVENT_CAL_NEW EVENT_CAL_UNDELETE EVENT_CHKPNT EVENT_HOST_CTRL EVENT_INACTIVE EVENT_JGRP_ADD EVENT_JGRP_CNT EVENT_JGRP_MOD EVENT_JGRP_STATUS EVENT_JOB_ACCEPT EVENT_JOB_ATTA_DATA EVENT_JOB_ATTR_SET EVENT_JOB_CHUNK EVENT_JOB_CLEAN EVENT_JOB_EXCEPTION EVENT_JOB_EXECUTE EVENT_JOB_EXT_MSG EVENT_JOB_FINISH EVENT_JOB_FORCE EVENT_JOB_FORWARD EVENT_JOB_MODIFY EVENT_JOB_MODIFY2 EVENT_JOB_MOVE EVENT_JOB_MSG EVENT_JOB_MSG_ACK EVENT_JOB_NEW EVENT_JOB_OCCUPY_REQ EVENT_JOB_REQUEUE EVENT_JOB_ROUTE EVENT_JOB_SIGACT EVENT_JOB_SIGNAL EVENT_JOB_START EVENT_JOB_START_ACCEPT EVENT_JOB_STATUS EVENT_JOB_SWITCH EVENT_JOB_VACATED EVENT_LOAD_INDEX EVENT_LOG_SWITCH EVENT_MBD_DIE EVENT_MBD_START EVENT_MBD_UNFULFILL EVENT_MIG EVENT_PRE_EXEC_START EVENT_QUEUE_CTRL EVENT_REJECT EVENT_SBD_JOB_STATUS EVENT_SBD_UNREPORTED_STATUS EVENT_STATUS_ACK EVENT_TYPE_EXCLUSIVE EVENT_TYPE_LATCHED EVENT_TYPE_PULSE EVENT_TYPE_PULSEALL EVENT_TYPE_UNKNOWN EVE_HIST EV_EXCEPT EV_FILE EV_UNDEF EV_USER EXIT_INIT_ENVIRON EXIT_KILL_ZOMBIE EXIT_NORMAL EXIT_NO_MAPPING EXIT_PRE_EXEC EXIT_REMOTE_PERMISSION EXIT_REMOVE EXIT_REQUEUE EXIT_RERUN EXIT_RESTART EXIT_ZOMBIE EXIT_ZOMBIE_JOB EXT_ATTA_POST EXT_ATTA_READ EXT_DATA_AVAIL EXT_DATA_NOEXIST EXT_DATA_UNAVAIL EXT_DATA_UNKNOWN EXT_MSG_POST EXT_MSG_READ EXT_MSG_REPLAY FINISH_PEND GROUP_JLP GROUP_MAX GRP_ALL GRP_RECURSIVE GRP_SHARES HOST_BUSY_IO HOST_BUSY_IT HOST_BUSY_LS HOST_BUSY_MEM HOST_BUSY_NOT HOST_BUSY_PG HOST_BUSY_R15M HOST_BUSY_R15S HOST_BUSY_R1M HOST_BUSY_SWP HOST_BUSY_TMP HOST_BUSY_UT HOST_CLOSE HOST_GRP HOST_JLU HOST_NAME HOST_OPEN HOST_REBOOT HOST_SHUTDOWN HOST_STAT_BUSY HOST_STAT_DISABLED HOST_STAT_EXCLUSIVE HOST_STAT_FULL HOST_STAT_LOCKED HOST_STAT_NO_LIM HOST_STAT_OK HOST_STAT_UNAVAIL HOST_STAT_UNLICENSED HOST_STAT_UNREACH HOST_STAT_WIND HPART_HGRP H_ATTR_CHKPNTABLE H_ATTR_CHKPNT_COPY JGRP_ACTIVE JGRP_ARRAY_INFO JGRP_COUNT_NDONE JGRP_COUNT_NEXIT JGRP_COUNT_NJOBS JGRP_COUNT_NPSUSP JGRP_COUNT_NRUN JGRP_COUNT_NSSUSP JGRP_COUNT_NUSUSP JGRP_COUNT_PEND JGRP_DEL JGRP_HOLD JGRP_INACTIVE JGRP_INFO JGRP_NODE_ARRAY JGRP_NODE_GROUP JGRP_NODE_JOB JGRP_RECURSIVE JGRP_RELEASE JGRP_RELEASE_PARENTONLY JGRP_UNDEFINED JOBID_ONLY JOBID_ONLY_ALL JOB_STAT_DONE JOB_STAT_EXIT JOB_STAT_NULL JOB_STAT_PDONE JOB_STAT_PEND JOB_STAT_PERR JOB_STAT_PSUSP JOB_STAT_RUN JOB_STAT_SSUSP JOB_STAT_UNKWN JOB_STAT_USUSP JOB_STAT_WAIT LAST_JOB LOST_AND_FOUND LSBATCH_H LSBE_AFS_TOKENS LSBE_ARRAY_NULL LSBE_BAD_ARG LSBE_BAD_ATTA_DIR LSBE_BAD_CALENDAR LSBE_BAD_CHKLOG LSBE_BAD_CLUSTER LSBE_BAD_CMD LSBE_BAD_EVENT LSBE_BAD_EXT_MSGID LSBE_BAD_FRAME LSBE_BAD_GROUP LSBE_BAD_HOST LSBE_BAD_HOST_SPEC LSBE_BAD_HPART LSBE_BAD_IDX LSBE_BAD_JOB LSBE_BAD_JOBID LSBE_BAD_LIMIT LSBE_BAD_PROJECT_GROUP LSBE_BAD_QUEUE LSBE_BAD_RESOURCE LSBE_BAD_RESREQ LSBE_BAD_SIGNAL LSBE_BAD_SUBMISSION_HOST LSBE_BAD_TIME LSBE_BAD_TIMEEVENT LSBE_BAD_UGROUP LSBE_BAD_USER LSBE_BAD_USER_PRIORITY LSBE_BIG_IDX LSBE_CAL_CYC LSBE_CAL_DISABLED LSBE_CAL_EXIST LSBE_CAL_MODIFY LSBE_CAL_USED LSBE_CAL_VOID LSBE_CHKPNT_CALL LSBE_CHUNK_JOB LSBE_CONF_FATAL LSBE_CONF_WARNING LSBE_CONN_EXIST LSBE_CONN_NONEXIST LSBE_CONN_REFUSED LSBE_CONN_TIMEOUT LSBE_COPY_DATA LSBE_DEPEND_SYNTAX LSBE_DLOGD_ISCONN LSBE_EOF LSBE_ESUB_ABORT LSBE_EVENT_FORMAT LSBE_EXCEPT_ACTION LSBE_EXCEPT_COND LSBE_EXCEPT_SYNTAX LSBE_EXCLUSIVE LSBE_FRAME_BAD_IDX LSBE_FRAME_BIG_IDX LSBE_HJOB_LIMIT LSBE_HP_FAIRSHARE_DEF LSBE_INDEX_FORMAT LSBE_INTERACTIVE_CAL LSBE_INTERACTIVE_RERUN LSBE_JGRP_BAD LSBE_JGRP_CTRL_UNKWN LSBE_JGRP_EXIST LSBE_JGRP_HASJOB LSBE_JGRP_HOLD LSBE_JGRP_NULL LSBE_JOB_ARRAY LSBE_JOB_ATTA_LIMIT LSBE_JOB_CAL_MODIFY LSBE_JOB_DEP LSBE_JOB_ELEMENT LSBE_JOB_EXIST LSBE_JOB_FINISH LSBE_JOB_FORW LSBE_JOB_MODIFY LSBE_JOB_MODIFY_ONCE LSBE_JOB_MODIFY_USED LSBE_JOB_REQUEUED LSBE_JOB_REQUEUE_REMOTE LSBE_JOB_STARTED LSBE_JOB_SUSP LSBE_JS_DISABLED LSBE_J_UNCHKPNTABLE LSBE_J_UNREPETITIVE LSBE_LOCK_JOB LSBE_LSBLIB LSBE_LSLIB LSBE_MBATCHD LSBE_MC_CHKPNT LSBE_MC_EXCEPTION LSBE_MC_HOST LSBE_MC_REPETITIVE LSBE_MC_TIMEEVENT LSBE_MIGRATION LSBE_MOD_JOB_NAME LSBE_MSG_DELIVERED LSBE_MSG_RETRY LSBE_NOLSF_HOST LSBE_NOMATCH_CALENDAR LSBE_NOMATCH_EVENT LSBE_NOT_STARTED LSBE_NO_CALENDAR LSBE_NO_ENOUGH_HOST LSBE_NO_ENV LSBE_NO_ERROR LSBE_NO_EVENT LSBE_NO_FORK LSBE_NO_GROUP LSBE_NO_HOST LSBE_NO_HOST_GROUP LSBE_NO_HPART LSBE_NO_IFREG LSBE_NO_INTERACTIVE LSBE_NO_JOB LSBE_NO_JOBID LSBE_NO_JOBMSG LSBE_NO_JOB_PRIORITY LSBE_NO_LICENSE LSBE_NO_MEM LSBE_NO_OUTPUT LSBE_NO_RESOURCE LSBE_NO_USER LSBE_NO_USER_GROUP LSBE_NQS_BAD_PAR LSBE_NQS_NO_ARRJOB LSBE_NUM_ERR LSBE_ONLY_INTERACTIVE LSBE_OP_RETRY LSBE_OVER_LIMIT LSBE_OVER_RUSAGE LSBE_PEND_CAL_JOB LSBE_PERMISSION LSBE_PERMISSION_MC LSBE_PJOB_LIMIT LSBE_PORT LSBE_PREMATURE LSBE_PROC_NUM LSBE_PROTOCOL LSBE_PTY_INFILE LSBE_QJOB_LIMIT LSBE_QUEUE_CLOSED LSBE_QUEUE_HOST LSBE_QUEUE_NAME LSBE_QUEUE_USE LSBE_QUEUE_WINDOW LSBE_ROOT LSBE_RUN_CAL_JOB LSBE_SBATCHD LSBE_SBD_UNREACH LSBE_SERVICE LSBE_SP_CHILD_DIES LSBE_SP_CHILD_FAILED LSBE_SP_COPY_FAILED LSBE_SP_DELETE_FAILED LSBE_SP_FAILED_HOSTS_LIM LSBE_SP_FIND_HOST_FAILED LSBE_SP_FORK_FAILED LSBE_SP_SPOOLDIR_FAILED LSBE_SP_SRC_NOT_SEEN LSBE_START_TIME LSBE_STOP_JOB LSBE_SYNTAX_CALENDAR LSBE_SYSCAL_EXIST LSBE_SYS_CALL LSBE_TIME_OUT LSBE_UGROUP_MEMBER LSBE_UJOB_LIMIT LSBE_UNKNOWN_EVENT LSBE_UNSUPPORTED_MC LSBE_USER_JLIMIT LSBE_XDR LSB_CHKPERIOD_NOCHNG LSB_CHKPNT_COPY LSB_CHKPNT_FORCE LSB_CHKPNT_KILL LSB_CHKPNT_MIG LSB_CHKPNT_STOP LSB_EVENT_VERSION3_0 LSB_EVENT_VERSION3_1 LSB_EVENT_VERSION3_2 LSB_EVENT_VERSION4_0 LSB_KILL_REQUEUE LSB_MAX_ARRAY_IDX LSB_MAX_ARRAY_JOBID LSB_MAX_SD_LENGTH LSB_MODE_BATCH LSB_MODE_JS LSB_SIG_NUM LSF_JOBIDINDEX_FILENAME LSF_JOBIDINDEX_FILETAG MASTER_CONF MASTER_FATAL MASTER_MEM MASTER_NULL MASTER_RECONFIG MASTER_RESIGN MAXDESCLEN MAXPATHLEN MAX_CALENDARS MAX_CHARLEN MAX_CMD_DESC_LEN MAX_GROUPS MAX_HPART_USERS MAX_LSB_NAME_LEN MAX_USER_EQUIVALENT MAX_USER_MAPPING MAX_VERSION_LEN MBD_CKCONFIG MBD_RECONFIG MBD_RESTART MSGSIZE NO_PEND_REASONS NQSQ_GRP NQS_ROUTE NQS_SERVER NQS_SIG NUM_JGRP_COUNTERS PEND_ADMIN_STOP PEND_CHKPNT_DIR PEND_CHUNK_FAIL PEND_HAS_RUN PEND_HOST_ACCPT_ONE PEND_HOST_DISABLED PEND_HOST_EXCLUSIVE PEND_HOST_JOB_LIMIT PEND_HOST_JOB_RUSAGE PEND_HOST_JOB_SSUSP PEND_HOST_JS_DISABLED PEND_HOST_LESS_SLOTS PEND_HOST_LOAD PEND_HOST_LOCKED PEND_HOST_MISS_DEADLINE PEND_HOST_NONEXCLUSIVE PEND_HOST_NO_LIM PEND_HOST_NO_USER PEND_HOST_PART_PRIO PEND_HOST_PART_USER PEND_HOST_QUE_MEMB PEND_HOST_QUE_RESREQ PEND_HOST_QUE_RUSAGE PEND_HOST_RES_REQ PEND_HOST_SCHED_TYPE PEND_HOST_UNLICENSED PEND_HOST_USR_JLIMIT PEND_HOST_USR_SPEC PEND_HOST_WINDOW PEND_HOST_WIN_WILL_CLOSE PEND_JGRP_HOLD PEND_JGRP_INACT PEND_JGRP_RELEASE PEND_JGRP_WAIT PEND_JOB PEND_JOB_ARRAY_JLIMIT PEND_JOB_DELAY_SCHED PEND_JOB_DEPEND PEND_JOB_DEP_INVALID PEND_JOB_DEP_REJECT PEND_JOB_ENFUGRP PEND_JOB_ENV PEND_JOB_EXEC_INIT PEND_JOB_FORWARDED PEND_JOB_JS_DISABLED PEND_JOB_LOGON_FAIL PEND_JOB_MIG PEND_JOB_MODIFY PEND_JOB_NEW PEND_JOB_NO_FILE PEND_JOB_NO_PASSWD PEND_JOB_NO_SPAN PEND_JOB_OPEN_FILES PEND_JOB_PATHS PEND_JOB_PRE_EXEC PEND_JOB_QUE_REJECT PEND_JOB_RCLUS_UNREACH PEND_JOB_REASON PEND_JOB_REQUEUED PEND_JOB_RESTART_FILE PEND_JOB_RMT_ZOMBIE PEND_JOB_RSCHED_ALLOC PEND_JOB_RSCHED_START PEND_JOB_SPREAD_TASK PEND_JOB_START_FAIL PEND_JOB_START_TIME PEND_JOB_START_UNKNWN PEND_JOB_SWITCH PEND_JOB_TIME_INVALID PEND_LOAD_UNAVAIL PEND_NO_MAPPING PEND_NQS_FUN_OFF PEND_NQS_REASONS PEND_NQS_RETRY PEND_QUE_HOST_JLIMIT PEND_QUE_INACT PEND_QUE_JOB_LIMIT PEND_QUE_NO_SPAN PEND_QUE_PJOB_LIMIT PEND_QUE_PRE_FAIL PEND_QUE_PROC_JLIMIT PEND_QUE_SPREAD_TASK PEND_QUE_USR_JLIMIT PEND_QUE_USR_PJLIMIT PEND_QUE_WINDOW PEND_QUE_WINDOW_WILL_CLOSE PEND_RMT_PERMISSION PEND_SBD_GETPID PEND_SBD_JOB_ACCEPT PEND_SBD_JOB_QUOTA PEND_SBD_JOB_REQUEUE PEND_SBD_LOCK PEND_SBD_NO_MEM PEND_SBD_NO_PROCESS PEND_SBD_ROOT PEND_SBD_SOCKETPAIR PEND_SBD_UNREACH PEND_SBD_ZOMBIE PEND_SYS_NOT_READY PEND_SYS_UNABLE PEND_TIME_EXPIRED PEND_UGRP_JOB_LIMIT PEND_UGRP_PJOB_LIMIT PEND_UGRP_PROC_JLIMIT PEND_USER_JOB_LIMIT PEND_USER_PJOB_LIMIT PEND_USER_PROC_JLIMIT PEND_USER_RESUME PEND_USER_STOP PEND_WAIT_NEXT PREPARE_FOR_OP PRINT_LONG_NAMELIST PRINT_MCPU_HOSTS PRINT_SHORT_NAMELIST QUEUE_ACTIVATE QUEUE_CLOSED QUEUE_INACTIVATE QUEUE_OPEN QUEUE_STAT_ACTIVE QUEUE_STAT_DISC QUEUE_STAT_NOPERM QUEUE_STAT_OPEN QUEUE_STAT_RUN QUEUE_STAT_RUNWIN_CLOSE Q_ATTRIB_BACKFILL Q_ATTRIB_CHKPNT Q_ATTRIB_DEFAULT Q_ATTRIB_ENQUE_INTERACTIVE_AHEAD Q_ATTRIB_EXCLUSIVE Q_ATTRIB_EXCL_RMTJOB Q_ATTRIB_FAIRSHARE Q_ATTRIB_HOST_PREFER Q_ATTRIB_IGNORE_DEADLINE Q_ATTRIB_MC_FAST_SCHEDULE Q_ATTRIB_NONPREEMPTABLE Q_ATTRIB_NONPREEMPTIVE Q_ATTRIB_NO_HOST_TYPE Q_ATTRIB_NO_INTERACTIVE Q_ATTRIB_NQS Q_ATTRIB_ONLY_INTERACTIVE Q_ATTRIB_PREEMPTABLE Q_ATTRIB_PREEMPTIVE Q_ATTRIB_RECEIVE Q_ATTRIB_RERUNNABLE READY_FOR_OP RLIMIT_CORE RLIMIT_CPU RLIMIT_DATA RLIMIT_FSIZE RLIMIT_RSS RLIMIT_STACK RLIM_INFINITY RUNJOB_OPT_NORMAL RUNJOB_OPT_NOSTOP RUN_JOB SORT_HOST SUB2_BSUB_BLOCK SUB2_HOLD SUB2_HOST_NT SUB2_HOST_UX SUB2_IN_FILE_SPOOL SUB2_JOB_CMD_SPOOL SUB2_JOB_PRIORITY SUB2_MODIFY_CMD SUB2_QUEUE_CHKPNT SUB2_QUEUE_RERUNNABLE SUB_CHKPNTABLE SUB_CHKPNT_DIR SUB_CHKPNT_PERIOD SUB_DEPEND_COND SUB_ERR_FILE SUB_EXCEPT SUB_EXCLUSIVE SUB_HOST SUB_HOST_SPEC SUB_INTERACTIVE SUB_IN_FILE SUB_JOB_NAME SUB_LOGIN_SHELL SUB_MAIL_USER SUB_MODIFY SUB_MODIFY_ONCE SUB_NOTIFY_BEGIN SUB_NOTIFY_END SUB_OTHER_FILES SUB_OUT_FILE SUB_PRE_EXEC SUB_PROJECT_NAME SUB_PTY SUB_PTY_SHELL SUB_QUEUE SUB_REASON_CPULIMIT SUB_REASON_DEADLINE SUB_REASON_PROCESSLIMIT SUB_REASON_RUNLIMIT SUB_RERUNNABLE SUB_RESTART SUB_RESTART_FORCE SUB_RES_REQ SUB_TIME_EVENT SUB_USER_GROUP SUB_WINDOW_SIG SUSP_ADMIN_STOP SUSP_HOST_LOCK SUSP_JOB SUSP_LOAD_REASON SUSP_LOAD_UNAVAIL SUSP_MBD_LOCK SUSP_MBD_PREEMPT SUSP_PG_IT SUSP_QUEUE_REASON SUSP_QUEUE_WINDOW SUSP_QUE_RESUME_COND SUSP_QUE_STOP_COND SUSP_REASON_RESET SUSP_RESCHED_PREEMPT SUSP_RES_LIMIT SUSP_RES_RESERVE SUSP_SBD_PREEMPT SUSP_SBD_STARTUP SUSP_USER_REASON SUSP_USER_RESUME SUSP_USER_STOP THIS_VERSION TO_BOTTOM TO_TOP USER_GRP USER_JLP XF_OP_EXEC2SUB XF_OP_EXEC2SUB_APPEND XF_OP_SUB2EXEC XF_OP_SUB2EXEC_APPEND ZOMBIE_JOB _PATH_NULL
Paul Franceus, Capita Technologies, Inc., paul@capita.com
LSF::Base
To install LSF::Batch, copy and paste the appropriate command in to your terminal.
cpanm
cpanm LSF::Batch
CPAN shell
perl -MCPAN -e shell install LSF::Batch
For more information on module installation, please visit the detailed CPAN module installation guide.