Problem
All 9 Chemistry tests intermittently crash with SIGILL (Illegal instruction) on the Github (ubuntu, mpi, no-debug, true) CI job.
Root cause
MFC compiles with -march=native (in CMakeLists.txt), which targets the exact CPU ISA of the build machine. GitHub-hosted runners have heterogeneous CPU architectures — a build cached on a runner with AVX-512 can be restored on a runner without those instructions, causing SIGILL at runtime.
This only affects GitHub-hosted runners (ubuntu-latest, macos-latest). Self-hosted HPC runners (Phoenix, Frontier) have consistent hardware so -march=native is safe there.
Fix
Include a hash of CPU model name and compiler versions in the actions/cache key so that builds are only restored on runners with matching hardware and toolchain. No changes to CMake or the build system — -march=native stays enabled everywhere.
Problem
All 9 Chemistry tests intermittently crash with
SIGILL (Illegal instruction)on theGithub (ubuntu, mpi, no-debug, true)CI job.Root cause
MFC compiles with
-march=native(inCMakeLists.txt), which targets the exact CPU ISA of the build machine. GitHub-hosted runners have heterogeneous CPU architectures — a build cached on a runner with AVX-512 can be restored on a runner without those instructions, causingSIGILLat runtime.This only affects GitHub-hosted runners (
ubuntu-latest,macos-latest). Self-hosted HPC runners (Phoenix, Frontier) have consistent hardware so-march=nativeis safe there.Fix
Include a hash of CPU model name and compiler versions in the
actions/cachekey so that builds are only restored on runners with matching hardware and toolchain. No changes to CMake or the build system —-march=nativestays enabled everywhere.