Configure Dynamic Cluster to manage the amount of memory for VMs.
The scheduler will match the job to a VM that has sufficient memory. The VMs created by LSF may have standardized memory sizes, so it is normal for a job to run on a VM that has more memory than the job requires.
The default value of this parameter is 1024 MB, so by default the memory requirement for a VM job is 1024 MB.
For example, to request 2048 MB of memory:
bsub -R "rusage[mem=2048]" myjob
The minimum memory size for a new VM cannot be less than 512 MB. The minimum memory size can be greater than 512 MB depending on configuration.
The VMs should be created with standardized memory size, to prevent the hypervisor hosts from being fragmented with multiple VMs of different size. These VMs can easily be reused for jobs with similar memory requirements.
There are two ways to control the memory sizes of new VMs:
If memory sizes are defined as fixed values, the step size configuration is ignored.
When you define absolute values for memory size, the memory size of any new VM is the smallest of all the choices that satisfy the job’s resource requirement.
For example, if the dc_conf.lsf_cluster_name.xml parameter DC_VM_MEMSIZE_DEFINED is set with the following values:
512
1024
2048
4096
Then a job that requires 800 MB memory will run on a VM created with 1024 MB memory. If a job requires 1025 MB memory, a VM is created with 2048 MB memory.
If you do not define absolute values for memory size, define the minimum step between sizes. By default, a step is 512 MB. The memory size of any new VM is a multiple of this number. The memory size of any new VM is rounded up from the value required by the job.
For example, in lsb.params, set:
DC_VM_MEMSIZE_STEP = 512
In this example, if a job requires 500 MB memory, the VM is created with 512 MB memory. If a job requires 600 MB memory, a VM is created with 1024 MB memory. A job requiring 1025 MB memory will run in a VM created with 1536 MB memory.