You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When compiling HPTT (or similar software), the compiler options -march=native and -mtune=native are often enabled by default to optimize the code for the specific CPU architecture of the machine performing the compilation. However, this can lead to compatibility issues when the compiled binary is executed on a non-uniform cluster where nodes may have different CPU architectures or configurations.
These options can cause problems in a cluster environment if:
The nodes have different CPU architectures or instruction set support (e.g., AVX512 vs. AVX2).
The binary compiled on one node cannot run on another node with a less advanced CPU architecture.
Impact
Running the compiled program on nodes with incompatible architectures can result in illegal instruction errors or suboptimal performance.
Suggested Fix or Workaround
To avoid such issues:
Disable -march=native and -mtune=native during compilation:
Modify the file in external/hptt/CMakeLists.txt
Alternatively, provide a clear option when compiling HPTT to disable them (e.g., -DNO_NATIVE_OPTIMIZATION=ON).
Manually specify a compatible architecture:
Use options like -march=core-avx2 or -march=x86-64 to ensure compatibility across all nodes in the cluster.
Document the behavior:
Add a note to the build/compilation instructions warning users about the potential compatibility issues when using these flags in non-uniform clusters.
The text was updated successfully, but these errors were encountered:
Problem Summary
When compiling HPTT (or similar software), the compiler options
-march=native
and-mtune=native
are often enabled by default to optimize the code for the specific CPU architecture of the machine performing the compilation. However, this can lead to compatibility issues when the compiled binary is executed on a non-uniform cluster where nodes may have different CPU architectures or configurations.These options can cause problems in a cluster environment if:
Impact
Suggested Fix or Workaround
To avoid such issues:
Disable
-march=native
and-mtune=native
during compilation:-DNO_NATIVE_OPTIMIZATION=ON
).Manually specify a compatible architecture:
-march=core-avx2
or-march=x86-64
to ensure compatibility across all nodes in the cluster.Document the behavior:
The text was updated successfully, but these errors were encountered: