User Tools

Site Tools


compiling

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
compiling [2021/02/26 21:02]
root
compiling [2021/03/05 14:58] (current)
root
Line 11: Line 11:
  
 ==Gnu7,Gnu8== ==Gnu7,Gnu8==
-OpenHPC versions of gnu compilers.  gnu7/7.3.0, gnu8/8.3.0.  These are prerequisites to OHPC MPI and do have updated libstdc++.so.6.  We only have the application program rpms installed for gnu8.+OpenHPC versions of gnu compilers.  gnu7/7.3.0, gnu8/8.3.0.  These are prerequisites to OHPC MPI and do have updated libstdc++.so.6.  We only have the application program rpms installed for gnu8.  Applications dependent on the compiler are gsl,hdf5,metis,openblas,plasma, and scotch. Applications dependent on compiler and MPI are boost,hypre,mfem,mumps,netcdf-cxx,netcdf-fortran,omb,opencoarrays, 
 +petsc,phdf5,pnetcdf,ptscotch,mpi4py,scalapack,slepc,superlu, and trilinos.
  
 ==Intel== ==Intel==
 (all intel compilers,icc/icpc/ifort) intel/14.0.3,  16.0.1,  17.0.4,  17.0.7,  18.0.1,  18.0.2,  19.0.4 , 19.0.5,  20.0.1,  20.0.4 (all intel compilers,icc/icpc/ifort) intel/14.0.3,  16.0.1,  17.0.4,  17.0.7,  18.0.1,  18.0.2,  19.0.4 , 19.0.5,  20.0.1,  20.0.4
-Multiple versions are mostly for backwards compatibility.  With modern Intel hardware, the latest Intel compiler is usually recommended. We recommend 14.0.3 for trestles AMD Bulldozer nodes and 19.0.5 for Pinnacle AMD nodes.+Multiple versions are mostly for backwards compatibility.  With modern Intel hardware, the latest Intel compiler is usually recommended. We recommend 14.0.3 for trestles AMD Bulldozer nodes and 19.0.5 for Pinnacle AMD Epyc nodes.
  
 ==PGI== ==PGI==
-(pgcc,pgc++,pgf95) PGI/2016, 2016.5, 2017, 18.4, 18.10, 19.4+(pgcc,pgc++,pgf95) PGI/2016, 2016.5, 2017, 18.4, 18.10, 19.4. Superseded by NVidia HPC SDK. 
 + 
 + 
 +==NVidia== 
 +nvhpc/20.7, the HPC SDK, loads the LLVM-based Cuda compiler (nvcc) as well as Cuda libraries, PGI-based compilers (pgcc,pgc++,pgf95) and an OpenMPI-based mpi with PGI (mpicc,mpic++,mpif90) 
 +cuda/5.5 through 11.1 loads nvcc and Cuda libraries.
  
 ==Oracle== ==Oracle==
-(suncc,sunCC,sunf95) sunstudio/12.6+sunstudio/12.6 loads (suncc,sunCC,sunf95)
  
 ==Clang== ==Clang==
-clang 3.4.2-9 is the base version installed by rpm. +clang 3.4.2-9 is the older base version installed by rpm. 
-clang/5.0.1 is the devtoolset-7 version.+clang/5.0.1 (clang,clang++,no flang) is the devtoolset-7 version. 
 + 
 +==AMD== 
 +aocc/2.3.0 is AMD's LLVM-based compiler (clang,clang++,flang)
  
 ===MPI Modules=== ===MPI Modules===
Line 41: Line 50:
 ==Commercial== ==Commercial==
 modules impi/5.0.0, 5.1.1, 5.1.2, 17.0.4, 17.0.7, 18.0.1, 18.0.2, 19.0.4, 19.0.5, 20.0.1, 20.0.4  modules impi/5.0.0, 5.1.1, 5.1.2, 17.0.4, 17.0.7, 18.0.1, 18.0.2, 19.0.4, 19.0.5, 20.0.1, 20.0.4 
-module platform_mpi/9.1.2 +and platform_mpi/9.1.2 are available and have a prerequisite of a gcc or intel compiler.
-are available and have a prerequisite of a gcc or intel compiler.+
  
 ==NVidia HPCx== ==NVidia HPCx==
Line 68: Line 76:
  
 ==Notes.3== ==Notes.3==
-In a reversal of the previous case, you may find that Intel OpenMP libraries are needed with GNU, especially if the Intel MKL libraries and threaded functions are called. In a pure gcc compilation, the GNU OpenMP library libgomp should suffice and be automatically loaded in an OpenMP program. But Intel libirc and libiomp5 may be needed, especially if called by MKL, and are only supplied by the Intel compilers. A module command similar to this may be necessary:+In a reversal of the previous case, you may find that Intel OpenMP libraries are needed with GNU, especially if the Intel MKL libraries and threaded functions are called. In a pure gcc compilation, the GNU OpenMP library libgomp should suffice and be automatically loaded in an OpenMP program. But Intel libirc and libiomp5 may be needed, especially if called by MKL, and are only supplied by the Intel compilers. A module command similar to this may be necessary for the system to find the libraries:
 <code> <code>
 mnodule load gcc/8.3.1 openmpi/4.1.0 mkl/19.0.5 intel/19.0.5 mnodule load gcc/8.3.1 openmpi/4.1.0 mkl/19.0.5 intel/19.0.5
 </code> </code>
compiling.1614373379.txt.gz · Last modified: 2021/02/26 21:02 by root