Java

Submitted by: Submitted by

Views: 10

Words: 1751

Pages: 8

Category: Literature

Date Submitted: 09/28/2015 04:33 PM

Report This Essay

An Introduction to Parallel Programming

with Habanero-Java

Vivek Sarkar

Dept of Computer Science

Rice University

vsarkar@rice.edu

October 26, 2011

Parallel Software Challenge & Expertise Gap

Domain Experts need high

level parallelism-oblivious

Programming Models

Domain Experts

Expertise gap between domain

experts and concurrency experts

Today’s low-level Parallel

Programming Models are only

accessible to a small number of

concurrency experts

Concurrency

Experts

2

CS Majors to the Rescue

Domain Experts

Domain Experts need high

level parallelism-oblivious

Programming Models

Concurrent Collections (CnC)

Focus of Rice

Habanero Project

Software engineers need

simple and portable Parallel

Programming Models

Habanero Execution Model in

Java, C, Scala (HJ, HC, HS)

Software

Engineers

Concurrency Experts need lowlevel Parallel Programming Models

Concurrency

Experts

3

Habanero-Java (http://habanero.rice.edu/hj)

  New pedagogic language and implementation developed at Rice since 2007

  Derived from Java-based version of X10 language (v1.5) in 2007

  X10 language has evolved significantly since then

  Habanero-Java (HJ) is currently an extension of Java 1.4

  All Java 5 & 6 libraries and classes can be called from HJ programs

  Front-end support for Java 5 constructs (notably, generics) in progress

  HJ compiler generates Java classfiles that execute with HJ runtime on a standard JRE

  Download available at https://wiki.rice.edu/confluence/display/PARPROG/HJDownload

  HJ’s parallel extensions are focused on mid-level task parallelism

1. 

2. 

3. 

4. 

Dynamic task creation & termination: future, async, finish, force, forall, foreach

Mutual exclusion and isolation: isolated

Collective and point-to-point synchronization: phaser, next

Locality control --- task and data distributions: places, here

 

Habanero-C and Habanero-Scala are under development with similar constructs

 ...