eLYSe

Présentation

Depuis 2006, je développe une plateforme de calcul numérique (nommée eLYSe) pour les simulations de croissance tumorale (ainsi que pour la micro-fluidique et les fluides complexes). Le principal objectif est d’écrire un outil performant (schémas 3D, de nombreuses méthodes et algorithmes, adaptation HPC…) mais extensible, polyvalent et facilitant le développement (en utilisant une approche orienté objet). Cela me permet de concentrer mes efforts de développement sur une seule source et de les déconnecter le plus possible de l’écriture de modèles.

Contributeurs : Raphaël Bahègne, Michel Bergmann, Julien Dambrine, Guillaume Dechriste, Vincent Huber, Jean-Baptiste Lagaert, Michael Leguebe, Damiano Lombardi, Youcef Mammeri, Olivier Saut, Mathieu Specklin.

La plateforme de calcul eLYSe est disponible sur le forge INRIA à cette adresse. Pour l’instant le projet est privé et l’accès aux sources ne se fait que sur invitation. Le moyen préféré de communication est la liste de diffusion elyse-info de la forge INRIA. Depuis peu, le gestionnaire de version utilisé est git. Pour la construction, cmake est requis.

Pour la compilation et l’exploitation, l’installation de la librairie Petsc est quasiment obligatoire et celle Vtk est optionnelle mais recommandée.

La méthode canonique de construction avec cmake est : git clone … # pour récupérer les sources. cd eLYSe mkdir build cd build cmake .. #(la première fois uniquement) make

Pour la construction de la documentation, il suffit de faire make doc

pourvu que doxygen soit installé.

La plateforme est principalement écrite en C++ et ruby. Pour les interactions avec les données médicales, on utilise le plus possible la librairie ITK (les codes correspondants ne font pas partie d’eLYSe).

Utilisation d’eLYSe dans un code utilisateur

La méthode encouragée est d’utiliser Cmake pour construire le programme. Une fois la variable d’environnement eLYSe_DIR correctement affectée pour pointer sur le dossier contenant la librairie eLYSe (la variable est automatiquement affectée par le chargement du module). Typiquement un CMakeLists.txt à la racine du code utilisateur aura la forme:

project(MonCode)
# On charge eLYSe
INCLUDE($ENV{eLYSe_DIR}/UseELYSE.cmake)
load_eLYSe(2D eLYSe_LIBRARIES)
# Nom de l'exécutable
SET(EXENAME "a.out")

# Dossier contenant les sources du code utilisateur
ADD_SUBDIRECTORY(src)

Dans cet exemple, on a chargé la version 2D d’eLYSe, pour la version 3D, la ligne est à remplacer par load_eLYSe(3D eLYSe_LIBRARIES)

Ensuite il suffit de lier l’exécutable par la commande target_link_libraries(${EXENAME} ${eLYSe_LIBRARIES})

Notes d’installation

Sur Mac OS X

La majorité des dépendances (à part Petsc) peut être installée automatiquement à l’aide de MacPorts ou Homebrew (plus léger). La commande recommandée pour installer petsc sur un Mac est : export PETSC_DIR=pwd

puis

./config/configure.py -with-blas-lapack-lib="-framework Accelerate" --with-mpi=/usr/bin --with-shared=0 \
    --with-fc=0 --with-clanguage=cxx

ou

./config/configure.py  --with-cc=/opt/local/bin/openmpicc --with-cxx=/opt/local/bin/openmpicxx \
    --with-shared-libraries=0 --with-fc=0 --with-clanguage=cxx --with-mpiexec=/opt/local/bin/openmpiexec

pour Petsc 3.2 (avec OpenMPI installé par MacPorts) sous Lion.

Sur Plafrim

Les modules recommandés pour une utilisation sur Plafrim sont

module add compiler/gcc/4.3.2
module add mpi/openmpi/1.4.3
module add lib/mkl/10.2.7.041
module add petsc/3.1.7  
module add boost/1.45.0   
module add blitz-221110

Sur Plafrim, eLYSe est installée sous forme de module :

module load eLYSe

charge tout le nécessaire.

Hello world

Un squelette de programme eLYSe peut être chargé .