Banner image shows DAS-4 nodes at Leiden University (adapted from photo by Vianney Govers)

## Parallel Programming I, Fall 2018

**Lecturer:** prof.dr. H. A. G. Wijshoff

### Description

The course presents an introduction to parallel programming and parallel architectures and subsequently the study of parallel algorithm design, parallel numerical computing, parallel graph computing and parallel sorting. Existing and new (parallel) programming paradigms will be discussed. The course lectures are completed with programming assignments and/or (theoretical) algorithmic problems.

**A mailing list for this course was created. If you attend this course and have not received an email that your name was added to the mailing list, please send an email with subject:PPI to harryw@liacs.nl!!!!!**

### Examination

40% assignments: programming assignments. 60%: Open "book" final exam.

Example exams: click here for exam 2015, click here for exam 2016.

### Assignments

**Assignment 1:** Sparse LU Factorization. The skeleton code for this assignment can be found here. For those of you who want to work on an apple (MAC OS) platform a new skeleton code is made available and can be found here. **Note that for using this code a gcc version of 4.9.0 is required**. The deadline for this assignment is *Monday, October 8, 23:59 hours*.

**Assignment 1-B: ** Hellerman-Rarick. The deadline for this assignment is *Wednesday October 31, 23:59 hours*

**Assignment 2: ** Parallel Minimum Spanning Tree Algorithm. The deadline for this assignment is *Wednesday November 28, 23:59 hours*

Note that your implementation should also handle disconnected graphs, resulting
in multiple spanning trees. Note also that as output you should report
the total weight of each minimum spinning tree **as well as** the
edges which belong to the spanning tree.

**Assignment 3: ** Parallel Sorting Algorithm. The deadline for this assignment is *Friday December 21, 23:59 hours*.

### Literature

**Textbook (not obligatory)**: *Introduction to Parallel Computing*. Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. 2003. Addison Wesley.

**Lecture Slides:**

- Lecture 1
- Lecture 2
- Lecture 3
- Lecture 4
- Lecture 5
- Lecture 6
- Lecture 7
- Lecture 8
- Assignment 2 Slides
- Lecture 9
- Lecture 10
- Lecture 11
- Lecture 12

### Contact

One can contact the lecturer by e-mail: harryw (at) liacs.nl

### Class Schedule

**Lectures:** Thursdays from 13:30 to 15:15 in room 401.

Date | Description |
---|---|

Th. 6 September |
Hour 5, 6: Lecture: Introduction |

Th. 13 September |
Hour 5, 6: Lecture: Implicit and Explicit Parallelism |

Th. 20 September |
Hour 5, 6: Lecture: Explicit Parallelism and Fundamentals of Parallel Programming |

Fr. 21 September |
15:30 Lecture: Fundamentals and (Parallel) Sparse Matrix Computations |

Th. 27 September |
No lecture this week |

Th. 4 October |
No lecture this week |

Wed. 10 October |
Deadline first programming assignment |

Th. 11 October |
Hour 5, 6: Lecture: (Parallel) Dense Matrix Computations |

Th. 18 October |
Hour 5, 6: Lecture: Parallel Sparse Matrix Computations |

Th. 25 October |
Hour 5, 6: Lecture: Parallel Sparse Matrix and Graph Computations |

Wed. 31 October |
Deadline "second" programming assignment 1-B |

Th. 1 November |
Hour 5, 6: Lecture: Parallel Graph Computations |

Th. 8 November |
Hour 5, 6: Lecture: Parallel Graph Computations (continued) |

Th. 15 November |
Hour 5, 6: Question hour for second assignment, by Kris Rietveld |

Th. 22 November |
Hour 5, 6: Lecture: Parallel Graph Computations and Sorting |

Wed. 28 November |
Deadline second programming assignment 2 |

Th. 29 November |
Start programming assignment 3 |

Wed. 5 December |
Hour 7, 8: Lecture: Parallel Sorting and Parallel Programming Models |

Th. 6 December |
Hour 5, 6: Lecture: tUPL Parallel Programming Paradigm |

Th. 13 December |
14:00 - 17:00 Exam SNELLIUS 174 |

Fr. 21 December |
Deadline programming assignment 3 |