The Beauty and Joy of Computing Lecture #10 Concurrency UC Berkeley EECS Lecturer Gerald Friedland Prof Jonathan Koomey looked at 6 decades of data and.

Slides:



Advertisements
Similar presentations
SE-292 High Performance Computing
Advertisements

TO COMPUTERS WITH BASIC CONCEPTS Lecturer: Mohamed-Nur Hussein Abdullahi Hame WEEK 1 M. Sc in CSE (Daffodil International University)
Multi-core systems System Architecture COMP25212 Daniel Goodman Advanced Processor Technologies Group.
Computer Abstractions and Technology
Concurrency The need for speed. Why concurrency? Moore’s law: 1. The number of components on a chip doubles about every 18 months 2. The speed of computation.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 19 Performance of Computer Systems.
CS 501: Software Engineering Fall 2000 Lecture 19 Performance of Computer Systems.
Chapter Hardwired vs Microprogrammed Control Multithreading
Spring 2002EECS150 - Lec02-CMOS Page 1 EECS150 - Digital Design Lecture 2 - CMOS January 24, 2002 John Wawrzynek.
CS10 The Beauty and Joy of Computing Lecture #8 : Concurrency Prof Jonathan Koomey looked at 6 decades of data and found that energy efficiency.
CS10 The Beauty and Joy of Computing Lecture #8 : Concurrency Nvidia CEO Jen-Hsun Huang said: “whatever capability you think you have today,
CIS 314 : Computer Organization Lecture 1 – Introduction.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 22 Performance of Computer Systems.
CS10 The Beauty and Joy of Computing Lecture #8 : Concurrency IBM’s Watson computer (really 2,800 cores) is leading former champions $35,734.
Parallel Algorithms - Introduction Advanced Algorithms & Data Structures Lecture Theme 11 Prof. Dr. Th. Ottmann Summer Semester 2006.
Energy Model for Multiprocess Applications Texas Tech University.
CPU Performance Assessment As-Bahiya Abu-Samra *Moore’s Law *Clock Speed *Instruction Execution Rate - MIPS - MFLOPS *SPEC Speed Metric *Amdahl’s.
Lecture 2 : Introduction to Multicore Computing Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI CSCI.
CS 61C L01 Introduction (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia CS61C www page www-inst.eecs.berkeley.edu/~cs61c/
Computer Science and Engineering Copyright by Hesham El-Rewini Advanced Computer Architecture.
Mark Franklin, S06 CS, CoE, EE 362 Digital Computers II: Architecture Prof. Mark Franklin: Course Assistants: –Drew Frank:
Lecture 03: Fundamentals of Computer Design - Trends and Performance Kai Bu
Multi-core Programming Introduction Topics. Topics General Ideas Moore’s Law Amdahl's Law Processes and Threads Concurrency vs. Parallelism.
Lecture 1: Performance EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2013, Dr. Rozier.
Parallel Processing - introduction  Traditionally, the computer has been viewed as a sequential machine. This view of the computer has never been entirely.
C OMPUTER O RGANIZATION AND D ESIGN The Hardware/Software Interface 5 th Edition Chapter 1 Computer Abstractions and Technology Sections 1.5 – 1.11.
Multiprocessing. Going Multi-core Helps Energy Efficiency William Holt, HOT Chips 2005 Adapted from UC Berkeley "The Beauty and Joy of Computing"
SJSU SPRING 2011 PARALLEL COMPUTING Parallel Computing CS 147: Computer Architecture Instructor: Professor Sin-Min Lee Spring 2011 By: Alice Cotti.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 February Session 6.
April 26, CSE8380 Parallel and Distributed Processing Presentation Hong Yue Department of Computer Science & Engineering Southern Methodist University.
Games Development 2 Concurrent Programming CO3301 Week 9.
Parallel Processing Steve Terpe CS 147. Overview What is Parallel Processing What is Parallel Processing Parallel Processing in Nature Parallel Processing.
Outline  Over view  Design  Performance  Advantages and disadvantages  Examples  Conclusion  Bibliography.
Parallel Processing Sharing the load. Inside a Processor Chip in Package Circuits Primarily Crystalline Silicon 1 mm – 25 mm on a side 100 million to.
Computer Organization & Assembly Language © by DR. M. Amer.
University of Washington What is parallel processing? Spring 2014 Wrap-up When can we execute things in parallel? Parallelism: Use extra resources to solve.
Multi-Core Development Kyle Anderson. Overview History Pollack’s Law Moore’s Law CPU GPU OpenCL CUDA Parallelism.
Classic Model of Parallel Processing
1. 2 Pipelining vs. Parallel processing  In both cases, multiple “things” processed by multiple “functional units” Pipelining: each thing is broken into.
M U N - February 17, Phil Bording1 Computer Engineering of Wave Machines for Seismic Modeling and Seismic Migration R. Phillip Bording February.
Computer Architecture Lec 06: Computer Architecture Introduction.
Processor Level Parallelism. Improving the Pipeline Pipelined processor – Ideal speedup = num stages – Branches / conflicts mean limited returns after.
Advanced Computer Networks Lecture 1 - Parallelization 1.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 23 Performance of Computer Systems.
Chapter 1 — Computer Abstractions and Technology — 1 Uniprocessor Performance Constrained by power, instruction-level parallelism, memory latency.
Concurrency and Performance Based on slides by Henri Casanova.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Processor Level Parallelism 2. How We Got Here Developments in PC CPUs.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
1 A simple parallel algorithm Adding n numbers in parallel.
Introduction to Computers - Hardware
Conclusions on CS3014 David Gregg Department of Computer Science
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
CIT 668: System Architecture
At a recent fireside chat…
Parallel Processing - introduction
The Beauty and Joy of Computing Lecture #8 : Concurrency
Morgan Kaufmann Publishers
Architecture & Organization 1
Introduction to Parallelism.
Architecture & Organization 1
Parallel Processing Sharing the load.
Chapter 1 Introduction.
By Brandon, Ben, and Lee Parallel Computing.
Computer Evolution and Performance
Lecture 20 Parallel Programming CSE /27/2019.
Husky Energy Chair in Oil and Gas Research
Presentation transcript:

The Beauty and Joy of Computing Lecture #10 Concurrency UC Berkeley EECS Lecturer Gerald Friedland Prof Jonathan Koomey looked at 6 decades of data and found that energy efficiency of computers doubles roughly every 18 months. This is even more relevant as battery-powered devices become more popular. Restated, it says that for a fixed computing load, the amount of battery you need drops by half every 18 months. This was true before transistors!

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (2) Friedland Concurrency: A Definition Concurrency: A property of computer systems in which several computations are executing simultaneously, and potentially interacting with each other.computationsexecuting

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (3) Friedland Examples:  Mouse cursor movement while Snap! calculates.  Screen clock advances while typing in a text.  Busy cursor spins while browser connects to server, waiting for response  Walking while chewing gum Concurrency is Everywhere!

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (4) Friedland Intra-computer  Today’s lecture  Multiple computing “helpers” are cores within one machine  Aka “multi-core”  Although GPU parallism is also “intra- computer” Inter-computer  Future lecture  Multiple computing “helpers” are different machines  Aka “distributed computing”  Grid & cluster computing Concurrency & Parallelism

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (5) Friedland Anatomy: 5 components of any Computer Computer Memory Devices Input Output John von Neumann invented this architecture Processor Control (“brain”) Datapath (“brawn”) What causes the most headaches for SW and HW designers with multi-core computing? a) Control b) Datapath c) Memory d) Input e) Output

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (6) Friedland Processor Control (“brain”) Datapath (“brawn”) But what is INSIDE a Processor?

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (7) Friedland But what is INSIDE a Processor? Primarily Crystalline Silicon 1 mm – 25 mm on a side 2009 “feature size” (aka process) ~ 45 nm = 45 x m (then 32, 22, and 16 [by yr 2013]) M transistors conductive layers “CMOS” (complementary metal oxide semiconductor) - most common Package provides: spreading of chip-level signal paths to board-level heat dissipation. Ceramic or plastic with gold wires. Chip in Package Bare Processor Die Processor Control (“brain”) Datapath (“brawn”)

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (8) Friedland Moore’s Law Predicts: 2X Transistors / chip every 2 years Gordon Moore Intel Cofounder B.S. Cal 1950! Year # of transistors on an integrated circuit (IC) en.wikipedia.org/wiki/Moore's_law What is this “curve”? a) Constant b) Linear c) Quadratic d) Cubic e) Exponential

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (9) Friedland Moore’s Law and related curves

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (10) Friedland Moore’s Law and related curves

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (11) Friedland Power Density Prediction circa 2000 Core 2

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (12) Friedland  A Thread stands for “thread of execution”, is a single stream of instructions  A program / process can split, or fork itself into separate threads, which can (in theory) execute simultaneously.  An easy way to describe/think about parallelism  A single CPU can execute many threads by Time Division Multipexing  Multithreading is running multiple threads through the same hardware CPU Time Thread 0 Thread 1 Thread 2 Background: Threads

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (13) Friedland Applications can almost never be completely parallelized; some serial code remains s is serial fraction of program, P is # of cores (was processors) Amdahl’s law: Speedup(P) = Time(1) / Time(P) ≤ 1 / ( s + [ (1-s) / P) ], and as P  ∞ ≤ 1 / s Even if the parallel portion of your application speeds up perfectly, your performance may be limited by the sequential portion Speedup Issues : Amdahl’s Law Time Number of Cores Parallel portion Serial portion en.wikipedia.org/wiki/Amdahl's_law

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (14) Friedland Speedup Issues : Overhead  Even assuming no sequential portion, there’s…  Time to think how to divide the problem up  Time to hand out small “work units” to workers  All workers may not work equally fast  Some workers may fail  There may be contention for shared resources  Workers could overwriting each others’ answers  You may have to wait until the last worker returns to proceed (the slowest / weakest link problem)  There’s time to put the data back together in a way that looks as if it were done by one

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (15) Friedland  This “sea change” to multi- core parallelism means that the computing community has to rethink: a) Languages b) Architectures c) Algorithms d) Data Structures e) All of the above Life in a multi-core world…

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (16) Friedland  What if two people were calling withdraw at the same time?  E.g., balance=100 and two withdraw 75 each  Can anyone see what the problem could be?  This is a race condition  In most languages, this is a problem.  In Scratch, the system doesn’t let two of these run at once. But parallel programming is hard! en.wikipedia.org/wiki/Concurrent_computing

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (17) Friedland  Two people need to draw a graph but there is only one pencil and one ruler.  One grabs the pencil  One grabs the ruler  Neither release what they hold, waiting for the other to release  Livelock also possible  Movement, no progress Another concurrency problem … deadlock! en.wikipedia.org/wiki/Deadlock

UC Berkeley “The Beauty and Joy of Computing” : Concurrency (18) Friedland  “Sea change” of computing because of inability to cool CPUs means we’re now in multi-core world  This brave new world offers lots of potential for innovation by computing professionals, but challenges persist Summary