====== Première journée scientifique ======
{{:animation_scientifique:journeessci:2011-emailing_journee_plafrim.jpg?600}}
Déjà un an que PlaFRIM, la plateforme d’expérimentation autour de la modélisation et du calcul à hautes performances est opérationnelle. Celle-ci regroupe des compétences variées autour des mathématiques appliquées et de l’informatique. Nous vous proposons de participer à la première journée scientifique qui lui est dédiée le <fc #FF0000>mardi 31 mai 2011, afin de faire le point sur les travaux réalisés sur la plateforme et d’avoir un retour d’expérience. ===== Programme =====
Chairman : Gaël Guennebaud
9h00-9h05 Olivier Coulaud Introduction
9h05-9h30 Julien Lelaurain (DIHPES) Etat des lieux de la plateforme. {{:animation_scientifique:journeessci:2011_05_31-julien.pdf|slides}}
9h30-10h00 Jérôme Clet-Ortega (Runtime) [[animation_scientifique:journeessci:2011_05_31#jerome_clet-ortega|Modèles hybrides de programmation pour architectures parallèles.]] {{:animation_scientifique:journeessci:2011_05_31-clet-ortega.pdf|slides}}
10h00-10h30 Olivier Saut (MC2) [[animation_scientifique:journeessci:2011_05_31#olivier_saut|Prediction of the Evolution of Thyroidal Lung Nodules Using a Mathematical Model.]] {{:animation_scientifique:journeessci:2011_05_31-saut.pdf|slides}}
Pause – salle 178
Chairman : Michel Bergmann
11h00-11h30 Sébastien Fourestier (Bacchus) [[animation_scientifique:journeessci:2011_05_31#sebastien_fourestier|Repartitionnement de graphes avec Scotch.]] {{:animation_scientifique:journeessci:2011_05_31-fourestier.pdf|slides}}
11h30-12h00 Pierre Lezowski (IMB) [[animation_scientifique:journeessci:2011_05_31#pierre_lezowski|Corps de nombres et algèbres de quaternions euclidiens pour la norme.]] {{:animation_scientifique:journeessci:2011_05_31-lezowski.pdf|slides}}
12h00-12h30 Luc Giraud (Hiepacs) [[ animation_scientifique:journeessci:2011_05_31#luc_giraud| Parallel experiments with the hierachical hybrid solver MaPhys.]] {{:animation_scientifique:journeessci:2011_05_31-giraud.pdf|slides}}
Déjeuner libre.
Chairman : Brice Goglin
14h00-14h30 Gaël Guennebaud (Iparla) [[animation_scientifique:journeessci:2011_05_31#gael_guennebaud|Eigen: a C++ linear algebra library.]] {{:animation_scientifique:journeessci:2011_05_31-guennebaud.pdf|slides}}
14h30-15h00 Tristan Cabel (Nachos -Inria-Sophia) ** [[animation_scientifique:journeessci:2011_05_31#tristan_cabel|Accélération Multi-GPU d’une méthode DGTD.]]** {{:animation_scientifique:journeessci:2011_05_31-tcabel.pdf|slides}}
15h00-15h30 Julien Diaz (MAGIQUE-3D) [[animation_scientifique:journeessci:2011_05_31#julien_diaz|Discrétisation d’ordre élevé de l’équation des ondes pour l’imagerie sismique.]] {{:animation_scientifique:journeessci:2011_05_31-diaz.pdf|slides}}
Pause – salle 178
Chairman : Andreas Enge
16h00-16h30 Nicolas Loira (Magnome) [[animation_scientifique:journeessci:2011_05_31#nicolas_loira|Plafrim as a platform for high-performance genome assembly and annotation.]] {{:animation_scientifique:journeessci:2011_05_31-loira.pdf|slides}}
16h30-17h00 Nathalie Furmento / Cedric Augonnet (Runtime) [[animation_scientifique:journeessci:2011_05_31#nathalie_furmento|Data-Aware Task Scheduling on Multi-Accelerator based Platforms – StarPU And MPI Hand in Hand.]] {{:animation_scientifique:journeessci:2011_05_31-furmento.pdf|slides}}
17h00-17h30 Michel Bergmann (MC2) [[animation_scientifique:journeessci:2011_05_31#michel_bergmann|Modélisation et simulations numériques de nageurs.]] {{:animation_scientifique:journeessci:2011_05_31-bergmann.pdf|slides}}
Cloture
===== Résumés ===== ==== Michel Bergmann ====
Modélisation et simulations numériques de nageurs.
L’objectif de cet exposé est de présenter quelques résultats de simulations numériques en mécaniques de fluides obtenus sur Plafrim. Plus précisément nous nous intéressons à des écoulements autours d’obstacles déformables qui se déplacent dans le fluide. L’écoulement de fluide est modélisé par les équations de Navier-Stokes (incompressible dans cette étude). La présence des obstacles est prise en compte dans les équations de Navier-Stokes via un terme de pénalisation. L’idée est de considérer le fluide comme un milieu extrêmement poreux (« le fluide passe partout ») et les obstacles comme des milieux très peu poreux (« imperméable »). Nous résolvons de ce fait les mêmes équations dans le fluide et le solide (avec des « porosités » différentes). La discrétisation numérique de ces équations peut alors s’effectuer sur un maillage fixe, et nous choisissons un maillage cartésien (une grille uniforme). Les équations sont discrétisées en espace à l’aide de schémas aux différences finies d’ordre 2 et 3, et l’intégration en temps est effectuée à l’aide d’un schéma de projection d’ordre 2 (adams-bashforth et crank-nicholson). Afin d’illustrer les potentiels de modélisation et de simulations numériques, nous nous intéressons à des exemples de nageurs comme peuvent l’être poissons, méduses ou raies.
==== Tristan Cabel ====
Accélération Multi-GPU d’une méthode DGTD ( Discontinuous Galerkin in Time Domain)
L’objet de cette présentation sera de présenter une accélération multi-GPU d’une méthode de type Galerkin Discontinue formulée en maillage tétraédrique. Cette méthode est appliquée aux équations de Maxwell en domaine temporel en utilisant une approximation polynomiale d’ordre élevé des composantes du champ électromagnétique au sein d’un élément. Les équations semi-discrètes sont intégrées en temps au moyen d’un schéma saute-mouton du second ordre. La méthodologie numérique ainsi dé veloppée est adaptée aux architectures de calcul haute performance modernes comprenant des cartes accélératrices de type GPU, en adoptant une stratégie hybride combinant un modèle de programmation SPMD gros grain pour la parallélisation inter-GPU et un modèle SIMD grain fin pour la parallélisation intra-GPU. Les bénéfices en termes de performance résultant de l’accélération multi-GPU sont démontrées par la réalisation de simulations sur deux système multi-GPU, le cluster du CCRT-CEA Titane (192 C1060) et le cluster de Plafrim Mirage ( 24 C2070). ==== Jérôme Clet-Ortega ====
Modèles hybrides de programmation pour architectures parallèles
Les architectures des plates-formes de calcul haute performance évoluent sans cesse, que ce soit au coeur des processeurs qui sont pour la majorité multi-coeurs, à l’intérieur d’une machine de calcul où l’on va intégrer plusieurs de ces processeurs répartis sur différents noeuds NUMA, ou encore au niveau des réseaux d’interconnexion plus ou moins rapides. Il devient très difficile pour le programmeur d’applications d’obtenir les performances qu’il pourrait escompter de telles plates-formes. De nombreux modèles de programmation tentent d’assister le programmeur dans cette recherche de performances et des efforts sont réalisés pour tenter de définir un langage universel. Actuellement, on peut classifier ces modèles en deux catégories : l’approche par mémoire partagée, dont le modèle phare est OpenMP, et l’approche par mémoire distribuée portée principalement par le modèle de programmation MPI. Par le passé, beaucoup ont tenté de réunir ces deux modèles pour obtenir des performances optimales sur les plates-formes de calcul, à juste titre. En effet, OpenMP délivre de très bonnes performances sur des machines multi-processeurs et le modèle MPI est particulièrement efficace sur des clusters. Cependant, et ce pour plusieurs raisons, une approche utilisant uniquement le modèle MPI apparaît comme étant plus efficace. Notre objectif est de pallier les défauts d’une approche hybride, en évaluant le ratio “nombre de thread / nombre de processus” le plus adapté à la fois à la hiérarchie sous-jacente et au schéma de communication applicatif. Il s’agit ici de s’appuyer sur l’abstraction générique de la topologie matérielle (notamment la hiérarchie mémoire) fournie par l’outil hwloc pour effectuer cette répartition, ainsi que sur le système de traces génériques eztrace pour évaluer l’impact de ces répartitions sur l’exécution de l’application.
==== Julien Diaz ==== Discrétisation d’ordre élevé de l’équation des ondes pour l’imagerie sismique
Il est maintenant bien connu dans la communauté géophysique que les méthodes d’imagerie sismique basées sur la résolution de l’équation des ondes complètes sont les plus efficaces pour traiter les milieux contenant de fortes hétérogénéités. Le technique la plus populaire à l’heure actuelle est la Reverse Time Migration (RTM), qui nécessite la résolution successive de nombreuses équations d’ondes. Il est donc nécessaire d’utiliser des méthodes numériques très rapides, en particulier en trois dimensions. Les méthodes d’éléments finis, qui permettent d’utiliser des maillages adaptés aux hétérogénéités du milieu sont les plus adaptées à notre problème. Parmi les différentes familles d’éléments finis, nous pouvons en particulier considérer les méthodes d’éléments finis spectraux et les méthodes de Galerkine discontinues qui conduisent à des matrices de masses diagonales ou diagonales par blocs et donc facilement inversibles. Cette propriété nous permet s’utiliser des schémas explicites pour la discrétisation temporelle. L’inconvénient des méthodes d’éléments spectraux est qu’elles nécessitent l’utilisation de maillages hexaédriques qui ne sont pas toujours simples à obtenir. Les méthodes de Galerkine Discontinues permettent l’utilisation de maillages tetraédriques et nous avons choisi d’utiliser la méthode dite de pénalité intérieure pour la discrétisation de l’équation des ondes. Au cours de l’exposé, nous montrerons que les performances de cette méthode sont similaires à celles des méthodes d’éléments finis spectraux. Nous proposerons ensuite d’améliorer ces performances par l’utilisation de schémas à pas de temps locaux permettant d’adapter la condition de stabilité aux caractéristiques du maillage. Finalement, nous présenterons des résultats numériques illustrant l’efficacité de la méthode dans un algorithme de Reverse Time Migration. ==== Sébastien Fourestier ====
** Repartitionnement de graphes avec Scotch **
Scotch is a software package for sequential and parallel graph partitioning, static mapping, sparse matrix block ordering, and sequential mesh and hypergraph partitioning. As a research project, it is subject to continuous improvement, resulting from several on-going research tasks. Our talk will focus on graph repartitioning. In this context, the experiments carried out on Plafrim will be presented. We will also briefly present other ongoing work, in the context of our new roadmap.
==== Nathalie Furmento ====
Data-Aware Task Scheduling on Multi-Accelerator based Platforms – StarPU And MPI Hand in Hand
StarPU is a runtime system capable of scheduling tasks over multicore machines equipped with GPU accelerators. StarPU uses a software virtual shared memory (VSM) that provides a high-level programming interface and automates data transfers between processing units so as to enable a dynamic scheduling of tasks. We will present how we have extended StarPU to minimize the cost of transfers between processing units in order to efficiently cope with multi-GPU hardware configurations. To this end, our runtime system implements data prefetching based on asynchronous data transfers, and uses data transfer cost prediction to influence the decisions taken by the task scheduler.
Our approach allows us to obtain significant speedups and high efficiency over multicore machines equipped with multiple accelerators. Our runtime system can also be combined with MPI to allow applications over clusters featuring multiple GPUs per node.
The integration of MPI transfers within task parallelism is done in a very natural way by the means of asynchronous interactions between the application and StarPU. More generally, these interactions allow StarPU to accelerate legacy codes or third-party libraries written using various programming paradigms quite easily. ==== Luc Giraud ==== ** Parallel experiments with the hierachical hybrid solver MaPhys **
Les plate-formes de production disponibles dans les grands centres de calcul sont souvent contraignantes pour l’analyse, l’étude algorithmique, le développement et donc la mise en oeuvre efficace de codes de calcul haute-performance (HPC). Dans cette présentation, nous montrons comment une plate-forme spécialisée de recherche contribue à améliorer ce processus pour le développement et la validation d’un code HPC. Nous illustrons nos propos par une étude mémoire, numérique et de performances d’une approche hybride hiérarchique (direct/itératif) pour la résolution de systèmes linéaires de grande taille et ce sur la librairie MaPhyS développée par l’équipe projet HiePACS.
==== Gaël Guennebaud ====
Eigen: a C++ linear algebra library
Eigen is a C++ template library for linear algebra developed as an open source
project under the LPGL license. Its features
cover matrix-vector manipulations (a la MatLab), most of the BLAS and LAPACK,
transformations, sparse matrices as well as some work in progress modules
covering non linear solvers, automatic differentiation, matrix functions, etc.
Eigen does not rely on any external library. Nevertheless, thanks to highly optimized matrix product kernels, it achieves comparable performance to optimized BLAS implementations such as MKL or BotoBLAS for large matrices, while being considerably faster for small fixed size objects.
Eigen embeds an explicit and generic vectorization engine currently supporting AltiVec, SSE, and ARM NEON.
The core of Eigen is based on the concept of expression templates: at compilation time an expression as “D=2*A+b+C;” is converted into an expression tree on which different optimization are performed using meta-programming techniques. For instance, this allows us to remove temporaries, to reduce the number of loops and memory accesses, to produce more efficient vectorized code, and to offer an elegant high level API without compromising the performance. In addition, a cost model allows us to finely control loop unrolling and immediate evaluation of sub expression to reduce the overall expression complexity.
Finally, all kernels and mechanisms in Eigen are implemented in a generic way allowing to achieve high performance for any custom scalar type (e.g., rational numbers, multi-precision floating points, auto-diff scalar types, etc.). ==== Pierre Lezowski ==== “Corps de nombres et algèbres de quaternions euclidiens pour la norme.”
Étant donné un corps de nombres K, on peut chercher à savoir si la norme permet de définir une division euclidienne pour l’anneau des entiers de K.
Nous verrons qu’en utilisant les propriétés élémentaires de la norme, il est possible de transformer cette question en un problème géométrique.
Cela nous mènera naturellement à définir les notions de minima euclidien et inhomogène, nombres réels (en fait rationnels presque sûrement) qui permettent de mesurer des points de vue arithmétique et géométrique l’aptitude du corps de nombres à admettre une division euclidienne s’appuyant sur la norme.
Après avoir présenté rapidement les résultats principaux sur ces minima, nous verrons qu’il est possible de calculer ces nombres explicitement, en insistant sur les parties qui nécessitent beaucoup de calculs et nous donnerons quelques résultats obtenus à partir des algorithmes présentés.
On peut aussi se poser le même genre de question dans un autre contexte, celui des algèbres de quaternions. Nous donnerons un exemple d’adaptation de l’algorithme aux algèbres de quaternions totalement définies sur un corps de nombres quadratique réel.
==== Nicolas Loira ====
** Plafrim as a platform for high-performance genome assembly and annotation ** In recent years, the evolution of low-cost, high-throughput sequencing methods to read DNA molecules, has provided vast amounts of data that, to be useful for research, medical and biotechnological applications, needs to be processed and analyzed with bioinformatic tools. One of the critical steps in this process is the assembly of short reads obtained from new-generation sequencing machines, into consensus genome sequences. The processing of this huge amount of data provide many algorithmic and technical challenges, which are being undertaken by the bioinformatics community.
In this presentation we will give an introduction to our experience with genome assembly, in the context of our collaborations with Bordeaux 2 and the ISVV. We will provide technical details about our experience with the Plafrim platform, in the form of use cases and usage statistics. Also, we will discuss our plans and needs for our future analyses. ==== François Rue ====
**EZTrace: easy to use trace generator. ** EZTrace is a tool that aims at generating automatically execution traces from parallel applications. Without any modification in the application, eztrace can provide precise information on the program behavior (MPI communications, OpenMP parallel sections, etc.). These informations are gathered in Paje trace files (or otf trace files) that can be interpreted by visualization tools.
eztrace is avalaible under the GPL-2 licence. ==== Olivier Saut ====
Prediction of the Evolution of Thyroidal Lung Nodules Using a Mathematical Model
Refractory thyroid carcinomas are a therapeutic challenge owing to some being fast-evolving - and consequently being good candidates for trials with molecular targeted therapies - whilst others evolve slowly. This variation makes it difficult to decide when to treat. In collaboration with the Institut Bergonié, we have developed a diagnostic tool to help physicians predict the evolution of thyroidal lung nodules. In this talk, this tool and some of its applications will be presented.