High Performance Computing

Numerical Libraries

Various numerical libraries are installed on the HPC system. For those writing code, these can be a valuable source of ready to use subroutines. Also, use of suitably optimised libraries can significantly improve speeds of some calculations. For detailed information on the content of the libraries, and how to use them, consult the relevant web resources.

Note these libraries have not been extensively tested on the Nottingham system. If you have problems working with the existing installations, please let us know so we can quickly establish fully working versions for all users.


C subroutine library for discrete Fourier transform calculations (www.fftw.org). Shareable libraries in /usr/lib64. For MPI applications, the mpi versions are under /usr/local/lib64/fftw2/lib (static only), and include files in /usr/local/lib64/fftw2/include.


LAPACK is a commonly used linear algebra library, and is written to use subroutines provided by the BLAS (Basic Linear Algebra Subprograms) library. There are a number of versions available, and some have been provided alongside the Intel and PGI compilers to run particularly well with these compilers. These versions are MKL, ACML and GotoBlas, and more details are given below.

  • MKL:The Intel Math Kernel Library is licensed on the Nottingham cluster, and is recommended for use with the Intel compiler.
    Appropriate environment can be set by use of the intel/mkl_10.1.1.019_em64t module:
    module load intel/mkl_10.1.1.019_em64t
    To link MKL libraries the linker will need to be notified of the location of the libraries:
    The various libraries will need to be linked via the '-l' option, e.g. -lmkl The precise options to use will depend on your application. Check the user guide in /opt/intel/mkl/ for more information. Example programs can be found in /opt/intel/mkl/
  • ACML: The AMD Core Math Library is available with the PGI compiler distribution on the Nottingham cluster: /opt/pgi/linux86-64/7.1/lib and /opt/pgi/linux86-64/7.1/libso. To link ACML, the following option will be needed:
    -L/opt/pgi/linux86-64/7.1/libso -lacml
    More information is available in the user guide in /opt/pgi/linux86-64/7.1/doc/acml.pdf
  • Goto Blas: Goto Blas is an implementation of the BLAS routines produced by the Texas Advanced Computing Centre and one that is supposed to offer fast performance. Streamline have installed two old versions in /usr/local/lib64, one for opteron (libgoto_opt- 64_1024-r0.97.so) and one for intel (libgoto_p4-64_1024-r0.96.so). If newer ones are required, The University can register and download them, but Streamline cannot do this without cost. Please contact hpc@nottingham.ac.uk if you have a requirement for Goto Blas


This is a subset of LAPACK routines for distributed memory parallel computers, see www.netlib.org/scalapack/. Static library in /usr/local/lib64.