Compilateurs et interpréteurs
La compilation consiste à traduire un code source écrit en langage compréhensible par l’humain en un langage compréhensible par le processeur.
Il existe de nombreux et différents langages de programmation, nous avons installé les logiciels en rapport avec les langages employés par nos utilisateurs. Si besoin, on peut en ajouter d’autres.
Logiciels Intel
Intel livre un ensemble logiciel très complet qui comprend des compilateurs (Fortran, C, C++), une implémentation MPI, d’autres bibliothèques pour faire du calcul parallèle, des outils de profilage. Il s’agit de l’ensemble Parallel Studio XE. Nous installons plusieurs versions chaque année.
Ces différents logiciels sont accessibles au travers de modules, dont le nom commence par Intel. Ceux pour les compilateurs s’appellent Intel/20xx.version.numéro
.
Compilateur Intel Fortran
Le compilateur Fortran s’appelle ifort
.
Voici des propositions de séquences d’options (la plupart sont compatibles avec les compilateurs C/C++)
-
déboguage :
-O0 -g -traceback -check all -warn all -fpe0 -ftz -ftrapuv
-
optimisation :
<ARCH> -O3 -g -traceback -implicitnone -ftz -opt-prefetch -unroll-aggressive
-
profilage/analyse : optimisation +
-pg -qopt-report=5 -qopt-report-phase=vec
-
parallélisation par OpenMP : optimisation +
-qopenmp
<ARCH>
désigne des options pour adapter le programme exécutable aux caractéristiques du processeur sur lequel il va s’exécuter : AVX, SSE, etc.
Le CCIPL met en œuvre des serveurs de différentes gammes, de plusieurs origines, donc de caractéristiques différentes.
ARCH
peut prendre différentes valeurs comme : -xSSE4.2 -xCORE-AVX2 -xCORE-AVX512
. L’option -xHost
permet d’optimiser pour le processeur sur lequel la compilation a lieu.
Serveur CCIPL |
Processeur |
Option |
Cloudbreak |
AMD EPYC 7282, 2,8GHz |
-AVX2 |
Cribbar |
Intel Xeon Silver 4114, 2,2 GHz, Skylake |
-AVX2, -AVX-512 |
Budbud |
Intel Xeon E5 2640, 2,4 GHz, Broadwell |
-AVX2 |
Nazare (et Jaws) |
Intel Xeon ES 2630, 2,66 GHz, Broadwell |
-AVX2 |
Chezine |
Intel Xeon 5650, 2,66 GHz, Westmere EP |
-SSE4.2 |
Attention, il y a compatibilité descendante mais pas ascendante ! |
Logiciels GNU
Les compilateurs GNU sont accessibles au travers de modules dont le nom est de la forme gcc/x.y.z
, où x.y.z est le numéro de version.
Compilateur GNU Fortran
Le compilateur Fortran s’appelle gfortran
.
Voici des propositions de séquences d’options
-
déboguage :
-O0 -g -fbacktrace -fimplicit-none -fcheck=all -ffpe-trap=invalid,zero,overflow,underflow -Wall
-
optimisation :
<ARCH> -O3 -g -fbacktrace -fprefetch-loop-arrays
-
profilage/analyse : optimisation +
-p
-
parallélisation par OpenMP : optimisation +
-fopenmp
<ARCH>
désigne des options pour adapter le programme exécutable aux caractéristiques du processeur sur lequel il va s’exécuter : AVX, SSE, etc.
Le CCIPL met en œuvre des serveurs de différentes gammes, de plusieurs origines, donc de caractéristiques différentes.
ARCH
se décompose en deux options -march=<arg>
et -mtune=<arg>
avec arg
qui peut prendre différentes valeurs comme : znver2, core-avx2, westmere
. L’argument native
permet d’optimiser pour le processeur sur lequel la compilation a lieu.
Serveur CCIPL |
Processeur |
Option |
Cloudbreak |
AMD EPYC 7282, 2,8GHz |
-march=znver2 -mtune=znver2 -mfma -mavx2 |
Cribbar |
Intel Xeon Silver 4114, 2,2 GHz, Skylake |
-march=skylake -mtune=skylake |
Budbud |
Intel Xeon E5 2640, 2,4 GHz, Broadwell |
-march=cascadelake -mtune=cascadelake |
Nazare (et Jaws) |
Intel Xeon ES 2630, 2,66 GHz, Broadwell |
-march=core-avx2 -mtune=core-avx2 |
Chezine |
Intel Xeon 5650, 2,66 GHz, Westmere EP |
-march=westmere -mtune=westmere |
Logiciels PGI
Les compilateurs PGI sont accessibles au travers de modules dont le nom est de la forme pgi/pgi/xx.y
, où xx.y est le numéro de version.
Compilateur PGI Fortran
Le compilateur s’appelle pgf90
.
Voici des propositions de séquences d’options
-
déboguage :
-O0 -g -traceback -Minfo=all -Mchkfpstk -Mc hkstk -Mdalign -Mdclchk -Mdepchk -Miomutex -Mrecursive -Msave -Ktrap=fp
-
optimisation :
<ARCH> -O3 -g -traceback -Mvect -Mcache_align -Mprefetch -Munroll
-
profilage/analyse : PGI fournit son propre outil de profilage,
pgprof
-
parallélisation par OpenMP : optimisation +
-mp
<ARCH>
désigne une option pour adapter le programme exécutable aux caractéristiques du processeur sur lequel il va s’exécuter : AVX,SSE, etc.
Le CCIPL met en œuvre des serveurs de différentes gammes, de plusieurs origines, donc de caractéristiques différentes.
ARCH
s’écrit sous la forme -tp=<arg>
avec arg
qui peut prendre différentes valeurs comme : nehalem-64, ivybridge-64, -skylake-64
. L’argument native
permet d’optimiser pour le processeur sur lequel la compilation a lieu.
Serveur CCIPL |
Processeur |
Option |
Cloudbreak |
AMD EPYC 7282, 2,8GHz |
-tp zen |
Cribbar |
Intel Xeon Silver 4114, 2,2 GHz, Skylake |
-tp=skylake-64 |
Budbud |
Intel Xeon E5 2640, 2,4 GHz, Broadwell |
-tp=broadwell-64 |
Nazare (et Jaws) |
Intel Xeon ES 2630, 2,66 GHz, Broadwell |
-tp=broadwell-64 |
Chezine |
Intel Xeon 5650, 2,66 GHz, Westmere EP |
-tp=nehalem-64 |
Logiciels Python
Python est installé sur le cluster, les versions 2 et 3 (incompatibles entre-elles). Elles sont accessibles au travers de modules.
Des bibliothèques supplémentaires sont installés à la demande des utilisateurs directement dans l’arborescence de la distribution, de la forme python/x.y.z
, où x.y.z désigne sa version..
Logiciels R
R est installé sur le cluster, et deux versions de paquets additionnels ont été installées : compilés ou non compilés avec la bibliothèque scientifique Intel MKL.
R est accessible au travers module, de la forme R/x.y.z_no-MKL
et R/x.y.z_MKL
, où x.y.z désigne la version de R.
Logiciels Julia
Julia est installé sur le cluster est accessible au travers de module, de la forme julia/x.y.z
, où x.y.z désigne sa version.