Prof. Dr. Jan Dünnweber 

  high-performance computing
  winter 2012/2013

The lecture "High-Performance Computing" is intended to provide an overview of the broad topic
of distributed and parallel computing using clusters, grids, clouds, SMP servers, peer-to-peer networks
and other parallel platforms.
It covers the writing of multi-threaded programs with Java, C & Pthreads
and parallel programming using MPI and OpenMP as well.
This lecture aims at students who want to become acquainted
with parallel computing and who already have some experience
with sequential programming using Java and C (on top of Linux/Unix).
The lecture begins with a discussion on parallel computing - what it is and how it is used -
followed by a discussion on theoretical concepts and terminology associated with parallel computing.
The topics of parallel memory architectures and programming models are then explored.
These topics are followed by a series of practical discussions on a number of the complex issues
related to designing and running parallel programs,
including heterogeneity and efficiency, parallel debugging (with helgrind) etc.
The lecture is accompanied by a tutorial showing several examples
of how to parallelize serial programs.

This lecture is given in English

Your exam scores are available for online viewing now!


mon 11:45 am-01:15 pm in U213 (lecture)
wed 11:45 am-01:15 pm in U415 (tutorial)
note: this lecture is already finished for winter term 2012/2013
please check my current schedule

all slides used in this course are available via G.R.I.P.S.

all exercises done in this course are also available via G.R.I.P.S.
exercise 1, solution 1
exercise 2, solution 2
exercise 3, solution 3
exercise 4, solution 4
exercise 5, solution 5
YourKit Performance Profiler Tutorial
Grid Service Deployment Tutorial, Globus Java WS Core
HOC-SA Incubator Project, Apache Commons Math Library
exercise 6, solution 6
The Java/Swing-based Julia Set Generator
The Apache Hadoop Installation Guide, the Map/Reduce Tutorial
The Helgrind Documentation


A good textbook on programming high-performance platforms is
"Parallel Programming" by Prof. Rauber and Prof. Rünger.
Prof. Quinn's "Parallel Programming in C with MPI and OpenMP"
thoroughly examines parallel programming methodologies
and covers most MPI functions and OpenMP directives.
Helpful books on programming high-performance platforms
using Java and multi-threading are
Java Concurrency in Practice by Prof. Lea et al.
and Prof. Kramer & Prof. Magee's classic Concurrency.
Some course contents were adopted from Dr. Rabenseifner's
highly recommendable course on
Iterative Linear Solvers and Parallelization
at Leibniz-Rechenzentrum
(including slides from Prof. Meister's lecture on
solving linear systems and material by Dr. Mangold, HLRS).
Some other slides used in this course were adopted from
Prof. Gerndt's' lecture on parallel programming and
Prof. Gorlatch's lecture on parallel systems.
Besides these lectures and textbooks, the official standards for the
Message Passing Interface and OpenMP
are also quite usefull references.

Prof. Dr. Jan Dünnweber
Ostbayerische Technische Hochschule Regensburg · Universitätsstraße 31 (U123)
phone: +49 941 943-9859 · fax: +49 941 943-1426