Compiling specifically for the KNL nodes

Codes that are targeting the ACF KNL nodes should try to use the Intel compilers which may provide the best performance depending on the code being compiled. The KNLs are binary compatible with earlier Intel architectures and applications built for previous architecutre may run on the KNLs without recompiling, but our recommendation is to recompile applications built on other systems. The Intel compilers for C, C++, and Fortran are loaded by default so the icc, icpc, and ifort commands should already be in the path for every user. When compiling for the KNLs add the KNL feature option to your command line as shown in the following table.

Intel

C

icc/mpiicc -xMIC-AVX512

C++

icpc/mpiicpc -xMIC-AVX512

Fortran

ifort/mpiifort -xMIC-AVX512

If you must use the GCC compilers use the -mavx option which equates to the Intel compiler -xavx compiler option. However, it will not be equivalent to the Intel -xMIC-AVX512 compiler option but will instruct the GCC compiler to provide optimizations for a vector unit of a smaller size. Using the Intel compilers will provide optimizations specific for the KNLs, but GCC is available if using the Intel compilers is desired. Depending on your code you may get better performance with the Intel compilers.