Closed Thomas-Ulrich closed 1 year ago
Training is compiled for Haswell: https://github.com/SeisSol/Training/blob/main/Dockerfile#L111 The CPU is Sandy bridge: https://www.intel.de/content/www/de/de/products/sku/52207/intel-core-i52400-processor-6m-cache-up-to-3-40-ghz/specifications.html which came before Haswell -> The CPU is too old for the compile settings (snb compile setting should work though but is a lot slower than hsw for non-ancient cpus)
I see.
The easiest fix is to compile for ARCH=snb. This is going to lead to a significant performance loss on more modern architectures (=everything released since 2013...). The libxsmm_JIT backend does the compilation of some kernels during runtime but of course not all of them. Not sure how well it performs on sandy bridge.
Your idea is possible but a lot of work for a very small minority of the users. Even the Haswell architecture (for which we are compiling) is ~9 years old. Most people in computational science update their computers more often than that...
ok fair enough. But we will need to do that anyway for the new Mac architecture at some point.
The MAC architecture is far more complicated, as we need to have a multi-arch docker container (not only multi-arch seissol).
We've tried to run the training docker with Manel Prada at Barcelona, and we got unexpected errors when running SeisSol. We used:
docker pull seissol/training:pr-23
cpuinfo:
Error:
Illegal instruction (core dumped)