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:
ArcaneAlienPar 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 | 20 (le défaut), 23 ou 26 | Choix du standard C++ à utiliser |
ARCANE_ENABLE_TESTS | ON/OFF | Active/Désactive les tests |
ARCANE_ENABLE_DOTNET_WRAPPER | ON/OFF | Active/Désactive le wrapper C#/.Net |
ARCANE_ENABLE_ALEPH | ON/OFF | Active/Désactive le support de la composante Aleph |
| 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 |
CMAKE_CUDA_COMPILER | Compilateur CUDA (exemple : nvcc ou clang++) | Permet de spécifier le chemin vers le compilateur CUDA historique ( |
CMAKE_HIP_COMPILER | Compilateur ROCM/HIP (exemple : amdclang++ ou clang++) | Permet de spécifier le chemin vers le compilateur utilisé pour générer le code pour ROCM/HIP |
CMAKE_CUDA_ARCHITECTURES | Architecture cible (exemple : 80) | Permet de spécifier une architecture cible (Capability Compute). Une liste de plusieurs valeurs est possible (par exemple |
CMAKE_HIP_ARCHITECTURES | Architecture cible (exemple : gfx90a) | Permet de spécifier une architecture cible pour les GPUS AMD. Une liste de valeurs est possible (par exemple |
-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=CUDA à la configuration et spécifier le chemin vers le compilateur nvcc ou clang++ via la variable CMake CMAKE_CUDA_COMPILER ou la variable d'environnement CUDACXX:
clang comme compilateur au lieu de nvcc car ce dernier génère du code moins performant sur la partie CPU. Cela est du à l'usage de std::function pour encapsuler les lambdas utilisées dans Arcane (voir New Compiler Features in CUDA 8 pour plus d'informations)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.
La version de ROCM minimale requise est la version 5.7.
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_THEMEARCANEDOC_OFFLINEAvec 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: