Instructors:
Shams Imam, Vivek Sarkar
Department of Computer Science
Rice University
Houston, TX, USA
Abstract:
Habanero-Java (HJ) is a new pedagogic library implementation being developed at
Rice University. HJ includes a powerful set of task-parallel programming
constructs that can be added as simple extensions to standard Java programs to
take advantage of today’s multicore and heterogeneous architectures. The
library puts a particular emphasis on the usability and safety of parallel
constructs. For example, no HJ program using async, finish, isolated, and phaser
constructs can create a logical deadlock cycle. In addition, the future and
data-driven task variants of the async construct facilitate a functional
approach to parallel programming. Finally, any HJ program written with async,
finish, and phaser constructs that is data-race free is guaranteed to also be
deterministic.
The HJ library relies on Java 8 closures and can run on any Java 8 or higher
JVM. Older JVM versions can be supported by relying on external bytecode
transformations tools for compatibility. The HJ runtime is responsible for
orchestrating the creation, execution, and termination of HJ tasks, and features
both work-sharing and work-stealing schedulers. HJ is used at Rice University as
an introductory parallel programming language for second-year undergraduate
students. A wide variety of benchmarks have been ported to HJ, including a full
application that was originally written in Fortran 90.