Parallel Processing Systems (Labs)
Course summary
-
This course focuses on the efficient use of modern parallel systems ranging from multi-core processors and many-core accelerators to large-scale distributed memory clusters.
-
The course puts equal emphasis on the theoretical foundations of parallel computing, and on practical aspects of different parallel programming models. It begins with a survey of common parallel architectures and types of parallelism, and then follows with an overview of formal approaches to assessing scalability and efficiency of parallel algorithms and their implementations.
-
In the second part, the course covers the most common and current parallel programming techniques and APIs, including for shared address space, many-core accelerators, and distributed memory clusters. Each component of the course involves solving practical computational and data driven problems, such as basic algorithms like sorting or searching and numerical data analysis problems.
Lab Resources
It is quite important to try all examples in the lecture notes. You have two options:
-
Use online compilers (Quick and easy):
-
Install C++ GNU toolchain.
- Install MinGW GNU C++ compiler (version >= 9.2)
- Install VS Code Editor
Prerequisites
- C203, C408
Grading
Activity | Weight |
---|---|
Lab1 | 20% |
Lab2 | 30% |
Tentative Schedule
Week # | Lab # | Topic |
---|---|---|
Week 1 | ||
Week 2 | Lab 1 | |
Week 3 | Lab 2 | |
Week 5 | Lab 3 |