...
...
Owlspace Course Site - Section 1
...
Owlspace Course Site - Section 2
...
...
...
...
Habanero-Java Library
Habanero-Java (HJ) is a pedagogic parallel programming model being model being developed at Rice University. Habanero-Java library (HJ-lib) is the new library implementation of HJ that can be used with any standard Java 8 implementation. The library-based approach is attractive since it does not require modifying a compiler as with language-based approaches.
HJ integrates a wide range of parallel programming constructs (e.g., async tasks, futures, data-driven tasks, fo rallforall, barriers, phasers, transactions, actors) in a single programming model that enables unique combinations of these constructs (e.g., nested combinations of task and actor parallelism). The orthogonal classes of parallel constructs enables programmers with a basic knowledge of Java to get started quickly with expressing a wide range of parallel patterns. HJ is capable of expressing many different forms of parallel patterns including data parallelism, pipeline parallelism, stream parallelism, loop parallelism, and divide-and-conquer parallelism.
HJ-lib is built using Java 8 closures lambda expressions and can run on any Java 8 JVM. Older JVMs can be targeted 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. Being a pedagogic programming model, HJ-lib is also an attractive tool for educators with numerous educational resources available from the sophomore-level COMP 322 course offered at Rice University.
Links to HJ Resources
HJ-lib
...
Download and Setup
Using Maven to run HJlib projects
Using IntelliJ to download and run an example HJlib project
HJ-lib
...
API Documentation and
...
Examples
HJ-lib Tutorial
HJ-lib Programming Tips
...
Limitations of Current HJ-lib Implementation
Acknowledgment
This material is based upon work supported in part by the National Science Foundation under Grant No. 1302570. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).