Selecting Computation Resource Units (Job Unit Type)
The Job Unit Type is the smallest unit of processing resources used to schedule the job. This is one of the most important job properties. There are three options for the Job Unit Type: cores, nodes or sockets.
- Cores: Jobs are scheduled in units of cores, which may be also described as a CPU cores, logical processors, or CPUs. This is the smallest unit of granularity available. This selection allows the scheduler to start multiple tasks on a processor, if the total number of cores needed by the tasks is less than or equal to the number of cores on the processor. This selection may also allow the scheduler to distribute more of the computational load to processors with more cores than to processors with fewer cores.
- Nodes: Jobs are scheduled in units of nodes, hosts or machines. This is the coarsest level of granularity that may be selected. When this option is selected, only one task will run on any give node at any given time. This is useful in cases where it is not desirable to run multiple tasks on a single host. For example, if each task is multi-threaded, running multiple tasks on the same node may not be needed to fully utilize the computing resources on the node. This may also be preferred if the tasks are memory intensive, and multiple tasks would be competing for the limited memory resources.
- Sockets: A socket (which may also be called a NUMA node) is a collection of cores sharing a direct connection to memory. A socket will contain at least one core, and it may contain several cores. The socket concept may not necessarily correspond to a physical socket. Scheduling at the socket level may be useful in cases in which each task requires extensive use of the memory bus, and scheduling multiple tasks on the same socket would result in excessive bus contention.
Related Topics
Integration With Microsoft Windows® HPC Scheduler
Selecting Computation Resource Units (Job Unit Type)