Languages and Compilers for Parallel Computing

Volume 5898 of the series Lecture Notes in Computer Science pp 203-217

Programming with Intervals

  • Nicholas D. MatsakisAffiliated withETH Zurich
  • , Thomas R. GrossAffiliated withETH Zurich

* Final gross prices may vary according to local VAT.

Get Access


Intervals are a new, higher-level primitive for parallel programming with which programmers directly construct the program schedule. Programs using intervals can be statically analyzed to ensure that they do not deadlock or contain data races. In this paper, we demonstrate the flexibility of intervals by showing how to use them to emulate common parallel control-flow constructs like barriers and signals, as well as higher-level patterns such as bounded-buffer producer-consumer. We have implemented intervals as a publicly available library for Java and Scala.