ERBIUM: a deterministic, concurrent intermediate representation for portable and scalable performance

  • Authors:
  • Cupertino Miranda;Philippe Dumont;Albert Cohen;Marc Duranton;Antoniu Pop

  • Affiliations:
  • Paris-Sud 11 University, Orsay, France;Paris-Sud 11 University, Orsay, France and NPX Semiconductors, Eindhoven, The Netherlands;Paris-Sud 11 University, Orsay, France;NXP Semiconductors, Eindhoven, Netherlands;MINES ParisTech, Paris, France

  • Venue:
  • Proceedings of the 7th ACM international conference on Computing frontiers
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

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 GCC 4.3.