Language Discrepancies

Although very powerful, Slurm is sloppy with its word usage. For the computer literate, each node consists of 2 CPUs with Y number of cores, That can be threaded, resulting in 2xYx2 threads. For Slurm, each node has 2xYx2 CPUs also referred to as cores. This can cause a lot of confusion for those who understand the differences between the definitions of CPU, core, and thread. Please understand that the true thread is referred to as 'CPU' by Slurm.

Example

1 node = 2 CPUS = 16 cores = 32 threads (32 CPUs)

In the above example, one node is equal to 2 CPUs which is equal to 16 cores which is equal to 32 threads. In Slurm, this would be read as 32 CPUs. Also note, some programs don’t recognize threads. In this case, if you want to occupy the whole node, you will need to reserve the maximum number of threads. However, your program will only read the number of cores available which is the number of threads over Slurm "CPUs" divided by 2. For example, MATLAB doesn’t recognize threads. Hence, if you reserve 48 threads, (CPUs per task 48), when you check the number of slaves for the program, MATLAB will return 24.