Les environnements de développement
Les environnements de développement disponibles sur Turpan sont :
- Nvidia HPC, ARM et GNU Compiler Collection.
- Les compilateurs C/C++/Fortran et les accélérateurs support des normes OpenMP et OpenACC.
- Les librairies scientifiques BLAS LAPACK Scalapack FFT et MPI optimisée.
Comment configurer un environnement ?
- nvhpc
- GNU
- ARM
Sans openmpi, avec cuda :
module load nvidia
module load nvhpc-nompi/22.9
Avec openmpi compilé pour cpu, avec cuda
module load nvidia
module load nvhpc-nompi/22.9
module load openmpi/nvidia/4.1.6-opt
Avec openmpi compilé pour gpu, avec cuda
module load nvidia
module load nvhpc-nompi/22.9
module load openmpi/nvidia/4.1.6-opt
Sans openmpi, sans gpu
module load gnu/11.2.0
Avec openmpi, sans gpu
module load gnu/11.2.0
module load openmpi/gnu/4.1.6-opt
Avec openmpi, avec gpu
module load gnu/11.2.0
module load openmpi/gnu/4.1.6-opt
Sans openmpi, sans gpu
module load arm
module load acfl/22.1
module load armpl/22.1.0
Avec openmpi, sans gpu
module load arm
module load acfl/22.1
module load armpl/22.1.0
module load openmpi/arm/4.1.4-cpu
Avec openmpi, avec gpu
module load arm
module load acfl/22.1
module load armpl/22.1.0
module load openmpi/arm/4.1.4-gpu
Comment utilliser un module ?
Décharger tous les modules
module purge
Lister les modules disponibles
module avail hdf5
----------------------------- /usr/local/modules/modulefiles/scientific_applications -----------------------------
hdf5/arm/1.12.2-parallel hdf5/gnu/1.12.2-parallel hdf5/nvidia/1.12.2-parallel
hdf5/arm/1.12.2-seq hdf5/gnu/1.12.2-seq hdf5/nvidia/1.12.2-seqCharger un module spécifique
module load hdf5/gnu/1.12.2-seq
Décharger un module spécifique
module unload hdf5/gnu/1.12.2-seq
Lister les modules chargés
module list
Les compilateurs pour GNU ARM NVHPC
- GNU :
- gcc pour C
- g++ pour C++
- gfortran pour Fortran
- ARM
- armclang pour C
- armclang++ pour C++
- armflang pour Fortran
- NVHPC
- nvc pour C
- nvc++ pour C++
- nvfortran pour Fortran
Les flags de compilation
GNU
Pour les options du compilateur GNU, vous pouvez consulter cette page.
ARM + OpenMP :
FFLAGS = -O3 -g -cpp -fopenmp -fsimdmath -mcpu=neoverse-n1 -ffp-contract=fast -fvectorize -funroll-loops -ffast-math
Voir ce lien pour aider à porter les applications vers ARM.
nvfortran + OpenACC
FFLAGS = -O3 -g -Mpreprocess -ta=tesla:cc80,pinned -acc -Mcuda -Minfo=accel
Voici le lien vers la doc compilateur NVIDIA.