Distributed and Parallel Programming

6 EC

Semester 1, period 2

5062COPP6Y

Owner Bachelor Informatica
Coordinator dr. Zhiming Zhao
Part of Minor Informatica, year 1Bachelor Computer Science, year 2

Course manual 2023/2024

Course content

Distributed and Parallel Programming (DPP) is a second-year bachelor of Informatica course. During the past years, DPP (called Concurrent and Parallel Programming before 2021) delivered a spectrum of up-to-date technical topics across parallel and distributed domains, and attracted lots of student interest. 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 architecture.

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

3

Werkcollege

2

Self study

111

Total

168

(6 EC x 28 uur)

Attendance

Programme's requirements concerning attendance (OER-B):

  • For practical trainings and tutorials/seminars with assignments attendance is, in principle, obligatory. When students do not meet the requirements for attendance, this may lead to not finishing a course with a pass mark.

Assessment

Item and weight Details Remarks

Final grade

2.5 (25%)

Tentamen

Mandatory

Lab assignment 0 (Das)

Must be ≥ passFailing to pass this assignment will result in a 1 point reduction of the total lab score.

1.5 (15%)

Lab assignment 1 (multi threading)

1.5 (15%)

Lab assignment 2 (CUDA)

1.5 (15%)

Lab assignment 3 (MPI)

Lab assignment 4 (Cloud and DAPP)

Must be ≥ passFailing to pass this assignment will result in a 1 point reduction of the total lab score.

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  
2 Multithreading  
3 Multithreading, GPU  
4 GPU  
5 MPI  
6 MPI, Cloud  
7 DApp, Application  
8 Exam  

Timetable

The schedule for this course is published on DataNose.

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. Zhiming Zhao (coordinator)
  • Dr. Adam Belloum
  • Dr. Rob van Nieuwpoort