# Slides / Weekly notes

Date | Topic | Slides | Notes |
---|---|---|---|

26.08.08 | Course Presentation / Introduction | ||

04.09.08 | Chapter 2.3 / 2.4 | pdf (by Karypis / pages 1-21) | |

04.09.08 | PRAM example program | ||

11.09.08 | Communication Costs / Routing / Embedding | see slides from 04.09., Add-on:pdf | |

18.09.08 | Parallel Algorithm Design | pdf (by Karypis) | |

25.09.08 | Basic Communication Operations | pdf (by Karypis) | |

02.10.08 | Analytical Modelling of Parallel Programs | pdf (by A.G.), Add-on:pdf | |

09.10.08 | Programming Using the Message-Passing Paradigm | pdf (by Karypis), Add-on:pdf | |

07.11.08 | Programming Shared Address Space Platforms | pdf (by Karypis) | |

12.11.08 | Dense Matrix Algorithms | pdf (by Karypis) | |

19.11.08 | Sorting | pdf (by Karypis) | |

26.11.08 | Graph Algorithms | pdf (by AG) + pdf (by Karypis) | |

03.12.08 | Discrete Optimization | pdf (by Karypis) | |

09.12.08 | Dynamic Programming | pdf (by Karypis) | |

16.12.08 | Fast Fourier Transformation | ||

19.12.08 | Chapter 4.7 and Exercise Discussion |

# Assignments

Date | Due | ||
---|---|---|---|

04.09.08 | Assignment 1 | 18.09.2008, 12pm | |

18.09.08 | Assignment 2 | 01.10.2008, 12pm | |

02.10.08 | Assignment 3 | 05.11.2008, 12pm | |

12.11.08 | Assignment 4 | 25.11.2008, 12pm | |

26.11.08 | Assignment 5 | 10.12.2008, 12pm | |

10.12.08 | Assignment 6 | pdf (updated 15.12.) | 18.12.2008, 12pm |

# Course Schedule

**Lectures / Meetings**

Thursday: 12:15-13:45 (IMADA's seminar room).

if necessary Tuesday: 8:15-9:45 (IMADA's seminar room).

**Office Hours**

Just write a short mail, and come by.

- Office: IMADA, Ø14-602b-2 map.
- Phone: 2322
- E-mail: daniel

# Literature

**Main course book:**

[1] Grama, A; A. Gupta; G. Karypis; V. Kumar:
*Introduction to Parallel Computing*.
Pearson, 2003.
Errata by John Kirk

**Material**

# Course Description

## Prerequisites:

The contents of DM507 Algorithms and Data Structures must be known.

## Aims:

The goal of this course to introduce the students to the aspects of parallel computing: architecture, programming paradigms, algorithms and standards. Both traditional computer science algorithms (e.g. sorting, searching, and dynamic programming algorithms) as well as scientific computing algorithms (e.g. matrix computations) will be covered. Students learn how to apply the most widely used standards for writing parallel programs (MPI, Pthreads, and OpenMP) and to thoroughly quantify the performance of parallel programs by means of metrics for scalability.

## Synopsis:

parallel programming platforms, principles of parallel algorithm design, basic communication operations, analytical modeling of parallel programs, programming using the message passing paradigm, programming shared address space platforms, dense matrix algorithms, sorting, graph algorithms, search algorithms for discrete optimization problems, dynamic programming, fast fourier transform

## Teaching period:

Fall 2008

## Aim description:

When the course is completed the students are expected to be able to:

- explain the techniques and algorithms from the curriculum in clear
and precise language.

- analyze the parallel systems covered in the curriculum with
respect to performance and scalability.

- apply parallel programming techniques by implementing the
techniques and algorithms from the curriculum in example programs.

- undertake empirical studies for the parallel implementations and
draw sound conclusions.

## Evaluation:

(a) Project assignments. Pass/fail, internal evaluation by teacher.
The assignments must be passed in order to take the oral exam.

(b) Oral exam at the end of the course. Danish 7 mark scale,
external examiner.

Reexamination according to the rules decided by the Study Board. Oral exam. Danish 7 mark scale, external examiner.

## Course type:

Due to the small number of students, the course is changed to a reading course.