Accueil Direction du Numérique Site de L'Université

Accueil > Site Public > Calcul > Logiciels

Compiler vos codes en FORTRAN, C ou C++

Publié le 8 avril 2013, mis a jour le 17 décembre 2020

Export en PDF : Enregistrer au format PDF

Compilateurs et librairies disponibles

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 :

Compilation en séquentiel

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.

Compilation en parallèle avec Intel

Cas de MPI

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 :

Cas de OpenMP

Si OpenMP pour la parallélisation, l’option -openmp doit être passée au compilateur intel.

Compilation C/C++ :

Compilation C++ :

Compilation fortran :

Résumé de l’utilisation du compilateur INTEL avec AVX

SéquentielMPIOpenMPOptions 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

Résumé de l’utilisation du compilateur PGI - PORTLAND sans AVX

SéquentielMPIOpenMPOptions 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

Résumé de l’utilisation du compilateur GNU sans AVX

SéquentielMPIOpenMPMPI 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

Date de création: septembre 1994
Contact : ccub@u-bourgogne.fr
Ce site requiert l'activation de Javascript sur votre navigateur pour fonctionner dans son intégralité.