Menu:

Info:

The MOAIS Project is part of the LIG together with the MESCAL Project.

Institutions:

LIG
CNRS
Grenoble INP
INRIA
UJF
UPMF

Parallélisme et équilibrage dynamique dans un contexte de couplage d'algorithmes en dynamique rapide

Description

Pour faire face aux besoins de simulation de systèmes de plus en plus grands et complexes, les codes de simulation mécanique associent pour une même simulation des modélisations et algorithmes de nature très différentes tels que des éléments finis (EF) ou des méthodes particulaires (SPH par exemple). La parallélisation de ces codes est devenue incontournable pour traiter des simulations de grande taille en un temps raisonnable. Mais la parallélisation indépendante de chaque algorithme pose des problèmes à l'exécution, les algorithmes entrant en compétition pour accéder aux ressources plutôt que de travailler de manière coopérative. Gagner en performance nécessite une approche plus globale de la parallélisation.

Les machines parallèle associent aujourd'hui des noeuds à mémoire (virtuellement) partagée éventuellement complétés de co-prossesseurs de type GPU, ces noeuds étant interconnectés dans une architecture de type grappe à mémoire distribuée. Le modèle de programmation parallèle dominant, basé sur MPI, repose sur un principe d'échange de messages et de mémoire partagée. Il s'avère ne pas permettre de tirer pleinement partie des capacités des noeuds de calcul. En particulier il est nécessaire de dupliquer les données en bordure des domaines assignés à chaque processus MPI (on parle de cellules fantômes) alors qu'en mémoire partagée cette duplication, qui fige la décomposition et complexifie le code, peut être évitée car les données sont accessibles à tous les coeurs du noeud.

L'objectif de ce stage est d'aborder le problème de la parallélisation d'algorithmes couplés sur les noeuds à mémoire partagée. On s'appuiera pour cela sur le logiciel de simulation Europlexus et l'environnement de programmation parallèle KAAPI. KAAPI permet une parallélisation à grain adaptatif et donne un accès bas niveau à l'ordonnanceur basé sur un principe de vol de tâches. KAAPI permettra de mettre en oeuvre et d'évaluer des techniques de parallélisation coopératives avancées. Dans son évolution la plus récente KAAPI permet aussi de déporter une partie des calculs sur GPU. Pour sa part, Europlexus est un simulateur mécanique des fluides et des structures en dynamique rapide. C'est un code industriel, dont les sources nous sont accessibles. Il nous fournira des algorithmes et structures de données avancés du domaine ainsi qu'à de jeux de tests significatifs.

Le stage se déroulera de manière classique avec étude de l'état de l'art, des capacités d'Europlexus et de KAAPI. Dans une seconde phase, le candidat proposera et développera des approches de parallélisation globale coopérative, qu'il implantera et évaluera. Il aura accès à des noeuds à mémoire partagé de grande taille de 16 à 48 coeurs, certains intégrant de 1 à 8 GPU utilisable en co-processeurs.

Ce stage s'inscrit dans une collaboration à long terme avec le CEA qui financera une thèse sur ce sujet après le stage.

Références bibliographiques

Back to job offers