talk - Programming for High Performance - An Introduction...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Programming for High Performance - An Introduction Thomas Ludwig, 2000 (1/146) Thomas Ludwig Technische Universitt Mnchen ludwig@in.tum.de http://www.in.tum.de/~ludwig Version September 27, 2000 Programming for High Performance An Introduction Programming for High Performance - An Introduction Thomas Ludwig, 2000 (2/146) Tell me why! High performance computing is essential in many fields of natural sciences: physics, chemistry, biology, etc. Real high performance can only be achieved with high performance computers Various hardware architectures exist Various software concepts are available A concise selection of hardware and software is inevitable for high efficiency of the parallel program Plus: lessons learnt here can also be applied to clusters of workstations (although they do not provide real high performance) Programming for High Performance - An Introduction Thomas Ludwig, 2000 (3/146) Contents Parallel Architectures Parallelization Concepts Shared Memory Programming Models Message Passing Programming Models Data Parallel Programming Models Programming for High Performance - An Introduction Thomas Ludwig, 2000 (4/146) Parallel Architectures Flynn's Classification Classification of MIMD Systems Shared Memory and Distributed Memory Distributed Shared Memory Communication Networks Performance Evaluation The Parallel Linpack-Benchmark The TOP500 List Programming for High Performance - An Introduction Thomas Ludwig, 2000 (5/146) Concepts Parallel Computer Has computing units that work in a coordinated manner and in parallel Units Special units like processor internal pipeline units Calculation units (integer, floating point) Processor nodes Computers Parallel computers and workstation clusters Parallel Architectures Programming for High Performance - An Introduction Thomas Ludwig, 2000 (6/146) Flynn's Classification (1972) Computers work with instruction streams and data streams The combinations of both result in 4 variants SISD Single instruction stream, single data stream SIMD Single instruction stream, multiple data stream MISD Multiple instruction stream, single data stream MIMD Multiple instruction stream, multiple data stream Parallel Architectures Programming for High Performance - An Introduction Thomas Ludwig, 2000 (7/146) What is what with Flynn? SISD Classical von-Neumann-architecture SIMD Vector computers, array computers MISD Data flow machines ??? MIMD All that interests us: multi processor systems MIMD has to be divided into finer classes Parallel Architectures Programming for High Performance - An Introduction Thomas Ludwig, 2000 (8/146) Classification of Flynn's MIMD Systems Systems consist of multiple processors that are connected via an interconnection network Via the interconnection network information is passed between processes on different processors. Synchronisation and control information is also transferred over the network...
View Full Document

This note was uploaded on 09/24/2009 for the course CS 525 taught by Professor Rjyosy during the Winter '09 term at Central Mich..

Page1 / 146

talk - Programming for High Performance - An Introduction...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online