Software Libraries
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 cray-*
The following libraries are available as modules prefixed by cray-
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
modules are:
-
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
-
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-libsci
is loaded by default in all programming environments. -
cray-netcdf ...details for cray-netcdf...
Serial version of Network Common Data Form (NetCDF), a widely used and portable data format. See the NETCDF website
-
cray-netcdf-hdf5parallel
A serial NetCDF built against parallel HDF5. Load module
cray-hdf5-parallel
first. -
cray-parallel-netcdf ...deatils for Parallel NetCDF...
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 cc
, CC
and ftn
.
Libraries supported by ARCHER2 CSE team
The following libraries will also made available by the ARCHER2 CSE team:
-
ADIOS ...details for ADIOS on ARCHER2...
ADIOS (Adaptable I/O System) provides library services for parallel I/O.
-
AOCL ...details for AOCL on ARCHER2...
AOCL (AMD Optimizing CPU Libraries) provides a set of numerical libraries optimised for AMD "Zen"-based processors.
-
ARPACK-NG ...details for ARPACK-NG on ARCHER2...
ARPACK-NG (Arnodli Package) computes eigenvalues and eigenvectors of large sparse matrics.
-
Boost ...details for Boost on ARCHER2...
Boost is a portable C++ library providing reference implementations of many common containers, operations and algorithms.
-
Eigen ...details for Eigen on ARCHER2...
Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
-
GLM ...details for GLM on ARCHER2...
GLM (GL Math library) is a C++ header-only library for performing operations commonly encountered in graphics applications.
-
Hypre ...details for HYPRE on ARCHER2...
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 ...details for MUMPS on ARCHER2...
MUMPS provides parallel direct solution of large sparse matrix problems.
-
PETSc ...details for PETSc on ARCHER2...
PETSc is a general package with functionality related to the solution of a wide range of problems described by partial differential equations.
-
Scotch ...details for Scotch and PT-Scotch on ARCHER2...
Scotch (and its parallel partner PT-Scotch) is a graph partitioning library.
-
SLEPc ...details for SLEPc on ARCHER2...
SLEPc is a package for large eigenvalue problems based on PETSc.
-
SuperLU and SuperLU_DIST ...details for SuperLU on ARCHER2...
SuperLU provides solutions to large non-symmetric sparse systems. SuperLU_DIST is the distributed memory version.
-
Trilinos ...details for Trilinos 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
is the 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.