150 likes | 306 Views
Habanero Cnc. Sagnak Tasirlar. Acknowledgments. Colleagues @ Rice Vivek Sarkar , Zoran Budimlic , Michael Burke, Philippe Charles Vincent Cave, David Peixotto , Dragos Sbirlea , Alina Simion , Max Grossman Collaborators @ Intel
E N D
Habanero Cnc Sagnak Tasirlar
Acknowledgments • Colleagues @ Rice • VivekSarkar, ZoranBudimlic, Michael Burke, Philippe Charles • Vincent Cave, David Peixotto, DragosSbirlea, AlinaSimion, Max Grossman • Collaborators @ Intel • Kathleen Knobe, Geoff Lowney, Ryan Newton, Mark Hampton, Frank Schlimbach • Collaborators @ • AparnaChandramowlishwaran, Richard Vuduc @Georgia Tech • Jens Palsberg and CDSC team @UCLA
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
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
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
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
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
Habanero CnC Build Model Code to invoke the graph Code to put initial values in graph Code to implement abstract steps Habanero Java Source Files Concurrent Collections Textual Graph import cnc_c Compiler cnc_t Translator import Habanero Java source files Habanero Java Runtime Library Concurrent .class Collections Files Library JAR builder Abstract classes for all steps Definitions for all collections Graph definition and initialization Java application User specified Concurrent Collections components
Scheduling HJ-CnC • Blocking policy • Granularity • Non Blocking policy • Delayed async • Rollback and Replay • HJ exception handling • Side effect freedom • Data driven nature
Habanero CnCvs Intel CnC • Step language • Java (or HJ) vs C++ • Safety • Tag types : Immutable vs mutable • Graph conformance • Runtime scheduling • HJ runtimes vs Intel TBB
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
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 (ZoranBudimlic, AparnaChandramowlishwaran, Kathleen Knobe, Geoff Lowney, VivekSarkar, and Leo Treggiari )