Using Intel Parallel XE Cluster Suite

First you need to establish interactive session in (interact.p) partition on cn001 node using following command:

srun -p interact.p --pty bash

Then Intel compiler module intel should be loaded:

module load intel

The intel module enable the access to all Intel Compilers and libraries installed on nestum:

Intel C/C++ compiler (icc)

Manual page for the ICC compiler can be found here. Additional information regarding the compiler as well as user guides can be found on the Intel website.

Intel Fortran 77/90/95 compiler (ifort)

Manual page for the ifrot compiler can be found here. Again, the Intel website provides user guides and references.

Math Kernel Library (MKL)

The MKL libraries support can be enabled with compiler option -mkl. For details please read following documentation.

OpenMP usage

In addition to high-level code optimizations, the Intel Compilers also enable threading through automatic parallelization and OpenMP support. It is important to set up your program in such way that SLURM understands your code and gets the right values for its environmental variables. Here is an example

   #!/bin/bash
   #SBATCH -p medium.p           # partition (queue)
   #SBATCH -N 1                  # number of nodes (must be 1)
   #SBATCH -n 32                 # number of cores (must be between 1 and 32)
   #SBATCH -t 0-2:00             # time (D-HH:MM)
   #SBATCH -o slurm.%N.%j.out    # STDOUT
   #SBATCH -e slurm.%N.%j.err    # STDERR

   export OMP_NUM_THREADS=$SLURM_NTASKS

   module load intel
Auto paralization option with OpenMP.

The Intel compilers also support automatic parallelization. With automatic parallelization, the compiler detects loops that can be safely and efficiently executed in parallel and generates multithreaded code. Adding the -parallel option to the compile command is the only action required of the programmer.

OpenMPI

In case you want to build or develop parallel code with OpenMPI PAI compiled with Intel Compilers you can use one of two available modules openmpi/1.10.3-intel-2017 or openmpi/1.8.8-intel-2017. Again you should create interactive session on compute node cn001 first. An example would be:

#!/bin/bash
#
#SBATCH -p medium.p               # partition (queue)
#SBATCH -N 1                      # number of nodes
#SBATCH -n 32                     # number of cores
#SBATCH -t 0-2:00                 # time (D-HH:MM)
#SBATCH -o slurm.%N.%j.out        # STDOUT
#SBATCH -e slurm.%N.%j.err        # STDERR

module load openmpi

mpirun "yourprogram"

Finally, here is the list of available MPI modules.

   openmpi/1.10.3-intel-2017     
   openmpi/1.6.5-gcc-os          
   openmpi/1.8.8-gcc-os(default) 
   openmpi/1.8.8-intel-201