K-INFO
HU
EN
Login

Parallel Programming Laboratory

Párhuzamos programozás laboratórium
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Párhuzamos programozás laboratórium
Parallel Programming Laboratory
Subject code BMEVIIIMB02
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 0 0 3
type (linked/independent) autonomous course
Assessment type félévközi érdemjegy
Credits 4
Subject coordinator
Dr. Tóth Balázs György
Responsible department
Irányítástechnika és Informatika Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website http://cg.iit.bme.hu/portal/oktatott-targyak/parhuzamos-programozas-laboratorium
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme
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.
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.

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

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.

Tanulástámogató anyagok

Not provided.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Programming, data structures, algorithms, mathematics.
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Programming, data structures, algorithms, mathematics.
General rules
Requirements: 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%).
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Basic C++ programming knowledge. - BMEVIIIMA06 High performance parallel computing. - BMEVIIIMB01 GPGPU applications.
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.