Using ramdisk

Using ramdisk(s)

Especially for I/O intensive jobs, which issue many system calls, the local disk as well as our GPFS fileserver can be a bottleneck. Staging of files to a local ramdisk can be a solution for these jobs.

In order to create a ramdisk for your job you must specify an (additional) rusage statement within your bsub command:
-R rusage[ramdisk=1000]
, where the size of the ramdisk is stated in MByte. The amount of memory used for the ramdisk is automatically added to your requested memory. Depending from the way you reserve your memory (
-R rusage[mem=1000]
or
-app Reserve5G
), bsub will indicate the new memory reservation settings caused by the ramdisk request.

The ramdisk is created in the jobdir directory
/jobdir/${LSB_JOBID}/ramdisk
The resource option
-R span[ptile=]
is mandatory for ramdisks! Adjust it to (at least) the number of processor cores your job requests. e.g. for a single core job use:
-R span[ptile=1]
Examples:

1) Memory reservation via application profile:

2) Memory reservation via rusage directive:

Multi processor jobs

For multi processor jobs one ramdisk per host is created. The memory occupied by the ramdisk is equally distributed on the RAM requests for every single jobslot. E.g. a 3 processor job with 2000MB per process and a 1000MB ramdisk (or for example 6 processor job on two hosts with 3 processes per host, 2000MB per process and a 1000MB ramdisk) will end up with a memory request of 2333MB per jobslot: