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.
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 |
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.