thèse d'habilitation à diriger des recherches albert

Click here to load reader

Post on 31-Dec-2016

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • THSE dHABILITATION DIRIGER des RECHERCHES

    Spcialit : Informatique

    prsente par

    Albert COHEN

    pour obtenir lHABILITATION DIRIGER des RECHERCHES de lUNIVERSIT PARIS-SUD 11

    Sujet :

    Contributions la conception de systmes hautes performances,programmables et srs :

    principes, interfaces, algorithmes et outils

    Contributions to the Design of Reliable and ProgrammableHigh-Performance Systems:

    Principles, Interfaces, Algorithms and Tools

    Soutenue le 23 mars 2007 devant le jury compos de :

    Nicolas HALBWACHS RapporteurFranois IRIGOIN RapporteurLawrence RAUCHWERGER RapporteurAlain DARTE ExaminateurMarc DURANTON ExaminateurOlivier TEMAM ExaminateurPaul FEAUTRIER Membre Invit

    Thse dHabilitation prpare au sein de lquipe ALCHEMYINRIA Futurs et LRI, UMR 8623 CNRS et Universit Paris-Sud 11

  • Remerciements

    Isabelle, Mathilde et Loc,si proches et si souvent inaccessibles.

    Je remercie les membres de mon jury pour avoir accept de rapporter sur mon travail. Leurapport critique est prcieux : il rpond une rare occasion de rassembler un ensemble significatifde rsultats, et de tracer ainsi des pistes dapprofondissement ou dexploration prioritaires. Je leuren suis dautant plus reconnaissant, que leur rle nest pas plus confortable que celui du candidatdans lexercice mandarinal de lhabilitation diriger des recherches. Loin de moi lide de contesterle principe originel de lexercice, tape importante incitant tout chercheur raliser et publier unesynthse de ses travaux. Mais dans sa forme hexagonale contemporaine, lexercice est dnatur aupoint de ne reflter que des motivations mandarinales et jacobines beaucoup moins louables. Jemefforcerai donc un jour de consacrer les mois ncessaires lcriture dun livre de rfrence. Pasaujourdhui, cest bien trop tt.

    Je salue chaleureusement tous mes camarades de remue-mninges et de labeur dveloppatoireou TEXnique, dhier et daujourdhui, de toujours et dun jour... sans qui peu de choses auraient tpossibles. Ils se reconnatront, quils fussent tudiants clairs ou dprims, ingnieurs virtuoses oufatigus, chercheurs en herbe ou acadmiciens : leur travail et leur stimulation constantes sont lemoteur essentiel de toute mon activit passe et future.

    Je saisis lopportunit de saluer lun de ces premiers camarades, Jean-Franois Collard, mo-teur de la compilation par instances, mentor aux prceptes clairs, hritier des grands sages fon-dateurs (et nanmoins collgues) Paul Feautrier et Luc Boug que je salue galement. Je remerciegalement Christine Eisenbeis pour mavoir ouvert les portes de lINRIA, et surtout, pour mavoirconstamment encourag dpasser les frontires du cloisonnement de la connaissance acadmique.Enfin, je ne trouve pas les mots pour saluer linfluence dterminante dOlivier Temam, dont la vision,lenthousiasme, le recul et la gnrosit mont accompagn dans la construction dune stratgie derecherche que je crois cohrente et pertinente.

    Je tiens galement tirer mon chapeau aux instituts de recherche et denseignement suprieurfranais et trangers qui ont soutenu ce travail, et travers eux, tous mes collgues accompagna-teurs et accompagnatrices de la recherche. Je suis particulirement dbiteur de lINRIA, tablisse-ment permettant lexpression de projets scientifiques et technologiques ambitieux dans un environ-nement de libert, de souplesse et de confort quil se doit de protger, alors que de nombreux instru-ments de recherche et denseignement suprieur, en France et en Europe, sombrent dans lincapacit,lincomprhension et labandon.

    3

  • Dedicated to a Brave GNU World

    http://www.gnu.org

    Copyright c Albert Cohen 2006.

    Verbatim copying and distribution of this document is permitted in any medium, provided this notice is preserved.

    La copie et la distribution de copies exactes de ce document sont autorises, mais aucune modification nest permise.

    [email protected]

  • Contents

    List of Figures 6

    1 Introduction 91.1 Optimization Problems for Real Processor Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 Going Instancewise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3 Navigating the Optimization Oceans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.4 Harnessing Massive On-Chip Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2 Instancewise Program Analysis 202.1 Control Structures and Execution Traces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.1.1 Control Structures in the MOGUL Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.2 Interprocedural Control Flow Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.1.3 The Pushdown Trace Automaton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.1.4 The Trace Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2.2 The Instancewise Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.1 From the Pushdown Trace Automaton to Control Words . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.2 From Traces to Control Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.3 From the Trace Grammar to Control Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.4 Control Words and Program Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2.5 The Control Automaton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.2.6 Instances and Control Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    2.3 Data Structure Model and Induction Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.3.1 Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.2 Induction Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    2.4 Binding Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.1 From Instances to Memory Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4.2 Bilabels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.4.3 Building Recurrence Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    2.5 Computing Binding Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.5.1 Binding Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.5.2 Binding Transducer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    2.6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.7 Applications of Instancewise Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    2.7.1 Instancewise Dead-Code Elimination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.7.2 State of the Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    2.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    3 Polyhedral Program Manipulation 443.1 A New Polyhedral Program Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    3.1.1 Limitations of Syntactic Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.1.2 Introduction to the Polyhedral Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.1.3 Isolating Transformations Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.1.4 Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.1.5 Normalization Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    3.2 Revisiting Classical Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.2.1 Transformation Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.2.2 Implementing Loop Unrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.2.3 Parallelizing Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.2.4 Facilitating the Search for Compositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    5

  • 6 CONTENTS

    3.3 Higher Performance Requires Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.3.1 Manual Optimization Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.3.2 Polyhedral vs. Syntactic Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    3.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.4.1 WRaP-IT: WHIRL Represented as Polyhedra Interface Tool . . . . . . . . . . . . . . . . . . . . . 653.4.2 URUK: Unified Representation Universal Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.4.3 URDeps: URUK Dependence Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.4.4 URGenT: URUK Generat

View more