Topic outline
 
Introduction to Parallel and Distributed Computing
(326.603, WS 2005/06)
Time:
Monday 8:30-10:00.
Place: T 1010.
Start: October 3.

The efficient application of parallel and distributed systems (multi-processors and computer networks) is nowadays an important task for computer scientists and mathematicians. The goal of this course is to provide an integrated view of the various facets of software development on such systems: hardware architectures, programming languages and models, software development tools, software engineering concepts and design patterns, performance modeling and analysis, experimenting and measuring.

Class presentation will be accompanied by hands-on experience on a SGI Origin 3800 distributed shared memory multiprocessor using the following programming models:

Some background in programming in C/C++ and/or Fortran and/or Java is assumed.


To take part in the course, you have to enrol in the KUSSS system. Please also register for this Moodle course (link "Login" on the upper right corner), then you will automatically receive per email all messages posted in the "News" forum below.

Forum News forum
 
1
Topics
  • Introduction
  • The SGI Origin System
  • Semi-Automatic Parallelization
  • Performance of Parallel Programs
  • Multi-Threaded Client/Server Programming
  • Parallel Program Design
  • The Message Passing Interface MPI
  • Distributed Memory Algorithms
Literature

Ian Foster: Designing and Building Parallel Programs -- Concepts and Tools for Parallel Software Engineering, Addison Wesley, Reading, MA, 1995. Amazon page.
Michael J. Quinn
: Parallel Programming in C with with MPI and OpenMP, McGraw-Hill, New York, 2003. Amazon page.
Kai Hwang: Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw-Hill, New York, 1993. Amazon page.

Restricted Material

The content of this section is protected; the corresponding password is handed out in class. It is strongly forbidden to forward this password to anyone not participating in the course.

Resource How to Use the Course Software

2
Introduction
A quick cross-section of the course.

3
The SGI Origin System
Architecture and operating system.

4

5
Performance of Parallel Programs
Modeling and analyzing the performance of parallel programs, some material from Chapter 3 of Foster's Designing and Building Parallel Programs.

6
Multi-Threaded Client/Server Programming
Developing Internet-based parallel programs by simple language/operating system mechanisms.
Resource MatMult.java
Resource MatMultThreads.java
Resource MatMultThreads2.java
Resource MatMultNet.java

7
Parallel Program Design
The engineering of parallel programs based on Chapter 2 of Foster's Designing and Building Parallel Programs.

8
The Message Passing Interface MPI
Programming in MPI based on Chapter 8 of Foster's Designing and Building Parallel Programs.

9
Distributed Memory Algorithms
Some algorithms for distributed memory processors.

10
Exercises
Resource Exercise 1 (November 14)
Resource pathc.c
Resource Exercise 2 (December 12)
Resource PathJ.java
Resource Exercise 3 (January 23)
Resource All Source Files (.tgz)

11
Evaluation

At the end of the semester, please fill the evaluation sheet and send it per university mail to the "Institut für Symbolisches Rechnen (Sekretariat)".

Resource Course Evaluation