habanero cnc sagnak tasirlar 1. acknowledgments 2 colleagues @ rice vivek sarkar, zoran budimlic,...
TRANSCRIPT
1
HABANERO CNC
Sagnak Tasirlar
2
Acknowledgments
Colleagues @ Rice Vivek Sarkar, Zoran Budimlic, Michael Burke, Philippe
Charles Vincent Cave, David Peixotto, Dragos Sbirlea, Alina
Simion, Max Grossman
Collaborators @ Intel Kathleen Knobe, Geoff Lowney, Ryan Newton, Mark
Hampton, Frank Schlimbach
Collaborators @ Aparna Chandramowlishwaran, Richard Vuduc
@Georgia Tech Jens Palsberg and CDSC team @UCLA
3
Habanero’s Parallelism Postulation Four dimensions of portable parallelism
Lightweight dynamic task creation finish/async parallelism
Collective and point-to-point synchronization phaser
Mutual exclusion, isolation isolated
Locality control Hierarchical place trees
4
Habanero’s Parallelism Postulation Four dimensions of portable parallelism
Lightweight dynamic task creation finish/async parallelism
Collective and point-to-point synchronization phaser
Mutual exclusion, isolation isolated
Locality control Hierarchical place trees
Figure credit: Raghavan Raman, MS Thesis, Compiler Support for Work-Stealing Parallel Runtime Systems
5
Habanero’s Parallelism Postulation Four dimensions of portable parallelism
Lightweight dynamic task creation finish/async parallelism
Collective and point-to-point synchronization phaser
Mutual exclusion, isolation isolated
Locality control Hierarchical place trees
6
Habanero Java (HJ)
An extended subset of X10 v1.5 which is an extended subset of Java
Achieves parallelism via mentioned four dimensions
Work sharing, work stealing and adaptive runtimes
Requires parallelism awareness
Download from habanero.rice.edu/hj
7
Habanero CnC (HJ-CnC)
Coordination language for Habanero Java on top of HJ coordinating communication within
HJ steps Parallelism oblivious development
Every step instance is an async CnC graph is wrapped with a finish scope Item and Tag Collections are Concurrent hash
maps Has three flavors of scheduling
Download from habanero.rice.edu/cnc
importimport
Habanero CnC Build ModelCode to invoke the graphCode to put initial values in graphCode to implement abstract steps
User specified
Concurrent Collections components
ConcurrentCollectionsTextualGraph
cnc_t Translator
Habanero Java source files
cnc_c Compiler
.classFiles
JAR builder
Concurrent Collections Library
Java application
HabaneroJava
Source Files
Abstract classes for all stepsDefinitions for all collectionsGraph definition and initialization
Habanero JavaRuntimeLibrary
9
Scheduling HJ-CnC
Blocking policy Granularity
Non Blocking policy Delayed async
Rollback and Replay HJ exception handling Side effect freedom Data driven nature
10
Habanero CnC vs Intel CnC
Step language Java (or HJ) vs C++
Safety Tag types : Immutable vs mutable Graph conformance
Runtime scheduling HJ runtimes vs Intel TBB
11
HJ-CnC as a domain specific language
Rice-UCLA collaboration on customizable domain specific computing Five year NSF expeditions project to investigate
malleable domain specific hardware and software Domain is set as medical imaging and hemodynamic
modeling Habanero CnC is the language of choice for domain
experts
For further info visit cdsc.ucla.edu
12
Results
13
Results
14
References
Submitted Technical Report IPDPS ’10
Performance Evaluation of Concurrent Collections on High-Performance Multicore Computing Systems (A. Chandramowlishwaran, K. Knobe, R. Vuduc
Damp ’09 Declarative Aspects of Memory Management in the Concurrent
Collections Parallel Programming Model (Z.Budimlic, A. Chandramowlishwaran, K. Knobe, G. Lowney, V. Sarkar and L. Treggiari)
CPC ’09 Multi-core Implementations of the Concurrent Collections
Programming Model (Zoran Budimlic, Aparna Chandramowlishwaran, Kathleen Knobe, Geoff Lowney, Vivek Sarkar, and Leo Treggiari )
15 Questions and feedback