This is an old revision of the document!
Note that the following paragraph is about selecting nodes with enough memory for a job. The mechanism to actually reserve that memory does not change: The memory you are allowed to use equals memory per core times slots (-n option) requested.
You can select a node either by currently available memory (mem) or by maximum available memory (maxmem). If you request complete nodes, the difference is actually very small, as a free node's available memory is close to its maximum memory. All requests are in MB.
To select a node with more than about 500 GB available memory use:
#BSUB -R "mem>500000"
To select a node with more than about 6 GB maximum memory per core use:
#BSUB -R "maxmem/ncpus>6000"
(Yes, you can do basic math in the requirement string!)
It bears repeating: None of the above is a memory reservation. If you actually want to reserve “mem” memory, the easiest way is to combine
-R “mem>… with
-x for an exclusive job.
Finally, note that the
-M option just denotes the memory limit of your job per core (in KB). This is of no real consequence, as we do not enforce these limits and it has no influence on the host selection.
Besides the options shown in this article, you can of course use the options for controlling walltime limits (-W), output (-o), and your other requirements as usual. You can also continue to use job scripts instead of the command line (with the
#BSUB <option> <value> syntax).
Please consult the LSF man pages if you need further information.