Peregrine Software Toolchains
NREL's Computational Science Center supports two software toolchains (i.e., compilers and high-performance communication libraries). The impi-intel toolchain refers to the commercial Intel Parallel Studio XE Cluster Edition suite The openmpi-gcc toolchain is an open-source alternative against which many technical applications are natively developed and tested. The Portland Group compilers are not fully supported, but are available to the HPC community.
Use of toolchains is enabled by loading modules. See section on Environment Modules.
Intel C/C++ and Fortran
The Intel compiler suite offers industry-leading C, C++, and Fortran compilers, which include optimization features and multithreading capabilities. These are the default compilers on Peregrine.
GNU C/C++ and Fortran
The GNU compiler collection includes front ends for C, C++, Objective-C, Fortran, Java, Ada and Go, as well as libraries for these languages (libstdc++, libgcj, etc.).
Portland Group (PGI) C/C++ and Fortran (partially supported)
The PGI compiler suite includes NVIDIA GPU support via CUDA and the directive-based OpenACC programming model, as well as full support for NVIDIA CUDA C extensions.
Message-Passing Interface Libraries
The Intel MPI framework is the preferred MPI on Peregrine for high-performance computing where performance scalability over multiple nodes is a concern. The impi-intel modules create the appropriate environment to build against this MPI and utilize the resulting libraries or applications.
The Open MPI framework is a free and open source package that is commonly developed against by many programmers. Note on Open MPI that even-numbered minor releases (e.g., 2.0.X) are stable releases; odd-numbered minor releases (e.g., 2.1.X) are feature releases. Link applications against Open MPI versions accordingly.