High Performance Computing

Compiling and linking codes for maximum performance on chadwick

Page under construction !!

The Sandybridge processors on chadwick produce good performance with minimal compiler optimisation since they have good memory bandwidth characteristics predecessors and floating point performance. However, performance can often be improved further by taking full advantage of particular compiler optimisations and linking against tuned performance libraries. More information on getting good performance out of your code can be found on the Performance page


chadwick users have a choice of two different compiler platforms - the free and generally good gcc/gfortran family and the licensed Intel compiler family. Each of these has its advantages.

The first recommendation is normally to try the gcc / gfortran compilers. With the versions available on the cluster (version 4.4 by default with version 5.3 available by loading a module), good performance and fairly solid code is available. OpenMP version 3.0 is supported. Version 5.3 has support for the Westmere and Sandy Bridge hardware families, which is a strong point in its favour.

Whilst the Intel compiler has been known to cause difficulties in the past, current versions are generally reliable and produce fast code, although its default optimisation may be too agressive. For many applications, near optimal performance is only possible using a precompiled library. The Intel Math Kernel Library (MKL) provides a broad range of tuned support for libraries such as the BLAS, LAPACK, ScaLAPACK and fftw3.

Applications and libraries

In addition to those applications available by loading the appropriate module file, a number of sequential or shared memory applications (e.g. R and python) and support libraries (e.g. the OpenBLAS and FFTW) are on users' default path and library path. MPI-based applications (e.g. cp2k, dl_poly) and libraries (e.g. libnetcdf.so) become accessible from the default path once the openmpi-x84_64 module is loaded. A fairly up-to-date list of installed applications, with pointers to documentation and local installation information, can be found on the Applications page.