Abstract | ||
---|---|---|
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 task-parallel programming constructs that can be added as simple extensions to standard Java programs to take advantage of today's multi-core and heterogeneous architectures. The language 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. 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 one-dimensional arrays. The HJ compiler generates standard Java class-files 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 |
Year | DOI | Venue |
---|---|---|
2011 | 10.1145/2093157.2093165 | PPPJ |
Keywords | Field | DocType |
x10 language,new adventure,rice university,hj runtime,old x10,standard java program,standard java class-files,hj compiler,introductory parallel programming language,hj task,phaser construct,hj program,parallel programming language,parallel programming,data type,scientific computing,language | Programming language,Computer science,Deadlock,Real time Java,Fortran,Compiler,Parallel programming model,Porting,Java,Primitive data type | Conference |
Citations | PageRank | References |
109 | 3.54 | 24 |
Authors | ||
4 |
Name | Order | Citations | PageRank |
---|---|---|---|
Vincent Cavé | 1 | 260 | 13.00 |
Jisheng Zhao | 2 | 480 | 24.34 |
Jun Shirako | 3 | 433 | 34.56 |
Vivek Sarkar | 4 | 4318 | 409.41 |