Memory reservation

Memory reservation

When submitting a job, you need to set memory limits and reservation (or a default of 300M will be applied, which is most likely not enough).

All of these values are per process or requested core.

Application profile

The easiest way to reserve memory for your job is to use pre-defined application profiles. You can list all available profiles using the bapp command. The exact definition of a profile can be viewed with bapp -l <Profile Name>.

To use an application profile, supply its name to the bsub command:

If you use full nodes (with -R 'span[ptile=64]'), you should use the application profile Reserve1800M, which reserves nearly all available memory on the node (subtracting a little buffer for the operating system) for your job. Adding this option is recommended.

High memory requirements

If you need a lot of memory by just one process you have to combine this requirement with the affinity-string in your bsub command. Imagine a single process that needs the whole available RAM on a node. You would call

This binds all 64 cores to one process and allows that single process to use the whole memory.

Determine memory usage of applications

There are many ways to determine how much memory an application uses, e.g. looking at the output of ps or top while the program is running.

The easiest way to get the maximum memory consumption is to use the time binary (not the bash builtin) as described here: