# Projet EUFORIA

EUFORIA (EU Fusion fOR Iter Applications) est un projet financé par l'Union européenne dans le cadre du septième programme cadre (7e PC) qui va fournir un cadre et une infrastructure logicielle pour le transport dans le cœur et le bord et la simulation de la turbulence dans un Tokamak faisant le lien entre la communauté des grilles et du calcul haute performance (HPC), avec la communauté de la modélisation pour la fusion nucléaire.
Le projet EUFORIA va accroitre le potentiel de modélisation pour des plasmas de la taille d'ITER grâce à l'adaptation, l'optimisation et l'intégration d'un ensemble d'applications critiques pour le transport de cœur et de bord ciblant différents paradigmes de calcul selon les besoins (séquentiel ou parallèle, grilles et calcul haute performance). Le déploiement simultané d'un service de grille et de services de Calcul Haute Performance sont essentiels pour le projet. Un aspect novateur est le couplage dynamique et l'intégration de codes et d'applications tournant sur des plateformes hétérogènes dans un seul environnement grâce un moteur de calcul par acteurs et un mécanisme permettant de donner le niveau d'intégration nécessaire pour les applications physiques. Cette stratégie permet d'augmenter considérablement les possibilités de modélisation intégrée en fusion magnétique et en physique des plasmas et de fournir par la même occasion une nouvelle infrastructure de calcul et des outils pour la communauté de la fusion en général.

## Réalisation

La réalisation du projet EUFORIA comporte deux aspects. Initialement, ces deux aspects se développent et évoluent en parallèle pour être entièrement intégrés dans les dernières étapes du projet.
Le premier aspect est une phase de développement et de déploiement qui vise à adapter et optimiser, pour le calcul sur grille informatique et le calcul haute performance, une sélection de codes qui couvrent les domaines de la physique du bord et du cœur du tokamak. Le déploiement d'infrastructures pour le calcul est donc inhérent à cette activité et un accès à de telles ressources est fourni aux membres du projet. Ainsi, cette étape est principalement conduite par les développeurs des différents codes et applications puisqu'elle se concentre sur les détails d'implantation et de structures de ces codes. Une documentation complète concernant les différents aspects de l'adaptation des codes sera mise au point et diffusée pour apporter ces nouveaux outils au-delà des membres du projet et en faire profiter l'ensemble de la communauté de la fusion. L'expérience acquise lors de ce travail d'adaptation des codes de fusion sera accessible publiquement et un support sera fourni aux nouveaux utilisateur souhaitant mettre à disposition leur code dans la plate-forme EUFORIA. Avec cette seule activité, la communauté de la fusion aura fait un pas en avant significatif grâce à de nouvelles possibilités et de nouveaux outils de modélisation.
Le second aspect concerne la standardisation et l'intégration de différentes technologies nécessaires à l'extension des cas physiques pour ITER. Cette physique sera décrite à l'aide d'un flux de tâches (Workflow) complexe où une tâche correspond à l'exécution d'un code de physique. Il s'agit ainsi de mettre en place un moyen d'allouer des ressources de calcul, d'ordonnancer les différentes tâches et d'effectuer dynamiquement des couplages entre les différents codes, impliquant une standardisation des structures de données et des transferts des données entre les codes. Les points clés ici consistent en la mise au point d'une structure de données commune à l'ensemble du projet et l'adaptation d'un moteur de worklow et d'outils de visualisation pour la simulation de cœur et de bord. Cette seconde partie du projet s'attache essentiellement à fournir les moyens nécessaires à la formation d'une communauté d'utilisateur des codes intégrés à la plate-forme et, à plus long terme, à fournir un ensemble d'outils interopérables au sein d'une communauté.

## Consortium

Le consortium EUFORIA implique les 14 institutions européennes suivantes :
* Allemagne Institut de technologie de Karlsruhe (KIT).
* Allemagne Institut Max-Planck de physique des plasmas.
* Écosse Université d'Édimbourg.
* Espagne Centro Nacional de Supercomputación.
* Espagne CIEMAT (es).
* Espagne Conseil supérieur de la recherche scientifique (CSIC).
* Finlande Académie d'Åbo.
* Finlande CSC - Centre de technologie de l'information pour la science.
* France Commissariat à l'énergie atomique et aux énergies alternatives.
* France Université de Strasbourg.
* Italie Agenzia nazionale per le nuove tecnologie, l'energia e lo sviluppo economico sostenibile.
* Pologne Poznańskie Centrum Superkomputerowo-Sieciowe (pl).
* Slovénie Université de Ljubljana.
* Suède École polytechnique Chalmers.

## Structure du projet

Le projet EUFORIA a été structuré en un ensemble de tâches réseau, services et activités de recherche collaboratives en suivant l'organisation générale ci-dessous :
Networking Activities (réseau)
* NA1 – Gestion
* NA2 – Documentation utilisateur et formations
* NA3 – Dissemination
Service Activities (services) ‐ Déploiement et gestion opérationnelle de l'infrastructure
* SA1 – Infrastructure de grille de calcul
* SA2 – Infrastructure de calcul haute performance infrastructure
* SA3 – Assistance utilisateurs pour le calcul haute performance et les grilles de calcul
Joint Research Activities (Activités de recherche collaboratives)
* JRA1 – Adaptation des codes et des outils à la grille de calcul
* JRA2 – Adaptation of codes et des outils à l'infrastructure de calcul haute performance
* JRA3 – Intégration des codes de physique et des outils de pilotage du workflow.
* JRA4 – Visualisation

## Network Activities (NA)
### Activité NA1 : gestion du projet

NA1 prend en charge l'assistance à l'administration et la gestion du consortium dans son ensemble. En particulier, NA1 coordonne les différentes activités de recherche et les services. L'accent a été porté sur la mise en place de la communication entre ces deux activités afin de s'assurer que l'ensemble des projets sont bien intégrés au consortium. Cela relève tout particulièrement de la responsabilité de NA1.
Les liens avec les autres projets (ou initiatives) internationaux dans le domaine de la grille de calcul ou du calcul haute performance et les rattachements à la communauté de la fusion seront envisagés.
Le management se rapprochera des détenteurs et utilisateurs des codes de la communauté fusion dans le but de mettre à disposition davantage de ressources informatiques se basant sur les codes adaptés dans le cadre du projet EUFORIA. De nouvelles sources de financements seront étudiées, par exemple des fonds de l'Union européenne et des pays signataires du projet de consortium.
Au fur et à mesure de l'avancement du projet et de l'intégration croissante des différentes activités le composant, il sera nécessaire de porter l'effort de travail sur les activités transversales entre les différentes JRA et les développements conjoint entre les différentes activités de recherche et de service. Afin d'atteindre les buts du projet, une coordination efficace sera nécessaire. En particulier, un des buts de la coordination entre les activités de dissémination et de formation aux utilisateurs est de permettre à des personnes nouvellement formés de se comporter en vecteurs de dissémination dans leurs propres communautés. Cela est essentiel pour rendre disponible largement les outils d'Euforia dans les communautés utilisateurs et développeurs de codes de fusion.
Enfin, pour harmoniser le développement de l'infrastructure informatique et les besoins en modélisation du projet ITER et maintenir le contact avec les participants du projet Iter (développement de codes et modélisation), il a été décidé de mettre en place une équipe de coordination, dotée d'un appui technologique fort, au sein du comité de pilotage.

#### Objectifs de NA1

* Prendre en charge l'administration et la gestion de l'ensemble du consortium
* Assurer la coordination globale entre (et au sein de) les activités de recherche et de Service
* Coordonner les efforts de diffusion de NA3 et de documentation/formation aux utilisateurs de NA2
* Coordonner les activités avec EGEE, DEISA, ICEAGE et BELIEF à partir des financements déjà existants
* Réfléchir aux liens avec d'autres projets européens de calcul réparti ou haute performance
* Chercher d'autres sources de financements en prenant contact avec des décideurs ou des hommes politiques
La réussite de la gestion du projet se traduit par la performance du projet dans son ensemble et peut être obtenue par une veille permanente, un passage en revue des étapes et des choix au sein des tâches ainsi qu'une mesure continue (assesment) des progrès réalisés et le cas échéant la mise en place de mesures correctives.

### Activité NA2 : Documentation et formation utilisateur

NA2 rédige la documentation et organise les formations pour les utilisateurs, afin de leur permettre d'utiliser les infrastructures de calcul haute performance et de Grille de calcul. Cette activité comporte un programme de formations conçu pour permettre aux utilisateurs d'acquérir les connaissances et la pratique de l'utilisation de l'infrastructure. De plus, le projet fournira un ensemble complet de documentations, y compris des guides utilisateurs et des Foires aux questions.

#### Objectifs de NA2

* Écrire des documents, des FAQ et des conseils d'utilisation aux utilisateurs de la Grille de calcul ou du calcul haute performance
* Mettre en place un programme de formation complet pour les développeurs et les utilisateurs, en particulier un guide d'utilisation.

### Activité NA3 : Diffusion

La diffusion consistera principalement à identifier et proposer une image fidèle du projet ainsi que de son utilisation par des utilisateurs potentiels. Dans le même temps, cette image doit être attrayante en mettant en avant les avantages tirés du rapprochement des communautés DEISA, EGEE et EUFORIA (grille de calcul et calcul haute performance). La diffusion jouera également un rôle clé en permettant aux utilisateurs potentiels d'assister à des présentations lors d'évènements scientifiques. Ces présentations seront fondamentales à l'initiation de ces utilisateurs aux outils développés dans le projet. On attend que la diffusion donne une image générale du projet.
La plupart des utilisateurs, développeurs et des communautés scientifiques auront leur premier contact avec le projet EUFORIA à travers l'activité de diffusion. L'élargissement du projet à d'autres communautés d'utilisateurs dépendra de la qualité et de l'efficacité des actions menées pour augmenter sa visibilité.

#### Objectifs de NA3

* Diffuser les objectifs et les bénéfices de la grille de calcul et du calcul haute performance dans le domaine de la fusion, ainsi que les avantages à rejoindre ou utiliser l'infrastructure du projet EUFORIA.
* Définir les méthodes de diffusion et le contenu des messages pour atteindre chaque communauté.
* Fournir du matériel de diffusion adapté aux publics visés et les rendre accessibles
* Informer les communautés scientifiques sur la manière de s'impliquer dans le projet
* Apporter directement des utilisateurs potentiels pour qu'ils puissent devenir des utilisateurs EUFORIA
* Garder les communautés informées des améliorations et des nouvelles fonctionnalités.

## Service Activities (SA)
### Activité SA1 : Déploiement et exploitation de l'infrastructure de grille

L'objectif de cette activité est de fournir une infrastructure de grille de calcul avancée pour le calcul scientifique, dans le but de développer les activités de fusion dans l'Espace européen de la recherche. Le projet intégrera des ressources de calcul distribué à l'intérieur d'un service de grille cohérent permettant aux chercheurs de s'attaquer à de nouveaux défis scientifiques. L'activité d'exploitation de l'infrastructure de grille a pour but de déployer, maintenir et exploiter cette grande infrastructure de grilles distribuées.

#### Objectifs de SA1

* Déployer, maintenir et exploiter les services centraux nécessaires à l'intégration de ressources de calcul dans une infrastructure de grille capable d'accueillir des applications séquentielles et parallèles
* Coordonner le déploiement la maintenance et l'exploitation des ressources fournies par les sites participants en garantissant un service robuste, sécurisé et fiable
* Fournir une assistance aux "Virtual Organizations (VO)" et aux fournisseurs de ressources pour aider les utilisateurs finaux.
* Fournir une assistance aux responsables de VO et aux responsables de site pour qu'ils atteignent leurs objectifs et contribuer à la bonne utilisation de l'infrastructure
Le contexte de cette activité repose sur la consolidation d'une grille de recherche traversant l'Europe. L'infrastructure sera compatible avec les services du middleware EGEE, ce qui contribuera à la standardisation et la consolidation des e‐Infrastructures en Europe. Pour atteindre ces objectifs, le projet suivra les recommandations d'organismes internationaux tels que l'e‐IRG (e-Infrastructure Reflection Group) et l'Open Grid Forum.

### Activité SA2 : Infrastructure HPC

Les développeurs de code appartenant au groupe JRA2 se concentrent sur l'optimisation des codes utilisés par les communautés des plasmas et de la fusion. Pour que ce travail d'optimisation se déroule correctement, les développeurs de codes et les scientifiques doivent avoir accès à des moyens de calculs adaptés pour tester, debugger et faire tourner ces codes. De plus, les tests de faisabilité ainsi que les vrais exécutions de production par les scientifiques eux-mêmes, nécessiteront des accès à ces moyens de calcul haute performance.
Le principal objectif de SA2 est donc de sécuriser l'accès des développeurs de codes et des scientifiques aux moyens de calcul haute performance et aux services clients des différents centres de calcul. (Il s'agit, du CSC à Helsinki, du BSC à Barcelone et du EPCC à Édimbourg).

#### Objectifs de SA2

* Fournir une assistance à l'effort d'optimisation de code du groupe JRA2
* Fournir un accès aux moyens de calcul haute performance pour effectuer les tests de faisabilité avec les codes parallèles appartenant à la plate-forme

### Activité SA3 : Assistance des utilisateurs pour les activités de calcul haute performance et de grille

SA3 fournira aux utilisateurs scientifiques, avec les moyens d'enseignement appropriés, des formations concernant l'utilisation des infrastructures HPC et de grille. Ces formations seront rapides et efficaces. Il n'y aura qu'une seule interface pour les utilisateurs, fournissant un guichet unique qui permet d'exploiter l'ensemble des compétences des différentes institutions partenaires. Cela concernera l'enregistrement des utilisateurs; gestion des ressources et des comptes; et un unique help desk (bureau d'assistance) pour tous les utilisateurs. Cette activité soutient beaucoup d'autres activités, telles que JRA1, JRA2, JRA3 et JRA4.

#### Objectifs de SA3

* Fournir, à travers une seule interface utilisateur, l'administration des utilisateurs, la gestion des ressources, la gestion des comptes, l'édition de rapports et un helpdesk central pour les utilisateurs de ce service.
* Fournir une assistance, sur un large panel d'applications, au portage et à l'optimisation initiales de leurs applications sur l'infrastructure d'EUFORIA

## Joint Research Activities (JRA)
### Activité JRA1: Adaptation des codes à l'infrastructure de grille

Dans JRA1, un ensemble de codes modélisant le plasma de cœur et de bord seront adaptés à l'architecture de la grille informatique. L'objectif principal est d'explorer les possibilités qu'offrent l'architecture de grille à la recherche dans le domaine de la fusion, en commençant avec un sous-ensemble de codes sélectionnés parmi un éventail de codes de transport et de turbulence de cœur et de bord. Un ensemble de codes seront adaptés dans un premier temps et un workflow utilisant deux codes sera installé sur la grille dans un deuxième temps. La liaison entre les workflow séquentiels et parallèles sera une fonctionnalité déterminante pour la fusion nucléaire dans le futur. Une attention particulière y sera donc portée. Les leçons tirés du portage des codes et de la gestion des données serviront aux futures simulations et expériences de fusion.

#### Objectifs de JRA1

* Porter un ensemble de codes séquentielles dans un environnement de grille avec au moins quelques codes mixtes séquentiels-parallèles
* Acquérir de l'expérience dans l'exécution de codes et de gestion des données à l'intérieur d'un environnement de work flow.

### Activité JRA2 : Adaptation des codes pour l'infrastructure de calcul haute performance

Dans JRA2, un ensemble de codes incontournables dans les domaines de la physique des plasmas et de la fusion par confinement magnétique seront portés sur les supercalculateurs de centres de calculs participants au projet. L'objectif est d'accélérer l'exécution des programmes et de les rendre capable d'utiliser un grand nombre de processeurs pour résoudre des problèmes de plus grande taille. Les capacités de modélisation seront mise en avant par rapport au full-scale modelling##. Les codes seront conçus pour tirer parti par les calculateurs actuels de l'ordre du TeraFlops de même que ceux de demain qui seront de l'ordre du PetaFlops. Dans le même temps, ils pourront être exécutés en tant que composant dans un environnement de workflow.

#### Objectifs de JRA2

* Améliorer le passage à l'échelle des codes
* Optimiser leur performances sur les architectures de processeurs modernes
* Adapter les codes de telle sorte qu'ils s'intègrent dans un outil d'orchestration de workflow

### Activité JRA3 : Orchestration de workflow

Le couplage des différents modules de calcul nécessite une grande coordination et une gestion efficace des données et de l'ordonnancement des ressources. Une orchestration de workflow facilite grandement le processus d'intégration et fournit un cadre structuré pour effectuer des tâches supplémentaires telles que le contrôle de suivi et le pilotage de simulation. Cela fournit également un point d'entrée pour un accès standardisé aux données et aux outils de post-traitement des utilisateurs.

#### Objectif de JRA3

* Gérer ensemble les différentes tâches sur les infrastructures de grille et de calcul haute performance à l'aide d'un outil d'orchestration de workflow, capable de lier entre eux et d'exécuter automatiquement les différents modules installés.
* Développer une interface utilisateur unique pour l'administration des utilisateurs, questions des utilisateurs, gestion des ressources, gestion des comptes et des rapports. Cette interface répondra aux besoins de l'activité SA3 qui est chargé de la gestion de ces aspects.

### Activité JRA4 : Visualisation

L'objectif de JRA4 est de fournir un ensemble d'outils de visualisation unifiés pour les codes intégrés à la plate-forme. Certains de ces outils permettront d'effectuer des post-traitements sur les données générées par les codes, d'autres seront intégrés au workflow directement dans Kepler pour permettre la visualisation et le suivi des résultats durant l'exécution du workflow. Les outils de visualisation développés dans JRA4 seront basés sur des logiciels libres existants tel que Python, numpy et matplotlib d'une part, et VTK et VisIt d'autre part.

#### Objectifs de JRA4

* Fournir un ensemble d'outils de visualisation unifiés disponibles dans Kepler pour visualiser à distance des données stockés sur la grille
* Implanter des outils de visualisation plus puissants qui puissent être utilisés pour traiter les données générées
* Mettre au point un nouvel outil de compression avec perte dans le but de prendre en compte la grande masse de données générée par certains codes.
* Développer des outils de spécifiques pour visualiser de fonctions de distribution de particules 4D ou 5D.