Pitzer Compilers
The Skylake processors that make up the original Pitzer cluster and the Cascade Lake processors in its expansion support the AVX512 instruction set, but you must set the correct compiler flags to take advantage of it. AVX512 has the potential to speed up your code by a factor of 8 or more, depending on the compiler and options you would otherwise use.
With the Intel compilers, use -xHost
and -O2
or higher. With the gnu compilers, use -march=native
and -O3
. The PGI compilers by default use the highest available instruction set, so no additional flags are necessary.
This advice assumes that you are building and running your code on Pitzer. The executables will not be portable. Of course, any highly optimized builds, such as those employing the options above, should be thoroughly validated for correctness.
Intel (recommended)
NON-MPI | MPI | |
---|---|---|
FORTRAN 90 | ifort |
mpif90 |
C | icc |
mpicc |
C++ | icpc |
mpicxx |
Recommended Optimization Options
The -O2 -xHost
options are recommended with the Intel compilers. (For more options, see the "man" pages for the compilers.
OpenMP
Add this flag to any of the above: -qopenmp
PGI
NON-MPI | MPI | |
---|---|---|
FORTRAN 90 | pgfortran or pgf90 |
mpif90 |
C | pgcc |
mpicc |
C++ | pgc++ |
mpicxx |
Recommended Optimization Options
The -fast
option is appropriate with all PGI compilers. (For more options, see the "man" pages for the compilers)
OpenMP
Add this flag to any of the above: -mp
GNU
NON-MPI | MPI | |
---|---|---|
FORTRAN 90 | gfortran |
mpif90 |
C | gcc |
mpicc |
C++ | g++ |
mpicxx |
Recommended Optimization Options
The -O2 -march=native
options are recommended with the GNU compilers. (For more options, see the "man" pages for the compilers)
OpenMP
Add this flag to any of the above: -fopenmp
Owens Compilers
The Haswell and Broadwell processors that make up Owens support the Advanced Vector Extensions (AVX2) instruction set, but you must set the correct compiler flags to take advantage of it. AVX2 has the potential to speed up your code by a factor of 4 or more, depending on the compiler and options you would otherwise use.
With the Intel compilers, use -xHost
and -O2
or higher. With the gnu compilers, use -march=native
and -O3
. The PGI compilers by default use the highest available instruction set, so no additional flags are necessary.
This advice assumes that you are building and running your code on Owens. The executables will not be portable. Of course, any highly optimized builds, such as those employing the options above, should be thoroughly validated for correctness.
Intel (recommended)
NON-MPI | MPI | |
---|---|---|
FORTRAN 90 | ifort |
mpif90 |
C | icc |
mpicc |
C++ | icpc |
mpicxx |
Recommended Optimization Options
The -O2 -xHost
options are recommended with the Intel compilers. (For more options, see the "man" pages for the compilers.
OpenMP
Add this flag to any of the above: -qopenmp
or -openmp
PGI
NON-MPI | MPI | |
---|---|---|
FORTRAN 90 | pgfortran or pgf90 |
mpif90 |
C | pgcc |
mpicc |
C++ | pgc++ |
mpicxx |
Recommended Optimization Options
The -fast
option is appropriate with all PGI compilers. (For more options, see the "man" pages for the compilers)
OpenMP
Add this flag to any of the above: -mp
GNU
NON-MPI | MPI | |
---|---|---|
FORTRAN 90 | gfortran |
mpif90 |
C | gcc |
mpicc |
C++ | g++ |
mpicxx |
Recommended Optimization Options
The -O2 -march=native
options are recommended with the GNU compilers. (For more options, see the "man" pages for the compilers)
OpenMP
Add this flag to any of the above: -fopenmp