Improving X10 Program Performances by Clock Removal

Paul Feautrier 1, * Eric Violard 2, 3 Alain Ketterlin 2, 3
* Corresponding author
1 COMPSYS - Compilation and embedded computing systems
Inria Grenoble - Rhône-Alpes, LIP - Laboratoire de l'Informatique du Parallélisme
3 CAMUS - Compilation pour les Architectures MUlti-coeurS
Inria Nancy - Grand Est, ICube - Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie
Abstract : X10 is a promising recent parallel language designed specifically to address the challenges of productively programming a wide variety of target platforms. The sequential core of X10 is an object-oriented language in the Java family. This core is augmented by a few parallel constructs that create activities as a generalization of the well known fork/join model. Clocks are a generalization of the familiar barriers. Synchronization on a clock is specified by the advance() method call. Activities that execute \emph{advances} stall until all existent activities have done the same, and then are released at the same (logical) time. This naturally raises the following question: are clocks strictly necessary for X10 programs? Surprisingly enough, the answer is no, at least for sufficiently regular programs. One assigns a date to each operation, denoting the number of advances that the activity has executed before the operation. Operations with the same date constitute a \emph{front}, fronts are executed sequentially in order of increasing dates, while operations in a front are executed in parallel if possible. Depending on the nature of the program, this may entail some overhead, which can be reduced to zero for polyhedral programs. We show by experiments that, at least for the current X10 runtime, this transformation usually improves the performance of our benchmarks. Besides its theoretical interest, this transformation may be of interest for simplifying a compiler or runtime library.
Complete list of metadatas

Cited literature [19 references]  Display  Hide  Download

https://hal.inria.fr/hal-00924206
Contributor : Paul Feautrier <>
Submitted on : Monday, January 6, 2014 - 3:14:18 PM
Last modification on : Thursday, November 22, 2018 - 12:50:02 PM
Long-term archiving on : Thursday, April 10, 2014 - 5:00:28 PM

File

paper.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-00924206, version 1

Citation

Paul Feautrier, Eric Violard, Alain Ketterlin. Improving X10 Program Performances by Clock Removal. 23rd International Conference on Compiler Construction (CC’14), part of ETAPS’14, Apr 2014, Grenoble, France. ⟨hal-00924206⟩

Share

Metrics

Record views

599

Files downloads

369