Vrije Universiteit Amsterdam

Slides:



Advertisements
Similar presentations
Big Data: Big Challenges for Computer Science Henri Bal Vrije Universiteit Amsterdam.
Advertisements

Parallel Programming Yang Xianchun Department of Computer Science and Technology Nanjing University Introduction.
ICS 556 Parallel Algorithms Ebrahim Malalla Office: Bldg 22, Room
Introduction to Parallel Computing
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500 Cluster.
Lecture 2: Modern Trends 1. 2 Microprocessor Performance Only 7% improvement in memory performance every year! 50% improvement in microprocessor performance.
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
Parallel Programming Henri Bal Rob van Nieuwpoort Vrije Universiteit Amsterdam Faculty of Sciences.
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
EET 4250: Chapter 1 Performance Measurement, Instruction Count & CPI Acknowledgements: Some slides and lecture notes for this course adapted from Prof.
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
Lecture 1: Introduction to High Performance Computing.
Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.
1a-1.1 Parallel Computing Demand for High Performance ITCS 4/5145 Parallel Programming UNC-Charlotte, B. Wilkinson Dec 27, 2012 slides1a-1.
High-Performance Computing 12.1: Concurrent Processing.
Multi Core Processor Submitted by: Lizolen Pradhan
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
EET 4250: Chapter 1 Computer Abstractions and Technology Acknowledgements: Some slides and lecture notes for this course adapted from Prof. Mary Jane Irwin.
Outline Course Administration Parallel Archtectures –Overview –Details Applications Special Approaches Our Class Computer Four Bad Parallel Algorithms.
Multi-core Programming Introduction Topics. Topics General Ideas Moore’s Law Amdahl's Law Processes and Threads Concurrency vs. Parallelism.
Henri Bal Vrije Universiteit Amsterdam High Performance Distributed Computing.
Outline  Over view  Design  Performance  Advantages and disadvantages  Examples  Conclusion  Bibliography.
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500, clusters,
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
M U N - February 17, Phil Bording1 Computer Engineering of Wave Machines for Seismic Modeling and Seismic Migration R. Phillip Bording February.
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
CSci6702 Parallel Computing Andrew Rau-Chaplin
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 3.
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
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.
Introduction Goal: connecting multiple computers to get higher performance – Multiprocessors – Scalability, availability, power efficiency Job-level (process-level)
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
BLUE GENE Sunitha M. Jenarius. What is Blue Gene A massively parallel supercomputer using tens of thousands of embedded PowerPC processors supporting.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
Supercomputing versus Big Data processing — What's the difference?
Conclusions on CS3014 David Gregg Department of Computer Science
CS203 – Advanced Computer Architecture
Introduction to Parallel Processing
ECE2030 Introduction to Computer Engineering Lecture 1: Overview
Parallel Computing and Parallel Computers
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Introduction Super-computing Tuesday
Parallel Computing Demand for High Performance
Course Outline Introduction in algorithms and applications
The University of Adelaide, School of Computer Science
EE 193: Parallel Computing
CS775: Computer Architecture
Multi-Processing in High Performance Computer Architecture:
Computer Science I CSC 135.
Introduction.
Summary Background Introduction in algorithms and applications
Parallel Computing Demand for High Performance
Course Outline Introduction in algorithms and applications
Course Description: Parallel Computer Architecture
CSE8380 Parallel and Distributed Processing Presentation
Chapter 1 Introduction.
Parallel Computing Demand for High Performance
Dr. Tansel Dökeroğlu University of Turkish Aeronautical Association Computer Engineering Department Ceng 442 Introduction to Parallel.
COMP60621 Fundamentals of Parallel and Distributed Systems
Operating Systems (CS 340 D)
Parallel Computing Demand for High Performance
Human Media Multicore Computing Lecture 1 : Course Overview
Human Media Multicore Computing Lecture 1 : Course Overview
Chapter 4 Multiprocessors
Human Media Multicore Computing Lecture 1 : Course Overview
COMP60611 Fundamentals of Parallel and Distributed Systems
Husky Energy Chair in Oil and Gas Research
Presentation transcript:

Vrije Universiteit Amsterdam Parallel Programming Henri Bal Rob van Nieuwpoort Vrije Universiteit Amsterdam Faculty of Sciences

Overview What is parallel programming? Why do we need parallel programming? Organization of this course Practicum Parallel Programming

Parallel Programming Sequential programming Single thread of control Multiple threads of control Why parallel programming? Eases programming? Not really. Performance? Yes!

Famous quote “Parallel programming may do something to revive the pioneering spirit in programming, which seems to be degenerating into a rather dull and routine occupation’’ S. Gill, Computer Journal, 1958

Why do we need parallel processing? Many applications need much faster machines Sequential machines are reaching their speed limits Memory becomes a bottleneck DRAM access times improve only 10% per year Caches more and more important

Moore’s law (1975) Circuit complexity doubles every 18 months Exponential transistor growth, resulting in exponential growth of processor speeds We’ve now hit a “power wall”, halting speed increases Transistor growth now is used for multicore CPUs, i.e. parallel machines!

Parallel processing Use multiple processors to solve large problems fast Also increases cache memory & aggregate memory bandwidth Also called High Performance Computing (HPC) Multicore CPUs bring parallel processing to the desktop Can use many (inexpensive) multicore machines to build very large parallel systems Very cheap Graphics Processing Units (GPUs) also contain many simple cores and can be used for many parallel applications

History 1950s: first ideas (see Gill’s quote) 1967 first parallel computer (ILLIAC IV) 1970s programming methods, experimental machines 1980s: parallel languages (SR, Linda, Orca), commercial supercomputers 1990s: software standardization (MPI), clusters, large- scale machines (Blue Gene) 2000s: grid computing: combining resources world- wide (Globus) Now: multicores, GPUs, Cloud computing

Large-scale parallel machines Many parallel machines exist See http://www.top500.org Current #1: BlueGene/Q, 1572864 cores Many machines use GPUs

Our DAS-4 cluster

Challenging Applications Modeling ozone layer, climate, ocean Quantum chemistry Protein folding General: computational science Aircraft modeling Handling use volumes of data from scientific instruments Lofar (astronomy) LHC (CERN, high-energy physics) Computer chess Analyzing multimedia content Generating movies

Pixar’s ``Up’’ (2009) Whole movie (96 minutes) would take 94 years on 1 PC (4 frames per day; 1 second takes 6 days; 1 minute per year)

Application areas Engineering and design Scientific applications Commercial applications (transactions, databases) Embedded systems (e.g., cars) This class focuses on scientific applications

About this Course Goal: Study how to write programs that run in parallel on a large number of machines. Focus on programming methods, languages, applications Focus on distributed-memory (message passing) machines and new machines (GPUs) Prerequisites: Some knowledge about sequential languages Little knowledge about networking and operating systems “Concurrency & Multithreading” useful but not required

Aspects of Parallel Computing Algorithms and applications Programming methods, languages, and environments Parallel machines and architectures

Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500, clusters, many-cores Programming methods, languages, and environments Message passing (SR, MPI, Java) Higher-level language: HPF Applications N-body problems, search algorithms Many-core (GPU) programming (Rob van Nieuwpoort)

Course Information Examination Written exam based on: - Reader: available electronically from Blackboard - Lectures More information (and slides + example exam): http://www.cs.vu.nl/~bal/parallel-programming.html

Practicum Parallel Programming Separate practicum (6 ECTS) Implement algorithms in C/MPI and Java/Ibis Implement GPU algorithms Test and measure the programs on our DAS cluster

More information Register by email (see website) Starts after this course See http://www.cs.vu.nl/ppp