Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

HJ-lib 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. Further, the future and data-driven task extensions to 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 internally and externally deterministic.

HJ-lib is built using Java 8 closures 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.

...

We welcome tutorial attendees to pre-install HJ-lib, so that they can try out hands-on examples during the tutorial.  Installation instructions are available in the Download and Set Up page.  API Documentation and code examples are also available online.

Software dependencies: Please ensure that your system has Java 1.8 (or higher) installed for full functionality.  The Download and Set Up page includes download instructions for Java 8 JDK and the IntelliJ IDE which supports Java 8.  Any future Eclipse version that supports the full Java 8 language can also be used.

...