Habanero-Java
Top Cited Papers
- 24 August 2011
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
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 languageKeywords
Funding Information
- Division of Computing and Communication Foundations (CCF-0833166)
This publication has 23 references indexed in Scilit:
- Delegated isolationPublished by Association for Computing Machinery (ACM) ,2011
- Hierarchical Place Trees: A Portable Abstraction for Task Parallelism and Data MovementLecture Notes in Computer Science, 2010
- 1D inversion of multicomponent, multifrequency marine CSEM data: Methodology and synthetic studies for resolving thin resistive layersGeophysics, 2009
- JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDALecture Notes in Computer Science, 2009
- PhasersPublished by Association for Computing Machinery (ACM) ,2008
- Parallel Programmability and the Chapel LanguageThe International Journal of High Performance Computing Applications, 2007
- Deadlock-free scheduling of X10 computations with bounded resourcesPublished by Association for Computing Machinery (ACM) ,2007
- Efficient Detection of Determinacy Races in Cilk ProgramsTheory of Computing Systems, 1999
- The implementation of the Cilk-5 multithreaded languagePublished by Association for Computing Machinery (ACM) ,1998
- The fuzzy barrier: a mechanism for high speed synchronization of processorsPublished by Association for Computing Machinery (ACM) ,1989