Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.

Slides:



Advertisements
Similar presentations
CSE431 Chapter 7A.1Irwin, PSU, 2008 CSE 431 Computer Architecture Fall 2008 Chapter 7A: Intro to Multiprocessor Systems Mary Jane Irwin (
Advertisements

CA 714CA Midterm Review. C5 Cache Optimization Reduce miss penalty –Hardware and software Reduce miss rate –Hardware and software Reduce hit time –Hardware.
May 2, 2015©2006 Craig Zilles1 (Easily) Exposing Thread-level Parallelism  Previously, we introduced Multi-Core Processors —and the (atomic) instructions.
Lecture 2: Modern Trends 1. 2 Microprocessor Performance Only 7% improvement in memory performance every year! 50% improvement in microprocessor performance.
Chapter1 Fundamental of Computer Design Dr. Bernard Chen Ph.D. University of Central Arkansas.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
An Introduction To PARALLEL PROGRAMMING Ing. Andrea Marongiu
Parallel Programming Henri Bal Rob van Nieuwpoort Vrije Universiteit Amsterdam Faculty of Sciences.
Introduction What is Parallel Algorithms? Why Parallel Algorithms? Evolution and Convergence of Parallel Algorithms Fundamental Design Issues.
CIS 314 : Computer Organization Lecture 1 – Introduction.
Multithreading in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Amdahl's Law.
CPE 731 Advanced Computer Architecture Multiprocessor Introduction
1 Lecture 1: CS/ECE 3810 Introduction Today’s topics:  logistics  why computer organization is important  modern trends.
Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.
CMSC 611: Advanced Computer Architecture Performance Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted.
Joram Benham April 2,  Introduction  Motivation  Multicore Processors  Overview, CELL  Advantages of CMPs  Throughput, Latency  Challenges.
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.
Chapter1 Fundamental of Computer Design Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
Computer System Architectures Computer System Software
A Bridge to Your First Computer Science Course Prof. H.E. Dunsmore Concurrent Programming Threads Synchronization.
Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( ) 2005.
Lecture 2 : Introduction to Multicore Computing
Mark Franklin, S06 CS, CoE, EE 362 Digital Computers II: Architecture Prof. Mark Franklin: Course Assistants: –Drew Frank:
1 Lecture 1: CS/ECE 3810 Introduction Today’s topics:  Why computer organization is important  Logistics  Modern trends.
Multi-Core Architectures
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.
Sogang University Advanced Computing System Chap 1. Computer Architecture Hyuk-Jun Lee, PhD Dept. of Computer Science and Engineering Sogang University.
CS/ECE 3330 Computer Architecture Kim Hazelwood Fall 2009.
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.
SJSU SPRING 2011 PARALLEL COMPUTING Parallel Computing CS 147: Computer Architecture Instructor: Professor Sin-Min Lee Spring 2011 By: Alice Cotti.
Frank Casilio Computer Engineering May 15, 1997 Multithreaded Processors.
April 26, CSE8380 Parallel and Distributed Processing Presentation Hong Yue Department of Computer Science & Engineering Southern Methodist University.
Computer Organization and Design Computer Abstractions and Technology
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.
Dean Tullsen UCSD.  The parallelism crisis has the feel of a relatively new problem ◦ Results from a huge technology shift ◦ Has suddenly become pervasive.
Multithreading in Java Sameer Singh Chauhan Lecturer, I. T. Dept., SVIT, Vasad.
Computer Architecture CPSC 350
CS162 Week 5 Kyle Dewey. Overview Announcements Reactive Imperative Programming Parallelism Software transactional memory.
1. 2 Pipelining vs. Parallel processing  In both cases, multiple “things” processed by multiple “functional units” Pipelining: each thing is broken into.
Multi-core processors. 2 Processor development till 2004 Out-of-order Instruction scheduling Out-of-order Instruction scheduling.
1 chapter 1 Computer Architecture and Design ECE4480/5480 Computer Architecture and Design Department of Electrical and Computer Engineering University.
Computers in Education Past, Present, and Future
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
Advanced Computer Networks Lecture 1 - Parallelization 1.
1 Lecture 2: Performance, MIPS ISA Today’s topics:  Performance equations  MIPS instructions Reminder: canvas and class webpage:
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.
Computer Organization Yasser F. O. Mohammad 1. 2 Lecture 1: Introduction Today’s topics:  Why computer organization is important  Logistics  Modern.
University of Washington Today Quick review? Parallelism Wrap-up 
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
University of Washington 1 What is parallel processing? When can we execute things in parallel? Parallelism: Use extra resources to solve a problem faster.
Processor Level Parallelism 2. How We Got Here Developments in PC CPUs.
New-School Machine Structures Parallel Requests Assigned to computer e.g., Search “Katz” Parallel Threads Assigned to core e.g., Lookup, Ads Parallel Instructions.
Introduction CSE 410, Spring 2005 Computer Systems
Performance. Moore's Law Moore's Law Related Curves.
Introduction to Computers - Hardware
Conclusions on CS3014 David Gregg Department of Computer Science
Chapter1 Fundamental of Computer Design
CSE 410, Spring 2006 Computer Systems
Architecture & Organization 1
Computer Architecture CSCE 350
Architecture & Organization 1
Parallel Processing Sharing the load.
Chapter 4 Multiprocessors
Vrije Universiteit Amsterdam
Lecture 20 Parallel Programming CSE /27/2019.
Threads CSE451 Andrew Whitaker TODO: print handouts for AspectRatio.
Presentation transcript:

Hardware Trends CSE451 Andrew Whitaker

Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond the operating system

Famous Quotes “I think there is a world market for maybe five computers”  Thomas Watson, IBM, 1943 “There is no reason for any individual to have a computer in their home”  Ken Olson, Digital, 1977 “640K ought to be enough for anybody”  Bill Gates, 1981

CPU Performance Trends Processor performance stopped doubling every 18 months in 2002 Source: David Patterson

Why Has CPU Performance Growth Slowed? Moore’s law continues to provide more transistors But:  Chip designs have gotten too complex  Communication times have gotten (relatively) longer  Circuit noise becomes a factor at small scale Bottom line: automatic processor performance improvements are a thing of the past

Industry Response: Multi-Core Architectures

Sidebar: Educational Ramifications “Given this sea change, how much of the curriculum and what fraction of the CS faculty is oblivious to concurrency? How many algorithms, data structures, languages, compilers, debuggers, operating systems, books, and lectures must change to match the transformation in underlying technology if they are to remain relevant in the 21st century?” David Patterson -- Computer Science Education in the 21st Century

Grand Challenge of Parallel Computing How do we get a speedup of N on an N- way multi-processor?  Software must be parallelizable Speedup can refer to:  Latency: the length of time to complete a single task  Throughput: the rate at which tasks are completed

The Human Baby Problem Problem: produce a human baby Q: Is this problem parallelizable? Latency: No  9 women cannot make a baby in a month Throughput: Yes  9 women can produce 1 baby/month

Speeding Up an Internet Service Which is easier for Amazon.com?  Handling more customers  Making individual customer transactions go faster?

Parallelization Theory Amdahl’s Law predicts speedup on a parallel machine N: number of processors F: Fraction of computation that is sequential  Sequential == not parallelizable Embarrassingly parallel: F  0 F + (1 - F) / N 1 speedup =

Case Study: Merge Sort Given N processors, what speedup is possible?

Parallelization in Practice Predicting performance is difficult because there are many flavors of parallelism  Multiple processors Symmetric multiprocessors (SMPs)  Multi-core processors  Multi-threaded processors (“Hyperthreading”)  Clusters of machines Running the software is the only way to know for sure…

Disk Storage Trends  Doubled every 3+ years  25% improvement each year  Factor of 10 every decade  Still exponential, but far less rapid than processor performance Since 1990  Doubling every 12 months  100% improvement each year  Factor of 1000 every decade  10x as fast as processor performance!

Memory Capacity Continues to track Moore’s law Ed Lazowska: “I remember pulling all kinds of strings to get a special deal: 512K of VAX-11/780 memory for $30,000” Today (2006): roughly $300 / GB

© 2004 Jim Gray, Microsoft Corporation

A Quick Intro to Threads

public class Yo extends Thread { private static int x = 7; public void run () { x++; } public static void main (String [] args) { Thread t1 = new Yo(); Thread t2 = new Yo(); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException iex) { } System.out.println("Value of x: " + x); } What is wrong with this program?

Breaking Down x++ x++ in MIPS assembly: Key point: x++ is not atomic  Requires multiple instructions to complete its work This is a race condition  Program’s output depends on thread scheduling lw $t, offset($s) addi $t, $t, 1 sw $t, offset($s)