This page is a compilation of the various bsub flags you may use in your jobs and what they do. Please consult the Lilac Cluster Guide page for some basic configurations and some very common job submissions.

These are the arguments given to bsub or as #BSUB directives in your script's header. These flags are case sensitive

Any argument with the < > braces shows a field which you the user replace in your submission.

Specify Wall time

Specify total number of processes you will run

Use Job ID Number as part of logfile name

Notes on the resource request flag -R:

Choose how many processes per node to run

Start a job in Interactive mode with the bash terminal

Select a specific node to run your job on

Request a certain amount of memory per cpu core:

Request specific node groups

List of groups and differences (4/20/17) :

Change the queue you are submitting to. Different queues treat the nodes differently.

Available queues (feed them into -q <queue>) :

Requesting GPU Specific Resources

Recommended Reading: Lilac GPU Primer

It is important to note that the GPUs you request are multiples of your CPU topology. This only makes sense for 1CPU per GPU, which is why all the resource requests are ngpus_excel_p=1.

Trivia: When looking at GPU resource requests for LSF documentation from IBM, you will see ngpus_shared, ngpus_excl_p, and ngpus_excl_t. These correspond to sharedprocess exclusive, and thread exclusive mode respectively. Since all Lilac GPUs are in process exclusive mode, the only valid option is ngpus_excl_p.

Request 4 GPUs in process exclusive mode on 1 node to run on 4 CPUs

Request 6 GPUs in over 2 nodes (there are 4 gpus/node on Lilac) to run 6 total processes

Request a specific GPU model

Emulate shared mode for 2 GPUs by activating the MPS service from Nvidia

Logic Operators in Resource Requests

LSF can support logical groups ({ }) and the "OR" operator (||) as part of the -R requirements string. This could be helpful for requesting particular sets of packing or hardware requirements.