Job scheduling with jsrun
Launching jobs with jsrun in a job scheduling system enables the topology of processes and threads on the node to be split into individual resource sets (the number of GPUs, CPUs, threads, and MPI tasks). You can specify the amount of computational resource allocated to a resource set.
How you decide to allocate resources has an impact on the runtime of Linaro Forge tools. For example, it is possible to allocate all of the CPUs on the node to just one resource set. Alternatively, you could allocate each CPU to its own resource set. In this case there are as many resource sets as there are CPUs on the node.
The more resource sets you have on each node, the longer the runtime is when using Linaro Forge. To minimize runtime, we recommend that you aim to reduce the number of resource sets required.
For example, we recommend:
jsrun --rs_per_host=1 --gpu_per_rs=0 --cpu_per_rs=42 --tasks_per_rs=42 ...
to launch a job with 42 MPI processes per node in a single resource set, instead of:
jsrun --rs_per_host=42 --gpu_per_rs=0 --cpu_per_rs=1 --tasks_per_rs=1 ...
which launches 42 MPI processes per node, but uses 42 resource sets.