wissen.leben | WWU Münster 


Ski Seminar Parallel Programming and Parallel Algorithms

Parallel and distributed computing has always played a major role in science: Forecasting the weather, analyzing DNA material, simulating earthquakes etc. requires enormous computing power to get the job done in an acceptable amount of time. More recently, parallel computing has become important to home users, too. Current computers are very likely to be equipped with multi-core CPUs (dual-/quad-core). Even the video card can nowadays be used as general purpose computing unit using GPGPUs. Taking this into consideration, the following consequences arise:
  • Parallel programming will become increasingly vital.
  • Future software has to support multi-core computers.
  • Software developers must be familiar with parallel programming and its concepts.
This seminar aims at facilitating fundamental knowledge in parallel and distributed programming in order to prepare students to cover future demands. Topics of the seminar include a general overview of parallel computing architectures, established parallel programming APIs, and various parallel applications, such as matrix multiplication, linear equation systems, sorting, and searching. A complete list can be found here. To help students find an entry point to relevant literature, a short list has been compiled here.

Announcements
  • Audience: Master and Diploma students
  • Date: 06 January 2010, 01:00 a.m. - 15 January 2010
  • Location: Kleinwalstertal, Austria
  • Course overview in HISLSF

Deadlines

Each of the following deadline expires at 23:59 p.m.:
  • Registration: Tuesday, 07 July 2009 (email to kley@wi.uni-muenster.de)
  • Notification of acceptance: Friday, 10 July 2009.
  • Draft: Sunday, 06 December 2009 (optional, but strongly recommended)
  • Final workout: Sunday, 20 December 2009.
  • Presentation: Sunday, 03 January 2009.

Downloads
  • Announcement presentation
  • Mandatory hints for the textual workout and the oral presentation
  • Further useful hints for the textual workout
  • Further useful hints for the oral presentation
  • Document templates for Word and LaTeX

Topics

The following list provides an overview of the topics covered by the seminar. Each topic is annotated with relevant literature, the supervising assistant, and the student working on the topic. After the presentations, the textual workouts as well as the presentations can be downloaded here.
  • Architectures of parallel computers. Paper Slides
    • Literature: [5] chapters 2, 7, and 17
    • Assistant: Philipp Ciechanowicz
    • Student: Daniel Schulze Zumkley
  • Open Multi-Processing 3.0 (OpenMP).
    • Literature: [5] chapters 17 and 18, [8]
    • Assistant: Philipp Ciechanowicz
    • Student: -
  • Message Passing Interface 2.0 (MPI).
    • Literature: [5] chapter 8 and [10]
    • Assistant: Philipp Ciechanowicz
    • Student: -
  • Threading Building Blocks 2.1 (TBB).
    • Literature: [7]
    • Assistant: Philipp Ciechanowicz
    • Student: -
  • Matrix-vector multiplication. Paper Slides
    • Literature: [5] chapter 8
    • Assistant: Philipp Ciechanowicz
    • Student: Annika Biermann
  • Matrix-matrix multiplication. Paper Slides
    • Literature: [5] chapter 11
    • Assistant: Philipp Ciechanowicz
    • Student: Matthias Dohm
  • Storage schemes for sparse matrices.
    • Literature: [9]
    • Assistant: Philipp Ciechanowicz
    • Student: -
  • Solving linear equation systems.
    • Literature: [5] chapter 14
    • Assistant: Christian Hermanns
    • Student: -
  • Sorting with Samplesort and Hyperquicksort.
    • Literature: [5] chapter 16
    • Assistant: Christian Hermanns
    • Student: -
  • Combinatorial search. Paper Slides
    • Literature: [5] chapter 16
    • Assistant: Christian Hermanns
    • Student: Felix Potthoff
  • Distributed file systems. Paper Slides
    • Literature: [1] chapter 9, [4] chapter 8, and [6] chapter 14
    • Assistant: Christian Hermanns
    • Student: Thomas Hollstege
  • Distributed clocks and snapshots.
    • Literature: [1] chapter 5 and [4] chapter 10
    • Assistant: Philipp Ciechanowicz
    • Student: -
  • General purpose computation on graphics processing units (GPGPU). Paper Slides
    • Literature: [11]
    • Assistant: Philipp Ciechanowicz
    • Student: Alexander Zibula

Literature

The following list is only intended as a starting point for the seminar topics. We expect you to investigate further literature on your own. Note that most of the literature is located in room 326.
  • [1] M. Singha and N. Shivaratri: Advanced Concepts in Operating Systems. WI 11 359.
  • [2] G. Bengel, C. Baun, M. Kunze, K. Stucky: Masterkurs Parallele und Verteilte Systeme. WI 13 677.
  • [3] A. Tanenbaum and M. van Stehen: Distributed Systems. WI 11 753.
  • [4] G. Coulouris, J. Dollimore, and T. Kindberg: Distributed Systems - Concepts and Design. WI 19 19.
  • [5] M. Quinn: Parallel Programming with C with MPI and OpenMP. WI 19 68.
  • [6] S. Mullender: Distributed Systems. WI 19 8.
  • [7] J. Reinders: Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism. WI 19 80.
  • [8] S. Hoffmann and R. Lienhart: OpenMP. WI 19 75.
  • [9] S. Pissanetzky: Sparse Matrix Technology. I Piss, N Piss.
  • [10] W. Gropp, E. Lusk, and A. Skjellum: Using MPI - Portable Parallel Programming with the Message-Passing Interface. WI 19 45.
  • [11] R. Fernando, M. Pharr, and H. Nguyen: GPU gems 1-3. I GPU.


Impressum | © Praktische Informatik