Comparing multicore systems
I'm trying to understand why a server multicore system seems to perform, using a specific scientific application, (much) worse respect to a workstation machine.
At this time I just want to compare the cpu performance of the big and of the small computers in terms of cpu calculation speed, and to do this I have to run a multicore benchmarking suite on the two systems. The problem is that the two machines have a very different number of cores: the small one is Intel and has 6 cores with hyperthreading (so 12 cores are seen by the system) and the other one has 12*4 cores on AMD processors. How would you run a comparison between the two? I believe I should use the same number of cores for each of them, and not use multithreaded code.
Any suggestion on a suite/benchmarks that would be fine? This also means that I should somehow limit the number of cores used by the benchmark on the big machine, and I didn't find any options to do this in the Phoronix test suite documentation.
Any help would be greatly appreciated.
If you already have a "specific scientific application", why do you need another benchmark? Get some data points, by limiting # of CPU cores, CPU clock frequency, available memory, memory speed, disk IOPS (tricky but possible) to identify the bottleneck. And of course do some old-fashioned profiling of the application.
Btw. HyperThreading can usually be disabled in the BIOS.
Because I'd like to know if the two systems are really that different by themselves, so I can decide if it's worth investigating more in depth the behaviour of the program. Consider that a single software run can last hours to days, so not having to benchmark directly with it would be a huge time saving for that machine.
- If you want to compare with the same number of cores between systems, it's best to use the maxcpus kernel parameter when booting the system. Simply passing something to PTS wouldn't do too much good when you could have other tasks bound to other CPUs, so limiting it at the kernel level would be most accurate for your purposes.
Originally Posted by Uruclef
- Some good single-threaded tests are povray and others, but most have a multithreaded focus. On http://openbenchmarking.org/ you can see which ones have a multithreaded impact or not.
One other possibility is that parts of your software stack are not sufficiently NUMA aware. This you could check by disabling all but one CPU with its associated memory.