LSF Users Guide
LSF Users Guide
Platform LSF Version 7.0 Update 6 Release date: August 2009 Last modified: August 17, 2009
Copyright
Although the information in this document has been carefully reviewed, Platform Computing Corporation (Platform) does not warrant it to be free of errors or omissions. Platform reserves the right to make corrections, updates, revisions or changes to the information in this document. UNLESS OTHERWISE EXPRESSLY STATED BY PLATFORM, THE PROGRAM DESCRIBED IN THIS DOCUMENT IS PROVIDED AS IS AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL PLATFORM COMPUTING BE LIABLE TO ANYONE FOR SPECIAL, COLLATERAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING WITHOUT LIMITATION ANY LOST PROFITS, DATA, OR SAVINGS, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS PROGRAM. Wed like to hear from you You can help us make this document better by telling us what you think of the content, organization, and usefulness of the information. If you find an error, or just want to make a suggestion for improving this document, please address your comments to [email protected]. Your comments should pertain only to Platform documentation. For product support, contact [email protected]. Document redistribution and translation Internal redistribution This document is protected by copyright and you may not redistribute or translate it into another language, in part or in whole.
You may only redistribute this document internally within your organization (for example, on an intranet) provided that you continue to check the Platform Web site for updates and update your version of the documentation. You may not make it available to your organization over the Internet. LSF is a registered trademark of Platform Computing Corporation in the United States and in other jurisdictions. ACCELERATING INTELLIGENCE, PLATFORM COMPUTING, PLATFORM SYMPHONY, PLATFORM JOBSCHEDULER, PLATFORM ENTERPRISE GRID ORCHESTRATOR, PLATFORM EGO, and the PLATFORM and PLATFORM LSF logos are trademarks of Platform Computing Corporation in the United States and in other jurisdictions. UNIX is a registered trademark of The Open Group in the United States and in other jurisdictions. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. Microsoft is either a registered trademark or a trademark of Microsoft Corporation in the United States and/or other countries. Windows is a registered trademark of Microsoft Corporation in the United States and other countries. Intel, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Other products or services mentioned in this document are identified by the trademarks or service marks of their respective owners.
Trademarks
http://www.platform.com/Company/third.part.license.htm
Contents
1 About Platform LSF .................................................................................................................... 5 Clusters, jobs, and queues ............................................................................................. 6 Hosts ............................................................................................................................... 9 LSF daemons ................................................................................................................ 11 Batch jobs and tasks ..................................................................................................... 14 Host types and host models .......................................................................................... 16 Users and administrators .............................................................................................. 17 Resources ..................................................................................................................... 18 Job lifecycle .................................................................................................................. 21 Working with Jobs .................................................................................................................... Submitting jobs (bsub) .................................................................................................. Modify pending jobs (bmod) .......................................................................................... Modify running jobs ....................................................................................................... About controlling jobs .................................................................................................... Using LSF with non-shared file space .......................................................................... operator ......................................................................................................................... About resource reservation ........................................................................................... 23 24 28 30 32 38 39 40 2
Monitoring Jobs ........................................................................................................................ 43 View information about jobs .......................................................................................... 44 About displaying resource allocation limits ................................................................... 48 Platform Management Console ................................................................................................ 49 Platform HPC Portal ...................................................................................................... 50
1
About Platform LSF
Cluster
A group of computers (hosts) running LSF that work together as a single unit, combining computing power and sharing workload and resources. A cluster provides a single-system image for a network of computing resources. Hosts can be grouped into clusters in a number of ways. A cluster could contain:
All the hosts in a single administrative group All the hosts on one file server or sub-network Hosts that perform similar functions
Commands
lshosts View static resource information about hosts in the cluster bhosts View resource and job information about server hosts in the cluster lsid View the cluster name lsclusters View cluster status and size
Configuration
Tip:
The name of your cluster should be unique. It should not be the same as any host or queue.
Job
A unit of work run in the LSF system. A job is a command submitted to LSF for execution. LSF schedules, controls, and tracks the job according to configured policies.
About Platform LSF Jobs can be complex problems, simulation scenarios, extensive calculations, anything that needs compute power.
Commands
Job slot
A job slot is a bucket into which a single unit of work is assigned in the LSF system. Hosts are configured to have a number of job slots available and queues dispatch jobs to fill job slots.
Commands
bhosts View job slot limits for hosts and host groups bqueues View job slot limits for queues busers View job slot limits for users and user groups
Configuration
Job states
LSF jobs have the following states:
PEND Waiting in a queue for scheduling and dispatch RUN Dispatched to a host and running DONE Finished normally with zero exit value EXITED Finished with non-zero exit value PSUSP Suspended while pending USUSP Suspended by user SSUSP Suspended by the LSF system POST_DONE Post-processing completed without errors POST_ERR Post-processing completed with errors WAIT Members of a chunk job that are waiting to run
Queue
A clusterwide container for jobs. All jobs wait in queues until they are scheduled and dispatched to hosts. Queues do not correspond to individual hosts; each queue can use all server hosts in the cluster, or a configured subset of the server hosts. When you submit a job to a queue, you do not need to specify an execution host. LSF dispatches the job to the best available execution host in the cluster to run that job. Queues implement different job scheduling and control policies.
Commands
Configuration
Tip:
The names of your queues should be unique. They should not be the same as the cluster name or any host in the cluster.
Hosts
A host is an individual computer in the cluster. Each host may have more than 1 processor. Multiprocessor hosts are used to run parallel jobs. A multiprocessor host with a single process queue is considered a single machine, while a box full of processors that each have their own process queue is treated as a group of separate machines. Commands:
lsload View load on hosts lshosts View configuration information about hosts in the cluster including number of CPUS, model, type,
and whether the host is a client or server bhosts View batch server hosts in the cluster
Tip:
The names of your hosts should be unique. They should not be the same as the cluster name or any queue defined for the cluster.
Submission host
The host where jobs are submitted to the cluster. Jobs are submitted using the bsub command or from an application that uses the LSF API. Client hosts and server hosts can act as submission hosts.
Commands:
Execution host
The host where a job runs. Can be the same as the submission host. All execution hosts are server hosts. Commands
Server host
Hosts that are capable of submitting and executing jobs. A server host runs sbatchd to execute server requests and apply local policies.
Commands
Configuration
server to 1
Server hosts are defined in the lsf.cluster.cluster_name file by setting the value of
Client host
Hosts that are only capable of submitting jobs to the cluster. Client hosts run LSF commands and act only as submission hosts. Client hosts do not execute jobs or run LSF daemons.
Commands
Configuration
Client hosts are defined in the lsf.cluster.cluster_name file by setting the value of server to 0
Master host
Where the master LIM and mbatchd run. An LSF server host that acts as the overall coordinator for that cluster. Each cluster has one master host to do all job scheduling and dispatch. If the master host goes down, another LSF server in the cluster becomes the master host. All LSF daemons run on the master host. The LIM on the master host is the master LIM.
Commands
Configuration
The master host is the first host listed in the lsf.cluster.cluster_name file or is defined along with other candidate master hosts by LSF_MASTER_LIST in lsf.conf.
LSF daemons
LSF daemon Role
mbatchd
Master Batch Daemon running on the master host. Started by sbatchd. Responsible for the overall state of jobs in the system. Receives job submission, and information query requests. Manages jobs held in queues. Dispatches jobs to hosts as determined by mbschd.
Configuration
mbschd
Master Batch Scheduler Daemon running on the master host. Works with mbatchd. Started by mbatchd. Makes scheduling decisions based on job requirements, and policies, and resource availability. Sends scheduling decisions to the mbatchd.
sbatchd
Slave Batch Daemon running on each server host. Receives the request to run the job from mbatchd and manages local execution of the job. Responsible for enforcing local policies and maintaining the state of jobs on the host. The sbatchd forks a child sbatchd for every job. The child sbatchd runs an instance of res to create the execution environment in which the job runs. The child sbatchd exits when the job is complete.
Commands
badmin hstartup Starts sbatchd badmin hshutdown Shuts down sbatchd badmin hrestart Restarts sbatchd
Configuration
res
Remote Execution Server (res) running on each server host. Accepts remote execution requests to provide transparent and secure remote execution of jobs and tasks.
Commands
lsadmin resstartup Starts res lsadmin resshutdown Shuts down res lsadmin resrestart Restarts res
Configuration
lim
Load Information Manager (LIM) running on each server host. Collects host load and configuration information and forwards it to the master LIM running on the master host. Reports the information displayed by lsload and lshosts. Static indices are reported when the LIM starts up or when the number of CPUs (ncpus) change. Static indices are:
Number of CPUs (ncpus) Number of disks (ndisks) Total available memory (maxmem) Total available swap (maxswp) Total available temp (maxtmp) Dynamic indices for host load collected at regular intervals are: Hosts status (status) 15 second, 1 minute, and 15 minute run queue lengths (r15s, r1m, and r15m) CPU utilization (ut) Paging rate (pg) Number of login sessions (ls) Interactive idle time (it) Available swap space (swp) Available memory (mem) Available temp space (tmp) Disk IO rate (io)
Commands
lsadmin limstartup Starts LIM lsadmin limshutdown Shuts down LIM lsadmin limrestart Restarts LIM lsload View dynamic load values lshosts View static host load values
Configuration
Master LIM
The LIM running on the master host. Receives load information from the LIMs running on hosts in the cluster. Forwards load information to mbatchd, which forwards this information to mbschd to support scheduling decisions. If the master LIM becomes unavailable, a LIM on another host automatically takes over.
Commands
lsadmin limstartup Starts LIM lsadmin limshutdown Shuts down LIM lsadmin limrestart Restarts LIM lsload View dynamic load values lshosts View static host load values
Configuration
ELIM
External LIM (ELIM) is a site-definable executable that collects and tracks custom dynamic load indices. An ELIM can be a shell script or a compiled binary program, which returns the values of the dynamic resources you define. The ELIM executable must be named elim and located in LSF_SERVERDIR.
pim
Process Information Manager (PIM) running on each server host. Started by LIM, which periodically checks on pim and restarts it if it dies. Collects information about job processes running on the host such as CPU and memory used by the job, and reports the information to sbatchd.
Commands
Job
A unit of work run in the LSF system. A job is a command submitted to LSF for execution, using the bsub command. LSF schedules, controls, and tracks the job according to configured policies. Jobs can be complex problems, simulation scenarios, extensive calculations, anything that needs compute power.
Commands
Commands
Interactive task
A command that is not submitted to a batch queue and scheduled by LSF, but is dispatched immediately. LSF locates the resources needed by the task and chooses the best host among the candidate hosts that has the required resources and is lightly loaded. Each command can be a single process, or it can be a group of cooperating processes. Tasks are run without using the batch processing features of LSF but still with the advantage of resource requirements and selection of the best host to run the task based on load.
Commands
lsrun Submit an interactive task lsgrun Submit an interactive task to a group of hosts
See also LSF utilities such as ch, lsacct, lsacctmrg, lslogin, lsplace, lsload, lsloadadj, lseligible, lsmon, lstcsh.
Local task
An application or command that does not make sense to run remotely. For example, the ls command on UNIX.
Commands
Configuration
lsf.task Configure system-wide resource requirements for tasks lsf.task.cluster Configure cluster-wide resource requirements for tasks .lsftasks Configure user-specific tasks
Remote task
An application or command that can be run on another machine in the cluster.
Commands
Configuration
lsf.task Configure system-wide resource requirements for tasks lsf.task.cluster Configure cluster-wide resource requirements for tasks .lsftasks Configure user-specific tasks
Host type
The combination of operating system version and host CPU architecture. All computers that run the same operating system on the same computer architecture are of the same type in other words, binary-compatible with each other. Each host type usually requires a different set of LSF binary files. Commands
Host model
The combination of host type and CPU speed (CPU factor) of the computer. All hosts of the same relative speed are assigned the same host model. The CPU factor is taken into consideration when jobs are being dispatched. Commands
lsinfo -m View a list of currently running models lsinfo -M View all models defined in lsf.shared
LSF administrator
In general, you must be an LSF administrator to perform operations that will affect other LSF users. Each cluster has one primary LSF administrator, specified during LSF installation. You can also configure additional administrators at the cluster level and at the queue level.
Cluster administrator
May be specified during LSF installation or configured after installation. Cluster administrators can perform administrative operations on all jobs and queues in the cluster. Cluster administrators have the same cluster-wide operational privileges as the primary LSF administrator except that they do not necessarily have permission to change LSF configuration files. For example, a cluster administrator can create an LSF host group, submit a job to any queue, or terminate another users job.
Queue administrator
An LSF administrator user account that has administrative permissions limited to a specified queue. For example, an LSF queue administrator can perform administrative operations on the specified queue, or on jobs running in the specified queue, but cannot change LSF configuration or operate on LSF daemons.
Resources
Resource usage
The LSF system uses built-in and configured resources to track resource availability and usage. Jobs are scheduled according to the resources available on individual hosts. Jobs submitted through the LSF system will have the resources they use monitored while they are running. This information is used to enforce resource limits and load thresholds as well as fairshare scheduling. LSF collects information such as:
Total CPU time consumed by all processes in the job Total resident memory usage in KB of all currently running processes in a job Total virtual memory usage in KB of all currently running processes in a job Currently active process group ID in a job Currently active processes in a job On UNIX, job-level resource usage is collected through PIM.
Commands
lsinfo View the resources available in your cluster bjobs -l View current resource usage of a job
Configuration
SBD_SLEEP_TIME in lsb.params Configures how often resource usage information is sampled by PIM, collected by sbatchd, and sent to mbatchd
Load indices
Load indices measure the availability of dynamic, non-shared resources on hosts in the cluster. Load indices built into the LIM are updated at fixed time intervals.
Commands
lsload -l View all load indices bhosts -l View load levels on a host
Commands
Static resources
Built-in resources that represent host information that does not change over time, such as the maximum RAM available to user processes or the number of processors in a machine. Most static resources are determined by the LIM at start-up time. Static resources can be used to select appropriate hosts for particular jobs based on binary architecture, relative CPU speed, and system configuration.
Load thresholds
Two types of load thresholds can be configured by your LSF administrator to schedule jobs in queues. Each load threshold specifies a load index value:
loadSched determines the load condition for dispatching pending jobs. If a hosts load is beyond any defined loadSched, a job will not be started on the host. This threshold is also used as the condition for resuming suspended jobs. loadStop determines when running jobs should be suspended. To schedule a job on a host, the load levels on that host must satisfy both the thresholds configured for that host and the thresholds for the queue from which the job is being dispatched. The value of a load index may either increase or decrease with load, depending on the meaning of the specific load index. Therefore, when comparing the host load conditions with the threshold values, you need to use either greater than (>) or less than (<), depending on the load index.
Commands
bhosts-l View suspending conditions for hosts bqueues -l View suspending conditions for queues bjobs -l View suspending conditions for a particular job and the scheduling
Configuration
lsb.hosts Configure thresholds for hosts lsb.queues Configure thresholds for queues
Configuration
Configuration
Commands
Configuration
Job lifecycle
1 Submit a job
You submit a job from an LSF client or server with the bsub command. If you do not specify a queue when submitting the job, the job is submitted to the default queue. Jobs are held in a queue waiting to be scheduled and have the PEND state. The job is held in a job file in the LSF_SHAREDIR/cluster_name/logdir/info/ directory.
Job ID
LSF assigns each job a unique job ID when you submit the job.
Job name
You can also assign a name to the job with the -J option of bsub. Unlike the job ID, the job name is not necessarily unique.
2 Schedule job
1. mbatchd looks at jobs in the queue and sends the jobs for scheduling to mbschd at a preset time interval (defined by the parameter JOB_SCHEDULING_INTERVAL in lsb.params). 2. mbschd evaluates jobs and makes scheduling decisions based on: Job priority Scheduling policies Available resources 3. mbschd selects the best hosts where the job can run and sends its decisions back to mbatchd.
Resource information is collected at preset time intervals by the master LIM from LIMs on server hosts. The master LIM communicates this information to mbatchd, which in turn communicates it to mbschd to support scheduling decisions.
3 Dispatch job
As soon as mbatchd receives scheduling decisions, it immediately dispatches the jobs to hosts.
4 Run job
sbatchd handles job execution. It:
1. 2. 3. 4.
Receives the request from mbatchd Creates a child sbatchd for the job Creates the execution environment Starts the job using res
The execution environment is copied from the submission host to the execution host and includes the following:
Environment variables needed by the job Working directory where the job begins running Other system-dependent environment settings, for example:
On UNIX and Linux, resource limits and umask On Windows, desktop and Windows root directory The job runs under the user account that submitted the job and has the status RUN.
5 Return output
When a job is completed, it is assigned the DONE status if the job was completed without any problems. The job is assigned the EXIT status if errors prevented the job from completing.
sbatchd communicates job information including errors and output to mbatchd.
Job report
A job report is sent by email to the LSF client and includes:
Job information such as: CPU use Memory use Name of the account that submitted the job Job output Errors
2
Working with Jobs
In the above example, 1234 is the job ID assigned to this job, and normal is the name of the default job queue. Your job remains pending until all conditions for its execution are met. Each queue has execution conditions that apply to all jobs in the queue, and you can specify additional conditions when you submit the job When you submit jobs, you can also specify an execution host or a range of hosts, a queue, and start and termination times, as well as a wide range of other job options.
Working with Jobs To display only the queues that use specific host name or host group name to run jobs, run bqueues -m host_name.
If you have an urgent job to run, you may want to submit it to the priority queue:
bsub -q "priority" my_job
If you want to use hosts owned by others and you do not want to bother the owners, you may want to run your low priority jobs on the idle queue so that as soon as the owner comes back, your jobs get suspended:
bsub -q "idle" my_job
If you are running small jobs and do not want to wait too long to get the results, you can submit jobs to the short queue to be dispatched with higher priority:
bsub -q "short" my_job
Tip:
Make sure your jobs are short enough that they are not killed for exceeding the CPU time limit of the queue (check the resource limits of the queue, if any).
If your job requires a specific execution environment, you may need to submit it to a queue that has a particular job starter defined. LSF administrators are able to specify a queuelevel job starter as part of the queue definition; ask them for the name of the queue and configuration details.
You can specify any user group to which you belong as long as it does not contain any subgroups. You must be a direct member of the specified user group. User groups in non-leaf nodes cannot be specified because it will cause ambiguity in determining the correct shares given to a user. 1. To submit a job and associate it with a specified user group, run bsub -G user_group.
Working with Jobs For example, to submit the job myjob associated to user group special:
bsub -G special myjob
You can associate a name with a job or job array. Job names can contain up to 4094 characters. You can later use the job name to identify the job. The job name need not be unique. 1. Use bsub -J job_name to submit a job and assign a job name to it. For example, to submit a job and assign the name my_job:
bsub -J my_job sleep 1000
Tip:
You should submit your jobs with a run time limit (-W option) or the queue should specify a run time limit (RUNLIMIT in the queue definition in lsb.queues). If you do not specify a run time limit, ProductNameAbbreviation automatically adjusts the optimum number of running jobs according to the observed run time of finished jobs.
1. To submit a job to a service class for SLA-driven scheduling, run bsub -sla service_class_name. For example:
bsub -W 15 -sla Kyuquot sleep 100
submits the UNIX command sleep together with its argument 100 as a job to the service class named Kyuquot.
Submits myjob to the job group /risk_group/portfolio1/current. If group /risk_group/portfolio1/current exists, job 105 is attached to the job group.
Working with Jobs If group /risk_group/portfolio1/current does not exist, ProductNameAbbreviation checks its parent recursively, and if no groups in the hierarchy exist, all three job groups are created with the specified hierarchy and the job is attached to group.
Restriction:
You cannot:
Use -sla with other bmod options Move job array elements from one service class to another, only entire job arrays Modify the service class of jobs already attached to a job group
Use the -sla option of bmod to modify the service class a job is attached to, or to attach a submitted job to a service class.
bmod -sla Kyuquot 2307
Attaches job 2307 to the service class Kyuquot. Use bmod -slan to detach a job from a service class. For example:
bmod -slan 2307
Restriction:
The command bmod -g cannot be combined with other bmod options. It can only operate on pending jobs. It cannot operate on running or finished jobs.
To specify a job group path to move a job or a job array from one job group to another, run bmod -g. For example:
bmod -g /risk_group/portfolio2/monthly 105
Moves job 105 to job group /risk_group/portfolio2/monthly. Like bsub -g, if the job group does not exist, LSF creates it.
Restriction:
You cannot modify remote running jobs in a MultiCluster environment.
Note:
You can modify additional job options by setting LSB_MOD_ALL_JOBS in lsf.conf.
1. Run bmod -R to modify the resource reservation for a running job. For example, to set the resource reservation for job 101 to 25MB of memory and 50 MB of swap space:
bmod -R "rusage[mem=25:swp=50]" 101
Restriction:
You cannot use these options in combination with other bmod options. An error message is issued and the modification fails if these options are used on running jobs in combination with other bmod options.
CPU limit (-c [hour:]minute[/host_name | /host_model] | -cn) Memory limit (-M mem_limit | -Mn) Rerunnable jobs (-r | -rn)
Working with Jobs Standard error file name (-e error_file | -en) Standard output file name (-o output_file | -on) Run limit (-W run_limit[/host_name | /host_model] | -Wn)
Suspend by sending a SIGSTOP signal Resume by sending a SIGCONT signal Terminate by sending a SIGKILL signal On Windows, equivalent functions have been implemented to perform the same tasks.
You can cancel a job from running or pending by killing it. If your job is part of a job group, the command bkill only kills jobs in the job group you specify. It does not kill jobs in lower level job groups in the path. 1. To kill job 3421:
bkill 3421
a) Use the -g option of bkill and specify a job group path to terminate jobs in a job group. For example:
bkill -g /risk_group 106
If a job cannot be killed in the operating system, you can force the removal of the job from LSF. The bkill -r command removes a job from the system without waiting for the job to terminate in the operating system. This sends the same series of signals as bkill without r, except that the job is removed from the system immediately, the job is marked as EXIT, and job resources that LSF monitors are released as soon as LSF receives the first signal. 1. Use bkill -r to force the removal of the job from LSF.
Working with Jobs The command bstop sends the following signals to the job:
SIGTSTP for parallel or interactive jobs SIGTSTP is caught by the master process and passed to all the slave processes running on other hosts. SIGSTOP for sequential jobs SIGSTOP cannot be caught by user programs. The SIGSTOP signal can be configured with the LSB_SIGSTOP parameter in lsf.conf.
Suspend a job
You can suspend or stop a job that is already running. You must be an administrator or the user who submitted the job. When you stop a job, it is suspended until you choose to resume it. Suspending a job causes your job to go into USUSP state if the job is already started, or to go into PSUSP state if your job is pending. By default, jobs that are suspended by the administrator can only be resumed by the administrator or root; users do not have permission to resume a job suspended by another user or the administrator. Administrators can resume jobs suspended by users or administrators. Administrators can also enable users to resume their own jobs that have been stopped by an administrator. 1. Use the -g option of bstop and specify a job group path to suspend jobs in a job group
bstop -g /risk_group 106 Job <106> is being stopped
Resume a job
You can resume a job that was suspended using bstop. You must be the same user who suspended the job. If your job was suspended by the administrator, you cannot resume it; the administrator or root must resume the job for you. Resuming a user-suspended job does not put your job into RUN state immediately. If your job was running before the suspension, bresume first puts your job into SSUSP state and then waits for sbatchd to schedule it according to the load conditions. 1. From the command line, run bresume and specify a job group path to resume suspended jobs in a job group. For example, to resume job 3421, enter bresume 3421.
Use bbot to move jobs relative to your last job in the queue.
You must be an LSF administrator or the user who submitted the job. By default, LSF dispatches jobs in a queue in the order of arrival (that is, first-come-first-served), subject to availability of suitable server hosts. Use the bbot command to change the position of pending jobs, or of pending job array elements, to affect the order in which jobs are considered for dispatch. Users can only change the relative position of their own jobs, and LSF administrators can change the position of any users jobs. To move a job to the bottom of the queue, run bbot. For example, bbot 5311. If invoked by a regular user, bbot moves the selected job after the last job with the same priority submitted by the user to the queue. If invoked by the LSF administrator, bbot moves the selected job after the last job with the same priority submitted to the queue.
Use btop to move jobs relative to your first job in the queue.
By default, LSF dispatches jobs in a queue in the order of arrival (that is, first-come-first-served), subject to availability of suitable server hosts. Use the btop command to change the position of pending jobs, or of pending job array elements, to affect the order in which jobs are considered for dispatch. Users can only change the relative position of their own jobs, and LSF administrators can change the position of any users jobs. To move a job to the top of the queue, run btop. In the following example, job 5311 is moved to the top of the queue. Since job 5308 is already running, job 5311 is placed in the queue after job 5308.
Tip:
Note that user1s job is still in the same position on the queue. user2 cannot use btop to get extra jobs at the top of the queue; when one of his jobs moves up the queue, the rest of his jobs move down.
bjobs -u all JOBID USER STAT QUEUE FROM_HOST 5308 user2 RUN normal hostA 5309 user2 PEND night hostA 5310 user1 PEND night hostB 5311 user2 PEND night hostA btop 5311 Job <5311> has been moved to position bjobs -u all JOBID USER STAT QUEUE FROM_HOST 5308 user2 RUN normal hostA 5311 user2 PEND night hostA 5310 user1 PEND night hostB 5309 user2 PEND night hostA EXEC_HOST hostD JOB_NAME /s500 /s200 /myjob /s700 SUBMIT_TIME Oct 23 10:16 Oct 23 11:04 Oct 23 13:45 Oct 23 18:17
1 from top. EXEC_HOST hostD JOB_NAME /s500 /s200 /myjob /s700 SUBMIT_TIME Oct 23 10:16 Oct 23 18:17 Oct 23 13:45 Oct 23 11:04
If invoked by a regular user, btop moves the selected job before the first job with the same priority submitted by the user to the queue.
Working with Jobs If invoked by the LSF administrator, btop moves the selected job before the first job with the same priority submitted to the queue.
Job <106> is being stopped 2. To suspend all jobs in a job group, use job ID 0 (zero).
bstop -g /risk_group/consolidate 0
Job <107> is being stopped Job <108> is being stopped Job <109> is being stopped
Job <106> is being resumed 2. To resume all jobs in a job group, use job ID 0 (zero).
bresume -g /risk_group 0 Job <109> is being resumed Job <110> is being resumed Job <112> is being resumed
Job <106> is being terminated 2. To terminate all jobs in a job group, run job ID 0 (zero).
bkill -g /risk_group 0
Job <1413> is being terminated Job <1414> is being terminated Job <1415> is being terminated Job <1416> is being terminated
The job group /risk_group and all its subgroups are deleted.
Specify which hosts a job can run on. When several hosts can satisfy the resource requirements of a job, the hosts are ordered by load. However, in certain situations it may be desirable to override this behavior to give preference to specific hosts, even if they are more heavily loaded.
Note:
By specifying a single host, you can force your job to wait until that host is available and then run on that host.
1. To indicate that a job must run on one of the specified hosts, use the bsub -m "hostA hostB ..." option. For example:
bsub -m "hostA hostD hostB" myjob
Configure a new resource that your job runs with. If you have applications that need specific resources, you should create a new Boolean resource and configure that resource for the appropriate hosts in the cluster. If you specify a host list using the -m option of bsub, you must change the host list every time you add a new host that supports the desired resources. By using a Boolean resource, the LSF administrator can add, move, or remove resources without forcing users to learn about changes to resource configuration.
Submit a job with varying levels of host preferences. You can indicate different levels of preference by specifying a number after the plus sign (+). The larger the number, the higher the preference for that host or host group. You can also specify the + with the keyword others.
In this example, LSF gives first preference to hosts in groupA, second preference to hosts in groupB and last preference to those in groupC. Ordering within a group is still determined by load.
Submit a job that requires specific resources to run. 1. Submit a job indicating a resource requirement. For example, to submit a job which will run on Solaris 7 or Solaris 8:
bsub -R "sol7 || sol8" myjob
When you submit a job, you can also exclude a host by specifying a resource requirement using hname resource:
bsub -R "hname!=hostb && type==sgi6" myjob
bsub -f
The -f "[local_file operator [remote_file]]" option to the bsub command copies a file between the submission host and the execution host. To specify multiple files, repeat the -f option. local_file
File name on the execution host. The files local_file and remote_file can be absolute or relative file path names. You must specify at least one file name. When the file remote_file is not specified, it is assumed to be the same as local_file. Including local_file without the operator results in a syntax error.
operator
Operation to perform on the file. The operator must be surrounded by white space. Valid values for operator are:
> local_file on the submission host is copied to remote_file on the execution host before job execution. remote_file is overwritten if it exists. < remote_file on the execution host is copied to local_file on the submission host after the job completes. local_file is overwritten if it exists. << remote_file is appended to local_file after the job completes. local_file is created if it does not exist. ><, <> Equivalent to performing the > and then the < operation. The file local_file is copied to remote_file before the job executes, and remote_file is copied back, overwriting local_file, after the job completes. <> is the same as ><
If the submission and execution hosts have different directory structures, you must ensure that the directory where remote_file and local_file will be placed exists. ProductNameAbbreviation tries to change the directory to the same path name as the directory where the bsub command was run. If this directory does not exist, the job is run in your home directory on the execution host. You should specify remote_file as a file name with no path when running in non-shared file systems; this places the file in the jobs current working directory on the execution host. This way the job will work correctly even if the directory where the bsub command is run does not exist on the execution host. Be careful not to overwrite an existing file in your home directory.
You can view host - or queue-level resource information. 1. View host-level resource information. a) To view the amount of resources reserved on each host, run bhosts -l. b) To view information about shared resources, run bhosts -s. 2. View the queue-level resource information. a) To see the resource usage configured at the queue level, run bqueues -l.
LSF reserves 30 MB of temp space for the job. As the job runs, the amount reserved will decrease at approximately 1 MB/minute such that the reserved amount is 0 after 30 minutes.
You can specify a time of day at which to start or stop a job. By default, LSF dispatches jobs as soon as possible, and then allows them to finish, although resource limits might terminate the job before it finishes. If you do not want to start your job immediately when you submit it, specify a start time for LSF to start it. You can also specify a time after which the job should be terminated.
This example submits a job that remains pending until after the local time on the master host reaches 5 a.m. 2. Submit a job with a termination time.
bsub -t 11:12:20:30 myjob
The job called myjob is submitted to the default queue. If the job is still running on November 12 at 8:30 p.m., it will be killed.
Submit a job that requires specific resources to run. 1. Submit a job indicating a resource requirement. For example, to submit a job which will run on Solaris 7 or Solaris 8:
bsub -R "sol7 || sol8" myjob
When you submit a job, you can also exclude a host by specifying a resource requirement using hname resource:
bsub -R "hname!=hostb && type==sgi6" myjob
2. Submit a job to run balanced over the fewest possible compute units using the keyword balance in the resource requirement cu string. To submit a job which will run evenly distributed over the fewest compute units and use a total of 64 slots, for example:
bsub -n 64 -R "cu[balance]" my_job
Possible resource allocations (in order of preference) are: 64 slots on 1 enclosure 32 slots on 2 enclosures 22 slots on 1 enclosure and 21 slots on 2 enclosures 16 slots on 4 enclosures 3. Submit a job to run on compute units few or many available slots use the keyword pref.
To submit a job to run on compute units with the fewest slots for example:
bsub -R "cu[pref=minavail]" my_job
3
Monitoring Jobs
Monitoring Jobs
bjobs reports the status of jobs and the various options allow you to display specific information. bhist reports the history of one or more jobs in the system.
You can also find jobs on specific queues or hosts, find jobs submitted by specific projects, and check the status of specific jobs using their job IDs or names.
Monitoring Jobs Displays information for suspended jobs (SUSP state) and their reasons. There can be more than one reason why the job is suspended. The pending reasons alsodisplay the number of hosts for each condition. 2. To get specific host names along with suspend reasons, run bjobs -ls. 3. To view the suspend reasons for all users, run bjobs -s -u all.
You can view information about jobs in job groups or view jobs by job group. To see all job groups, run bjgroup. To see jobs by job group, run bjobs -g /group_name.
Monitoring Jobs To save time, you can use this command to check if your job is behaving as you expected and kill the job if it is running away or producing unusable results. 1. Run bpeek job_id. For example:
bpeek 1234
<< output from stdout >> Starting phase 1 Phase 1 done Calculating new parameters ...
dispatched to ; starting (Pid 429); running with execution home, Execution CWD , Execution submitted from host to Queue, CWD , User , Project , done successfully; exited; done successfully;
Monitoring Jobs
Searches the current event log file lsb.events Searches lsb.events and lsb.events.1 Searches lsb.events, lsb.events.1, lsb.events.2 Searches all event log files in LSB_SHAREDIR
Update interval
The job-level resource usage information is updated at a maximum frequency of every SBD_SLEEP_TIME seconds. The update is done only if the value for the CPU time, resident memory usage, or virtual memory usage has changed by more than 10 percent from the previous update or if a new process or process group has been created.
Job-level information
Job-level information includes:
Total CPU time consumed by all processes of a job Total resident memory usage in KB of all currently running processes of a job Total virtual memory usage in KB of all currently running processes of a job Currently active process group ID of a job Currently active processes of a job
Monitoring Jobs
Configured limit policy name Users (-u option) Queues (-q option) Hosts (-m option) Project names (-P option)
Resources that have no configured limits or no limit usage are indicated by a dash (-). Limits are displayed in a USED/ LIMIT format. For example, if a limit of 10 slots is configured and 3 slots are in use, then blimits displays the limit for SLOTS as 3/10. If limits MEM, SWP, or TMP are configured as percentages, both the limit and the amount used are displayed in MB. For example, lshosts displays maximum memory (maxmem) of 249 MB, and MEM is limited to 10% of available memory. If 10 MB out of are used, blimits displays the limit for MEM as 10/25 (10 MB USED from a 25 MB LIMIT). Configured limits and resource usage for builtin resources (slots, mem, tmp, and swp load indices) are displayed as INTERNAL RESOURCE LIMITS separately from custom external resources, which are shown as EXTERNAL RESOURCE LIMITS. Limits are displayed for both the vertical tabular format and the horizontal format for Limit sections. If a vertical format Limit section has no name, blimits displays NONAMEnnn under the NAME column for these limits, where the unnamed limits are numbered in the order the vertical-format Limit sections appear in the lsb.resources file. If a resource consumer is configured as all, the limit usage for that consumer is indicated by a dash (-). PER_HOST slot limits are not displayed. The bhosts commands displays these as MXJ limits. In MultiCluster, blimits returns the information about all limits in the local cluster.
4
Platform Management Console
Launch the interactive HPC Portal to monitor hosts and jobs and run jobs. The HPC Portal allows you to monitor hosts and jobs, as well as submit jobs. When logging in for the first time, the LSF administrator must log on as root. All administrators and non-administrator users logging on to the HPC Portal must provide an OS user name and password. 1. Open the HPC Portal in a supported Web browser.
http://master_host_name:8080/platform
2. Log on with your UNIX or Windows username and password. 3. If the log on failed or the URL could not be found, restart the HPC Portal by running pmcadmin from the command line. In most cases, the daemons and services required to run the HPC Portal start automatically; however, if the HPC Portal goes down, you may need to restart HPC Portal services and daemons.
Enable cookies
The HPC Portal requires that Web browsers accept first-party and third-party cookies. In some cases, your browser default settings may block these cookies. In this case, you need to manually change this setting.
Note:
By default, IE7 blocks cookies, while IE6, Firefox 1.5, and Firefox 2.0 allow cookies.
For IE7: 1. In your browser, go to Tools > Internet Options > Privacy > Advanced. 2. Select Override automatic cookie handling. 3. Select Accept for both first-party and third-party cookies. 4. Click OK to save your settings.
A
automount option /net 38
Index
associated to a user group 25 to a specific queue 24 btop changing job order within queues 34
B
bacct command 45 batch jobs accessing files 38 file access 38 scheduling 40 bbot changing job order within queues 34 bhist viewing chronological history of jobs 46 viewing job history 47 viewing jobs not listed in active event log 46 bhosts -l viewing host-level resource information 40 bjobs viewing status of jobs 44 bmod modifying resource reservation for jobs 30 modifying running jobs 30 bpeek viewing job output 45 bqueues -l viewing queue-level resource information 40 bresume resuming jobs 32 bsla 45 bstop SIGSTOP and SIGTSTP signals 33 suspending jobs 32 bsub remote file access 38 submitting a job associated to a service class 26
C
CPU time limit small jobs 25
D
directories remote access 38
G
goal-oriented scheduling. See SLA scheduling
H
history viewing 46, 47 home directories remote file access 39 hosts specifying on job submission 36 specifying preference at job submission 36 viewing resource allocation limits (blimits) 48
J
job limits modifying for running jobs 30 job output options modifying for rerunnable jobs 30 modifying for running jobs 31 job rerun modifying running jobs 30 job-level resource reservation 40
jobs assigning job names 26 changing execution order 34 checking output 45 modifying resource reservation 30 resuming 32 specifying resource requirements 37, 41 submitting for a user group 25 resources 36 specifying host preference 36 to a service class 26 to specific queues 24 submitting to a project 25 submitting with start/end time 40 suspending 32 view information 45 viewing chronological history 46 history 47 status of 44
Q
queues and host preference 36 changing job order within 34 specifying at job submission 24 viewing resource allocation limits (blimits) 48
R
rcp command for remote file access 38 rerunnable jobs modifying running jobs 30 resource requirements specifying at job submission 37, 41 resource reservation description 40 modifying for jobs 30 resource usage limits CPU limit for small jobs 25 modifying for running jobs 30 resources and job submission 36 resuming jobs when suspended by administrator 33 RUN job state 33
L
limits modifying for running jobs 30 logs viewing jobs not listed in active event log 46 lsb.resources file viewing limit configuration (blimits) 48 lsrcp command for remote file access 38
S
sbatchd (slave batch daemon) remote file access 38 SBD_SLEEP_TIME 47 service classes bacct command 45 bsla command 45 service level agreement. See SLA scheduling signals bstop command 33 SIGCONT in job control actions 32 SIGKILL in job control actions 32 SIGSTOP bstop command 33 job control actions 32 SIGTSTP bstop command 33 SIGSTOPand SIGTSTP signals
N
names assigning to jobs 26 non-shared file space 38
O
order of job execution 34
P
project names viewing resource allocation limits (blimits) 48 projects associating jobs with 25 collecting information 25 PSUSP job state 33
bstop command 33 SLA scheduling bacct command 45 bsla command 45 submitting jobs description 26 SSH X11 forwarding 37 SSUSP job state 33 standard error output file
modifying for running jobs 31 standard output file modifying for running jobs 31
U
update interval 47 user groups associating with jobs at job submission 25 users viewing resource allocation limits (blimits) 48 USUSP job state 32, 33