Software

Module-Umgebung

Verschiedene Softwareumgebungen/Tools steht zentral als 'module' zur Verfügung. Für die Nutzung sind im Wesentlichen folgende Befehle notwendig

 module avail           : Anzeigen der verfügbaren modules
 module list            : Anzeigen der aktuell geladenen modules
 module load <modName>  : Laden des module modName
                          z.B. module load intel/2017.1.132
 module help            : Anzeigen weiterer Optionen

verfügbare Modules (Stand: 19.06.2017):


---------- /opt/env-switcher/share/env-switcher -----------
compiler/gcc-4.9.2
compiler/intel-2016.2.181
mpi/intel-5.1.3.181
mpi/mvapich2-2.1-hfi-gcc
mpi/mvapich2-2.1-hfi-intel
mpi/openmpi-1.10.0-hfi-gcc
mpi/openmpi-1.10.0-hfi-gcc-4.9.2
mpi/openmpi-1.10.0-hfi-intel
mpi/openmpi-1.10.2-hfi-gcc
mpi/openmpi-1.10.2-hfi-gcc-4.9.2
mpi/openmpi-1.10.2-hfi-intel
mpi/openmpi-1.10.4-hfi-gcc
mpi/openmpi-1.10.4-hfi-gcc-4.9.2
mpi/openmpi-1.10.4-hfi-intel
tools/fftw-3.3.4-gcc-4.9.2
tools/fftw-3.3.4-gcc-4.9.2-openmpi-1.10.0-hfi
tools/fftw-3.3.4-intel-2016.2.181
tools/fftw-3.3.4-intel-2016.2.181-intel-5.1.3.181
tools/gnuplot-5.0.4-gcc-4.9.2
tools/hdf5-1.8.17-gcc-4.9.2
tools/hdf5-1.8.17-gcc-4.9.2-fortran
tools/hdf5-1.8.17-intel-2016.2.181
tools/hdf5-1.8.17-intel-2016.2.181-fortran
tools/metis-5.1.0-gcc-4.9.2
tools/metis-5.1.0-intel-2016.2.181
tools/netcfd-4.4.0-gcc-4.9.2
tools/netcfd-4.4.0-intel-2016.2.181
tools/openblas-0.2.17-gcc-4.9.2
tools/petsc-3.6.3-gcc-4.9.2-openmpi-1.10.0-hfi-mkl
tools/petsc-3.6.3-intel-2016.2.181-intel-5.1.3.181-mkl
------------- /opt/modules/oscar-modulefiles --------------
switcher/1.0.13(default)
-------------- /opt/modulefiles/applications --------------
mathematica/11.1
matlab/R2017a
openfoam/2.4.0-openmpi-1.10.4-gcc-4.9.2
openfoam/4.0-openmpi-1.10.2-gcc-4.9.2
openfoam/v1606+-openmpi-1.10.2-gcc-4.9.2
starccm/+11.04.012-R8-mvapich
---------------- /opt/modulefiles/compiler ----------------
cmake/3.7.2      gcc/6.3.0        scons/2.5.1
cython/0.25.2    gcc/6.3.0-1
gcc/5.4.0        intel/2017.1.132
------------------ /opt/modulefiles/mpi -------------------
intel-mpi/2017.1.132
openmpi/1.10.4/mpi4py-2.0.0-gcc-4.9.2
openmpi/1.10.5/gcc-5.4.0
openmpi/2.0.2/gcc-6.3.0
openmpi/2.0.2/gcc-6.3.0-1-native
openmpi/2.0.2/gcc-6.3.0-native
----------------- /opt/modulefiles/tools ------------------
atlas/3.10.3/gcc-system
boost/1_63_0/gcc-4.9.2
cantera/git-2017-03-01/gcc-4.9.2
cantera/git-2017-03-01/gcc-4.9.2-ob
hdf5/1.8.17/intel-2017.1.132-parallel
hdf5/1.8.17/intel-2017.1.132-serial
mkl/2017.1.132
openblas/0.2.19/gcc-4.9.2
sundials/2.7.0/gcc-4.9.2
sundials/2.7.0/gcc-4.9.2-openblas
------------------ /opt/modules/version -------------------
3.2.6
--------- /opt/modules/Modules/3.2.6/modulefiles ----------
dot         module-info null
module-cvs  modules     use.own
---------------- /opt/modules/modulefiles -----------------
oscar-modules/1.0.5(default)

Wissenschaftliche Anwendungen

Compiler und Bibliotheken

 An Compilern und mpi Umgebungen stehen aktuell die Versionen aus der Intel Compiler Suite zur Verfügung. Diese sind:

  1. intel compiler und intel mpi
  2. gcc-4.9.2 und OpenMPI 1.10.2

Alle Module die von Intel stammen oder an diese angelehnt gebaut wurden, tragen die Kennung hfi im Namen. Die Module, die die gcc-Versionskennung mit im Namen tragen (z.B. mpi/openmpi-1.10.2-hfi-gcc-4.9.2) sind mit Fortran support nachgebaut worden.

Die openmpi-1.10.0 Versionen sind nur aus backward compatibility Gründen nach einem OPA Update beibehalten worden. Von ihrer Verwendung wird abgeraten!

Intel Umgebungebung

#setup the env:
>module load compiler/intel-2016.2.181
>module load mpi/intel-5.1.3.181

#Dieses reicht um auch die mkl zu nutzen. Zu überprüfen mit:
>echo $MKLROOT

Bei der mkl sind nicht alle interfaces der fftw für alle Compiler compiliert. Sollte hier eine Kombination fehlen, kann man sich eine kopie aus mkl holen, und das fehlende Interface selbst kompilieren. Dieses war z.B. für vasp 5.4 notwendig

Intel Compiler Optionen

Bei einer reinen Fortran Applikation mit wenige c Routinen wurden die folgenden Compiler und Optionen genutzt. (Die optionen sind Sinngemaess in die makefiles einzupflegen, oder die env namen sind entsprechend der Verwendung in den Makefiles zu ändern:

>export FC=mpiifort
>export CC=icc
>export FFLAGS="-O3 -xCORE-AVX2 -assume buffered-io"
>export CFLAGS="-O3 -xCORE-AVX2"
>export AR=xiar

SLURM script Intel Umgebung reiner mpi Job

#################
#!/bin/bash
# eine Variante, mit der auch VASP eine gute Performance
# gezeigt hat. Erneut ist --cpus-per-task=48 verwendet worden,
# was eigentlich unlogisch ist, die intel mpi jedoch
# zu einem brauchbaren binding ueberredet.
# weiterhin sind die optionen:
# I_MPI_JOB_RESPECT_PROCESS_PLACEMENT=0 und -perhost 24
# genutzt.
# name of the job
#SBATCH -J test_1
#SBATCH -N 16
#SBATCH --cpus-per-task=48
# runtime after which the job will be killed (estimated)
#SBATCH -t 04:00:00
##SBATCH -p test
# Change to the directory the job was submitted from
cd $SLURM_SUBMIT_DIR
export I_MPI_JOB_RESPECT_PROCESS_PLACEMENT=0
mpirun -np 384 -perhost 24 ./PsiPhi > log 2>&1
##################

GNU Umgebung

>module load mpi/openmpi-1.10.2-hfi-gcc-4.9.2
># loads compiler/gcc-4.9.2 as a dependencie

SLURM script GNU + openmpi Umgebung; reiner mpi Job

#!/bin/bash

# name of the job
#SBATCH -J test_20
#SBATCH -N 64
#SBATCH --tasks-per-node=24
#SBATCH --cpus-per-task=2

# runtime after which the job will be killed (estimated)
#SBATCH -t 02:00:00

# Change to the directory the job was submitted from
cd $SLURM_SUBMIT_DIR

# gnu openmp
export OMP_NUM_THREADS=1

time mpirun  -np 1536 --report-bindings --bind-to core --rank-by core  ./PsiPhi > log 2>&1

#last line