Replies: 1 comment
|
Whenever one runs via a queueing system like Slurm, Condor, etc. the scenario of having more cores than workers would need to be requested explicitly and seems unusual to me. On top of that, one may run alongside competing jobs potentially saturating the inter-socket/-CCD bandwidth. The following numbers ignore the latter detail as I ran on a full node with core-usage restricted by CPU: 2x AMD EPYC 7302 16-Core Processor (total of 32 physical cores, no hyperthreading)
Here, the reference is |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Following discussions with @magv and @nikolai-husung at the 2026 workshop, we can collect some data here regarding the performance impact of running FORM on NUMA systems in different configurations.
To start, here are numbers from my 7900X system, which is not NUMA w.r.t DRAM access, however it is structured as 2x6-core CCDs, each of which has 32MB of L3 cache. Cross-CCD cache access is "slow" (comparatively). I run the "default" configuration (
tform-master) and also run with threads confined to a single CCD (numactl --physcpubind=0-5 tform-master) and threads split between CCDs (numactl --physcpubind=0-2,6-8 tform-master). During the sortbot phase of tform, more CPUs are briefly used than the requested numbers of workers; hence the "default" unconfined runs are universally faster than the confined runs. In the confined runs the individual tform threads are allowed to migrate between the allowed set of cores.Here we already see some large performance differences for some benchmarks. Keeping all threads on a single CCD (which means the total available L3 is halved, but there is no cross-CCD communication) is better than splitting them. Presumably, on systems which are genuinely NUMA w.r.t. DRAM, differences will be even more pronounced.
Timings
Speedup w.r.t tform-master -w6The following is as above, but also allowing access to the corresponding SMP threads, i.e. by running with
numactl --physcpubind=0-5,12-17andnumactl --physcpubind=0-2,6-8,12-14,18-20. This closes the gap to a large extent, but some benchmarks still have a very obvious impact.Timings
Speedup w.r.t tform-master -w6All reactions