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

Slides:



Advertisements
Similar presentations
CCGrid2013 Panel on Clouds Henri Bal Vrije Universiteit Amsterdam.
Advertisements

Big Data: Big Challenges for Computer Science Henri Bal Vrije Universiteit Amsterdam.
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Parallel Programming Yang Xianchun Department of Computer Science and Technology Nanjing University Introduction.
Introduction to Parallel Computing
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500 Cluster.
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
Team Members: Tyler Drake Robert Wrisley Kyle Von Koepping Justin Walsh Faculty Advisors: Computer Science – Prof. Sanjay Rajopadhye Electrical & Computer.
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Parallel Programming Henri Bal Vrije Universiteit Faculty of Sciences Amsterdam.
Chapter 1. Introduction This course is all about how computers work But what do we mean by a computer? –Different types: desktop, servers, embedded devices.
Introduction What is Parallel Algorithms? Why Parallel Algorithms? Evolution and Convergence of Parallel Algorithms Fundamental Design Issues.
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.
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500 Cluster.
CS 732: Advance Machine Learning Usman Roshan Department of Computer Science NJIT.
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.
© 2009 Mathew J. Sottile, Timothy G. Mattson, and Craig E Rasmussen 1 Concurrency in Programming Languages Matthew J. Sottile Timothy G. Mattson Craig.
Lecture 2 : Introduction to Multicore Computing Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Course Outline Introduction in software and applications. Parallel machines and architectures –Overview of parallel machines –Cluster computers (Myrinet)
High-Performance Computing 12.1: Concurrent Processing.
Codeplay CEO © Copyright 2012 Codeplay Software Ltd 45 York Place Edinburgh EH1 3HP United Kingdom Visit us at The unique challenges of.
Lecture 2 : Introduction to Multicore Computing
Course Outline Introduction in algorithms and applications Parallel machines and architectures Overview of parallel machines, trends in top-500, clusters,
Multi Core Processor Submitted by: Lizolen Pradhan
BY: ALI AJORIAN ISFAHAN UNIVERSITY OF TECHNOLOGY 2012 GPU Architecture 1.
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
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.
1 Recap (from Previous Lecture). 2 Computer Architecture Computer Architecture involves 3 inter- related components – Instruction set architecture (ISA):
Taking the Complexity out of Cluster Computing Vendor Update HPC User Forum Arend Dittmer Director Product Management HPC April,
Programming Concepts in GPU Computing Dušan Gajić, University of Niš Programming Concepts in GPU Computing Dušan B. Gajić CIITLab, Dept. of Computer Science.
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,
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
M U N - February 17, Phil Bording1 Computer Engineering of Wave Machines for Seismic Modeling and Seismic Migration R. Phillip Bording February.
Advanced Computer Networks Lecture 1 - Parallelization 1.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
CSci6702 Parallel Computing Andrew Rau-Chaplin
CS 732: Advance Machine Learning
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.
Parallel Computing on Wide-Area Clusters: the Albatross Project Aske Plaat Thilo Kielmann Jason Maassen Rob van Nieuwpoort Ronald Veldema Vrije Universiteit.
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.
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Conclusions on CS3014 David Gregg Department of Computer Science
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Parallel Computing Demand for High Performance
Course Outline Introduction in algorithms and applications
CS775: Computer Architecture
Introduction.
Summary Background Introduction in algorithms and applications
Parallel Computing Demand for High Performance
Course Outline Introduction in algorithms and applications
Chapter 1 Introduction.
Parallel Computing Demand for High Performance
Parallel Computing Demand for High Performance
Vrije Universiteit Amsterdam
Husky Energy Chair in Oil and Gas Research
Presentation transcript:

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 Parallel programming 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 Current #1: Fujitsu machine (Japan), 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):

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 (see website) Starts after this course See