Dies ist eine alte Version des Dokuments!
Zielgruppe: Fortgeschrittene Nutzer des Phoenix-Clusters
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
: Beim Fortan Compiler von Intel (ifort) darf unter Standard-Einstellungen Probleme eine Zeile maximal 132 Zeichen umfassen!.
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