Compilers and Interpreters
Many different compilers, interpreters, and environments are provided, which are organized by programming language below. Additional compilers, interpreters, and environments for some these languages and other languages can be installed via Spack.
Loading and unloading modules for C, C++, and Fortran compilers can change what other modules are visible in the NHR Modules (nhr-lmod) and SCC Modules (scc-lmod) software stacks.
Specifically, modules for packages built-by/associated-with the compiler aren’t visible until the compiler module is loaded.
For example, the intel-oneapi-mpi
module is not visible in the NHR Modules (nhr-lmod) software stack until after the intel-oneapi-compilers
module is loaded.
C
- GCC (gcc)
- AMD Optimizing Compilers
- Intel Compilers (icc and icx)
- LLVM (clang)
- Nvidia HPC Compilers (nvc), successor to the PGI compilers
Build tools might require that you set the environmental variable CC
to the compiler program (e.g. export CC=icx
) if you aren’t using GCC (gcc).
C++
- GCC (g++)
- AMD Optimizing Compilers
- Intel Compilers (icc and icx)
- LLVM (clang++)
- Nvidia HPC Compilers (nvc++), successor to the PGI compilers
Build tools might require that you set the environmental variable CXX
to the compiler program (e.g. export CXX=icx
) if you aren’t using GCC (g++).
Fortran
- GCC (gfortran)
- AMD Optimizing Compilers
- Intel Compilers (ifort and ifx)
- Nvidia HPC Compilers (nvfortran), successor to the PGI compilers
Build tools might require that you set the environmental variables F77
and FC
to the compiler program (e.g. export F77=ifx FC=ifx
) if you aren’t using GCC (gfortran).
Go
- Go (go), reference implementation
Julia
- Julia (julia), reference implementation
Python
- CPython (python), reference implementation
- Conda & Python
R
- R (r), reference implementation
Rust
- rustc (rustc), reference implementation