Inside X10: Implementing a High‐Level Language for Large‐Scale Distributed and Heterogeneous Platforms

This tutorial was given at CGO 2014.  The slides are available here.

Implementing a high‐level language like X10 on a variety of platforms and achieving high performance presents a number of challenges. In this tutorial we will briefly cover the core features of the X10 language and some current empirical results, but will mainly focus on presenting the key implementation technology that we developed for X10. Topics covered will include:

  • Overview: an overview of the X10 compiler and runtime systems
  • Scheduling: forkjoin style and Cilkstyle workstealing schedulers
  • Scale out: scalable distributed termination detection
  • Accelerators: compilation of X10 kernels to CUDA‐enabled GPUs
  • Resilience: enabling X10 programs and libraries to handle node failures

The tutorial is intended both for people who are generally interested in the implementation technology used by X10 and other similar PGAS languages and at researchers who are interested in using the X10 implementation as the basis for their own research projects.