This section provides information on centrally-installed software libraries and library-based packages. These provide significant functionality that is of interest to both users and developers of applications.
Libraries are made available via the module system, and fall into a number of distinct groups.
Libraries via modules
The following libraries are available as modules prefixed by
and may be of direct interest to developers and users. The modules are
provided by HPE Cray to be optimised for performance on the ARCHER2
hardware, and should be used where possible. The relevant
cray-fftw ...details for module load cray-fttw...
FFTW (Fastest Fourier Transform in the West) is a standard package for discrete Fourier transforms. See the FFTW home page
Global Arrays (GA) provides a partitioned global address space (PGAS) programming model used by a number of applications. See the GA home page
cray-hdf5 and cray-hdf5-parallel ...details for hdf5...
Hierarchical Data Format (HDF5) is a high-performance and portable data format and data model. These modules provide serial and parallel variants of HDF5. See the HDF5 home page
cray-libsci ...details for cray-libsci...
BLAS, LAPACK, BLACS, and SCALAPACK provide basic linear algebra functionality such as vector-vector, matrix-vector, and matrix-matrix multiplication. Module
cray-libsciis loaded by default in all programming environments.
cray-netcdf ...details for NetCDF...
Serial version of Network Common Data Form (NetCDF), a widely used and portable data format. See the NETCDF website
A serial NetCDF built against parallel HDF5.
A parallel NetCDF implementation (sometimes referred to as "Pnetcdf").
Integration with compiler environment
All libraries provided by modules prefixed
cray- integrate with the
compiler environment, and so appropriate compiler and link stage options
are injected when using the standard compiler wrappers
Libraries supported by ARCHER2 CSE team
The following libraries will also made available by the ARCHER2 CSE team:
ADIOS (Adaptable I/O System) provides library services for parallel I/O.
Boost is a portable C++ library providing reference implementations of many common containers, operations and algorithms.
GLM (GL Math library) is a C++ header-only library for performing operations commonly encountered in graphics applications.
HYPRE provides pre-conditioners and solvers for sparse linear algebra problems.
Metis and Parmetis ...details for Metis and Parmetis...
METIS is a set of (serial) routines for partitioning graphs and meshes, and computing reduced-fill orderings of sparse matrices. It is commonly used e.g., to compute decompositions for finite element problems. Parmetis is the distributed memory counterpart.
MUMPS provides parallel direct solution of large sparse matrix problems.
PETSc is a general package with functionality related to the solution of a wide range of problems described by partial differential equations.
Scotch (and its parallel partner PT-Scotch) is a graph partitioning library.
SLEPc is a package for large eigenvalue problems based on PETSc.
SUNDIALS ...details pending...
Sundials is a suite of libraries which address problems including ordinary differential equation integration, initial value problems, and non-linear algebraic equations. See
SuperLU and SuperLU_DIST ...details for SuperLU on ARCHER2...
Trilinos is a large collection of packages for the solution of complex scientific and engineering problems.
Integration with compiler environment
Again, all the libraries listed above are supported by all programming environments via the module system. Additional compile and link time flags should not be required.
Building your own library versions
For the libraries listed in this section, a set of build and installation scripts are available at the ARCHER2 Github repository.
Follow the instructions to build the relevant package (note this
cse-develop branch of the repository). See also individual
libraries pages in the list above for further details.
The scripts available from this repository should work in all three programming environments.