Publié le 8 avril 2013, mis a jour le 17 décembre 2020
Les compilateurs disponibles sont :
Intel (recommandé) : ifort pour fortran, icc/icpc pour C/C++
GNU : gfortran pour fortran, gcc/g++ pour C/C++
Portland : pgf90 pour fortran, pgcc/pgCC pour C/C++
Remarque : l’outil d’Intel pour générer les bonnes variables de compilation : https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor
Les librairies permettant le développement d’applications parallèles sont :
open-mpi
L’accès aux compilateurs et librairies se fait par l’intermédiaire de l’Environnement logiciel : modules
Exemple :
pour charger le module correspondant au compilateur Intel fortran (v. 2018) :
pour charger le module correspondant au compilateur Intel fortran (v. 2018) et la librairie open-mpi :
Différentes options sont disponibles (cf. le manuel du compilateur) :
Debug : –g (ifort –g -o code.exe code.f)
Optimisation : -axCORE-AVX512 –O3 (ifort -axAVX –O3 -o code.exe code.f)
Précision : -fp-model precise -pc 64
Exemple compiler du C avec Intel :
Exemple compiler du C/C++ avec Intel :
Exemple compiler du fortran avec Intel :
Exemple utiliser les librarires BLAS et LAPACK (avec des entiers 32 bits) et le compilateur Intel :
Exemple utiliser les librarires BLAS et LAPACK (avec des entiers 64 bits) et le compilateur Intel :
Vous trouverez sur le site internet d’intel une interface qui vous permettra de préciser les options à utiliser pour linker votre application avec la libraire MKL : http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor
En cas de doute, veuillez svp contacter l’équipe du ccub.
On utilise un compilateur associé à la librairie mpi : mpif90, mpicc ou mpicxx
Pour utiliser les fonctions, méthodes, routines MPI, les fichiers mpi.h ou mpif.h doivent être inclus au sein des codes source et le code doit être linké avec une librairie MPI.
Compilation C :
Compilation C++ :
Compilation fortran :
Si OpenMP pour la parallélisation, l’option -openmp doit être passée au compilateur intel.
Compilation C/C++ :
Compilation C++ :
Compilation fortran :
Séquentiel | MPI | OpenMP | Options conseillées | |
---|---|---|---|---|
Fortran | ifort | mpif90 | ifort -openmp | -axCORE-AVX512 -O3 -fp-model precise -pc 64 |
C | icc | mpicc | icc -openmp | -axAVX -O3 -fp-model precise -pc 64 |
C++ | icpc | mpicxx | icpc -openmp | -axCORE-AVX512 -O3 -fp-model precise -pc 64 |
Séquentiel | MPI | OpenMP | Options conseillées | |
---|---|---|---|---|
Fortran | pgf90 | mpif90 | pgf90 -mp | -O3 -Kieee -pc 64 |
C | pgcc | mpicc | pgcc -mp | -O3 -Kieee -pc 64 |
C++ | pgCC | mpicxx | pgcc -mp | -O3 -Kieee -pc 64 |
Séquentiel | MPI | OpenMP | MPI et OpenMP | |
---|---|---|---|---|
Fortran | ifort | mpif90 | ifort -fopenmp | -O3 -mieee -fp |
C | gcc | mpicc | gcc -fopenmp | -O3 -mieee -fp |
C++ | g++ | mpicxx | g++ -fopenmp | -O3 -mieee -fp |