piernik-dev / piernik

Piernik MHD Code
GNU General Public License v3.0
15 stars 15 forks source link

Benchmarking #538

Closed gawrysz closed 1 year ago

gawrysz commented 1 year ago

Integration of the benchmarking_mergeable branch that should allow for taking an up-to-date performance/scalability profile of Piernik on a single machine.

gawrysz commented 1 year ago

An example of comparison made on single CPU, varying code version, compiler and MPI library: R7 This test was taken on a desktop CPU (Ryzen 7 (8c/16t), clocked at 3900 MHz – non-standard setting, with all "turbo" disabled for better consistency, running, with 2-channel RAM, on up-to-date Fedora 37 with gfortran 12.2.1). We can see here that:

Similar tests can be made on a server-class Intel-based machine (dual Intel Xeon Silver 4316 (2× 20c/40t), with default clock settings and 8-channel RAM on each CPU). This one was run on an updated Fedora 32: 2XS

Please note that the transition to HT-regime (41-80 threads on dual Xeon) or SMT-regime (9-16 threads on Ryzen) is always associated with performance decrease by a factor up to 2. When it is significantly lower than 2 it perhaps means that there is some room for optimization by achieving higher usage of internal execution units in the CPU core. But the gain is not guaranteed on current and future CPUs, because if one can reach high Instruction-Per-Cycle ratio in the code, the CPU can readily lower its clock due to Power/Current/Temperature constraints.