Course manual 2025/2026

Course content

Distributed and Parallel Programming (DPP) is a second-year course in the Bachelor of Informatica. DPP delivered a spectrum of topics across parallel and distributed domains. In DPP, students will learn to write programs in various emerging architectures and programming paradigms, including multi-core, cluster, Cloud, and decentralized environments. Students will learn to reflect, design, and use parallel and distributed systems. The course is structured into five chapters:

  1. Parallel computing introduction
  2. Multi-threading
  3. GPU Programming
  4. Message passing interface
  5. Distributed programming paradigms and applications

Study materials

Other

  • Online study material (Canvas)

Objectives

  • Explain and describe the taxonomy of parallel and distributed systems, and the role and functionality of the different components that appear in these computing systems.
  • Program small-scale applications using the main concepts of parallel processing and programming models of Pthreads, OpenMP, CUDA, and MPI.
  • Explain and describe basic programming models for parallel and distributed computing systems.
  • Get familiar with the programming models of cloud and decentralized systems.
  • Analyze the performance results of parallel and distributed systems and evaluate their results.
  • Conduct a literature study on a selected topic of parallel and distributed computing systems.

Teaching methods

  • Hoorcollege
  • Laptopcollege
  • Lecture
  • Computer lab session/practical training

The labs are split in six groups. We encourage the students to come to the lab for help and feedback. Support outside lab hours is limited to urgent issues and priority is given to the students who will attend the labs. Absence during the lab will be recorded.

Learning activities

Activity

Hours

Hoorcollege

28

Laptopcollege

24

Tentamen

2

Werkcollege

2

Self study

111

Total

168

(6 EC x 28 uur)

Attendance

  • Some course components require compulsory attendance. If compulsory attendance applies, this will be indicated in the Course Catalogue which can be consulted via the UvA-website. The rationale for and implementation of this compulsory attendance may vary per course and, if applicable, is included in the Course Manual.
  • Assessment

    Item and weight Details

    Final grade

    2.5 (25%)

    Tentamen

    Lab 0: DAS

    1.5 (15%)

    Lab 1: multi threading

    1.5 (15%)

    Lab 2: GPU

    1.5 (15%)

    Lab 3: MPI

    Lab 4: DApps

    3 (30%)

    Literature study

    • Upload reports + code for each assignment by the fixed DEADLINE. The submission will be closed immediately after the deadline.
    • Present your solution to the TA (demonstrates the code works, explain your solution)
    • There will be NO Extensions for the submission deadline. The students have to contact their studieadviseur to initiate the procedure for extending the deadlines.
    • A Solution of the assignments will be discussed during the Lab hours, after the deadline
    • Grading will be completed within two weeks; group feedback will be given by the TA during the Lab hours and will reflect the most common errors that have been noticed when correcting your assignments. Personal feedback can will also be given during the Lab hours
    • Assignment will be done on the Distributed ASCI super computer  (Links to an external site.)Links to an external site.. There are rules for using DAS4, there will be a short tutorial on the second lab please try to be there
    • All the assignments will be checked for plagiarism code and reports so be very careful when using material from the Internet or any third party sources, appropriate citations MUST be added to both your code and reports.
    • If you miss the tutorial you can read the DAS4/5 usage policy (Links to an external site.)Links to an external site. before using the system 

    Assignments

    There will be six assignments in the course: 0) DAS tutorial, 1) Multithread, 2) CUDA, 3) MPI, 4) Cloud and Blockchain, and 5) literature study. Assignment descriptions will be available on Canvas. 

    Fraud and plagiarism

    Over het algemeen geldt dat elke uitwerking die je inlevert ter verkrijging van een beoordeling voor een vak je eigen werk moet zijn, tenzij samenwerken expliciet door de docent is toegestaan. Het inzien of kopiëren van andermans werk (zelfs als je dat hebt gevonden bij de printer, in een openstaande directory of op een onbeheerde computer) of materiaal overnemen uit een boek, tijdschrift, website, code repository of een andere bron - ook al is het gedeeltelijk - en inleveren alsof het je eigen werk is, is plagiaat.

    We juichen toe dat je het cursusmateriaal en de opdrachten met medestudenten bespreekt om het beter te begrijpen. Je mag bronnen op het web raadplegen om meer te weten te komen over het onderwerp en om technische problemen op te lossen, maar niet voor regelrechte antwoorden op opgaven. Als in een uitwerking gebruik is gemaakt van externe bronnen zonder dat een bronvermelding is vermeld (bijvoorbeeld in de rapportage of in commentaar in de code), dan kan dat worden beschouwd als plagiaat.

    Deze regels zijn er om alle studenten een eerlijke en optimale leeromgeving aan te kunnen bieden. De verleiding kan groot zijn om te plagiëren als de deadline voor een opdracht nadert, maar doe het niet. Elke vorm van plagiaat wordt bestraft. Als een student ernstige fraude heeft gepleegd, kan dat leiden tot het uitschrijven uit de Universiteit. Zie voor meer informatie over het fraude- en plagiaatreglement van de Universiteit van Amsterdam: www.student.uva.nl

    Course structure

    Weeknummer Onderwerpen Studiestof
    1

    Parallel computing introduction/ multithreading

     
    2 Multithreading/ GPU  
    3 GPU  
    4 GPU  
    5 MPI  
    6 MPI, Cloud  
    7 DApp, Application  
    8 Exam  

    Contact information

    Coordinator

    • dr. Zhiming Zhao

     

    • if you have any problem with the content of the course or lab session that you can solve, please contact immediately one of the TA or the coordinator (Zhiming Zhao) do not wait until the end of the course.

    Staff

    • Dr. Adam Belloum
    • Dr. Dolly Sapra
    • Dr. Zhiming Zhao (coordinator)