Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

16
Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    1

Transcript of Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Page 1: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Parallel Programming

Henri Bal

Vrije Universiteit Amsterdam

Faculty of Sciences

Page 2: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Overview

• What is parallel programming?

• Why do we need parallel programming?

• Organization of this course

• Practicum Parallel Programming

Page 3: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Parallel Programming

• Sequential programming

Single thread of control

• Parallel programming

Multiple threads of control

• Why parallel programming?

Eases programming? Not really.

Performance? Yes!

Page 4: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Famous quote

• “Parallel programming may do something to revive the pioneering spirit in programming,which seems to be degenerating intoa rather dull and routine occupation’’

• S. Gill, Computer Journal, 1958

Page 5: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Why do we need parallel processing?

• Many applications need much faster machines

• Sequential machines are reaching their speed limits– Moore’s Law (1975): Circuit complexity doubles every 18

months

– Using many transistors effectively to increase performance becomes critical problem

• Memory becomes a bottleneck– DRAM access times improve only 10% per year

– Caches more and more important

Page 6: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Parallel processing

• Use multiple processors to solve large problems fast– Also increases cache memory & aggregate memory bandwidth

• Microprocessors are getting cheaper and cheaper

• Cheap multiprocessors and multicore CPUsbring parallel processing to the desktop!

Page 7: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

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: much research on multi-cores, Graphics Processing Units (GPUs), IBM Cell, ….

Page 8: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Large-scale parallel machines

• Many parallel machines exist

• See http://www.top500.org

• Current #1: RoadRunner Cell cluster, 129600 cores

• #5 is IBM BlueGene/L with 212992 cores

Page 9: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

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

Page 10: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Application areas

• Engineering and design

• Scientific applications

• Commercial applications (transactions, databases)

• Embedded systems (e.g., cars)

• This class focuses on scientific applications

Page 11: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

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

Prerequisites:

Some knowledge about sequential languages

Little knowledge about networking and operating systems

Page 12: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Aspects of Parallel Computing

Algorithms and applications

Programming methods, languages, and environments

Parallel machines and architectures

Page 13: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Course Outline• Introduction in algorithms and applications• Parallel machines and architectures

Overview of parallel machines, trends in top-500

Cluster computers, BlueGene• Programming methods, languages, and environments

Message passing (SR, MPI, Java)

Higher-level language: HPF• Applications

N-body problems, search algorithms, bioinformatics• Grid computing

Multimedia content analysis on Grids (guest lecture Frank Seinstra)

Page 14: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Course Information

ExaminationWritten exam based on:- Reader: available electronically from Blackboard- Lectures

More information (and slides):http://www.cs.vu.nl/~bal/parallel-programming.html

Page 15: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

Practicum Parallel Programming

Separate practicum (6 ECTS)

• Implement ASP + SOR algorithms in C/MPI

• Implement search algorithm in Java/Ibis

• Test and measure the programs on our DAS cluster

Page 16: Parallel Programming Henri Bal Vrije Universiteit Amsterdam Faculty of Sciences.

More information

Register by email (see website)

Starts after this course

See http://www.cs.vu.nl/ppp for a complete description