Séminaires précédents

Saisons précédentes


Saison 1: de Novembre 2014 à Juillet 2015

Saison 2: de Septembre 2015 à Juillet 2016





Saison 2016-2017 (début Septembre 2016)


29  Septembre 2016  – Séminaire n°50 Décomposition Automatique des Programmes Parallèles pour l’Optimisation et la Prédiction de Performance.

Présentation par: Mihail Popov, Doctorant à l’Université de Versailles Saint-Quentin-En-Yvelines.

Salle Paul Gauguin, Ter@tec, 10h – durée: 45 min.

Résumé

Dans le domaine du calcul haute performance, de nombreux programmes étalons ou benchmarks sont utilisés pour mesurer l’efficacité des calculateurs, des compilateurs et des optimisations de performance. Les benchmarks de référence regroupent souvent des programmes de calcul issus de l’industrie et peuvent être très longs. Le processus d’étalonnage d’une nouvelle architecture de calcul ou d’une optimisation est donc coûteux.

La plupart des benchmarks sont constitués d’un ensemble de noyaux de calcul indépendants. Souvent l’étalonneur n’est intéressé que par un sous-ensemble de ces noyaux, il serait donc intéressant de pouvoir les exécuter séparément. Ainsi, il devient plus facile et rapide d’appliquer des optimisations locales sur les benchmarks. De plus, les benchmarks contiennent de nombreux noyaux de calcul redondants. Certaines opérations, bien que mesurées plusieurs fois, n’apportent pas d’informations supplémentaires sur le système à étudier. En détectant les similarités entre eux et en éliminant les noyaux redondants, on diminue le coût des benchmarks sans perte d’information.

Cette thèse propose une méthode permettant de décomposer automatiquement une application en un ensemble de noyaux de performance, que nous appelons codelets. La méthode proposée permet de rejouer les codelets, de manière isolée, dans différentes conditions expérimentales pour pouvoir étalonner leur performance. Cette thèse étudie dans quelle mesure la décomposition en noyaux permet de diminuer le coût du processus de benchmarking et d’optimisation. Elle évalue aussi l’avantage d’optimisations locales par rapport à une approche globale.

 

plaquette de diffusion

 


 

06  Octobre 2016  – Séminaire n°51 Balance-enforced multi-level algorithm for multi-criteria graph partitioning.

Présentation par: Rémi Barat, Doctorant au CEA.

Salle de formation CCIE, Rez-de-Chaussée, Ter@tec, 10h – durée: 20 min.

Résumé

Nowadays, numerical simulations model increasingly complex phenomena. They require deeply coupled multi-physics codes that are designed to run on large distributed memory computers. On these kinds of architecture, data decomposition is critical to achieve good performance.
While distributing the data between the processes, two challenges must be addressed: balancing the workload between all processes, while minimizing the communications between processes.

Load balanced partitioning of a mesh with minimal communications can be reduced as a graph or hypergraph partitioning problem. Most of the current approaches do not strictly enforce constraints, returning partitions that are not always valid in respect to the constraints. We present an algorithm which strictly enforces balance constraints for all criteria. We will compare to Scotch and Metis, and comment their respective behaviors on small meshes.

 

plaquette de diffusion

 


13 Octobre 2016  – Séminaire n°52 Étude et obtention d’heuristiques et d’algorithmes exacts et approchés pour un problème de partitionnement de maillage sous contraintes mémoire.

Présentation par: Sebastien Morais, Doctorant au CEA.

Salle Paul Gauguin, Ter@tec, 10h – durée: 30 min.

Résumé

Dans de nombreux domaines scientifiques, la taille et la complexité des simulations numériques sont si importantes qu’il est souvent nécessaire d’utiliser des supercalculateurs à mémoire distribuée pour les réaliser. Les données de la simulation ainsi que les traitements sont alors répartis sur différentes unités de calculs, en tenant compte de nombreux paramètres. En effet, cette répartition est cruciale et doit minimiser le coût de calcul des traitements à effectuer tout en assurant que les données nécessaires à chaque unité de calcul puissent être stockées localement en mémoire.

Pour la plupart des simulations numériques menées, les données des calculs sont attachées à un maillage, c’est-à-dire une discrétisation du domaine géométrique d’étude en éléments géométriques simples, les mailles. Les calculs à effectuer sont alors le plus souvent effectués au sein de chaque maille et la distribution des calculs correspond alors à un partitionnement du maillage. Dans un contexte de simulation numérique, où les méthodes mathématiques utilisées sont de types éléments ou volumes finis, la réalisation du calcul associé à une maille peut nécessiter des informations portées par des mailles voisines.

L’approche standard est alors de disposer de ce voisinage localement à l’unité de calcul. Le problème à résoudre n’est donc pas uniquement de partitionner un maillage sur k parties en plaçant chaque maille sur une et une seule partie et en tenant compte de la charge de calcul attribuée à chaque partie. Il faut ajouter à cela le fait de prendre en compte l’occupation mémoire des cellules où les calculs sont effectués et leurs voisines. Ceci amène à partitionner les calculs tandis que le maillage est distribué avec recouvrement. Prendre explicitement ce recouvrement de données est le problème que nous proposons d’étudier.

EN : In many scientific areas, the size and the complexity of numerical simulations lead to make intensive use of massively parallel runs on High Performance Computing (HPC) architectures. Such computers consist in a set of processing units (PU) where memory is distributed. Distribution of simulation data is therefore crucial: it has to minimize the computation time of the simulation while ensuring that the data allocated to every PU can be locally stored in memory.

For most of the numerical simulations, the physical and numerical data are based on a mesh. The computations are then performed at the cell level (for example within triangles and quadrilaterals in 2D, or within tetrahedrons and hexahedrons in 3D). More specifically, computing and memory cost can be associated to each cell. In our context, where the mathematical methods used are finite elements or finite volumes, the realization of the computations associated with a cell may require information carried by neighboring cells.

The standard implementation relies to locally store useful data of this neighborhood on the PU, even if cells of this neighborhood are not locally computed. Such non computed but stored cells are called ghost cells, and can have a significant impact on the memory consumption of a PU. The problem to solve is thus not only to partition a mesh on several parts by affecting each cell to one and only one part while minimizing the computational load assigned to each part. It is also necessary to keep into account that the memory load of both the cells where the computations are performed and their neighbors has to fit into PU memory. This leads to partition the computations while the mesh is distributed with overlaps. Explicitly taking these data overlaps into account is the problem that we propose to study.

 

plaquette de diffusion


03 Novembre 2016  – Séminaire n°53 Support of a Unified Parallel Runtime in a Compiler: Adding MPC Extended Thread-Local Storage support in PGI Compilers

Présentation par: Jean Perier, Ancien stagiaire à PGI.

Salle Paul Gauguin, Ter@tec, 10h – durée: 25 min.

Résumé

To gain performance in a parallel application, a developer has to choose the compiler and the runtime libraries that will get the most of its code and hardware. Yet, it is not always possible to pick any combination of runtime libraries and compiler because runtime can require a specific support from the compiler.This is the case of the Multi-Processor Computing (MPC) runtime framework.

The goal of the work that will be presented is to go towards the possibility to take advantage of both NVIDIA’s PGI compilers and MPC. More precisely, the goal is to add support for MPC Extended-Thread Local Storage (ETLS) feature inside PGI compilers.

 

plaquette de diffusion

 


09 Février 2017  – Séminaire n°54 Rewriting System for Profile-Guided Data Layout Transformations on Binaries

Présentation par: Christiopher Haine, Doctorant à l’INRIA Bordeaux Sud-Ouest.

Salle Paul Gauguin, Ter@tec, 10h – durée: 30min.

Résumé

Careful data layout design is crucial for achieving high performance, as nowadays processors waste a considerable amount of time being stalled by memory transactions, and in particular spacial and temporal locality have to be optimized.  However, data layout transformations is an area left largely unexplored by state-of-the-art compilers, due to the difficulty to evaluate the possible performance gains of transformations. Moreover, optimizing data layout is time-consuming, error-prone, and layout transformations are too numerous to be experimented by hand in hope to discover a high performance version.

We propose to guide application programmers through data layout restructuring with an extensive feedback, firstly by providing a comprehensive multidimensional description of the initial layout, built via analysis of
memory traces collected from the application binary  in fine aiming at pinpointing problematic strides at the instruction level, independently of the input language. We choose to focus on  layout transformation, translatable to C-formalism to aid user understanding, that we apply and assess on case study composed of two representative multithreaded real-life applications, a cardiac wave simulation and lattice QCD simulation,  with different inputs and parameters. The performance prediction of different transformations matches (within 5%) with hand-optimized  layout code and the speed-up obtained are as high as 28x (for cardiac wave  simulation) and 2.5x for Lattice QCD, when combined with SIMDization.

Biographie

Après un Master Informatique Haute Performance (MIHPS) à l’Université de Versailles/Ecole Centrale Paris, Christopher Haine a travaillé sur des méthodes de résolution parallèles de problèmes de valeur propres lors d’un stage au LBNL (Berkeley Lab). Il a ensuite réalisé un stage à l’Inria Bordeaux Sud-Ouest sur de la modélisation de performances de noyaux de calcul. Il est actuellement en thèse de doctorat à l’Inria Bordeaux Sud-ouest, portant sur la restructuration automatisée de noyaux de calcul.

plaquette de diffusion