Skip to content

arcaneframework/framework

Repository files navigation

Written by CEA/IFPEN and Contributors

(C) Copyright 2000-2023 CEA/IFPEN. All rights reserved.

All content is the property of the respective authors or their employers.

For more information regarding authorship of content, please consult the listed source code repository logs.

Introduction

Arcane est une plateforme de développement pour les codes de calcul parallèles non structurés 2D ou 3D.

Documentation

La documentation en ligne est accessible depuis internet :

Changelog

Les dernières modifications de Arcane sont dans le fichier suivant: Changelog

Compilation

Ce dépôt permet de compiler directement Arcane et/ou Alien et ses dépendances (Arrcon, Axlstar et Arccore)

La compilation doit se faire dans un répertoire différent de celui contenant les sources.

Pour les prérequis, voir les répertoires Arcane et Alien:

Pour récuperer les sources:

git clone --recurse-submodules /path/to/git

ou

git clone /path/to/git
cd framework && git submodule update --init --recursive

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:

mkdir /path/to/build
cmake -S /path/to/sources -B /path/to/build
cmake --build /path/to/build

Si on ne souhaite compiler que Arcane :

cmake -S /path/to/sources -B /path/to/build -DARCANEFRAMEWORK_BUILD_COMPONENTS=Arcane

Si on ne souhaite compiler que Alien :

cmake -S /path/to/sources -B /path/to/build -DARCANEFRAMEWORK_BUILD_COMPONENTS=Alien

Linux

Cette section indique comment installer sous Linux x64 les dépendances nécessaires.

CMake

Il faut au moins la version 3.21 de CMake. Pour le support de CUDA, il faut au moins la version 3.26. Si elle n'est pas présente sur votre système, la commande suivante permet d'installer la version 3.27.8 pour Linux x64 dans /usr/local. Il faudra ensuite ajouter le chemin correspondant dans la variable d'environnement PATH.

# Install CMake 3.27.8 in /usr/local/cmake
MY_CMAKE_INSTALL_PATH=/usr/local/cmake-3.27.8
wget https://github.com/Kitware/CMake/releases/download/v3.27.8/cmake-3.27.8-linux-x86_64.tar.gz
sudo mkdir ${MY_CMAKE_INSTALL_PATH}
sudo tar -C ${MY_CMAKE_INSTALL_PATH} -x --strip-components 1 -f cmake-3.27.8-linux-x86_64.tar.gz
export PATH=${MY_CMAKE_INSTALL_PATH}/bin:${PATH}
cmake --version

Vous pouvez aussi installer directement CMake via snap:

sudo snap install --classic cmake

Environnement .Net

L'environnement .Net 6.0 est nécessaire pour compiler Arcane. Il est accessible via les packages systèmes (apt ou yum) mais vous pouvez aussi directement télécharger un fichier tar contenant le binaire et les fichiers nécessaires. Pour l'architecture x64, les commandes suivantes installent l'environnement dans le répertoire $HOME/dotnet.

wget https://download.visualstudio.microsoft.com/download/pr/372b11de-1321-44f3-aad7-040842babe62/c5925f9f856c3a299e97c80283317275/dotnet-sdk-6.0.304-linux-x64.tar.gz
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.304-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$HOME/dotnet:$PATH:

Pour d'autres architectures, la page Download .Net contient la liste des téléchargements disponibles.

Ubuntu 20.04 via les packages systèmes

Les commandes suivantes permettent d'installer les dépendances nécessaires pour Arcane (ainsi que les dépendances optionnelles HDF5 et ParMetis):

sudo apt-get update
sudo apt-get install -y apt-utils build-essential iputils-ping python3 \
git gfortran libglib2.0-dev libxml2-dev libhdf5-openmpi-dev \
libparmetis-dev wget
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y apt-transport-https dotnet-sdk-6.0

Ubuntu 22.04 via les packages systèmes

Sur Ubuntu 22.04, les versions de CMake et de '.Net' sont suffisamment récentes pour pouvoir être installés via les packages système.

Les commandes suivantes permettent d'installer les dépendances nécessaires pour Arcane (ainsi que les dépendances optionnelles HDF5 et ParMetis):

sudo apt-get update
sudo apt-get install -y apt-utils build-essential iputils-ping python3 \
  git gfortran libglib2.0-dev libxml2-dev libhdf5-openmpi-dev \
  libparmetis-dev dotnet6 cmake

Il est aussi possible d'installer les packages optionnels suivants:

# Pour google test:
sudo apt-get install -y googletest

# Pour Ninja:
sudo apt-get install -y ninja-build

# Pour le wrapper C#:
sudo apt-get install -y swig4.0

# Pour Hypre
sudo apt-get install -y libhypre-dev

# Pour PETSc
sudo apt-get install -y libpetsc-real-dev

# Pour Trilinos
sudo apt-get install -y libtrilinos-teuchos-dev libtrilinos-epetra-dev \
  libtrilinos-tpetra-dev libtrilinos-kokkos-dev libtrilinos-ifpack2-dev \
  libtrilinos-ifpack-dev libtrilinos-amesos-dev libtrilinos-galeri-dev \
  libtrilinos-xpetra-dev libtrilinos-epetraext-dev \
  libtrilinos-triutils-dev libtrilinos-thyra-dev \
  libtrilinos-kokkos-kernels-dev libtrilinos-rtop-dev \
  libtrilinos-isorropia-dev libtrilinos-belos-dev \

# Pour Zoltan
sudo apt-get install -y libtrilinos-ifpack-dev libtrilinos-anasazi-dev \
  libtrilinos-amesos2-dev libtrilinos-shards-dev libtrilinos-muelu-dev \
  libtrilinos-intrepid2-dev libtrilinos-teko-dev libtrilinos-sacado-dev \
  libtrilinos-stratimikos-dev libtrilinos-shylu-dev \
  libtrilinos-zoltan-dev libtrilinos-zoltan2-dev

Ubuntu 24.04 via les packages systèmes

Les commandes suivantes permettent d'installer les dépendances nécessaires pour Arcane et Alien (ainsi que les dépendances optionnelles HDF5 et ParMetis):

sudo apt-get update
sudo apt-get install -y apt-utils build-essential iputils-ping python3 \
  git gfortran libglib2.0-dev libxml2-dev libhdf5-openmpi-dev \
  libparmetis-dev cmake

# .Net 6
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:dotnet/backports
sudo apt-get install -y dotnet-sdk-6.0

# boost (pour Alien)
sudo apt-get install -y libboost-program-options-dev

Il est aussi possible d'installer les packages optionnels suivants:

# Pour google test:
sudo apt-get install -y googletest

# Pour Ninja:
sudo apt-get install -y ninja-build

# Pour Hypre
sudo apt-get install -y libhypre-dev

# Pour PETSc
sudo apt-get install -y libpetsc-real-dev

# Pour Trilinos
sudo apt-get install -y libtrilinos-teuchos-dev libtrilinos-epetra-dev \
  libtrilinos-tpetra-dev libtrilinos-kokkos-dev libtrilinos-ifpack2-dev \
  libtrilinos-ifpack-dev libtrilinos-amesos-dev libtrilinos-galeri-dev \
  libtrilinos-xpetra-dev libtrilinos-epetraext-dev \
  libtrilinos-triutils-dev libtrilinos-thyra-dev \
  libtrilinos-kokkos-kernels-dev libtrilinos-rtop-dev \
  libtrilinos-isorropia-dev libtrilinos-belos-dev

# Pour Zoltan
sudo apt-get install -y libtrilinos-ifpack-dev libtrilinos-anasazi-dev \
  libtrilinos-amesos2-dev libtrilinos-shards-dev libtrilinos-muelu-dev \
  libtrilinos-intrepid2-dev libtrilinos-teko-dev libtrilinos-sacado-dev \
  libtrilinos-stratimikos-dev libtrilinos-shylu-dev \
  libtrilinos-zoltan-dev libtrilinos-zoltan2-dev

# Pour le wrapper C#:
sudo apt-get install -y swig

Arch Linux/Manjaro via Pacman/YAY

Les commandes suivantes permettent d'installer CMake, .Net et les dépendances nécessaires pour Arcane (ainsi que les dépendances optionnelles TBB, HDF5 et ParMetis):

sudo pacman -Syu
sudo pacman -S gcc cmake python git gcc-fortran glib2 libxml2 hdf5-openmpi wget tbb dotnet-sdk aspnet-runtime aspnet-targeting-pack
yay -S aur/parmetis

AlmaLinux 9 (or RedHat 9)

Pour compiler Arcane, il est nécessaire d'installer les packages suivants:

# Packages nécessaires
yum -y install dotnet-sdk-6.0 glib2-devel libxml2-devel gcc-c++

La version par défaut de CMake sur AlmaLinux 9 est trop ancienne (3.20). Il faut donc télécharger une version plus récente