Habanero-Java

Vincent Cavé, Jisheng Zhao, Jun Shirako, Vivek Sarkar
2011 Proceedings of the 9th International Conference on Principles and Practice of Programming in Java - PPPJ '11  
In this paper, we present the Habanero-Java (HJ) language developed at Rice University as an extension to the original Java-based definition of the X10 language. HJ includes a powerful set of taskparallel programming constructs that can be added as simple extensions to standard Java programs to take advantage of today's multicore and heterogeneous architectures. The language puts a particular emphasis on the usability and safety of parallel constructs. For example, no HJ program using async,
more » ... ish, 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. HJ also features two key enhancements that address well known limitations in the use of Java in scientific computing -the inclusion of complex numbers as a primitive data type, and the inclusion of array-views that support multidimensional views of onedimensional arrays. The HJ compiler generates standard Java classfiles that can run on any JVM for Java 5 or higher. 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. HJ has a rich development and runtime environment that includes integration with DrJava, the addition of a data race detection tool, and service as a target platform for the Intel Concurrent Collections coordination language
doi:10.1145/2093157.2093165 dblp:conf/pppj/CaveZSS11 fatcat:yiayxbgwcnfbhnowyyr33snm7q