Go to Dana Petcu's homepage
PARALLEL COMPUTING:
Lectures (28h) - topics:
- Lecture 1. (Curs 1.) Introduction: Parallel computers, why parallel computing, application examples, short history, to port or not to port. Performance: overhead, performance metrics for parallel systems
- Lecture 2. (Curs 2.) Performance Metrics for Parallel Programs: analystic modeling, execution time, overhead, speedup, efficiency, cost, granularity, scalability, roadblocks, asymptotic analysis
- Lecture 3. (Curs 3.) Architecture: logical organization - Flynn taxonomy, SIMD, MIMD, communication; physical organization - historical context, shared memory versus distributed memory
- Lecture 4. (Curs 4.) Architecture and Models: physical organization - radius-based classification, multicore, clusters, grids, trends; early models, PRAM
- Lecture 5. (Curs 5.) Models: dataflow and systolic architectures, circuit model, graph model, LogP and LogGP; message-passing paradigm; levels of parallelism
- Lecture 6. (Curs 6.) Implicit Parallelism - Instruction Level Parallelism. Pipeline, Vector and Superscalar Processors
- Lecture 7. (Curs 7.) Cache coherence in multiprocessor systems. Interconnection Networks - classification, topologies, evaluating static and dysnamic interconnection networks
- Lecture 8. (Curs 8.) Communication costs, routing mechanism, mapping techniques, cost-performance tradeoffs
- Lecture 9. (Curs 9.) Concurrency and Steps in Parallel Algoritm Design:concurrency in parallel programs, approaches to achieve concurrency, basic leyers of software concurrency; tasks, processes and processors, design steps,decomposition - simple examples and classification
- Lecture 10. (Curs 10.) Decomposition and Orchestration: recursive, data, exploratoty, speculative and hybrid decompositions, ochestration under the data parallel, shared-address space and message passing model
- Lecture 11. (Curs 11.) Mapping Techniques for Load Balancing and Methods for Containing Interaction Overheads: mapping classification, schemes for static mapping, schemes for dynamic mapping, maximizing data locality, overlapping computations with interactions, replication, optimized collective interactions
- Lecture 12. (Curs 12.) Emulations, Scheduling and Patterns: emulations among architectures, task scheduling problem, scheduling algorithms, load balancing; patterns - task decomposition, data decomposition, group tasks, order tasks, data sharing, design evaluation
- Lecture 13. (Curs 13.) Models of Parallel Algoritms and Simple Parallel Algorithms: models - data parallel, task graph, work pool, master-slave, pipeline, hybrids; applying data parallel model, bilding-block computations; sorting networks
- Lecture 14. (Curs 14.) Parallel computations in numerical analysis: linear equations, nonlinear equations, ordinary differential equations, computational fluid dynamic (slides only in Romanian, book in English).
Labs (14h) - topics:
- Lab 1 OpenMP - generalities, simple examples
- Lab 2 OpenMP - matrix operations and performance studies
- Lab 3 OpenMP - sorting and performance studies
- Lab 4 MPI - generalities, simple examples
- Lab 5 MPI - matrix operations and performance studies
- Lab 6 MPI - solving linear systems and performance studies
- Lab 7 OpenACC - generalities, simple example and matrix operations
Textbooks:
- D.Petcu, Parallel computing in English - last update in 2020
Schedule in Spring semester of 2023/2024
Weekly meetings:
- Friday in English, 18:00-19:30 Lab (AIDC + BD, even weeks), 16:20-17:50 Lecture
In English:
Week | Date | 16:20 | 18:00 | Remark |
1 | 1 Mar 2024 | Lecture 1 | - | |
2 | 8 Mar 2024 | Lecture 2 | Lab 1 | |
3 | 15 Mar 2024 | Lecture 3 | - | |
4 | 22 Mar 2024 | Lecture 4 | Lab 2 | |
5 | 29 Mar 2024 | Lecture 5 | - | |
6 | 5 Apr 2024 | Lecture 6 | Lab 3 | |
7 | 12 Apr 2024 | Lecture 7 | - | |
8 | 19 Apr 2024 | Lecture 8 | Lab 4 | |
9 | 26 Apr 2024 | Lecture 9 | - | |
- | 3 May 2024 | - | - | |
10 | 10 May 2024 | Lecture 10 | Lab 5 | |
11 | 17 May 2024 | Lecture 11 | - | |
12 | 24 May 2024 | - | - | Anniversary of 80 years of UVT |
13 | 31 Jun 2024 | Lecture 12 | - | |
14 | 7 Jun 2024 | Lecture 13 | Lab 6 | |
Links for labs:
- Infrastructure to use: (BID Cluster, InfraGrid, Blue Gene)
References for lectures:
- Kontoghiorghes Erricos J. ed. Handbook of Parallel Computing and Statistics, Chapman & Hall/CRC, Taylor & Francis Group, 2006
- Wittwer Tobias. An Introduction to Parallel Programming, VSSD, Netherlands, 2006
- Zbigniew, Czech, Introduction to parallel computing, Cambridge University Press, 2016
References for labs:
- Karniadakis George E., Kirby Robert M. Parallel Scientific Computing in C++ and MPI, Cambridge University Press, 2003.
- Barbara Chapman, Gabriele Jost, Ruud van van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming (Scientific and Engineering Computation), MIT Press, 2007
Last modification: February 2024