Supercomputing: smaller number of nodes and more cpus/node vs. larger number of nodes and less cpus per node

448 Views Asked by At

On a supercomputer, you have a set of nodes, and for each nodes you have some amount of CPUs. Is it generally better if to use, say, 20 CPUS for 1 node, as opposed to 2 nodes with 10 CPUs each? In both cases, there are 20 CPUs total.

Is the communication time between CPUs on a node a lot faster than CPUs across 2 different nodes?

1

There are 1 best solutions below

0
j23 On

As a general rule of thumb, it is better to use 20 cpus in 1 node since intra-node communication is faster than inter-node communication.

This generally depends upon the problem definition. If you want to use a shared memory programming model (create threads/tasks etc), then 1 node with 20 cpus will be better. You can take advantage of shared memory, caching, less communication overheads. But if your application requires both shared and distributed memory (processes spread among nodes), then using multiple nodes may be beneficial.

But if your problem (shared/distributed) only requires resources of a single node to solve it, then as a generic rule don't take extra nodes, because you don't get any benefit from it. Even if your application uses distributed memory paradigm, use single node because the intra-node communication is very fast and optimised.

As @Poshi's comment, more concrete answer is problem specific. It requires understanding the problem and profiling the application to come up with a specific solution.