Targeting Cluster Architectures
While all HPCC nodes are the x86_64 architecture, some newer processors have features that are not supported by older processors. A program compiled on a newer processor may not run on an older processor and may result in an 'Illegal Instruction' error. This can be corrected by specifying compilers parameters that control which processor instruction are used.
Use the following options for your compiler to ensure your programs will run on all HPCC nodes.
Compiler Type | Min Version | Max Version | Arguments |
GCC | 6.4 | N/A | -march=core-avx-i -mtune=skylake-avx512 |
GCC | 4.9 | \< 6.4 | -march=core-avx-i -mtune=silvermont |
GCC | 4.8 | \< 4.9 | -march=core-avx-i -mtune=core-avx2 |
GCC | 4.6 | \< 4.8 | -march=core-avx-i |
GCC | 4.3 | \< 4.6 | -march=core2 |
GCC | 3.3 | \< 4.3 | -march=nocona |
Intel | 2015.1 | N/A | -mAVX -axCORE-AVX-I,CORE-AVX2,CORE-AVX512 |
The new amd20 cluster does not support AVX-512.