Parallel Programming Laboratory

A tantárgy neve magyarul / Name of the subject in Hungarian: Párhuzamos programozás laboratórium

Last updated: 2019. január 25.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Informatics MSc, Cloud and parallel systems
Course ID Semester Assessment Credit Tantárgyfélév
VIIIMB02 3 0/0/3/f 4  
3. Course coordinator and department Dr. Tóth Balázs György, Irányítástechnika és Informatika Tanszék
Web page of the course http://cg.iit.bme.hu/portal/oktatott-targyak/parhuzamos-programozas-laboratorium
4. Instructors

Dr. Szeberényi Imre, Department of Control Engineering and Information Technology

Dr. Tóth Balázs György, Department of Control Engineering and Information Technology

5. Required knowledge Programming, data structures, algorithms, mathematics.
6. Pre-requisites
Ajánlott:

Basic C++ programming knowledge.

- BMEVIIIMA06 High performance parallel computing.
- BMEVIIIMB01 GPGPU applications.
7. Objectives, learning outcomes and obtained knowledge

Students can get acquainted in practice with the use of cloud-based systems and related development and test tools, and learn the steps and methods of parallel programming through specific tasks. They will also learn about the criteria and steps for migrating traditional IT applications to the cloud. Students solve most of the lab tasks in a cloud environment provided with the CIRCLE system.

8. Synopsis 1. Introduction.

The aim of the lab is to get familiar with the parameter scan, which is a commonly used parallel algorithm and many applications based on it.

2. Check-point in distributed environment.

 The purpose of the lab is to expand the program created the previous time by creating a simple check-point. Measuring the effect of check-point on run times. Estimate SpeedUp.
 
3. Parallel programs with threads in a UNIX environment.

The goal of the lab is to explore the capabilities of the POSIX threads. Creating a simple parallel program with POSIX threads. Measuring running times. Estimate SpeedUp.

4. Creating a parallel program in OpenMP environment.

The goal of the lab is to explore the OpenMP toolkit. Convert the previous task to OpenMP. Measuring run times and comparing them with implementations made in the previous lab.

5. Parallel programs in MPI environment.

The goal of the lab is to explore the MPI toolkit. During the lab students should test simple communication schemes, the effect of different schemes on running time.

6. Understanding Mathematical Libraries (MKL, LAPACK, BLAS).

The purpose of the lab is to implement a computationally demanding task with a BLAS library on a GPGPU card. During the lab, the completed implementation is also measured.

7. Migrating a simple task to the IaaS cloud.

The goal of the lab is to learn how to connect cloud-based remote resources and local applications. During the lab we present cloud management tools and the creation of cloud-based services.
 
8. Creating simple CUDA programs.
The goal of the lab is to experiment with parallel applications running on graphics hardware. During the lab, we present the Thrust container library available in the CUDA environment, and some applications based on it.

9. Develop an application based on MPI and CUDA.
The lab presents the possibilities of integrating different parallelization strategies within a program. By combining massively parallel and distributed systems, we can combine their positive features and partially eliminate the drawbacks of each scheme.
9. Method of instruction In the labs students solve most of the tasks in a cloud environment provided by the CIRCLE system and receive individual homework. The evaluation is based on the average of the grades obtained on each class and on the grade obtained for the homework.
10. Assessment

Laboratory visits according to the TVSZ and preparing homework at the end of the semester. The mark at the end of the semester is the result of the completed labs (50%) and the homework (50%).

14. Required learning hours and assignment
Kontakt óra42
Félévközi készülés órákra42
Felkészülés zárthelyire0
Házi feladat elkészítése18
Kijelölt írásos tananyag elsajátítása18
Vizsgafelkészülés0
Összesen120
15. Syllabus prepared by

Dr. Szeberényi Imre,  Department of Control Engineering and Information Technology

Dr. Tóth Balázs György,  Department of Control Engineering and Information Technology