Flash player not detected. Please visit http://www.macromedia.com
 
> Services
 
     
 

back

Compilation



Compilateurs

Les compilateurs C/C++/Fortran Intel et GNU sont disponibles sur la machine Starlight.
Les compiltations doivent obligatoirement être faites sur la machine frontale (et non sur les noeuds de calcul).
La version 11.1 des compilateurs Intel est installée sur la machine et est accessible à tous les utilisateurs.
La version 4.1.2 des compilateurs GNU est également accessible à tous les utilisateurs. De plus, la version 4.3.5 des compilateurs GNU a été installée mais n'est pas utilisable par défaut. Si vous avez besoin de cette version plus récente des compilateurs GNU, veuillez prendre contact avec Fabrice Roy.
Les commandes donnant accès aux différents compilateurs sont présentées dans le tableau ci-dessous :

Langage

GNU

Intel

Fortran

gfortran

ifort

C

gcc

icc

C++

g++

icpc



Options de compilation fréquemment utilisées

Voici une liste d'options de compilation largement employés avec les compilateurs Intel et/ou GNU. Lorsque le nom du compilateur n'est pas précisé, l'option est identique pour tous les compilateurs. COMP peut être remplacé par n'importe compilateur dans les exemples.

Options communes à tous les compilateurs :

    -o : spécifie le nom de l'exécutable produit
    Exemple : COMP source -o exécutable
    -c : produit un fichier 'objet', les liens entre les programmes et librairies ne sont pas établis ; le fichier objet s'appelle par défaut source.o
    Exemple : COMP -c source
    -On : spécifie le niveau d'optimisation de l'exécutable, n vaut le plus souvent 0, 1, 2 ou 3 : les instructions sont réordonnées par le compilateur afin d'optimiser la vitesse d'exécution ; l'optimisation doit être utilisée avec précautions, elle peut introduire des erreurs.
    Exemple : COMP -O2 source -o exécutable
    -g : produit un exécutable fournissant des information de debogage et utilisable par un debogueur
    Exemple : COMP -g source -o exécutable_debug
    -lnom : spécifie le nom de la librairie, correspondant généralement au fichier libnom.a, devant être liée statiquement à l'exécutable et où se trouvent des routines utilisées dans l'exécutable.
    Exemple : COMP source -o exécutable -llapack
    pour utiliser des routines ou fonctions de la librairie liblapack.a
    -Ichemin et -Lchemin : spécifie un répertoire où le compilateur doit chercher un fichier inclus (-I) ou une librairie que l'on souhaite lier (-L)
    Exemple : COMP -I/usr/local/include -L/usr/local/lib source.f -o exécutable -llapack
    pour compiler un exécutable utilisant la librairie liblapack.a située dans /usr/local/lib et incluant un fichier situé dans /usr/local/include

Options spécifiques à certains compilateurs/langages :
    Interprétation des instructions OpenMP :
    GNU -fopenmp source
    INTEL -openmp source
    Utilisation de variables réelles (type real) double précision par défaut en Fortran :
    gfortran -fdefault-real-8 source
    ifort -r8 source.f
    Utilisation de variables entières (type integer) double précision par défaut en Fortran :
    gfortran -fdefault-integer-8 source
    ifort -i8 source.f
    Interprétation du code par le preprocesseur en Fortran : dans tous les cas, renommer le fichier .f en .F ou .f90 en .F90 force l'utilisation du preprocesseur, et les directives sont données par -Dnom
    gfortran -x f77-cpp-input source ou gfortran -x f95-cpp-input source
    ifort -fpp source ou ifort -cpp source
    Ajout d'un second underscore (_) à la fin des noms de fonctions/routines en Fortran : le comportement de ces options étant spécifique à chaque compilateur, référez vous à la documentation du compilateur (man) pour une description détaillée
    gfortran -assume 2underscores source
    ifort -fsecond-underscore source
    Pas d'ajout d'underscore à la fin des noms de fonctions/routines en Fortran :
    gfortran -assume nounderscore source
    ifort -fno-underscoring source
    Activation de tous les « warnings » et autres messages d'information à la compilation :
    GNU -Wall source
    ifort -warn all source
    icc/icpc -Wall source
    Vérification des indices de tableaux (ces options n'ont pas exactement la même signification selon le compilateur) :
    GNU -fbounds-check source
    ifort -check bounds source

Pour une liste exhaustive des options de compilation proposées par les compilateurs GNU et Intel, vous pouvez vous référer aux manuels de ces compilateurs :
    manuel pdf pour les compilateurs GNU C/C++ et Fortran, d'autres documentations étant également disponibles en ligne.



Bibliothèques

Les bibliothèques suivantes sont installées sur la machine Starlight :

    FFTW version 2.1.5 (pour la version MPI) :
    /usr/local/fftw-2.1.5-GNU/lib/ et /usr/local/fftw-2.1.5-INTEL/lib/
    FFTW version 3.2.2 :
    /usr/local/fftw-3.2.2-GNU/lib/ et /usr/local/fftw-3.2.2-INTEL/lib/
    cfitsio compilé avec INTEL (libcfitsio-3.24-INTEL.a) et GNU (libcfitsio-3.24-GNU.a), libcfitsio.a pointe sur la version INTEL :
    /usr/local/lib64/
    BLAS compilé avec INTEL (libblas-INTEL.a) et GNU (libblas-GNU.a), libblas.a pointe sur la version INTEL :
    /usr/local/lib64/
    LAPACK compilé avec INTEL (liblapack-INTEL.a) et GNU (liblapack-GNU.a), liblapack.a pointe sur la version INTEL :
    /usr/local/lib64/

Les librairies scientifiques optimisées INTEL sont également disponibles. Elles contiennent entre autres des versions optimisées de BLAS, LAPACK ou FFTW (version 2.x et 3.x).
Elles se trouvent dans le répertoire /export/opt/intel/mkl/current/lib/ en version 32 bits, dans le répertoire 32/, ou 64 bits, dans le répertoire em64t/. Le répertoire 64/ contient la version Itanium, qui n'est d'aucune utilité pour nous.

Vous trouverez un grand nombre d'informations dans le guide d'utilisateur.

Voici un exemple de compilation permettant d'utiliser les versions de BLAS et LAPACK contenues dans MKL :
ifort SOURCE.f -L/export/opt/intel/mkl/10.2.2.025/lib/em64t/ -lmkl_intel_lp64 -Wl,--start-group -lmkl_intel_thread -lmkl_core -Wl,--end-group -liomp5 -lpthread -o EXECUTABLE



Pour toute information complémentaire, vous pouvez contacter Stéphane Méné ou Fabrice Roy.

 
 
 
Présentation | Recherche | Enseignement | Grand Public | Centre de données | Séminaires | Contacts | Intranet