Visiteurs#:
Connectés:
*accès restreint
#depuis le 20/10/2008
Séminaire Aristote du 16 Octobre 2008
Amphithéâtre Becquerel, école polytechnique, Palaiseau.
GENCI, CAPS Entreprise, Aristote.
Coordination scientifique:
Vous trouverez au bas de cette page les résumés des présentations. Les transparents utilisés par les orateurs sont disponibles au format pdf en cliquant simplement sur le titre dans le programme. Vous pouvez aussi télécharger les actes complets (présentation, résumés et transparents).
Comment la révolution des “multi coeur” va-t-elle changer la programmation des applications ?
La diffusion des processeurs multi-coeur généralistes et spécialisés, tels les processeurs graphiques, permet de proposer des puissances de calcul potentielles extraordinaires. Cependant l’exploitation efficace de ces nouvelles architectures repose sur une programmation parallèle à multiples niveaux (parallélisme de tâche, de données, vectoriel) qui complexifie la mise en oeuvre des applications. A moyens terme une profonde évolution des pratiques de développement des logiciels sera nécessaire pour tirer parti de cette nouvelle offre. Cette journée se propose d’offrir un aperçu des tendances et défis de l’utilisation des architectures multi-coeurs hétérogènes, en faisant une large part aux présentations et démonstrations des constructeurs ainsi qu'aux retours d'expérience des utilisateurs
| François Bodin (CAPS-entreprise, IRISA) | Introduction: défis et enjeux |
|---|
Les architectures multi-cœurs homogènes d’Intel ou d’AMD sont dorénavant la panacée des équipements informatiques avec déjà la sortie toute prochaine des processeurs octo-coeurs. Mais lorsque performance et consommation électrique sont de mises, l’utilisation d’accélérateurs matériels spécialisés peut être incontournable.
Certains processeurs spécialisés, tels les GPU, sont peu coûteux et largement diffusés sur leur marché d’origine. Leur exploitation dans des applications autres que leur domaine d’utilisation représente l’exemple parfait du dilemme auquel les développeurs sont confrontés. Les GPU peuvent offrir des gains en performance de plusieurs ordres de grandeur pour des calculs exprimant un parallélisme de données élevé. Pourtant, contrairement aux systèmes multi-cœurs homogènes dont le parallélisme de tâches peut être exploité avec OpenMP ou MPI, aucun modèle data parallel (ou streaming) standard n’est aujourd’hui disponible pour la programmation des architectures spécialisées. Ceci complexifie la tâche des développeurs qui doivent également tenir compte du caractère distribué de la mémoire pour intégrer ces accélérateurs dans leurs applications. Même si l’avenir des GPU dans le domaine du calcul généraliste n’est pas certain, ceux-ci représentent certainement un bon exemple sur comment utiliser efficacement des centaines de cœurs.
Dans cette présentation nous abordons les défis et enjeux de la programmation de ces systèmes hybrides combinant processeurs multi-cœurs généralistes et accélérateurs matériels.
| William Jalby (PRISM, UVSQ) | Principes des architectures multicoeurs |
|---|
In 3 years, the computer architecture landscape has deeply changed: after hitting the menmory wall and the ILP wall a third wall has popped up: power. Taking into account all of these constraints is becoming a key challenge. The multicore avenue solves (but only partially) these problems. We will review a few trends in processor architecture and discuss some of their impact on applications.
| Jean-Christophe Baratault NVIDIA | Utiliser le GPU comme coprocesseur de calcul, l’écosystème NVIDIA |
|---|
L’architecture des GPU est massivement parallèle depuis plus de 10 ans, ce pour traiter des données graphiques 3D photo réalistes en temps réel . Pressentant l’émergence de solutions de calcul hybrides multi-cœur en environnement hétérogène, NVIDIA a massivement investi depuis 4 ans pour offrir un environnement complet de développement et de déploiement axé sur le traitement des données non-graphiques par le GPU. La présentation détaille la stratégie de NVIDIA en ce domaine ainsi que l’écosystème mis en œuvre pour répondre aux attentes des clients industriels.
| Bruno Stefanizzi AMD/ATI | Hybrid Computing |
|---|
Parallel HPC applications benefit from multi core CPU technology and have been able to multiply the computation density by a factor of 2 to 4 and later by 8. This improvement is not enough compared to the computation requirements of today’s applications. This is why people have been looking for new hardware and specialized processors which could give applications gains from 20 up to 100.
Specialized processors like GPUs have improved performance at a greater pace than Moore law predicts. They started 10 years ago with a technology using 350nm, 5 million transistors at 75Mhz and now are using 55nm, 700Millions transistors at 800Mhz being able to deliver 512GFlops or more than 3.5GFlops/Watt.
This leads to improvements factors of 1.7x/year in transistors count, 1.3x/year in clock speed, 2.0x/year in processing units and 1.3x/year in memory bandwidth. Using such powerful dedicated processors as well as CPU in a highly parallel environment of Multi-core for both is showing the requirement to be able to use in the most efficient way this heterogeneous environment of Hybrid computing.
This hardware environment exists and can be used today. The first challenge is on the software development side. Development tools need to integrate heterogeneous programming as well as multi core from the core of their language being able to support code generation on different processors types as well as handling asynchronous behaviors. This comes with compilers and libraries supporting this and being design or extended for it. Obviously those tools need to support multiple hardware platforms to lead to some standards.
The second key challenge change is the evolution of buses and bandwidth linking together the different cores of CPU and GPUs. And the way they talk to each other. Fusion projects will address those evolutions in the future by defining new architectures around those processors to improve the data flow between them which will be the key to use all the power available. Cross bar memory controllers will allow GPUs to talk each other very quickly without breaking parallelism. Hyper Transport bus will improve communication between GPUs and CPUs. Finally Multi core GPUs and CPUS on the same die will increase even more the compute density.
Different benchmarks and application codes have been used to demonstrate already the benefits so such architecture. We will present SGEMM results as well as different algorithms.
The results will highlight the fact that performance is affected by in/out copy of the data on the GPU at the moment and that finer tunings allows huge jump in performance. We will also show that changing the way algorithms have been implemented for CPU to fit GPU architecture adds even more performance gains.
| Jean-François Lemerre (Bull) | La vision de Bull pour les futurs systèmes HPC |
|---|
Exposé des principaux développements dans le domaine de l'architecture en cours chez Bull pour fournir les futurs systèmes HPC capables de couvrir les besoins allant de quelques teraflops jusqu'au petaflops
| Olivier Multon (IBM) | Le processeur Cell, un multi-cœurs innovant et efficace pour le HPC et le multimédia |
|---|
Pendant de nombreuses années, la vitesse d’horloge des microprocesseurs a augmenté en vue d’accroître leurs performances. Cette technique est à présent dépassée compte tenu des limites physiques des semi-conducteurs et des architectures des processeurs traditionnels. Les problèmes de consommation énergétique, de dissipation et de temps de latence des mémoires réduisent en effet la réalité des gains réalisés sur les performances réelles des applications.
Ces nouvelles contraintes ont amené IBM, Sony et Toshiba à s’associer pour la conception, l’industrialisation et la commercialisation en volume du processeur multi-cœurs Cell qui décline de nombreuses innovations technologiques tout en équipant déjà aujourd’hui plusieurs millions de consoles de jeux Sony PS3.
Processeur multi-cœurs hérérogène (de type 8 SPE + 1 PPE) privilégiant la manipulation de gros volumes de données, le processeur IBM Cell est maintenant disponible dans des serveurs industriels à base de lames Cell BE QS22 de 200Gflops (DP) intégrables dans des configurations multi-nœuds de clusters ainsi dotés de ces accélérateurs spécifiques.
Le processeur Cell est doté d’un environnement de programmation utilisable sur toutes les plateformes qui l’intègrent, allant de la Sony PS3 au cluster de lames QS22 en passant par les cartes accélératrices comme celles de Mercury Computer. Les techniques de programmation y évoluent elles aussi régulièrement : elles incluent désormais des modules optimisés de bibliothèques numériques « standardisées » et l’utilisation de compilateurs de hauts niveaux capables de gérer efficacement les 8 cœurs de traitement.
Les applications de calcul haute performance en cluster, la création de contenus numériques, la surveillance vidéo numérique, le traitement de l’image et du signal, les algorithmes financiers, la recherche scientifique et les analyses sismiques peuvent ainsi utiliser ce tout nouveau type d’architecture pour obtenir des niveaux de performances très intéressants.
| Raymond Namyst (LABRI) | Architectures multicoeurs hétérogènes: à quoi vont ressembler les supports exécutifs “next-gen” |
|---|
Alors que les langages et environnements de programmation parallèle actuels accusent déjà un certain retard vis-à-vis des architectures multicoeurs disponibles depuis quelques années, c'est peu dire que le fossé entre le matériel et le logiciel va se creuser davantage avec la démocratisation des architectures hétérogènes (Cell, GPCPU) et/ou massivement multicoeurs. Ainsi faut-il non seulement composer avec les “pénalités NUMA” exhibées par le matériel, mais aussi avec l'absence de cohérence mémoire entre certains accélérateurs ou encore avec le mode de fonctionnement SIMD de certaines unités de calcul.
Dans cet exposé, nous nous focaliserons sur la conception de supports exécutifs pour de telles machines. En nous appuyant sur des travaux récents dans ce domaine, nous montrerons pourquoi il est nécessaire de repenser leur articulation avec les langages et environnements de programmation, autour d'une vision abstraite – mais surtout pas totalement masquée – de l'architecture sous-jacente. Nous insisterons également sur la necessité de générer du parallélisme “structuré” et “polymorphe”, que le support exécutif sera alors en mesure d'appréhender efficacement tout au long de l'exécution…
| Ronan Keryell (HPC Project) | Les outils de programmations |
|---|
L'architecture des moyens de calculs est en pleine révolution avec la généralisation des processeurs multi-cœurs, l'apparition d'accélérateurs hétérogènes (Cell, Larrabee, …) et bien sûr la démocratisation des GPGPU (nVidia, AMD/ATI). La programmation de telles “bêtes de course” pose de nombreux problèmes scientifiquement intéressants mais en même temps effrayants, si on considère que c'est une voie obligée pour survivre à la fin de la loi de Moore en terme de vitesse d'horloge des processeurs.
Dans cet exposé on présentera la problématique de la programmation de ces systèmes, les outils principaux disponibles pour développer et mettre au points les programmes sur ces architectures, avec des langages comme OpenMP, Cuda, Brook+, HMPP, … ou des bibliothèques spécialisées, ACML, CuBLAS, EcoLib…
| Henri Calandra (TOTAL) | Accélération de la reverse time migration (RTM) à l'aide de GPGPU, où en sommes nous ? |
|---|
Présentation conjointe Total et CAPS Auteurs :
Très adaptée à l’imagerie de structures géologiques complexes, la méthode du reverse time migration (RTM), introduite au début des années 1980, connaît aujourd’hui dans l’industrie pétrolière un fort regain d'intérêt pour l’imagerie sismique profondeur en raison de la puissance de calcul dorénavant disponible.
Toutefois, cette famille de méthodes d'imagerie, basée sur la résolution de l'équation des ondes complète, nécessite des ressources de calculs qui aujourd'hui encore requièrent l'utilisation de clusters de plusieurs dizaines de milliers de cœurs de processeurs généralistes.
La mise à disposition récente de nouvelles générations de cartes graphiques ouvre de nouvelles directions de recherches algorithmiques pour nos applications scientifiques. En exploitant au mieux le parallélisme naturel de nos algorithmes et en tirant partie du parallélisme massif de données offert par les cartes graphiques, nous devrions alors obtenir une accélération de calcul qui permette de résoudre des problèmes non calculables avec les technologies multi-cœurs actuelles
Toutefois l'utilisation des cartes graphiques comme technologie accélératrice pose le problème de leur intégration dans une architecture HPC ainsi que celui de la programmation des algorithmes.
Nous présentons l'état de nos travaux sur l'utilisation des cartes graphiques NVIDIA pour la résolution de la RTM. Après avoir rapidement exposé la méthode, nous décrivons notre première mise en œuvre et discutons de son impact algorithmique et des solutions apportées. Nous présentons également l'utilisation de l’environnement de programmation HMPP développé par CAPS qui, à l'aide de directives de compilation, donne au développeur un niveau élevé d'abstraction.
| Thomas Guignon (IFP) | Implémentation d'un solveur creux sur GPU |
|---|
Afin d'optimiser et de déterminer le plan de développement d'un gisement pétrolier, les companies pétrolières ont besoin de prédire l'historique de production d'un gisement en fonction de divers scénarios d'implémentation des puits.
Dans ce but, elles utilisent des simulateurs de réservoirs qui modélisent numériquement l'exploitation d'un champ pétrolier à partir des équations d'écoulement des fluides dans un milieu poreux.
L'IFP poursuit des travaux de recherche dans le domaine de la simulation de réservoir dont la thématique s'inscrit dans une de ses priorités stratégiques visant à repousser les limites de l'exploration pétrolière.
La résolution numérique des équations d'écoulements passe par l'utilisation intensive de solveurs itératifs creux de type biCGStab couplés à des préconditionneurs iLU ou multigrilles.
Le temps passé dans ces solveurs pouvant représenter jusqu'à 70% du temps total de simulation, l'IFP dans le cadre du projet ANR PARA (Parallelisme et Amélioration du Rendement des Applications) explore depuis 2 ans l'utilisations d'accélérateurs graphiques afin de déporter l'exécution des solveurs et ainsi réduire les temps d'exécution.
Nous présenterons l'état de nos travaux sur l'utilisation d'accélérateurs graphiques tout en présentant dans un premier temps les méthodes numériques utilisées, la méthodologie suivie afin d'implémenter le solveur creux efficacement sur un GPU puis nous présenterons les résultats obtenus.
Ces derniers font apparaitre sur des cartes graphiques de dernière génération de type nVIDIA 8800 GTX ou C1060 des gains allant de 20x en simple précision à 8x en double précision par rapport à un coeur d'un processeur de dernière génération.
| Laurent Domingos (BNP Parisbas) | Application du GPU à la calibration de modèles sur processus stochastiques pour la finance |
|---|
Les modèles de processus stochastiques utilisés en finance sont toujours plus complexes et coûteux en terme de temps de simulation et de calibration. Les causes en sont multiples: appels nombreux à des fonctions non primitives (plusieurs cycles), manipulation de gros tableaux, simulation de nombreuses trajectoires “monte carlo”. Nous montrons combien le GPU nous permet de fournir un modèle rapide et réactif et comparons aux solutions existantes.
| Thierry Deutsch (CEA) | Utilisation des GPU et des ondelettes pour le calcul des structures électronique |
|---|
Thierry Deutsch CEA-Grenoble, INAC, Luigi Genovese, ESRF, Grenoble, Matthieu Ospici, Bull (doctorant), Jean-François Méhaut, UJF/INRIA/LIG (Laboratoire Informatique de Grenoble)
Les codes de calcul de structure électronique, fondés sur la mécanique quantique, se retrouvent dans de nombreux domaines basés sur la structure ou la propriété des systèmes atomiques : en science des matériaux, en chimie, dans le domaine pharmaceutique et aussi dans le domaine médical couplé dans ce cas à des méthodes multi-échelles. Ces codes sont très gourmands en ressources de calcul. Récemment, dans le cadre du projet européen BigDFT, nous avons développé un code performant, massivement parallèle fondée sur les ondelettes et leurs propriétés de multi-résolution.
Dans le contexte d'une collaboration pluridisciplinaire entre physique et informatique, nous avons développé une version hybride du code s'exécutant sur CPU et sur GPU. Au cours de cet exposé, nous montrerons l'approche que nous avons suivie et les performances obtenues.
Une démonstration sera, si c'est possible, réalisée soit sur un noeud GPU du futur calculateur du GENCI au CCRT, soit sur un serveur hybride CPU-GPU de l'INRIA.
| Mathieu Giraud (LIFL) | Bioinformatique et calcul haute-performance |
|---|
Les données bioinformatiques issues des séquençages sont toujours en croissance exponentielle. Aux génomes de référence s'ajoutent maintenant les variations individuelles tout comme les méta-génomes (séquences d'organismes prélevés dans un même milieu).
Nous présenterons dans cet exposé quelques traitements parallèles sur ces données : certains se contentent d'un parallélisme à gros grain, facile à mettre en oeuvre sur cluster ou sur GPU, d'autres demandent des analyses plus fines pour traiter au mieux les différents accès mémoire. La comparaison intensive de séquences est souvent au coeur de ces algorithmes, mais d'autres défis surgissent des dernières technologies, notamment avec les séquenceurs de dernière génération. Nous parlerons aussi d'une méthode générique pour certains problèmes de programmation dynamique.
| David Delfour (Univ. Perpignan) | Transferts d'applications sur le GPU |
|---|
Au cours de ces 10 dernières années, l’augmentation de performance offerte par les processeurs généralistes, ou CPU, pour les applications généralistes mono-thread a été freinée par la faible IPC présente dans ces applications et le problème de la de la dissipation thermique. En parallèle, les processeurs graphiques ou GPU, ont de leur coté utilisé les transistors disponibles pour augmenter les performances des applications graphiques qui disposent d’un important parallélisme de données et de calcul spécifiques.
Les GPU et les API de programmation associées tendent actuellement vers plus de généricité, ce qui rend possible et à moindre coût, l’accélération de programmes généralistes. Cependant, exploiter cette puissance de calcul n’est pas sans poser un certain nombre de problème en terme d’accès mémoire, de précision des calculs et d’accès aux caractéristiques matérielles. Nous verrons dans cet exposé les problèmes que nous avons rencontrés et leurs solutions.