#2756: SystemTopology fails to handle Intel CPUs with performance and efficiency cores
Reporter: Roland Haas Status: new Milestone: Version: Type: bug Priority: major Component: EinsteinToolkit thorn
SystemTopology fails on new Intel CPUs with an assert similar to:
``` cactus_sim: configs/sim/build/SystemTopology/system_topology.cc:471: void {anonymous}::set_bindings(hwloc_topology_t, const mpi_host_mapping_t&): Assertion `num_pus % num_cores == 0' failed. ```
where in the case of a 12th Gen Intel(R) Core(TM) i7-12700
[https://en.wikipedia.org/wiki/List%5C_of%5C_Intel%5C_Core%5C_i7%5C_processor...))
with performance (16) and efficiency (4) logical cpus hwloc reports:
core_depth 5 num_cores 12 pu_depth 6 num_pus 20
and the assert `num_pus % num_cores == 0` fails (b/c only the 8 performance cores have hyperthreads).
This has been reported on the mailing list in [https://lists.einsteintoolkit.org/pipermail/users/2023-August/009036.html%5D...)
Not sure if the asserted property is indeed required by SystemTopology or if this is only a sanity check that can be removed without affecting functionality. Certainly performance will be unbalanced between MPI ranks and OpenMP threads that run on P or E cores respectively (and also if a hyperthread pair was split among two MPI ranks).
This may mostly affect workstations and laptops as I would not expect server class CPUs (on HPC systems) to have efficiency cores (do they?).
-- Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2756/systemtopology-fai...