Skip navigation links

hjlib-cooperative 0.1.5-SNAPSHOT API

Habanero-Java Library Habanero-Java Library.

See: Description

Packages 
Package Description
edu.rice.hj
The base package for all habanero-java related items.
edu.rice.hj.api
The base package for all Habanero-Java API.
edu.rice.hj.continuation
Continuations Library for Coroutine support in Java.
edu.rice.hj.continuation.instrument
Coroutine library instrumentation Copyright (c) 2008, Matthias Mann All rights reserved.
edu.rice.hj.experimental  
edu.rice.hj.experimental.actors  
edu.rice.hj.experimental.api  
edu.rice.hj.runtime
The base package for the habanero-java runtime.
edu.rice.hj.runtime.accumulator
The base package for the habanero-java accumulators.
edu.rice.hj.runtime.actors
The base package for the habanero-java actors support.
edu.rice.hj.runtime.arrayview
The base package for all habanero-java array view classes.
edu.rice.hj.runtime.baseruntime  
edu.rice.hj.runtime.config
The base package for the habanero-java runtime configuration.
edu.rice.hj.runtime.eureka  
edu.rice.hj.runtime.eventcount  
edu.rice.hj.runtime.forkjoin
The base package for a fork-join based parallel implementation of the HJ runtime.
edu.rice.hj.runtime.javafj  
edu.rice.hj.runtime.mapreduce  
edu.rice.hj.runtime.mapreduce2  
edu.rice.hj.runtime.metrics
The base package for the habanero-java abstract metrics.
edu.rice.hj.runtime.orderedlock  
edu.rice.hj.runtime.phasers
The base package for the habanero-java phaser support.
edu.rice.hj.runtime.region
The base package for all habanero-java regions.
edu.rice.hj.runtime.sequential
The base package for a sequential implementation of the HJ runtime.
edu.rice.hj.runtime.simt  
edu.rice.hj.runtime.util
The base package for utility classes used by the HJ runtime.
edu.rice.hj.viz  

Habanero-Java Library Habanero-Java Library.

Habanero-Java (HJ) is a pedagogic parallel programming model being developed at Rice University as part of the Habanero Extreme Scale Software Research Project. 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 compared to a language-based approach since it does not require modifying the compiler.

HJ integrates a wide range of parallel programming constructs (e.g., async tasks, futures, data-driven tasks, forall, 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 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.

Skip navigation links

Copyright © 2015 Rice University - Department of Computer Science. All rights reserved.