Mapping Techniques for Load Balancing

Slides:



Advertisements
Similar presentations
MPI Message Passing Interface
Advertisements

Practical techniques & Examples
The Building Blocks: Send and Receive Operations
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
A Dynamic World, what can Grids do for Multi-Core computing? Daniel Goodman, Anne Trefethen and Douglas Creager
Super computers Parallel Processing By: Lecturer \ Aisha Dawood.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Parallel Programming Models and Paradigms Prof. Rajkumar Buyya Cloud Computing and Distributed Systems (CLOUDS) Lab. The University of Melbourne, Australia.
Development of Parallel Simulator for Wireless WCDMA Network Hong Zhang Communication lab of HUT.
Distributed Processing, Client/Server, and Clusters
Reference: Message Passing Fundamentals.
Introduction in algorithms and applications Introduction in algorithms and applications Parallel machines and architectures Parallel machines and architectures.
1 Friday, September 29, 2006 If all you have is a hammer, then everything looks like a nail. -Anonymous.
Message-Passing Programming and MPI CS 524 – High-Performance Computing.
An Introduction to Parallel Computing Dr. David Cronk Innovative Computing Lab University of Tennessee Distribution A: Approved for public release; distribution.
Parallel Programming Models and Paradigms
3.5 Interprocess Communication
Strategies for Implementing Dynamic Load Sharing.
Implications for Programming Models Todd C. Mowry CS 495 September 12, 2002.
A. Frank - P. Weisberg Operating Systems Introduction to Cooperating Processes.
1 Tuesday, October 10, 2006 To err is human, and to blame it on a computer is even more so. -Robert Orben.
Sahalu JunaiduICS 573: High Performance Computing6.1 Programming Using the Message Passing Paradigm Principles of Message-Passing Programming The Building.
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
CS 179: GPU Programming Lecture 20: Cross-system communication.
Lecture 1 – Parallel Programming Primer CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed.
Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.
Parallel Architectures
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Designing and Evaluating Parallel Programs Anda Iamnitchi Federated Distributed Systems Fall 2006 Textbook (on line): Designing and Building Parallel Programs.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
1 Multiprocessor and Real-Time Scheduling Chapter 10 Real-Time scheduling will be covered in SYSC3303.
Parallel Computing A task is broken down into tasks, performed by separate workers or processes Processes interact by exchanging information What do we.
Chapter 3 Parallel Programming Models. Abstraction Machine Level – Looks at hardware, OS, buffers Architectural models – Looks at interconnection network,
Message Passing Programming Model AMANO, Hideharu Textbook pp. 140-147.
A Performance Comparison of DSM, PVM, and MPI Paul Werstein Mark Pethick Zhiyi Huang.
Principles of Parallel Algorithm Design Prof. Dr. Cevdet Aykanat Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü.
1 Advanced Behavioral Model Part 1: Processes and Threads Part 2: Time and Space Chapter22~23 Speaker: 陳 奕 全 Real-time and Embedded System Lab 10 Oct.
Distributed Systems CS /640 Programming Models Borrowed and adapted from our good friends at CMU-Doha, Qatar Majd F. Sakr, Mohammad Hammoud andVinay.
Chapter 4 Message-Passing Programming. The Message-Passing Model.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Message-Passing Computing Chapter 2. Programming Multicomputer Design special parallel programming language –Occam Extend existing language to handle.
Lecture 3 : Performance of Parallel Programs Courtesy : MIT Prof. Amarasinghe and Dr. Rabbah’s course note.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 2.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
1 ParallelAlgorithms Parallel Algorithms Dr. Stephen Tse Lesson 9.
COMP7330/7336 Advanced Parallel and Distributed Computing Task Partitioning Dr. Xiao Qin Auburn University
COMP7330/7336 Advanced Parallel and Distributed Computing Task Partitioning Dynamic Mapping Dr. Xiao Qin Auburn University
PVM and MPI.
Group Members Hamza Zahid (131391) Fahad Nadeem khan Abdual Hannan AIR UNIVERSITY MULTAN CAMPUS.
Auburn University
Overview Parallel Processing Pipelining
Lecture 1 – Parallel Programming Primer
CS5102 High Performance Computer Systems Thread-Level Parallelism
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing Principles of Message-Passing Programming.
Parallel Programming By J. H. Wang May 2, 2017.
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing Mapping Techniques Dr. Xiao Qin Auburn University.
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Communication Costs (cont.) Dr. Xiao.
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing Principles of Message-Passing Programming.
Threads and Cooperation
Background and Motivation
Introduction to parallelism and the Message Passing Interface
Presentation transcript:

Mapping Techniques for Load Balancing

Overheads Two sources Time spent in inter-process interaction Time of being idle A good mapping must ensure that computations and interactions among processes at each stage of the execution of the parallel algorithms are well balance

Mapping Techniques Static Mapping distribute the tasks among processes prior to the execution of the algorithm Dynamic mapping distribute the work among processes during the execution of the algorithm Dynamic mapping apply to if tasks are generated dynamically if task size unknown entail but if the amount of data associated with tasks is large

Parallel Algorithm Models Data-Parallel Model Work Pool Model Master-Slave Model Pipeline or Producer-Consumer Model Hybrid Model

Communication Model of Parallel Platforms Two primary form of data exchange between parallel tasks Accessing a shared data space Exchanging message Shared-Address-Space Platforms view of a parallel platform supports a common data space that is accessible to all processors processors interact by modifying data objects stored in it

Message-Passing Platform (MPP) Logic machine view of MPP consists p processing nodes either a single processor or shared-address-space multi-processors each with its own exclusive address space e.g. cluster workstations Messages data and work synchronize

MP Paradigm Four basic operations: MP APIs: MP Paradigms support execution of a different program on each nodes Four basic operations: Interactions: send and receive ID for each processes. Using function whoami numprocs which specify the number of processes MP APIs: MPI (Message Passing Interface) PVM (Parallel Virtual Machine)

Explicit Parallel Programming Numerous programming and libraries have been developed Difference in their view of address space degree of synchronization multiplicity of programs MPI is wide-spread adoption due to the fact that it impose minimal requirements on hardware

Principles of Message-Passing Programming Two key attributes of MPP It assumes a partitioned address space each data element must belong to one of the partitions of the space, i.e. data must explicitly partitioned and placed all interactions requires cooperation of two processes for dynamic and/or unstructured interactions the complexity of code written is very high It suppose only explicit parallelization decompose computations and extract concurrency

Structure of MP Programs(1) Asynchronous all concurrent tasks execute asynchronously harder to reason about; can have non-deterministic behavior due to race conditions Loosely synchronous tasks or subtasks synchronize to perform interactions between these interactions, tasks execute asynchronously easy to reason about

Structure of MP Programs (2) MP Paradigm supports execution of a different program on each of the p processes but makes the job of writing parallel program s effectively unscalable Most use single program multiple data(SPMD) code executed by different processes is identical except for a small processes (e.g. the ‘root’ process) SPMD can be loosely synchronous or asynchronous

Building Blocks Send and Receive Operations (1) send (void *sendbuf, int nelems, int dest) receive(void *recvbuf,int nelems,int source) sendbuf points to a buffer that store data to be sent recvbuf points to a buffer that store data to be received nelems is the number of data units dest is the identifier that the process receives data source is the identifier of the process that sends data

Send and Receive Operations (2) P0 P1 a=100; receive (&a,1,0); send(&a,1,1); printf(“%d\n”,a); a=0; >>>>> What p1 prints out?