Submitted by: Submitted by narutouzumaki
Views: 10
Words: 1751
Pages: 8
Category: Literature
Date Submitted: 09/28/2015 04:33 PM
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
...