La compilation doit se faire dans un répertoire différent de celui contenant les sources.
Pour récupérer les sources :
ou
Par défaut, on compile Arcane et Alien si les pré-requis sont disponibles. La variable CMake ARCANEFRAMEWORK_BUILD_COMPONENTS
contient la liste des composants du dépôt à compiler. Cette liste peut contenir les valeurs suivantes:
Arcane
Alien
Par défaut la valeur est Arcane;Alien
et donc on compile les deux composants.
Pour compiler Arcane et Alien , il faut procéder comme suit:
Par défaut, l'installation se fait dans /usr/local
si l'option CMAKE_INSTALL_PREFIX
n'est pas spécifiée.
Options générales :
Option | Valeur | Description |
---|---|---|
CMAKE_INSTALL_PREFIX | /path/to/install | Choix d'un dossier d'installation |
ARCANEFRAMEWORK_BUILD_COMPONENTS | Arcane ou Alien ou Arcane;Alien | Composant(s) à compiler |
ARCCORE_CXX_STANDARD | 17 ou 20 ou 23 | Choix du standard C++ à utiliser |
Option | Valeur | Description |
---|---|---|
ARCANE_ACCELERATOR_MODE |
| Permet de spécifier le type d'accélerateur qu'on souhaite utiliser. A partir de la version 3.14 de Arcane, il est possible d'utiliser CUDA au lieu de CUDANVCC et ROCM au lieu de ROCMHIP |
CMAKE_CUDA_COMPILER | Compilateur CUDA (exemple : nvcc ) | Permet de spécifier le chemin vers le compilateur nvcc |
CMAKE_CUDA_ARCHITECTURES | Architecture cible (exemple : 80 ) | Permet de spécifier une architecture cible (Capability Compute) |
CMAKE_HIP_ARCHITECTURES | Architecture cible (exemple : gfx90a ) | Permet de spécifier une architecture cible |
Depuis la version 3.12 de Arcane, le support des accélérateurs nécessite un compilateur supportant le C++20. Il est donc nécessaire de compiler Arcane en spécifiant la variable CMake -DARCCORE_CXX_STANDARD=20
.
La variable CMake ARCANE_ACCELERATOR_MODE
permet de spécifier le type d'accélerateur qu'on souhaite utiliser. Il y a actuellement deux valeurs supportées:
CUDANVCC
ou CUDA
pour les GPU NVIDIAROCMHIP
ou ROCM
pour les GPU AMDIl est nécessaire d'avoir au moins la version 12 de CUDA.
Si on souhaite compiler le support CUDA, il faut ajouter l'argument -DARCANE_ACCELERATOR_MODE=CUDANVCC
à la configuration et spécifier le chemin vers le compilateur nvcc
via la variable CMake CMAKE_CUDA_COMPILER
ou la variable d'environnement CUDACXX
:
Il est aussi possible d'utiliser directement le compilateur du HPC SDK de NVidia:
Il est possible de spécifier une architecture cible (Capability Compute) via la variable CMAKE_CUDA_ARCHITECTURES
, par exemple -DCMAKE_CUDA_ARCHITECTURES=80
.
Pour compiler pour les GPU AMD (comme par exemple les GPU MI100 ou MI250) il faut avoir auparavant installer la bibliothèque ROCM. Lors de la configuration de Arcane, il faut spécifier -DARCANE_ACCELERATOR_MODE=ROCMHIP
.
Par exemple, si ROCM est installé dans /opt/rocm
et qu'on souhaite compiler pour les cartes MI250 (architecture gfx90x):
Option | Valeur | Description |
---|---|---|
ARCANEDOC_OFFLINE | ON ou OFF | Permet de savoir si on a accès à internet |
ARCANEDOC_LEGACY_THEME | ON ou OFF | Permet de générer la documentation avec le style de Doxygen original |
La génération de la documentation n'a été testée que sur les plateforme Linux. Elle nécessite l'outil Doxygen.
Si ARCANEDOC_OFFLINE=ON
, l'outil Doxygen a besoin d'une installation de LaTeX pour générer correctement certaines équations.
Suivant les plateformes, il peut être nécessaire d'installer des packages LaTeX supplémentaires (par exemple pour Ubuntu, le package texlive-latex-extra
est nécessaire).
Pour la configuration, deux options facultatives sont disponibles :
ARCANEDOC_LEGACY_THEME
ARCANEDOC_OFFLINE
Avec chaqu'une deux valeurs possibles : ON
et OFF
.
Si les variables ne sont pas présentes, OFF
est la valeur par défaut.
Exemple :
L'option ARCANEDOC_LEGACY_THEME
permet de générer la documentation avec le thème d'origine de Doxygen.
L'option ARCANEDOC_OFFLINE
permet de dire à CMake que la documentation sera utilisée en local, sans accès à internet. Cela permet de désactiver les élements ayant besoin d'un accès à internet, comme MathJax.
Une fois la configuration terminée, il suffit de lancer:
Pour la documentation utilisateur:
Pour la documentation développeur
La documentation utilisateur ne contient les infos que des classes utiles pour le développeur.
Option | Valeur | Description |
---|---|---|
ARCANE_NO_DEFAULT_PACKAGE | TRUE ou FALSE | Permet de supprimer la détection automatique des packages |
ARCANE_REQUIRED_PACKAGE_LIST | Nom de packages (exemple : LibUnwind;HDF5 ) | Permet de préciser explicitement les packages qu'on souhaite avoir |
Par défaut, tous les packages optionnels sont détectés automatiquement. Il est possible de supprimer ce comportement et de supprimer la détection automatique des packages en ajoutant -DARCANE_NO_DEFAULT_PACKAGE=TRUE
à la ligne de commande. Dans ce cas, il faut préciser explicitement les packages qu'on souhaite avoir en les spécifiant à la variable ARCANE_REQUIRED_PACKAGE_LIST
sous forme de liste. Par exemple, si on souhaite avoir uniquement HDF5
et LibUnwind
de disponible, il faut utilise CMake comme suit: