Using Charm++ with Arrays Laxmikant (Sanjay) Kale Parallel Programming Lab Department of Computer Science, UIUC charm.cs.uiuc.edu.

Slides:



Advertisements
Similar presentations
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Potential Languages of the Future Chapel,
Advertisements

SPIM and MIPS programming
1 Compiler Construction Intermediate Code Generation.
An Array A sequence of elements of a particular type Each element in the array has an index which gives its position in the sequence An array is declared.
Efficient Representation of Data Structures on Associative Processors Jalpesh K. Chitalia (Advisor Dr. Robert A. Walker) Computer Science Department Kent.
Efficient Associative SIMD Processing for Non-Tabular Data Jalpesh K. Chitalia and Robert A. Walker Computer Science Department Kent State University.
Introduction to Data Structure, Spring 2007 Slide- 1 California State University, Fresno Introduction to Data Structure Introduction of Concepts Ming Li.
A CASE STUDY OF COMMUNICATION OPTIMIZATIONS ON 3D MESH INTERCONNECTS University of Illinois at Urbana-Champaign Abhinav Bhatele, Eric Bohm, Laxmikant V.
A. Frank - P. Weisberg Operating Systems Simple/Basic Segmentation.
Topology Aware Mapping for Performance Optimization of Science Applications Abhinav S Bhatele Parallel Programming Lab, UIUC.
Charm++ Load Balancing Framework Gengbin Zheng Parallel Programming Laboratory Department of Computer Science University of Illinois at.
1 Charm++ on the Cell Processor David Kunzman, Gengbin Zheng, Eric Bohm, Laxmikant V. Kale.
Collective Communication
CPS120: Introduction to Computer Science Arrays. Arrays: A Definition A list of variables accessed using a single identifier May be of any data type Can.
Scalable Algorithms for Structured Adaptive Mesh Refinement Akhil Langer, Jonathan Lifflander, Phil Miller, Laxmikant Kale Parallel Programming Laboratory.
Visual Basic Games: Prepare for Hangman
Integrated Performance Views in Charm++: Projections meets TAU Scott Biersdorff Allen D. Malony Department Computer and Information Science University.
(Superficial!) Review of Uniprocessor Architecture Parallel Architectures and Related concepts CS 433 Laxmikant Kale University of Illinois at Urbana-Champaign.
Molecular Dynamics Collection of [charged] atoms, with bonds – Newtonian mechanics – Relatively small #of atoms (100K – 10M) At each time-step – Calculate.
Advanced / Other Programming Models Sathish Vadhiyar.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Dynamic Load Balancing in Charm++ Abhinav S Bhatele Parallel Programming Lab, UIUC.
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
1CPSD Software Infrastructure for Application Development Laxmikant Kale David Padua Computer Science Department.
Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
CPS120: Introduction to Computer Science Lecture 15 Arrays.
Intro to Programming Web Design ½ Shade Adetoro. Programming Slangs IDE - Integrated Development Environment – the software in which you develop an application.
Charm++ Data-driven Objects L. V. Kale. Parallel Programming Decomposition – what to do in parallel Mapping: –Which processor does each task Scheduling.
Fortress Aaron Becker Abhinav Bhatele Hassan Jafri 2 May 2006.
1 One Dimensional Arrays Chapter 11 2 "All students to receive arrays!" reports Dr. Austin. Declaring arrays scores :
Charm++ Data-driven Objects L. V. Kale. Parallel Programming Decomposition – what to do in parallel Mapping: –Which processor does each task Scheduling.
Parallelizing Spacetime Discontinuous Galerkin Methods Jonathan Booth University of Illinois at Urbana/Champaign In conjunction with: L. Kale, R. Haber,
SMALL IDENTIFIERS FOR CHARE ARRAY ELEMENTS With contributions from Akhil Langer, Harshitha Menon, Bilge Acun, Ramprasad Venkataraman, and L.V. Kalé Phil.
Implementation: Charm++ Orion Sky Lawlor
Charm++ overview L. V. Kale. Parallel Programming Decomposition – what to do in parallel –Tasks (loop iterations, functions,.. ) that can be done in parallel.
Simplifying Parallel Programming with Incomplete Parallel Languages Laxmikant Kale Computer Science
Scalable and Topology-Aware Load Balancers in Charm++ Amit Sharma Parallel Programming Lab, UIUC.
Programming an SMP Desktop using Charm++ Laxmikant (Sanjay) Kale Parallel Programming Laboratory Department of Computer Science.
Chapel: User-Defined Distributions Brad Chamberlain Cray Inc. CSEP 524 May 20, 2010.
NGS Workshop: Feb 2002PPL-Dept of Computer Science, UIUC Programming Environment and Performance Modeling for million-processor machines Laxmikant (Sanjay)
Integrated Performance Views in Charm++: Projections meets TAU Scott Biersdorff Allen D. Malony Department Computer and Information Science University.
A Design Flow for Optimal Circuit Design Using Resource and Timing Estimation Farnaz Gharibian and Kenneth B. Kent {f.gharibian, unb.ca Faculty.
Hierarchical Load Balancing for Large Scale Supercomputers Gengbin Zheng Charm++ Workshop 2010 Parallel Programming Lab, UIUC 1Charm++ Workshop 2010.
UDI Technology Benefits Slide 1 Uniform Driver Interface UDI Technology Benefits.
Case Study 5: Molecular Dynamics (MD) Simulation of a set of bodies under the influence of physical laws. Atoms, molecules, forces acting on them... Have.
CPE779: Shared Memory and OpenMP Based on slides by Laxmikant V. Kale and David Padua of the University of Illinois.
Parallel Molecular Dynamics A case study : Programming for performance Laxmikant Kale
Matrix Multiplication in Hadoop
Debuggers. Errors in Computer Code Errors in computer programs are commonly known as bugs. Three types of errors in computer programs –Syntax errors –Runtime.
1 Scalable Cosmological Simulations on Parallel Machines Filippo Gioachin¹ Amit Sharma¹ Sayantan Chakravorty¹ Celso Mendes¹ Laxmikant V. Kale¹ Thomas R.
PADTAD 2008 Memory Tagging in Charm++ Filippo Gioachin Laxmikant V. Kalé Department of Computer Science University of Illinois at Urbana-Champaign.
1 ChaNGa: The Charm N-Body GrAvity Solver Filippo Gioachin¹ Pritish Jetley¹ Celso Mendes¹ Laxmikant Kale¹ Thomas Quinn² ¹ University of Illinois at Urbana-Champaign.
Flexibility and Interoperability in a Parallel MD code Robert Brunner, Laxmikant Kale, Jim Phillips University of Illinois at Urbana-Champaign.
SPiiPlus Training Class
LiveViz – What is it? Charm++ library Visualization tool
Simple/Basic Segmentation
In-situ Visualization using VisIt
Sending a few stragglers home
Parallel Objects: Virtualization & In-Process Components
Lesson 1: Buttons and Events – 12/18
Implementing Simplified Molecular Dynamics Simulation in Different Parallel Paradigms Chao Mei April 27th, 2006 CS498LVK.
Component Frameworks:
Chapter 8: ZPL and Other Global View Languages
GENERAL VIEW OF KRATOS MULTIPHYSICS
CSCI N207 Data Analysis Using Spreadsheet
Main Memory Session - 16.
Gengbin Zheng, Esteban Meneses, Abhinav Bhatele and Laxmikant V. Kale
An Orchestration Language for Parallel Objects
Presentation transcript:

Using Charm++ with Arrays Laxmikant (Sanjay) Kale Parallel Programming Lab Department of Computer Science, UIUC charm.cs.uiuc.edu

2 August 01, 2009Charm++ Tutorial Proxy Objects Entry methods for each chare are invoked using proxy objects--lightweight handles to potentially remote chares.

3 August 01, 2009Charm++ Tutorial Limitations of Plain Proxies In a large program, keeping track of all the proxies is difficult A simple proxy doesn’t tell you anything about the chare other than its type. Managing collective operations like broadcast and reduce is complicated.

4 August 01, 2009Charm++ Tutorial Example: Molecular Dynamics Patches: blocks of space containing particles. Computes: chares which compute the interactions between particles in two patches.

5 August 01, 2009Charm++ Tutorial Example: Molecular Dynamics We could write this program using just chares and plain proxies But, it’ll be much simpler if we use Chare Arrays. note: you can find complete MD code in examples/charm++/Molecular2D in the Charm distribution.

6 August 01, 2009Charm++ Tutorial Chare Arrays Arrays organize chares into indexed collections. Each chare in the array has a proxy for the other array elements, accessible using simple syntax sampleArray[i] // i’th proxy

7 August 01, 2009Charm++ Tutorial Array Dimensions Anything can be used as array indices –integers –tuples –bit vectors –user-defined types

8 August 01, 2009Charm++ Tutorial Arrays in MD array [2D] Patch {... } array [4D] Compute {... } note: arrays can be sparse x and y coordinates of patch x and y coordinates of both patches involved

9 August 01, 2009Charm++ Tutorial Managing Mapping Arrays let the programmer control the mapping of array elements to PEs. –Round-robin, block-cyclic, etc –User defined mapping

10 August 01, 2009Charm++ Tutorial Broadcasts Simple way to invoke the same entry method on each array elementSimple way to invoke the same entry method on each array element Syntax: – // call on one element // call on one element – sampleArray[i].method() sampleArray[i].method() – // broadcast to whole array // broadcast to whole array – sampleArray.method() sampleArray.method()

11 August 01, 2009Charm++ Tutorial Broadcasts in MD Used to fire off the first timestep after initialization is complete // All chares are created, time to // start the simulation patchArray.start();

12 August 01, 2009Charm++ Tutorial Reductions No global flow of control, so each chare must contribute data independently using contribute(). A user callback (created using CkCallback) is invoked when the reduction is complete.

13 August 01, 2009Charm++ Tutorial Reductions Runtime system assembles reduction tree User specifies reduction operation At root of tree, a callback is performed on a specified chare

14 August 01, 2009Charm++ Tutorial Reductions in MD Used to determine when all computes have been created. // all local computes have been created contribute(0, 0, CkReduction::concat, // do nothing CkCallback( CkIndex_Main::computeCreationDone(), mainProxy)); Function to call Chare to handle callback function