https://studiegids.vu.nl/en/courses/2025-2026/X_400162At the end of the course, the students will:Be able to apply distributed parallel programming models to implement algorithms on large-scale computing systems. (Applying knowledge and understanding)Have hands-on experience in executing and testing parallel programs using a cluster computing environment. (Applying knowledge and understanding, making judgments)Be able to critically evaluate the performance of a distributed parallel program, identifying bottlenecks, and perform optimizations. (Applying knowledge and understanding, making judgments)Effectively communicate parallelization approaches and performance results by writing scientific reports. (Communication, lifelong learning skills)This course is a follow-up of "Programming Large-Scale Parallel Systems", which allows students to apply the knowledge studied in "Programming Large-Scale Parallel Systems" in a more practical, hands-on setting. Throughout the course, students will transform given sequential algorithms into parallel programs able to run on multiple compute nodes within a large-scale computing system. We will consider distributed programming models, including message-passing with MPI and the task-oriented model based on remote procedure calls included in the Julia programming language. The programs will be tested for correctness and benchmarked for performance on the DAS-5 cluster computer (see http://www.cs.vu.nl/das5). The performance of the program will be measured, analyzed and, whenever necessary, optimized. Profiling tools will be considered to identify bottlenecks and to guide optimization. A scientific report must be written for each problem discussing the parallelization approach, the implementation choices, and the outcomes of the performance analysis.A kick-off meeting to introduce the course objectives and the practical assignments. After the kick-off meeting, students work independently towards the completion of the assignments. There are weekly meetings for Q&A and to guide students in different aspects of the work.(90%) Practical assignments that include practical programming work and written report. (10%) Individual oral exam, where students defend their work in a presentation about the assignments and by answering questions from the teachers. Additional rules The grade of the practical assignments should be at least 5.5 to pass the course. The grade of the individual oral exam should be at least 5.5 to pass the course. There is no resit opportunity for the practical assignments nor the oral exam.All course materials, including documentation and reference materials, will be made available through Canvas.MSc Computer Science MSc Computer Security MSc Computational ScienceWe highly recommend having attended "Programming Large-Scale Parallel Systems" before joining "Parallel Programming Practical". The algorithms will be implemented in the Julia programming language. An introduction to parallel computing in Julia is given in the course "Programming Large-Scale Parallel Systems". Otherwise, students can study the lecture notes in https://www.francescverdugo.com/XM_40017/dev/.