Site web de Philippe Dumont

Erbium: A deterministic, concurrent intermediate representation for portable and scalable performance


Optimizing compilers and runtime libraries do not shield programmers from the complexity of multi-core hardware; as a result the need for manual, target-specific optimizations increases with every processor generation. High-level languages are being designed to express concurrency and locality without reference to a particular architecture. But compiling such abstractions into efficient code requires a portable, intermediate representation: this is essential for modular composition (separate compilation), for optimization frameworks independent of the source language, and for just-in-time compilation of bytecode languages. This paper introduces Erbium, an intermediate representation for compilers, a low-level language for efficiency programmers, and a lightweight runtime implementation. It relies on a data structure for scalable and deterministic concurrency, called Event Recording, exposing the data-level, task and pipeline parallelism suitable to a given target. We provide experimental evidence of the productivity, scalability and efficiency advantages of Erbium, relying on a prototype implementation in GCC4.3.

Entrée bibtex

    author = {Cupertino Miranda and Philippe Dumont  and Albert Cohen 
              and Marc Duranton and Antoniu Pop},
    title = {Erbium: A Deterministic, Concurrent Intermediate Representation 
             for Portable and Scalable Performance},
    year = {2010}