Dies ist eine alte Version des Dokuments!


Nutzeranleitung Fortgeschrittene (deutsche Version)

Zielgruppe: Fortgeschrittene Nutzer des Phoenix-Clusters

Kompilieren

Problem: Das Kompilieren auf dem Phoenix-Cluster klappt nicht, z.B. wenn gegen eine Bibliothek im Modul-System gelinkt wird (OpenCV).

Dies kann daran liegen, dass viele Bibliotheken (Libraries) mit dem optimierten Intel Compiler kompiliert wurden. Denn viele der installierten Bibliotheken sind mit dem neuesten Intel Compiler (icc) mit AVX 2 Optimierungen kompiliert.

In diesem Fall kann es daher helfen, den Intel Compiler (icc) zu verwenden.

Das kann im Idealfall hohe Leistungszuwächse - 50% und mehr - z.B. auf neuen Xeon CPUs bringen, und meistens läuft Code, der mit dem icc kompiliert wird, schneller. Gerade die auto vectorization funktioniert so gut, da der icc von sich aus Schleifen umwandelt, um die CPU Eigenschaftens besser nutzen zu können.

Das kann aber dazu führen, dass der GNU Compiler (gcc) Probleme mit Bibliotheken hat, die für den Intel Compiler stark optimierten Code nutzen. Deshalb muss der Kommandozeile/Shell mitgeteilt werden, dass sie den icc (bzw. icpc für C++) statt den gcc nutzen soll, falls dieses Problem auftritt.

Das tut man mit folgenden Befehlen:

module load comp/gcc/6.3.0
#ja, der Intel Compiler braucht manchmal Informationen vom gcc unter Linux

module load intel-studio-2017

export CC=icc
export CXX=icpc
export CFLAGS='-O3 -xHost -ip'
export CXXFLAGS='-O3 -xHost -ip'

Anschliessend muss, wie üblich, der Befehl

cmake

ausgeführt werden.

Mehr Informationen, insbesonderse auch für in Fortran geschrieben Code, findet man unter: https://software.intel.com/en-us/articles/performance-tools-for-software-developers-building-hdf5-with-intel-compilers

Wichtiger Hinweis

: Beim Fortan Compiler von Intel (ifort) darf unter Standard-Einstellungen Probleme eine Zeile maximal 132 Zeichen umfassen!.

Gaussview

Gaussview es zu nutzen muss wie folgt vorgegangen werden. Via ssh -X für eine grafische Oberfläche auf Phoenix einloggen. Dann einen Visualisierungsknoten allokieren. Dann den Namen des allokierten Knotens in Erfahrung bringen und sich auf diesem Knoten einloggen. Dort dann gaussview mit gv starten.

ssh -X user@phoenix.hlr.rz.tu-bs.de
sbatch gaussview.job
    Submitted batch job 100990
squeue | grep 100990
    100990       vis gaussvie raskrato  R       0:14      1 vis01
ssh -X vis01
gv

Die Jobfile zum Allokieren eines Visualisierungsknoten.

gaussview.job

#!/bin/bash -l

#SBATCH --partition=vis
#SBATCH --nodes=1
#SBATCH --time=1:00:00
#SBATCH --job-name=gaussview
#SBATCH --ntasks-per-node=20

module load software/molecules/gaussian
sleep 1h
hlr/phoenix/nutzeranleitung_fortgeschrittene.1511276901.txt.gz · Zuletzt geändert: 2017/11/21 16:08 von raskrato
Gauß-IT-Zentrum