Aller au contenu

Procédure de compilation avec CMake

Cette page décrit la procédure allant de l'obtention du code source de FrontISTR jusqu'à sa compilation et son installation. Pour les détails sur les bibliothèques dépendantes, voir Dépendances requises et optionnelles.

Obtention du code source

Le code source de FrontISTR peut être obtenu depuis GitLab ou GitHub.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (miroir)
git clone https://github.com/FrontISTR/FrontISTR.git

Procédure de compilation

FrontISTR suppose une compilation hors arborescence source (la compilation directement à la racine de l'arborescence source est interdite). Créez un répertoire build et exécutez cmake à l'intérieur.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

Après la compilation, le programme peut être exécuté directement sous la forme /path/to/FrontISTR/build/fistr1/fistr1. Pour l'installer dans le chemin système (CMAKE_INSTALL_PREFIX), exécutez en plus la commande suivante.

cmake --build . --target install

Liste des options CMake

Les options indiquées « ON si détecté » sont activées automatiquement lorsque la bibliothèque correspondante est trouvée sur le système au moment de l'exécution de cmake. Elles peuvent être désactivées explicitement en spécifiant -DWITH_XXX=OFF.

Option Valeur par défaut Description
WITH_MPI ON Active le parallélisme MPI
WITH_OPENMP ON si détecté Active le parallélisme par threads OpenMP
WITH_METIS ON si détecté Active la décomposition de domaine avec METIS
METIS_VER_4 OFF Utilise METIS v4 (OFF utilise v5)
WITH_MUMPS ON si détecté Active le solveur direct parallèle MUMPS
WITH_MKL ON si détecté Active Intel MKL (y compris PARDISO)
WITH_LAPACK ON si détecté Active l'estimation du nombre de condition avec LAPACK
WITH_ML ON si détecté Active le préconditionnement AMG avec Trilinos ML
WITH_REFINER ON si détecté Active le raffinement du maillage avec REVOCAP_Refiner
WITH_REVOCAP ON si détecté Active l'analyse couplée avec REVOCAP_Coupler
WITH_TOOLS ON Compile les outils fournis
WITH_DOC OFF Génère la documentation API avec Doxygen
WITH_NETCDF ON si détecté Active la sortie au format Exodus II (NetCDF)
WINDOWS OFF Active la compilation pour Windows
CMAKE_BUILD_TYPE RELEASE Type de compilation (RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local Répertoire d'installation
DEBUG_EXTRA OFF Active la détection des fuites mémoire (pour GCC, -fsanitize=address)

Compilation DEBUG

Lorsque CMAKE_BUILD_TYPE=DEBUG est spécifié, les options de débogage suivantes sont ajoutées selon le compilateur.

Compilateur Options supplémentaires
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Compilation avec un GPU

Lorsque NVIDIA HPC SDK (nvc/nvc++/nvfortran) est spécifié comme compilateur, CMake ajoute automatiquement les options suivantes.

Option Description
-acc Active OpenACC
-Minfo=accel Affiche les informations sur le déport vers le GPU lors de la compilation
-gpu=ccnative,mem:managed Détecte automatiquement le GPU de l'environnement de compilation pour déterminer la cible et utilise Unified Memory

Pour la procédure détaillée de compilation GPU avec OpenACC, voir Compilation avec un GPU.