08/21/2012CS4230 CS4230 Parallel Programming Lecture 1: Introduction Mary Hall August 21, 2012 1.

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

1 Computational models of the physical world Cortical bone Trabecular bone.
1 Chapter 1 Why Parallel Computing? An Introduction to Parallel Programming Peter Pacheco.
John Hurley Cal State LA
FUTURE TECHNOLOGIES Lecture 13.  In this lecture we will discuss some of the important technologies of the future  Autonomic Computing  Cloud Computing.
Last Lecture The Future of Parallel Programming and Getting to Exascale 1.
March 18, 2008SSE Meeting 1 Mary Hall Dept. of Computer Science and Information Sciences Institute Multicore Chips and Parallel Programming.
CS 346U Exploring Complexity in Science and Technology Instructor: Melanie Mitchell Textbook: M. Mitchell, Complexity: A Guided Tour (Oxford University.
CS 197 Computers in Society Fall, Welcome, Freshmen!
Parallel Programming Henri Bal Rob van Nieuwpoort Vrije Universiteit Amsterdam Faculty of Sciences.
CS CS 5150 Software Engineering Lecture 19 Performance.
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 19 Performance of Computer Systems.
Parallel Programming Chapter 1 Introduction to Parallel Architectures Johnnie Baker Spring
Parallel and Distributed Algorithms (CS 6/76501) Spring 2010 Johnnie W. Baker.
09/22/2008CS49601 CS4960: Parallel Programming Guest Lecture: Parallel Programming for Scientific Computing Mary Hall September 22, 2008.
Lecture 1: Introduction to High Performance Computing.
Applying Multi-Criteria Optimisation to Develop Cognitive Models Peter Lane University of Hertfordshire Fernand Gobet Brunel University.
ECE 232 L1 Intro.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 1 Introduction.
Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.
CS 470/570:Introduction to Parallel and Distributed Computing.
08/23/2011CS4961 CS4961 Parallel Programming Lecture 1: Introduction Mary Hall August 23,
CSE 260 Parallel Computation Allan Snavely, Henri Casanova
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Parallel and Distributed Computing Overview and Syllabus Professor Johnnie Baker Guest Lecturer: Robert Walker.
CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.
Lecture 2 CSS314 Parallel Computing
ATMO 1300 – Introduction to Atmospheric Science Spring 2014 Professor Brian Ancell T/Th 11:00am – 12:20pm MCOM 265.
CIS4930/CDA5125 Parallel and Distributed Systems Florida State University CIS4930/CDA5125: Parallel and Distributed Systems Instructor: Xin Yuan, 168 Love,
CS 346U Exploring Complexity in Science and Technology Instructor: Melanie Mitchell Textbook: M. Mitchell, Complexity: A Guided Tour (Oxford University.
James Tam CPSC 203: Introduction To Computers (Independent Study) James Tam.
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.
High-Performance Computing An Applications Perspective REACH-IIT Kanpur 10 th Oct
L21: Final Preparation and Course Retrospective (also very brief introduction to Map Reduce) December 1, 2011.
08/24/2010CS4961 CS4961 Parallel Programming Lecture 1: Introduction Mary Hall August 24,
Problem is to compute: f(latitude, longitude, elevation, time)  temperature, pressure, humidity, wind velocity Approach: –Discretize the.
CS/EE 3700: Fundamentals of Digital System Design Chris J. Myers Spring
CS 445/545 Machine Learning Winter, 2012 Course overview: –Instructor Melanie Mitchell –Textbook Machine Learning: An Algorithmic Approach by Stephen Marsland.
Facility Planning and Material Handling. Today’s Agenda Information on syllabus Office hours Text Grading Exams & Homework Class format Introductory lecture.
CSCI-455/522 Introduction to High Performance Computing Lecture 1.
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Parallel and Distributed Computing Overview and Syllabus Professor Johnnie Baker Guest Lecturer: Robert Walker.
CSci6702 Parallel Computing Andrew Rau-Chaplin
Computer Organization Yasser F. O. Mohammad 1. 2 Lecture 1: Introduction Today’s topics:  Why computer organization is important  Logistics  Modern.
Towards a Digital Human Kathy Yelick EECS Department U.C. Berkeley.
1/50 University of Turkish Aeronautical Association Computer Engineering Department Ceng 541 Introduction to Parallel Computing Dr. Tansel Dökeroğlu
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.
First INFN International School on Architectures, tools and methodologies for developing efficient large scale scientific computing applications Ce.U.B.
ECEN2102 Digital Logic Design Lecture 0 Course Overview Abdullah Said Alkalbani University of Buraimi.
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Web: Parallel Computing Rabie A. Ramadan , PhD Web:
CS427 Multicore Architecture and Parallel Computing
Distributed Systems CS
The University of Adelaide, School of Computer Science
EE 193: Parallel Computing
What is Parallel and Distributed computing?
Foundations of Programming Languages – Course Overview
T Computer Architecture, Autumn 2005
Dr. Tansel Dökeroğlu University of Turkish Aeronautical Association Computer Engineering Department Ceng 442 Introduction to Parallel.
Instructor: Joel Grodstein
Computer Evolution and Performance
Human Media Multicore Computing Lecture 1 : Course Overview
Human Media Multicore Computing Lecture 1 : Course Overview
Human Media Multicore Computing Lecture 1 : Course Overview
Distributed Systems CS
Vrije Universiteit Amsterdam
CS201 – Course Expectations
Presentation transcript:

08/21/2012CS4230 CS4230 Parallel Programming Lecture 1: Introduction Mary Hall August 21,

Course Details Time and Location: TuTh, 9:10-10:30 AM, WEB L112 Course Website - Instructor: Mary Hall, -Office Hours: Mon 11:00-11:30 AM; Th 10:45-11:15 AM TA: TBD -Office Hours: TBD SYMPA mailing list - Textbook -“An Introduction to Parallel Programming,” Peter Pacheco, Morgan-Kaufmann Publishers, Also, readings and notes provided for other topics as needed 08/21/2012CS42302

Administrative Prerequisites: -C programming -Knowledge of computer architecture -CS4400 (concurrent ok for seniors) Please do not bring laptops to class! Do not copy solutions to assignments from the internet (e.g., wikipedia) Read Chapter 1 of textbook by next lecture First homework handed out next time 08/21/20123 CS4230

Basis for Grades 35% Programming projects (P1,P2,P3,P4) 20%Written homeworks 5% Participation (in-class assignments) 25%Quiz and Final 15%Final project 08/21/2012CS42304

Today’s Lecture Overview of course Important problems require powerful computers … -… and powerful computers must be parallel. -Increasing importance of educating parallel programmers (you!) -Some parallel programmers need to be performance experts – my approach What sorts of architectures in this class -Multimedia extensions, multi-cores, SMPs, GPUs, networked clusters Developing high-performance parallel applications An optimization perspective 08/21/20125 CS4230

Course Objectives Learn how to program parallel processors and systems -Learn how to think in parallel and write correct parallel programs -Achieve performance and scalability through understanding of architecture and software mapping Significant hands-on programming experience -Develop real applications on real hardware -Develop parallel algorithms Discuss the current parallel computing context -Contemporary programming models and architectures, and where is the field going 08/21/2012CS42306

Why is this Course Important? Multi-core and many-core era is here to stay -Why? Technology Trends Many programmers will be developing parallel software -But still not everyone is trained in parallel programming -Learn how to put all these vast machine resources to the best use! Useful for -Joining the work force -Graduate school Our focus -Teach core concepts -Use common programming models -Discuss broader spectrum of parallel computing 08/21/2012CS42307

Technology Trends: Microprocessor Capacity Slide source: Maurice Herlihy Clock speed flattening sharply Transistor count still rising Moore’s Law: Gordon Moore (co-founder of Intel) predicted in 1965 that the transistor density of semiconductor chips would double roughly every 18 months. 08/21/20128CS4230

Key ideas: -Movement away from increasingly complex processor design and faster clocks -Replicated functionality (i.e., parallel) is simpler to design -Resources more efficiently utilized -Huge power management advantages What to do with all these transistors? The Multi-Core or Many-Core Paradigm Shift All Computers are Parallel Computers. 08/21/20129CS4230

08/21/2012CS4230 Scientific Simulation: The Third Pillar of Science Traditional scientific and engineering paradigm: 1)Do theory or paper design. 2)Perform experiments or build system. Limitations: -Too difficult -- build large wind tunnels. -Too expensive -- build a throw-away passenger jet. -Too slow -- wait for climate or galactic evolution. -Too dangerous -- weapons, drug design, climate experimentation. Computational science paradigm: 3)Use high performance computer systems to simulate the phenomenon -Base on known physical laws and efficient numerical methods. 10 Slide source: Jim Demmel

The quest for increasingly more powerful machines Scientific simulation will continue to push on system requirements: -To increase the precision of the result -To get to an answer sooner (e.g., climate modeling, disaster modeling) The U.S. will continue to acquire systems of increasing scale -For the above reasons -And to maintain competitiveness A similar phenomenon in commodity machines -More, faster, cheaper 08/21/2012CS Slide source: Jim Demmel

08/21/2012CS4230 Example: Global Climate Modeling Problem Problem is to compute: f(latitude, longitude, elevation, time)  temperature, pressure, humidity, wind velocity Approach: -Discretize the domain, e.g., a measurement point every 10 km -Devise an algorithm to predict weather at time t+  t given t Uses: -Predict major events, e.g., El Nino -Use in setting air emissions standards Source: 12 Slide source: Jim Demmel

08/21/2012CS4230 Some Characteristics of Scientific Simulation Discretize physical or conceptual space into a grid -Simpler if regular, may be more representative if adaptive Perform local computations on grid -Given yesterday’s temperature and weather pattern, what is today’s expected temperature? Communicate partial results between grids -Contribute local weather result to understand global weather pattern. Repeat for a set of time steps Possibly perform other calculations with results -Given weather model, what area should evacuate for a hurricane? 13

Example of Discretizing a Domain 08/21/2012CS4230 One processor computes this part Another processor computes this part in parallel Processors in adjacent blocks in the grid communicate their result. 14

Parallel Programming Complexity: An Analogy Enough Parallelism (Amdahl’s Law) Parallelism Granularity Independent work between coordination points Locality -Perform work on nearby data Load Balance -Processors have similar amount of work Coordination and Synchronization -Who is in charge? How often to check in? 08/21/2012CS423015

Course Goal Most people in the research community agree that there are at least two kinds of parallel programmers that will be important to the future of computing Programmers that understand how to write software, but are naïve about parallelization and mapping to architecture (Joe programmers) Programmers that are knowledgeable about parallelization, and mapping to architecture, so can achieve high performance (Stephanie programmers) Intel/Microsoft say there are three kinds (Mort, Elvis and Einstein) This course is about teaching you how to become Stephanie/Einstein programmers

Course Goal Why OpenMP, Pthreads, MPI and CUDA? These are the languages that Einstein/Stephanie programmers use. They can achieve high performance. They are widely available and widely used. It is no coincidence that both textbooks I’ve used for this course teach all of these except CUDA.