Leveraging streaming for deterministic parallelization: an integrated language, compiler and runtime approach Antoniu Pop To cite this version: AntoniuPop. Leveragingstreamingfordeterministicparallelization: anintegratedlanguage, compiler and runtime approach. Automatic. École Nationale Supérieure des Mines de Paris, 2011. English. NNT: 2011ENMP0090. pastel-00712006 HAL Id: pastel-00712006 https://pastel.archives-ouvertes.fr/pastel-00712006 Submitted on 26 Jun 2012 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. INSTITUT DES SCIENCES ET TECHNOLOGIES École doctorale nO432: Sciences des Métiers de l’Ingénieur Doctorat européen ParisTech T H È S E pour obtenir le grade de docteur délivré par l’École nationale supérieure des mines de Paris Spécialité “Informatique temps-réel, robotique et automatique” présentée et soutenue publiquement par Antoniu POP le 30 septembre 2011 Exploitation du streaming pour la parallélisation déterministe – approche langage, compilateur et système de runtime intégrée – ∼ ∼ ∼ Leveraging Streaming for Deterministic Parallelization – an Integrated Language, Compiler and Runtime Approach – Directeur de thèse: François IRIGOIN T Jury Philippe CLAUSS, Professeur,ICPS/LSIIT,UniversitédeStrasbourg Rapporteur H Albert COHEN, DirecteurdeRecherche,PARKAS,INRIA Examinateur François IRIGOIN, MaîtredeRecherche,CRI,MINESParisTech Directeur de thèse È Paul H J KELLY, Professeur,SPO,ImperialCollegeLondon Rapporteur Fabrice RASTELLO, ChargédeRecherche,Compsys/LIP/ENSLyon,INRIA Examinateur S Pascal RAYMOND, ChargédeRecherche,Verimag,CNRS Examinateur Eugene RESSLER, Professeur,EECS,UnitedStatesMilitaryAcademy Président E MINES ParisTech Centre de recherche en Informatique 35,rueSaintHonoré,77305FontainebleauCedex,France Remerciements ´ Cette th`ese a ´et´e pr´epar´ee au Centre de recherche en Informatique (CRI) de l’Ecole des mines de Paris (MINES ParisTech), entre septembre 2008 et septembre 2011, sous la direction de Fran¸cois Irigoin. Je voudrais tout d’abord exprimer ma reconnaissance a` Fran¸cois Irigoin (professeur au CRI), qui a encadr´e cette th`ese, et `a Robert Mahl (directeur du CRI) : cette th`ese n’aurait pas ´et´e possible sans leur confiance et la libert´e absolue qu’ils m’ont accord´ee, a` la fois sur le sujet et sur les axes explor´es. Avec l’aide de Pierre Jouvelot (maˆıtre de recherche au CRI), ils ont r´eussi a` mod´erer mes exc`es d’enthousiasme et a` apporter la rigueur n´ecessaire a` ce travail. Je remercie tout particuli`erement Albert Cohen (directeur de recherche a` l’INRIA, ´ Ecole Normale Sup´erieure) qui a pris int´erˆet a` ma th`ese d`es les premiers mois, en a suivi l’´evolution et m’a soutenu par sa collaboration pendant ces trois ann´ees ; a` son insu, il m’avait d´eja`, d`es 2005, contamin´e par sa passion pour la recherche. Son enthousiasme, sa disponibilit´e et les nombreux ´echanges d’id´ees ont grandement contribu´e `a cette th`ese. Son aide et ses conseils ont ´et´e inestimables. Je suis tr`es reconnaissant envers les membres de mon jury, en particulier envers Philippe Clauss (professeur `a l’ICPS/LSIIT, Universit´e de Strasbourg) et Paul Kelly (professeur au SPO, Imperial College London) pour l’attention qu’ils ont port´ee `a mes travaux, pour le soin avec lequel ils ont relu cette th`ese et pour leurs conseils ´eclair´es. Je remercie ´egalement Pascal Raymond (charg´e de recherche CNRS `a Verimag) et Fabrice Rastello (charg´e de recherche INRIA a` Compsys/LIP/ENS Lyon) pour leur participation a` ce jury. Je remercie enfin Eugene Ressler (professeur au EECS, United States Military Academy) de m’avoir fait l’honneur de pr´esider ce jury. Je me rappellerai toujours avec un grand plaisir des passionnantes discussions avec Robert Mahl, et de l’excellente ambiance et la bonne humeur qui r´egnait au CRI. Je repense a` tous les bons moments pass´es dans la compagnie des membres du centre, tout particuli`erement Benoˆıt Pin, Pierre Jouvelot et Samuel Benveniste, de Laurent Daverio, Corinne Ancourt, Fabien Coelho, Claire M´edrala, Amira Mensi, Dounia Khaldi et bien entendu notre secr´etaire Jacqueline Altimira dont l’efficacit´e et la bonne humeur ne m’ont jamais fait d´efaut. Merci enfin a` ma famille, et aux amis que je n’ai pas cit´es, pour leur soutien incondi- tionnel et leurs encouragements, avec une derni`ere pens´ee particuli`ere pour ma compagne, Miryam. i ii Abstract As single processing unit performance has reached a technological limit, the power wall, the past decade has seen a shift from the prevailing trend of increasing single-threaded performance to an exponentially growing number of processing units per chip. Higher performance returns on newer architectures are contingent on the amount of parallelism that can be efficiently exploited in applications, either exposed through parallel program- ming or by parallelizing compilers. However, uncovering raw parallelism is insufficient if a host of cores vie for limited off-chip memory bandwidth. Mitigating the memory wall, thestream-computingmodelprovidesanimportantsolutionforexploitingupcoming architectures. This thesis explores streaming as a general-purpose parallel programming paradigm, rather than a model dedicated to a class of applications, by providing a highly expressive stream-computing extension to a de facto standard for shared memory programming, OpenMP. We rely on a new formal framework to investigate the properties of streaming programs, without the restrictions usually attached to dataflow models, and we prove that such programs benefit from deadlock and functional determinism, key assets in the productivity race. Finally, we focus on the efficient exploitation of our model, with optimized runtime support and compiler optimizations, through an implementation in the GCC compiler. iii iv R´esum´e La performance des unit´es de calcul s´equentiel a atteint des limites technologiques qui ont conduit `a une transition de la tendance a` l’acc´el´eration des calculs s´equentiels vers une augmentation exponentielle du nombre d’unit´es de calcul par microprocesseur. Ces nouvelles architectures ne permettent d’augmenter la vitesse de calcul que proportion- nellement au parall´elisme qui peutˆetre exploit´e, soit via le mod`ele de programmation soit par un compilateur optimiseur. Cependant, la disponibilit´e du parall´elisme en soi ne suffit pas a` am´eliorer les performances si un grand nombre de processeurs sont en comp´etition pour l’acc`es `a la m´emoire. Le mod`ele de streaming r´epond a` ce probl`eme et repr´esente une solution viable pour l’exploitation des architectures a` venir. Cetteth`eseabordelestreamingcommeunmod`eleg´en´eraldeprogrammationparall`ele, plutoˆtqu’unmod`eled´edi´ea`uneclassed’applications, enfournissantuneextensionpourle streaming a` un langage standard pour la programmation parall`ele avec m´emoire partag´ee, OpenMP.Unnouveaumod`eleformelestd´evelopp´e,dansunepremi`erepartie,pour´etudier les propri´et´es des programmes qui font appel au streaming, sans les restrictions qui sont g´en´eralement associ´ees aux mod`eles de flot de donn´ees. Ce mod`ele permet de prouver que ces programmes sont d´eterministes `a la fois fonctionnellement et par rapport aux deadlocks, ce qui est essentiel pour la productivit´e des programmeurs. La deuxi`eme partie de ce travail est consacr´ee `a l’exploitation efficace de ce mod`ele, avec support logiciel `a l’ex´ecution et optimisations de compilation, a` travers l’implantation d’un prototype dans le compilateur GCC. v vi Contents Remerciements i Abstract iii R´esum´e v Introduction en fran¸cais 1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Objectifs de la th`ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Organisation de cette th`ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1 Introduction 9 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Statement of Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 A Stream-Computing Extension to OpenMP 15 2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Motivation and Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3 Design Goals of the Extension . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4 Proposed Streaming Extension . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.2 Syntactic Extension to the OpenMP Language . . . . . . . . . . . . 20 2.4.3 Stream Communication Between Tasks . . . . . . . . . . . . . . . . 21 2.4.4 Stream Communication with the Enclosing Context . . . . . . . . . 24 2.4.5 Hierarchical Streaming . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4.6 Execution and Memory Model . . . . . . . . . . . . . . . . . . . . . 29 2.5 Semantics of the Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.5.1 Foreword on OpenMP Tasks . . . . . . . . . . . . . . . . . . . . . . 31 2.5.2 Coding Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.5.3 Buffering Semantics of Stream Communication . . . . . . . . . . . . 38 2.5.4 Sampling Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5.5 Multi-Producer Multi-Consumer Streams . . . . . . . . . . . . . . . 44 2.5.6 Deadlocks and Dependence Cycles . . . . . . . . . . . . . . . . . . . 47 2.5.7 Execution Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.6 Interaction with Current OpenMP Semantics . . . . . . . . . . . . . . . . . 49 vii
Description: