A variety of libraries are available for use by applications, programming frameworks, and other libraries. Many of these are optimized to provide high-performance.
MKL Math Libraries
A variety of libraries containing commonly used mathematical functions are available. Of particular importance is Intel's MKL Library, which is highly optimized to provide maximum performance on each generation of Intel processors. If your application spends substantial time doing linear algebra, Fourier transforms or other numerically intensive computation, the Intel MKL library should be used to enable good performance with little or no programmer effort.
Libraries used for writing simulation output in standard formats, such as NetCDF and HDF5, are provided on NREL HPC systems. For information, please go to the IO libraries page.
Fourier Transform Libraries
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data. FFTW supports parallelization through multi-threading and MPI domain decomposition. The two commonly used major versions, 2 and 3, have incompatible APIs but are both still available. See the FFTW page.
The Extra Packages for Enterprise Linux (or EPEL) are a set of packages installed in a custom location, accessible from a module. It contains a number of libraries and development packages from both the base RHEL distribution and the EPEL repository, and permits addition of these capabilities to the compute node environment.
The conda module allows users to reference the Anaconda Python distribution installed on Peregrine. In addition to the system Python 2 default, users can define their own Python 2 or 3 environments that allow complete customization for their needs.
There are also several older standalone Python modules. These are no longer being actively maintained, and will likely be deprecated in the future.