Tuilage sémantique

Tuilage sémantique

Vendredi 11 janvier, Salle de réunion LUG 2

Guillaume Iooss

Résumé:

Certains programmes d’algèbre linéaire (ou de théorie des graphes) manipulant des scalaires possèdent une version alternative manipulant des matrices, et utilisant des opérations matricielles à la place des opérations scalaires. Cette version (blockée) possède une structure identique à la version scalaire, tout en ayant une granularité plus important que la version initiale (scalaire) du programme.

On cherche donc à formaliser la transformation sémantique qui passe d’un programme scalaire à un programme blocké, nommée “tuilage sémantique”. Cette transformation peut être vu comme un blockage des données en matrices, puis un découpage sémantique des instructions d’un programme, afin de gagner en localité. Ses conditions d’applicabilités différent d’un tuilage conventionnel: quelques (rares) applications peuvent donc être tuilable sémantiquement, tout en admettant des dépendances ne permettant pas un tuilage conventionnel.

Plusieurs formalisations possibles de cette transformation sont en cours d’exploration: * Une première possibilité consiste à distinguer les opérations selon les blocs de données utilisés, afin de les isoler pour former des opérations matricielles.On essaye donc d’arriver sur un programme bloqué par transformations sémantiques successives du programme scalaire initial. * La seconde possibilité (plus brutale) consiste à substituer les données et opérations scalaires du programme initial par des données et des opérations matricielles “correspondantes” pour obtenir un programme bloqué candidat. Puis, il nous reste plus qu’à essayer de prouver l’équivalence entre le programme bloqué obtenu et la version scalaire initiale.

Dans les deux approches, un algorithme d’équivalence de programme est utilisé (dans le premier cas, pour reconnaître les opérations matricielles des blocks d’opérations que l’on forme / dans le second cas, pour prouver l’équivalence du programme scalaire avec le programme blocké). En particulier, un tel algorithme doit être capable de gérer les propriétés d’associativité et de commutativité d’un opérateur sur un nombre paramétrique de terme. Nous présenterons donc une extension de l’algorithme de Barthou-Feautrier-Redon afin de gérer (partiellement) de tels cas.

Exascale Computing

Exascale Computing

Lundi 30 janvier 2012

Jean-Yves Berthou (EDF) et Jean-Yves L’Excellent (LIP)

Résumé Exposé J-Y Berthou:

Addressing the Challenge of Exaflopic Computation

Exaflopic systems, composed of millions of heterogeneous cores will appear at the end of this decade. This technological breakthrough will engage the HPC community in defining new generations of applications and simulation platforms. The challenge is particularly severe for multi-physics, multi-scale simulation platforms that will have to combine massively parallel software components developed independently from each others. Another difficult issue is to deal with legacy codes, which are constantly evolving and have to stay in the forefront of their disciplines. This will also require new compilers, libraries, middleware, programming environments (including debuggers and performance optimizers), languages, as well as numerical methods, code architectures, and pre- and post-processing tools (e.g., for mesh generation or visualization).

The goal of the European Exascale Software Initiative project (EESI) is to build a European roadmap along with a set of recommendations to address the challenge of performing scientific computing on this new generation of computers. The talk will present the objective, motivations and results of EESI.

Résumé J-Y L’Excellent

High-performance sparse direct solvers

Direct methods for the solution of sparse systems of linear equations are extensively used in a wide range of numerical simulation applications. Such methods are based on a matrix decomposition of the form A = LU, LLt, LDLt or QR, followed by triangular solves. In comparison to iterative methods, they are known for their numerical robustness. However, they are also characterized by a high memory consumption (especially for 3D problems) and a large amount of computations. In this talk, we present some of the challenges that need to be tackled to solve huge problems with direct methods on the emerging computing platforms: (i) exploiting more parallelism, (ii) optimizing memory usage, (iii) maintaining numerical stability without significant sacrifice on performance. We present this in the context of the MUMPS solver (see http://graal.ens-lyon.fr/MUMPS or http://mumps.enseeiht.fr), a parallel sparse direct solver developed in Toulouse, Lyon-Grenoble, and Bordeaux.