Compiling Source Code on Spiedie

Table of Contents

  1. GCC
  2. ICC
  3. NVCC

Compilers

Spiedie offers a variety of node and hardware configurations in order to meet the many different needs of researchers. To best optimize your code, different compilers are available to load as modules.

GCC

The open source gcc and g++ compiler made by the Free Software Foundation Inc. They were originally written to be the compilers for the GNU operating system. They are capable of generating code for a large number of target architectures and is widely available on Unix-like platforms. To load the gcc module type

module load gcc

ICC

The Intel C++ compiler compiler is made by the Intel Corporation and is highly tuned for Intel processors. Intel C++ compiler features support for the latest C++ and OpenMP standards, as well as support for the latest Intel architectures. Intel C++ compiler is available free of charge for student and open source developers.

Spiedie also provides users with the Intel Parallel Studio Compilers suite to take advantage of the improved performance on the Xeon-Phi architecture available.

Recently the Intel oneAPI core elements have been added to the cluster. The stated goal of the oneAPI specification is to enable an open, industry standard, cross-architecture software stack for accelerators. You can find out more here.

You can load the Intel compiler from the modules using:

module load intel-compiler/

Additionally, you can include the cluster runtime library with:

module load intel-cluster-runtime/intel64/3.8 

This loads the following libraries:

  • Intel Math Kernel LIbrary (Intel MKL©)
  • Intel Data Analytics Acceleration Library (Intel DAAL©)
  • Intel Integrated Performance Primitives
  • Intel MPI library
  • Intel Thread Building Block Library (Intel TBB©)

Click here for the summary of the tool-set

NVCC

The GPU compute nodes fully support CUDA accelerated applications and libraries.

The CUDA toolkit and runtime libraries are also available as modules on spiedie.

Note: Multiple version of the CUDA toolkit is available from CUDA7 to CUDA11.3

You can find all the available CUDA versions by running:

module avail | grep cuda

You can load the nvcc compiler using:

module load CUDA(version)/toolkit

Addtionally you can load the various runtime libraries such as:

CuBLAS:

module load CUDA(version)/blas 

FFT:

module load CUDA(version)/fft 

Nsight:

module load CUDA(version)/nsight 

Profiler;

module load CUDA(version)/profiler 

Click here to learn more about NVidia’s GPU accelerated libraries