Contributions aux environnements de programmation pour le calcul intensif Habilitation à diriger des recherches Pierre Boulet équipe WEST Pierre.Boulet@lifl.fr - http://www.lifl.fr/~boulet/hdr/ Soutenance HdR 2 décembre 2002 p. 1/41
Plan Contexte et positionnement Parallélisme de données Traitement de signal intensif Perspectives : le projet DaRT Soutenance HdR 2 décembre 2002 p. 2/41
Contexte et positionnement Soutenance HdR 2 décembre 2002 p. 3/41
Calcul intensif puissance de calcul nécessaire à une application quantité de calcul par rapport aux contraintes de temps d exécution application intensive si nécessaire optimisation du code pour respecter les contraintes de temps de ressources Soutenance HdR 2 décembre 2002 p. 4/41
Grand Challenges simulation numérique climat aéronautique nucléaire énorme quantité de calcul contraintes de temps implicites Soutenance HdR 2 décembre 2002 p. 5/41
Traitement de signal montée en puissance télécommunications multimédia moins gourmandes mais contraintes de temps réel plus fortes en général embarquées contraintes de ressources Soutenance HdR 2 décembre 2002 p. 6/41
Architecture des machines quatre classes de machines pour le calcul intensif supercalculateurs grappes de stations de travail systèmes distribués et grilles de calcul systèmes sur silicium (SoC) difficultés de développement parallélisme hétérogénéité de performance de fonction contraintes Soutenance HdR 2 décembre 2002 p. 7/41
Parallélisme parallélisme très présent dans les architectures différentes approches pour le développement d applications parallèles parallélisation automatique programmation parallèle explicite programmation parallèle implicite conception conjointe du logiciel et du matériel Soutenance HdR 2 décembre 2002 p. 8/41
Domaine scientifique outils de développement compilateurs paralléliseurs environnements de spécification quatre idées directrices programmer à haut niveau utiliser le parallélisme de données optimiser au plus tôt restreindre le domaine d application Soutenance HdR 2 décembre 2002 p. 9/41
Schema de recherche niveau de programmation ISP UML programmation visuelle volume de comm. simulation électromagnétique compilation traitement de signal intensif génération de code SPPoC tiling réseaux de processus distribués 1996 1997 1998 1999 2000 2001 2002 2003 Soutenance HdR 2 décembre 2002 p. 10/41
Parallélisme de données Soutenance HdR 2 décembre 2002 p. 11/41
Définition calcul dirigé par le placement des données placement explicite des données règle : le propriétaire calcule paradigme de haut niveau communications implicites compilateur peut les optimiser incarné par High Performance Fortran Soutenance HdR 2 décembre 2002 p. 12/41
Deux ensembles de travaux parallélisation et compilation pour le calcul scientifique produire des outils pour la compilation optimisation de boucles imbriquées modèle polyédrique simulation numérique collaboration avec des électromagnéticiens démarche génie logiciel Soutenance HdR 2 décembre 2002 p. 13/41
Parallélisation automatique niveau de programmation ISP UML programmation visuelle volume de comm. simulation électromagnétique compilation traitement de signal intensif génération de code SPPoC tiling réseaux de processus distribués 1996 1997 1998 1999 2000 2001 2002 2003 Soutenance HdR 2 décembre 2002 p. 14/41
SPPoC un outil de calcul polyédrique Symbolic Parameterized Polyhedral Calculator PIP PolyLib Omega Library interface symbolique unifiée moteur de simplification et extensions # System.simplify <:v<i1,i2,j1,j2>> (* Variables *) <:v<n,m>> (* Paramètres *) <:s< (-1+p1)+(-((-1+j1) mod 8)) = 0, (-1+p2)+(-((-1+j2) mod 8)) = 0, (-1+p1)+(-((-1+k1) mod 8)) = 0, (-1+p2)+(-((-1+k2) mod 8)) = 0, i1 = j1, k1 = j1, k2 = 1, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1 >> ;; - : SPPoC.System.t = {i1 = j1, (-1+j2) mod 8 = 0, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1} Soutenance HdR 2 décembre 2002 p. 15/41
SPPoC un outil de calcul polyédrique Symbolic Parameterized Polyhedral Calculator PIP PolyLib Omega Library # System.simplify <:v<i1,i2,j1,j2>> (* Variables *) <:v<n,m>> (* Paramètres *) <:s< (-1+p1)+(-((-1+j1) mod 8)) = 0, (-1+p2)+(-((-1+j2) mod 8)) = 0, (-1+p1)+(-((-1+k1) mod 8)) = 0, (-1+p2)+(-((-1+k2) mod 8)) = 0, i1 = j1, k1 = j1, k2 = 1, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1 >> ;; - : SPPoC.System.t = {i1 = j1, (-1+j2) mod 8 = 0, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1} interface symbolique unifiée moteur de simplification et extensions diffusé et utilisé dans la communauté http://www.lifl.fr/west/sppoc/ réalisé avec Xavier Redon plusieurs applications Soutenance HdR 2 décembre 2002 p. 15/41
Volume de communication estimation avant compilation estimation du volume de communication généré par une affectation de tableau dans un nid de boucles # System.simplify <:v<i1,i2,j1,j2>> (* Variables *) <:v<n,m>> (* Paramètres *) <:s< (-1+p1)+(-((-1+j1) mod 8)) = 0, (-1+p2)+(-((-1+j2) mod 8)) = 0, (-1+p1)+(-((-1+k1) mod 8)) = 0, (-1+p2)+(-((-1+k2) mod 8)) = 0, i1 = j1, k1 = j1, k2 = 1, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1 >> ;; - : SPPoC.System.t = {i1 = j1, (-1+j2) mod 8 = 0, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1} selon la distribution des données modélisation de toutes les distributions HPF par blocs ou cycliques réplication ou placement en mémoire alignement des tableaux Soutenance HdR 2 décembre 2002 p. 16/41
Volume de communication travail au niveau du langage indépendant du compilateur indépendant de l architecture d exécution originalité et réalisation # System.simplify <:v<i1,i2,j1,j2>> (* Variables *) <:v<n,m>> (* Paramètres *) <:s< (-1+p1)+(-((-1+j1) mod 8)) = 0, (-1+p2)+(-((-1+j2) mod 8)) = 0, (-1+p1)+(-((-1+k1) mod 8)) = 0, (-1+p2)+(-((-1+k2) mod 8)) = 0, i1 = j1, k1 = j1, k2 = 1, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1 >> ;; - : SPPoC.System.t = {i1 = j1, (-1+j2) mod 8 = 0, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1} niveau d abstraction = processeurs virtuels utilisation de SPPoC nécessaire approche symbolique et paramétrée modèle polyédrique utilisation combinée de PIP et la PolyLib simplifications des résultats intermédiaires primordiale en collaboration avec Xavier Redon Soutenance HdR 2 décembre 2002 p. 17/41
Parallélisation automatique génération de code d itération après transformation pour placement et ordonnancement état de l art avec Alain Darte, Georges-André Silber et Frédéric # System.simplify <:v<i1,i2,j1,j2>> (* Variables *) <:v<n,m>> (* Paramètres *) <:s< (-1+p1)+(-((-1+j1) mod 8)) = 0, (-1+p2)+(-((-1+j2) mod 8)) = 0, (-1+p1)+(-((-1+k1) mod 8)) = 0, (-1+p2)+(-((-1+k2) mod 8)) = 0, i1 = j1, k1 = j1, k2 = 1, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1 >> ;; - : SPPoC.System.t = {i1 = j1, (-1+j2) mod 8 = 0, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1} Vivien algorithme général code de bas niveau de parcours lexicographique de U(z) = 1 i p L i (z) L i (z) ={x Z n y Z m i, A i x + B i y + C i z d i } utilisation de SPPoC avec Paul Feautrier Soutenance HdR 2 décembre 2002 p. 18/41
Parallélisation automatique partitionnement de calculs pavage par des parallélépipèdes (tiling) adaptation de la granularité répartition des tuiles sur une architecture hétérogène # System.simplify <:v<i1,i2,j1,j2>> (* Variables *) <:v<n,m>> (* Paramètres *) <:s< (-1+p1)+(-((-1+j1) mod 8)) = 0, (-1+p2)+(-((-1+j2) mod 8)) = 0, (-1+p1)+(-((-1+k1) mod 8)) = 0, (-1+p2)+(-((-1+k2) mod 8)) = 0, i1 = j1, k1 = j1, k2 = 1, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1 >> ;; - : SPPoC.System.t = {i1 = j1, (-1+j2) mod 8 = 0, m >= j2, j2 >= 1, i2 >= 1, n >= j1, m >= i2, j1 >= 1} hétérogénéité de performances heuristique asymptotiquement optimale avec Jack Dongarra, Yves Robert et Frédéric Vivien Soutenance HdR 2 décembre 2002 p. 19/41
Simulation numérique niveau de programmation ISP UML programmation visuelle volume de comm. simulation électromagnétique compilation traitement de signal intensif génération de code SPPoC tiling réseaux de processus distribués 1996 1997 1998 1999 2000 2001 2002 2003 Soutenance HdR 2 décembre 2002 p. 20/41
Simulation numérique application en vraie grandeur simulation de machines électromagnétiques par la méthode des éléments finis code de recherche de l équipe de Francis Piriou du L2EP de Lille approche génie logiciel maintenabilité par un non spécialiste portabilité performances travail de thèse d Emmanuel Cagniot collaboration avec Thomas Brandes Soutenance HdR 2 décembre 2002 p. 21/41
Deux versions langage : HPF + bibliothèque Halos parallélisme de données optimisation des communications irrégulières parallélisation légère ajout de quelques directives au code Fortran 95 résultats corrects sur quelques processeurs ne passe pas à l échelle parallélisation lourde méthode de décomposition de domaines (complément de Schur) partitionnement manuel effort de structuration pour la maintenabilité gain substantiel en performances Soutenance HdR 2 décembre 2002 p. 22/41
Traitement de signal intensif Soutenance HdR 2 décembre 2002 p. 23/41
Applications Traitement de Signal TS Intensif = TSS + TDI Soutenance HdR 2 décembre 2002 p. 24/41
Applications Traitement de Signal TS Intensif = TSS + TDI exemples traitement sonar radio numérique JPEG-2000 Soutenance HdR 2 décembre 2002 p. 24/41
Applications Traitement de Signal TS Intensif = TSS + TDI exemples traitement sonar radio numérique JPEG-2000 structure habituelle d une application TSI une phase de traitement de signal systématique traitement régulier massif suivie d une phase de traitement de données intensif traitement irrégulier contraintes temps réel et embarqué Soutenance HdR 2 décembre 2002 p. 24/41
Traitement de signal intensif niveau de programmation ISP UML programmation visuelle volume de comm. simulation électromagnétique compilation traitement de signal intensif génération de code SPPoC tiling réseaux de processus distribués 1996 1997 1998 1999 2000 2001 2002 2003 Soutenance HdR 2 décembre 2002 p. 25/41
Deux modèles réseaux de processus modèle de spécification et d exécution proposé par Gilles Kahn en 1974 processus concurrents communiquent uniquement par des files d attentes Array-OL modèle de spécification data-parallèle hiérarchique adapté au TSS Soutenance HdR 2 décembre 2002 p. 26/41
Réseaux de processus distribués applications visées simulation d applications complexes sur architecture hétérogène (SoC) (+ calcul scientifique) objectifs cacher la complexité due à la distribution gérer l hétérogénéité dynamicité de l exécution moyen implémentation distribuée du modèle des réseaux de processus utilisation de l intergiciel CORBA Soutenance HdR 2 décembre 2002 p. 27/41
Dynamicité plusieurs aspects développement incrémental évolution de l implémentation migration évolution du matériel équilibrage de charge moyens techniques demi files d attentes protocole de communication hybride à la demande ou selon l offre connexion dynamique des composants Soutenance HdR 2 décembre 2002 p. 28/41
Extensions en cours suite et fin de la thèse d Adbelkader Amar coencadrée avec Jean-Luc Dekeyser collaborations industrielles projet ITEA Sophocles THALES Communications, Philips retour d information à l exécution vers un équilibrage dynamique lien avec le modèle de spécification Array-OL Soutenance HdR 2 décembre 2002 p. 29/41
Array-OL modèle proposé par Alain Demeure (TMS) complexité et difficulté des applications de traitement de signal dans l accès aux données expression visuelle des dépendances niveau global : dépendances entre tableaux niveau local (data-parallèle) : dépendances entre éléments de tableaux expression textuelle des routines élémentaires propriétés assignation unique expression des seules dépendances de flot banalisation dimensions spatiales et temporelles Soutenance HdR 2 décembre 2002 p. 30/41
Prototypage atelier de prototypage Gaspard spécification visuelle d applications Array-OL compilation transformations de code (thèses Julien Soula et Philippe Dumont) formalisme opérateurs de description de tableaux compilation de l infini, optimisation de l occupation mémoire préparation au placement et à l ordonnancement multiples cibles : C++ + pthreads, Accélérateur Synchrone avec Jean-Luc Dekeyser, Alain Demeure, Florent Devin, Philippe Dumont, Jean-Luc Levaire, Philippe Marquet, Julien Soula Soutenance HdR 2 décembre 2002 p. 31/41
Perspectives : le projet DaRT Soutenance HdR 2 décembre 2002 p. 32/41
Bilan optimisation à tous les niveaux environnement de programmation / langage optimisations statiques optimisations dynamiques approches de la programmation parallèle parallélisation automatique programmation parallèle explicite programmation parallèle implicite conception conjointe hétérogénéité Soutenance HdR 2 décembre 2002 p. 33/41
Action DaRT action INRIA Futurs depuis juin 2002 portée par l équipe WEST en cours d instruction pour devenir un projet projet de recherche à 4 ans cadre de mes recherches actuelles et futures + nouvelle collaboration avec le L2EP CNRT Futurelec simulation distribuée de réseau de distribution d électricité - une partie de DaRT me concerne moins directement système d exploitation temps réel pour SMP Soutenance HdR 2 décembre 2002 p. 34/41
Structure de DaRT parallélisme de données pour le TSI réduire le temps de développement des applications TSI sur SoC de la modélisation à l exécution trois axes modélisation compilation système d exploitation Soutenance HdR 2 décembre 2002 p. 35/41
Modélisation conception conjointe logiciel et matériel modélisation en Y application architecture placement réutilisabilité des modèles Intensive Signal Processing UML englobe Real-Time Embedded UML développé dans le projet européen PROMPT2implementation Esterel Technologies, THALES Communications, INRIA Sosso, Nokia, universités de Tampere et Turku Soutenance HdR 2 décembre 2002 p. 36/41
ISP UML objectifs s affranchir des langages de programmation réduire les temps de développement réutilisation d applications ou d architectures composants prêts à l emploi (VC ou IP) respecter les standards UML 2.0, MOF, XMI exprimer tout le parallélisme potentiel démarche de type MDA modèles indépendants de la plate-forme d exécution simulation à différents niveaux / exécution Soutenance HdR 2 décembre 2002 p. 37/41
Lien avec techniques de compilation modèle de spécification d application assignation unique unification dimensions spatiales et temporelles expression des seules dépendances de flot universalité (pour le TDI) récursivité ordre supérieur modèles d architecture et de placement moins avancés inspiration de l existant Soutenance HdR 2 décembre 2002 p. 38/41
Compilation intégration des techniques de compilation parallélisation automatique langages fonctionnels transformations de code Array-OL placement et ordonnancement transformation de l application dimensions spatiales et temporelles unifiées placement spatio-temporel conjoint tirer partie du domaine d application restreint globalement hétérogène, localement homogène Soutenance HdR 2 décembre 2002 p. 39/41
Génération de code transformation de modèles d un modèle indépendant de la plate-forme d exécution à un modèle dépendant de cette plate-forme multiples cibles possibles simulation distribuée de composants virtuels différents niveaux de simulation respect des standards : VSIA, CORBA, SystemC, VHDL système sur silicium système temps réel sur SMP hétérogénéité Soutenance HdR 2 décembre 2002 p. 40/41
Perspectives niveau de programmation ISP UML programmation visuelle volume de comm. simulation électromagnétique compilation traitement de signal intensif génération de code SPPoC tiling réseaux de processus distribués 1996 1997 1998 1999 2000 2001 2002 2003 Soutenance HdR 2 décembre 2002 p. 41/41