Multi-core Programming Introduction Topics. Topics General Ideas Moore’s Law Amdahl's Law Processes and Threads Concurrency vs. Parallelism.

Slides:



Advertisements
Similar presentations
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Advertisements

Lecture 6: Multicore Systems
Multi-core systems System Architecture COMP25212 Daniel Goodman Advanced Processor Technologies Group.
Computer Abstractions and Technology
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
The First Microprocessor By: Mark Tocchet and João Tupinambá.
Instructor: Sazid Zaman Khan Lecturer, Department of Computer Science and Engineering, IIUC.
CENTRAL PROCESSING UNIT
Introduction Companion slides for
Lecture 2: Modern Trends 1. 2 Microprocessor Performance Only 7% improvement in memory performance every year! 50% improvement in microprocessor performance.
Dr. Alexandra Fedorova August 2007 Introduction to Systems Research at SFU.
Spring 07, Jan 23 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Moore’s Law Vishwani D. Agrawal James J. Danaher.
INTEL CONFIDENTIAL Why Parallel? Why Now? Introduction to Parallel Programming – Part 1.
Energy Model for Multiprocess Applications Texas Tech University.
Group #5 1. Mereseini Rokodau 2. Eleanor Siavii 3. Jowella Vaka.
CMSC 611: Advanced Computer Architecture Performance Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted.
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
Computer Architecture CST 250 INTEL PENTIUM PROCESSOR Prepared by:Omar Hirzallah.
Introduction to Parallel Computing. Serial Computing.
{ The demise of Conventional Computing? Bilal Kaleem, 1 st Year Physics.
 Design model for a computer  Named after John von Neuman  Instructions that tell the computer what to do are stored in memory  Stored program Memory.
Lecture 03: Fundamentals of Computer Design - Trends and Performance Kai Bu
Types of Computers Mainframe/Server Two Dual-Core Intel ® Xeon ® Processors 5140 Multi user access Large amount of RAM ( 48GB) and Backing Storage Desktop.
The 4 functions of a computer are 1.Input 2.Output 3.Storage 4.Processing.
1 Lecture 1: CS/ECE 3810 Introduction Today’s topics:  Why computer organization is important  Logistics  Modern trends.
Multi-Core Architectures
The CPU (or Central Processing Unit. Statistics Clock speed – number of instructions that can be executed per second Data width – The number of bits held.
Lecture 1: Performance EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2013, Dr. Rozier.
Sogang University Advanced Computing System Chap 1. Computer Architecture Hyuk-Jun Lee, PhD Dept. of Computer Science and Engineering Sogang University.
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.
The Central Processing Unit
1 Multithreaded Programming Concepts Myongji University Sugwon Hong 1.
COMP25212: System Architecture Lecturers Alasdair Rawsthorne Daniel Goodman
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Twelfth Edition Copyright © 2016 Pearson Education, Inc.0.
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.
CPU Inside Maria Gabriela Yobal de Anda L#32 9B. CPU Called also the processor Performs the transformation of input into output Executes the instructions.
Chapter 1 Performance & Technology Trends Read Sections 1.5, 1.6, and 1.8.
Dean Tullsen UCSD.  The parallelism crisis has the feel of a relatively new problem ◦ Results from a huge technology shift ◦ Has suddenly become pervasive.
VLSI: A Look in the Past, Present and Future Basic building block is the transistor. –Bipolar Junction Transistor (BJT), reliable, less noisy and more.
CS162 Week 5 Kyle Dewey. Overview Announcements Reactive Imperative Programming Parallelism Software transactional memory.
 Introduction to SUN SPARC  What is CISC?  History: CISC  Advantages of CISC  Disadvantages of CISC  RISC vs CISC  Features of SUN SPARC  Architecture.
Processor Architecture
Stored Programs In today’s lesson, we will look at: what we mean by a stored program computer how computers store and run programs what we mean by the.
THE BRIEF HISTORY OF 8085 MICROPROCESSOR & THEIR APPLICATIONS
Processor Level Parallelism. Improving the Pipeline Pipelined processor – Ideal speedup = num stages – Branches / conflicts mean limited returns after.
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Succeeding with Technology Chapter 2 Hardware Designed to Meet the Need The Digital Revolution Integrated Circuits and Processing Storage Input, Output,
CPU Central processing unit. INTRODUCTION CPU is a circuit able to execute computer programs, orders and Commands. These commands involve software programs.
Computer Organization Yasser F. O. Mohammad 1. 2 Lecture 1: Introduction Today’s topics:  Why computer organization is important  Logistics  Modern.
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
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.
CS203 – Advanced Computer Architecture
Processor Level Parallelism 2. How We Got Here Developments in PC CPUs.
Intro to Computer Org. Assessing Performance. What Is Performance? What do we mean when we talk about the “performance” of a CPU?
Software Design and Development Computer Architecture Computing Science.
MAHARANA PRATAP COLLEGE OF TECHNOLOGY SEMINAR ON- COMPUTER PROCESSOR SUBJECT CODE: CS-307 Branch-CSE Sem- 3 rd SUBMITTED TO SUBMITTED BY.
Multi-Core CPUs Matt Kuehn. Roadmap ► Intel vs AMD ► Early multi-core processors ► Threads vs Physical Cores ► Multithreading and Multi-core processing.
Guide to Operating Systems, 5th Edition
Lynn Choi School of Electrical Engineering
Guide to Operating Systems, 5th Edition
Morgan Kaufmann Publishers
Architecture & Organization 1
What happens inside a CPU?
Architecture & Organization 1
Chapter 1 Introduction.
Computer Evolution and Performance
Lecture 20 Parallel Programming CSE /27/2019.
Course Code 114 Introduction to Computer Science
Presentation transcript:

Multi-core Programming Introduction Topics

Topics General Ideas Moore’s Law Amdahl's Law Processes and Threads Concurrency vs. Parallelism

General Ideas “Andy giveth, and Bill taketh away.” No mater how fast hardware gets, software quickly expands of overwhelm the new hardware performance. “Technology happens, it's not good, it's not bad. Is steel good or bad?” “Unfortunately, many programs are so big that there is no one individual who really knows all the pieces, and so the amount of code sharing you get isn't as great. Also, the opportunity to go back and really rewrite something isn't quite as great, because there's always a new set of features that you're adding on to the same program.”

General Ideas The major processor manufacturers and architectures, from Intel and AMD to Sparc and PowerPC, have run out of room with most of their traditional approaches to boosting CPU performance. Silicon manufacturers are turning to hyperthreading and multicore architectures.

General Ideas Ramifications of this change will hit hard in software development. – Typical software solutions can no longer suffice, relying on hardware for speed increases. – Software will need to adapt to the new hardware platforms. – Traditional programming models break down in n- core processor environments.

General Ideas Intel CPU Introductions over time: Clock Speed increases until ~2003 then levels off. Number of transistors in a processor form continues to increase. Quad Core I720111,160,000,000 8 Core Itanium 20123,100,000, Core Xeon20125,000,000,000 GK ,100,000,000

General Ideas Over the past 30 years, CPU designers have achieved performance gains through: – Clock Speed : Doing the same work faster. – Execution Optimization : Doing more work per clock cycle. – Cache : Stay away from RAM as much as possible. 1 : CPU 0, 2 : Cache L2 CPU 0, 3 : CPU 1, 4 : Cache L2 CPU 1 5 : System Request Interface, Crossbar Switch, Memory Controller, Hypertransport

General Ideas The previously mentioned “speedup” methods are concurrency agnostic methods – i.e. they will work with any sequential code base. CPU Performance increase hit a wall in 2003 from a traditional approach.

General Ideas It is becoming increasingly difficult to exploit faster CPU speeds. Key physical limitations are standing in the way: 1.Heat 2.Power Consumption 3.Current Leakage

Moore’s Law From: Electronics Magazine – April 1965 “The complexity for minimum component costs has increased at a rate of roughly a factor of two per year... Certainly over the short term this rate can be expected to continue, if not to increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years. That means by 1975, the number of components per integrated circuit for minimum cost will be 65,000. I believe that such a large circuit can be built on a single wafer.”

Moore’s Law Worded differently: The number of transistors on a chip will double about every two years. Basically, Moore’s Law became a self fulfilling prophesy.

Moore’s Law Heat, power consumption, and current leakage are limiting the sheer “transistor” size for creation of a single CPU. Consumer demands are for smaller, more portable, yet feature rich digital devices.

Moore’s Law Moore’s predictions still hold – transistor counts continue to rise… … however, performance gains are going to be accomplished in fundamentally different ways. Most current applications will no longer benefit from the free “clock cycle” ride without significant redesign.

Moore’s Law Near future performance gains will be achieved through: – Hyperthreading: Running two or more threads in parallel inside a single CPU. – Multicore: Running two or more CPUs on a single silicon form factor (CPU chip). – Cache: Bringing instructions and data across the memory access bus in blocks and storing “on-die” for fast access. 1 : CPU 0, 2 : Cache L2 CPU 0, 3 : CPU 1, 4 : Cache L2 CPU 1 5 : System Request Interface, Crossbar Switch, Memory Controller, Hypertransport

Amdahl’s Law Amdahl's law states that the overall speedup of applying the improvement will be: P - proportion of a computation where the improvement has a speedup of S. Example: – If an improvement can speed up 30% of the computation, P will be 0.3 – If the improvement makes the portion affected twice as fast, S will be 2. – Adding a second processor to a multithreaded application sets S to 2. The speedup of a program using multiple processors in parallel computing is limited by the sequential fraction of the program.

Amdahl’s Law To get rich applications running on shrinking form factors, Moore’s Law and Amdahl’s Law become increasingly important in the design of software based systems. Moore’s law dictates continued growth of CPU systems – driven toward multicore because of current physical limitations. Amdahl’s law dictates the extent to which multiple cores will increase software system performance.

Processes and Threads Modern operating systems load programs as processes Resource holder Execution A process starts executing at its entry point as a thread Threads can create other threads within the process – Each thread gets its own stack All threads within a process share code & data segments Code segment Data segment thread main() … thread Stack

Concurrency vs. Parallelism – Concurrency: two or more threads are in progress at the same time: – Parallelism: two or more threads are executing at the same time – Multiple cores needed Thread 1 Thread 2 Thread 1 Thread 2

Trends Multicore programming is here to stay Multicore programming is more than multithreaded programming – A poorly written multithreaded program can cause performance decrease in a multicore environment – Software must be carefully designed to execute properly in a multicore environment Technology “pundits” are claiming multicore programming is the “new OO”. Multicore programming is being touted as “a more important leap in software development than that of OO”.