DOCUMENTATION

Compilateurs Intel®

La suite de compilateurs C, C++ et Fortran Intel® est disponible sur le méso-centre.
Vous trouverez plus d'informations sur ces compilateurs ici.

Pour accéder ces compilateurs, il faut charger le module de la versions que vous souhaitez utiliser :

module load intel/oneAPI-2022

Les noms des compilateurs principaux sont les suivants :

Les compilateurs Intel® peuvent être utilisés pour compiler des codes en multithreading, avec OpenMP par exemple. Pour cela, il faut ajouter l'option -qopenmp en argument.

Voici un exemple de code C/OpenMP, ainsi que la façon de le compiler et de l'exécuter sur les machines du méso-centre.

hello.c

#include <stdio.h>
#include <omp.h>
#include <unistd.h>

int main (int argc, char *argv[])
{
  int nb_procs;   //Nombre de processus
  int rang;       //Rang du processus

  nb_procs = omp_get_max_threads();

#pragma omp parallel private(rang)
{
  rang = omp_get_thread_num();
  printf("Hello World de la part du thread %d/%d\n",rang,nb_procs);
}

return 0;
}

Compilation

icc hello.c -o hello -qopenmp

Script de soumission

#! /bin/bash

#SBATCH -N 1
#SBATCH -n 16

source ${HOME}/.bashrc

module load intel/oneAPI-2022

export OMP_NUM_THREADS=16

./hello

Utilisation de la MKL (Math Kernel Library)

Intel® fournit également une suite de bibliothèques de calcul mathématique, la MKL. La MKL permet de faire des calculs d'algèbre linéaire (type BLAS), des transformées de Fourier (type FFTW) et fournit d'autres solvers mathématiques. Vous pourrez trouver plus d'informations ici.

Pour utiliser la MKL, il faut charger le module du compilateur associé :

module load intel/oneAPI-2022

Vous pouvez ensuite compiler votre code avec l'option -mkl par exemple, si votre code utilise des fonctions BLAS et/ou FFTW :

icc moncode.c -o moncode -mkl

Pour vous aidez dans la création de commandes de compilation plus complexes, Intel® met à disposition son Intel® Math Kernel Library Link Line Advisor.

La MKL est multithreadée. Pour faire varier le nombre de threads utilisés, il faut utiliser la variable d'environnement MKL_NUM_THREADS ou OMP_NUM_THREADS suivant la bibliothèque choisie.

La MKL est également utilisable avec les compilateurs GNU ou PGI. L'Intel® Math Kernel Library Link Line Advisor permet de trouver les lignes de commande adaptées pour cela.


VERSIONS ET SCRIPTS D'INSTALLATION


TAGS