Cloud Computing Lecture #1 Parallel and Distributed Computing Jimmy Lin The iSchool University of Maryland Monday, January 28, 2008 This work is licensed.

Slides:



Advertisements
Similar presentations
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Advertisements

Cloud Computing Lecture #3 More MapReduce Jimmy Lin The iSchool University of Maryland Wednesday, September 10, 2008 This work is licensed under a Creative.
1 COMP 206: Computer Architecture and Implementation Montek Singh Mon, Dec 5, 2005 Topic: Intro to Multiprocessors and Thread-Level Parallelism.
Jimmy Lin The iSchool University of Maryland Wednesday, April 15, 2009
Cloud Computing Lecture #5 Graph Algorithms with MapReduce Jimmy Lin The iSchool University of Maryland Wednesday, October 1, 2008 This work is licensed.
What is cloud computing? Why is this different? Jimmy Lin The iSchool University of Maryland Monday, March 30, 2009 This work is licensed under a Creative.
Ceng Operating Systems Chapter 2.5 : Threads Process concept  Process scheduling  Interprocess communication  Deadlocks  Threads.
Parallel Programming Models and Paradigms
Computer Science 162 Section 1 CS162 Teaching Staff.
CS Distributed Computing Systems Chin-Chih Chang, An Introduction to Threads.
Parallel and Distributed IR
 Parallel Computer Architecture Taylor Hearn, Fabrice Bokanya, Beenish Zafar, Mathew Simon, Tong Chen.
Topic ? Course Overview. Guidelines Questions are rated by stars –One Star Question  Easy. Small definition, examples or generic formulas –Two Stars.
Cloud Computing Lecture #4 Graph Algorithms with MapReduce Jimmy Lin The iSchool University of Maryland Wednesday, February 6, 2008 This work is licensed.
Introduction to Parallel Processing Ch. 12, Pg
Cloud Computing Lecture #1 What is Cloud Computing? (and an intro to parallel/distributed processing) Jimmy Lin The iSchool University of Maryland Wednesday,
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
Lecture 1 – Parallel Programming Primer CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed.
CS 470/570:Introduction to Parallel and Distributed Computing.
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.
CSCI-2950u :: Data-Intensive Scalable Computing Rodrigo Fonseca (rfonseca)
Cloud Computing Part #2 Materials adopted from the slides by Jimmy Lin, The iSchool, University of Maryland Zigmunds Buliņš, Mg. sc. ing 1.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
1 Chapter 1 Parallel Machines and Computations (Fundamentals of Parallel Processing) Dr. Ranette Halverson.
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
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,
CHAPTER 12 INTRODUCTION TO PARALLEL PROCESSING CS 147 Guy Wong page
Chapter 2 Parallel Architecture. Moore’s Law The number of transistors on a chip doubles every years. – Has been valid for over 40 years – Can’t.
Concurrent Programming. Concurrency  Concurrency means for a program to have multiple paths of execution running at (almost) the same time. Examples:
Distributed Computing Seminar Lecture 1: Introduction to Distributed Computing & Systems Background Christophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet.
Chapter 9: Alternative Architectures In this course, we have concentrated on single processor systems But there are many other breeds of architectures:
Pipelined and Parallel Computing Data Dependency Analysis for 1 Hongtao Du AICIP Research Mar 9, 2006.
Intro to Parallel and Distributed Processing Some material adapted from slides by Christophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet, Google.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
Chapter 7 -1 CHAPTER 7 PROCESS SYNCHRONIZATION CGS Operating System Concepts UCF, Spring 2004.
Cloud Computing Lecture #1 What is Cloud Computing? (and an intro to parallel/distributed processing) Jimmy Lin The iSchool University of Maryland Modified.
Hwajung Lee. Maximilien Brice, © CERN  Fact: Processor population is exploding. Technology has dramatically reduced the price of processors.  Geographic.
Lecture 1 – Introduction CSE 490h – Introduction to Distributed Computing, Spring 2007 Except as otherwise noted, the content of this presentation is licensed.
Parallel Computing.
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
1 Chapter 2.5 : Threads Process concept  Process concept  Process scheduling  Process scheduling  Interprocess communication  Interprocess communication.
Pipelined and Parallel Computing Partition for 1 Hongtao Du AICIP Research Dec 1, 2005 Part 2.
Parallel Processing Chapter 9. Problem: –Branches, cache misses, dependencies limit the (Instruction Level Parallelism) ILP available Solution:
3/12/2013Computer Engg, IIT(BHU)1 INTRODUCTION-1.
Modern Information Retrieval
Parallel Computing Presented by Justin Reschke
Lecture 1 – Introduction CSE 490h – Introduction to Distributed Computing, Winter 2008 Except as otherwise noted, the content of this presentation is licensed.
LECTURE #1 INTRODUCTON TO PARALLEL COMPUTING. 1.What is parallel computing? 2.Why we need parallel computing? 3.Why parallel computing is more difficult?
Intro to Parallel and Distributed Processing Some material adapted from slides by Christophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet, Google.
Lecture 13 Parallel Processing. 2 What is Parallel Computing? Traditionally software has been written for serial computation. Parallel computing is the.
COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn University
Introduction to Cloud Computing 1. 2 Performance progress 2010: 2.57 petaflops 2005: teraflops 2000: 4.94 teraflops 1995: 170 gigaflops 15,100.
These slides are based on the book:
Flynn’s Taxonomy Many attempts have been made to come up with a way to categorize computer architectures. Flynn’s Taxonomy has been the most enduring of.
Advanced Operating Systems CIS 720
Lecture 1 – Parallel Programming Primer
Distributed Processors
buses, crossing switch, multistage network.
Multi-Processing in High Performance Computer Architecture:
Different Architectures
Cloud Computing Lecture #4 Graph Algorithms with MapReduce
Symmetric Multiprocessing (SMP)
Distributed System Gang Wu Spring,2018.
buses, crossing switch, multistage network.
AN INTRODUCTION ON PARALLEL PROCESSING
Hwajung Lee ITEC452 Distributed Computing Lecture 1 Introduction to Distributed Systems.
Presentation transcript:

Cloud Computing Lecture #1 Parallel and Distributed Computing Jimmy Lin The iSchool University of Maryland Monday, January 28, 2008 This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States See for detailshttp://creativecommons.org/licenses/by-nc-sa/3.0/us/ Material adapted from slides by Christophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet, Google Distributed Computing Seminar, 2007 (licensed under Creation Commons Attribution 3.0 License)

iSchool Today’s Topics Course overview Introduction to parallel and distributed processing

iSchool What’s the course about? Integration of research and teaching Team leaders get help on a tough problem Team members gain valuable experience Criteria for success: at the end of the course Each team will have a publishable result Each team will have a paper suitable for submission to an appropriate conference/journal Along the way: Build a community of hadoopers at Maryland Generate lots of publicity Have lots of fun!

iSchool Hadoop Zen Don’t get frustrated (take a deep breath)… This is bleeding edge technology Be patient… This is the first time I’ve taught this course Be flexible… Lots of uncertainty along the way Be constructive… Tell me how I can make everyone’s experience better

iSchool Things to go over… Course schedule Course objectives Assignments and deliverables Evaluation

iSchool My Role To hack alongside everyone To substantively contribute ideas where appropriate To serve as a facilitator and a resource To make sure everything runs smoothly

iSchool Outline Web-Scale Problems Parallel vs. Distributed Computing Flynn's Taxonomy Programming Patterns

iSchool Web-Scale Problems Characteristics: Lots of data Lots of crunching (not necessarily complex itself) Examples: Obviously, problems involving the Web Empirical and data-driven research (e.g., in HLT) “Post-genomics era” in life sciences High-quality animation The serious hobbyist

iSchool It all boils down to… Divide-and-conquer Throwing more hardware at the problem Simple to understand… a lifetime to master…

iSchool Parallel vs. Distributed Parallel computing generally means: Vector processing of data Multiple CPUs in a single computer Distributed computing generally means: Multiple CPUs across many computers

iSchool Flynn’s Taxonomy Instructions Single (SI)Multiple (MI) Data Multiple (MD) SISD Single-threaded process MISD Pipeline architecture SIMD Vector Processing MIMD Multi-threaded Programming Single (SD)

iSchool SISD DDDDDDD Processor Instructions

iSchool SIMD D0D0 Processor Instructions D0D0 D0D0 D0D0 D0D0 D0D0 D1D1 D2D2 D3D3 D4D4 … DnDn D1D1 D2D2 D3D3 D4D4 … DnDn D1D1 D2D2 D3D3 D4D4 … DnDn D1D1 D2D2 D3D3 D4D4 … DnDn D1D1 D2D2 D3D3 D4D4 … DnDn D1D1 D2D2 D3D3 D4D4 … DnDn D1D1 D2D2 D3D3 D4D4 … DnDn D0D0

iSchool MIMD DDDDDDD Processor Instructions DDDDDDD Processor Instructions

iSchool Parallel vs. Distributed Shared Memory Parallel: Multiple CPUs within a shared memory machine Distributed: Multiple machines with own memory connected over a network Network connection for data transfer DDDDDDD Processor Instructions DDDDDDD Processor Instructions

iSchool Divide and Conquer “Work” w1w1 w2w2 w3w3 r1r1 r2r2 r3r3 “Result” “worker” Partition Combine

iSchool Different Workers Different threads in the same core Different cores in the same CPU Different CPUs in a multi-processor system Different machines in a distributed system

iSchool Parallelization Problems How do we assign work units to workers? What if we have more work units than workers? What if workers need to share partial results? How do we aggregate partial results? How do we know all the workers have finished? What if workers die? What is the common theme of all of these problems?

iSchool General Theme? Parallelization problems arise from: Communication between workers Access to shared resources (e.g., data) Thus, we need a synchronization system! This is tricky: Finding bugs is hard Solving bugs is even harder

iSchool Multi-Threaded Programming Difficult because Don’t know the order in which threads run Don’t know when threads interrupt each other Thus, we need: Semaphores (lock, unlock) Conditional variables (wait, notify, broadcast) Barriers Still, lots of problems: Deadlock, livelock Race conditions... Moral of the story: be careful!

iSchool Patterns for Parallelism Several programming methodologies exist to build parallelism into programs Here are some…

iSchool Master/Workers The master initially owns all data The master creates workers and assigns tasks The master waits for workers to report back workers master

iSchool Producer/Consumer Flow Producers create work items Consumers process them Can be daisy-chained CP P P C C CP P P C C

iSchool All available consumers should be available to process data from any producer Work queues divorce 1:1 relationship from producers to consumers Work Queues C P P P C C shared queue

iSchool And finally… The above solutions represent general patterns In reality: Lots of one-off solutions, custom code Burden on the programmer to manage everything Can we push the complexity onto the system? MapReduce…for next time