CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/

Slides:



Advertisements
Similar presentations
Practical techniques & Examples
Advertisements

Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
1 Chapter 1 Why Parallel Computing? An Introduction to Parallel Programming Peter Pacheco.
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
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.
Taxanomy of parallel machines. Taxonomy of parallel machines Memory – Shared mem. – Distributed mem. Control – SIMD – MIMD.
Types of Parallel Computers
Revisiting a slide from the syllabus: CS 525 will cover Parallel and distributed computing architectures – Shared memory processors – Distributed memory.
Reference: Message Passing Fundamentals.
Introduction CS 524 – High-Performance Computing.
1 COMP 206: Computer Architecture and Implementation Montek Singh Mon, Dec 5, 2005 Topic: Intro to Multiprocessors and Thread-Level Parallelism.
Tuesday, September 12, 2006 Nothing is impossible for people who don't have to do it themselves. - Weiler.
12a.1 Introduction to Parallel Computing UNC-Wilmington, C. Ferner, 2008 Nov 4, 2008.
Multiprocessors ELEC 6200: Computer Architecture and Design Instructor : Agrawal Name: Nam.
Parallel Computing Overview CS 524 – High-Performance Computing.
Message Passing Fundamentals Self Test. 1.A shared memory computer has access to: a)the memory of other nodes via a proprietary high- speed communications.
Parallel Programming Models and Paradigms
12/1/2005Comp 120 Fall December Three Classes to Go! Questions? Multiprocessors and Parallel Computers –Slides stolen from Leonard McMillan.
Parallel Processing Architectures Laxmi Narayan Bhuyan
 Parallel Computer Architecture Taylor Hearn, Fabrice Bokanya, Beenish Zafar, Mathew Simon, Tong Chen.
Mapping Techniques for Load Balancing
CMSC 611: Advanced Computer Architecture Parallel Computation Most slides adapted from David Patterson. Some from Mohomed Younis.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Lecture 1 – Parallel Programming Primer CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed.
Introduction to Parallel Processing 3.1 Basic concepts 3.2 Types and levels of parallelism 3.3 Classification of parallel architecture 3.4 Basic parallel.
Computer Architecture Parallel Processing
Reference: / Parallel Programming Paradigm Yeni Herdiyeni Dept of Computer Science, IPB.
KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing.
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.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Threads, Thread management & Resource Management.
Multi-core architectures. Single-core computer Single-core CPU chip.
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
SJSU SPRING 2011 PARALLEL COMPUTING Parallel Computing CS 147: Computer Architecture Instructor: Professor Sin-Min Lee Spring 2011 By: Alice Cotti.
Chapter 3 Parallel Programming Models. Abstraction Machine Level – Looks at hardware, OS, buffers Architectural models – Looks at interconnection network,
Definitions Speed-up Efficiency Cost Diameter Dilation Deadlock Embedding Scalability Big Oh notation Latency Hiding Termination problem Bernstein’s conditions.
Parallel Computing Department Of Computer Engineering Ferdowsi University Hossain Deldari.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE 498AL, University of Illinois, Urbana-Champaign 1 Basic Parallel Programming Concepts Computational.
1 Parallel Programming Aaron Bloomfield CS 415 Fall 2005.
Spring 2003CSE P5481 Issues in Multiprocessors Which programming model for interprocessor communication shared memory regular loads & stores message passing.
GPU-based Computing. Tesla C870 GPU 8 KB / multiprocessor 1.5 GB per GPU 16 KB up to 768 threads () up to 768 threads ( 21 bytes of shared memory and.
Lecture 7: POSIX Threads - Pthreads. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Pipelining and Parallelism Mark Staveley
Department of Computer Science and Software Engineering
Data Structures and Algorithms in Parallel Computing Lecture 1.
Parallel Processing I’ve gotta spend at least 10 hours studying for the IT 344 final! I’m going to study with 9 friends… we’ll be done in an hour.
Lecture 3: Computer Architectures
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 2.
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-1.
Parallel Computing Presented by Justin Reschke
1/46 PARALLEL SOFTWARE ( SECTION 2.4). 2/46 The burden is on software From now on… In shared memory programs: Start a single process and fork threads.
CDA-5155 Computer Architecture Principles Fall 2000 Multiprocessor Architectures.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Lecture 13 Parallel Processing. 2 What is Parallel Computing? Traditionally software has been written for serial computation. Parallel computing is the.
Introduction to Parallel Processing
Lecture 1 – Parallel Programming Primer
Parallel Computers Definition: “A parallel computer is a collection of processing elements that cooperate and communicate to solve large problems fast.”
Parallel Programming By J. H. Wang May 2, 2017.
Chapter 4: Threads.
Symmetric Multiprocessing (SMP)
Parallel Processing Architectures
Chapter 1 Introduction.
Chapter 4: Threads & Concurrency
Presentation transcript:

CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/ Kawther Abas

Parallelism Parallelism Is a set of activities that occur at the same time. Why need Parallelism? Faster, of course –Finish the work earlier Same work in less time –Do more work More work in the same time

Parallel Processing Parallel processing is the ability to carry out multiple operations or tasks simultaneously. Parallel computing Parallel computing is a form of computation in which many calculations are carried out simultaneously.

What level Parallelism? Bit level parallelism: 1970 to ~1985 –4 bits, 8 bit, 16 bit, 32 bit microprocessors Instruction level parallelism (ILP): ~1985 through today –Pipelining –Superscalar –VLIW( very long instruction word ) –Out-of-Order execution –Limits to benefits of ILP? Process Level or Thread level parallelism; mainstream for general purpose computing? –Servers are parallel –High-end Desktop dual processor PC

Why Multiprocessors? 1.Microprocessors as the fastest CPUs 2.Complexity of current microprocessors 3.Slow (but steady) improvement in parallel software (scientific apps, databases, OS) 4.Emergence of embedded and server markets driving microprocessors.

Classification of Parallel Processors SIMD – Single instruction, multiple data MIMD - multiple instruction, multiple data 1. Message Passing Multiprocessor: Interprocessor communication through explicit “send” and “receive” operation of messages over the network 2. Shared Memory Multiprocessor: Interprocessor communication by load and store operations to shared memory locations.

Concurrency Is the ability to playback at the same time.

designing parallel algorithms Have tow steps: 1- Task Decomposition 2- Parallel Processing

Task Decomposition Big idea First decompose for message passing Then decompose for the shared memory on each node Decomposition Techniques Recursive Data Exploratory Speculative

Recursive Decomposition Good for problems which are amenable to a divide and conquer strategy Quicksort - a natural fit

Data Decomposition Idea-partitioning of data leads to tasks Can partition Output data Input data Intermediate data Whatever………………….

Exploratory Decomposition For search space type problems Partition search space into small parts Look for solution in each part

Speculative Decomposition Computation gambles at a branch point in the program Takes path before it knows result Win big or waste

Parallel Programming Models Data parallelism / Task parallelism Explicit parallelism / Implicit parallelism Shared memory / Distributed memory Other programming paradigms –Object-oriented –Functional and logic

Parallel Programming Models Data Parallelism Parallel programs that concurrent execution emphasize of the same task on different data elements (data-parallel programs) Task Parallelism Parallel programs that emphasize the concurrent execution of different tasks on the same or different data

Parallel Programming Models Explicit Parallelism The programmer specifies directly the activities of the multiple concurrent “threads of control” that form a parallel computation. Implicit Parallelism The programmer provides high-level specification of program behavior.

Parallel Programming Models Shared Memory The programmer’s task is to specify the activities of a set of processes that communicate by reading and writing shared memory. Distributed Memory Processes have only local memory and must use some other mechanism to exchange information.

Parallel Programming Models Parallel Programming Tools: Parallel Virtual Machine (PVM) Message-Passing Interface (MPI) PThreads OpenMP High-Performance Fortran (HPF) Parallelizing Compilers

Shared Memory vs. Distributed Memory Programs Shared Memory Programming –Start a single process and fork threads. –Threads carry out work. –Threads communicate through shared memory. –Threads coordinate through synchronization (also through shared memory). Distributed Memory Programming –Start multiple processes on multiple systems. –Processes carry out work. –Processes communicate through message-passing. –Processes coordinate either through message- passing or synchronization (generates messages).

Shared Memory Dynamic threads –Master thread waits for work, forks new threads, and when threads are done, they terminate –Efficient use of resources, but thread creation and termination is time consuming. Static threads –Pool of threads created and are allocated work, but do not terminate until cleanup. –Better performance, but potential waste of system resources.