Skip to content

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:

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.