Skip to content

Parallel Computing

Public syllabus for 2025-2026

Academic overview

Programme
BD
Period
Year 1, Semester 2
Credits
5
Weeks
14

Curriculum placement

Appears in study plans

Teaching team

Course coordinator
Seminar coordinators
Florin Roșu

Learning time distribution

Total
Curriculum Lecture Practice Total Weekly Lecture Practice
42 28 14 3 2 1
Exam hours
4
Individual Study Bibliography study Field study Homework Tutoring Others
79 30 4 40 5 0
Overall
125

Learning outcomes

Knowledge

  • To be familiar with the design, description and implementation of the applications that are using parallel computing
  • (6a03a0952355ae3a04d2f312) Understanding how platforms specific to the processing of large volumes of data work;

Skills

  • Capacity to identify, design and describe a parallel computing system
  • Capacity to implement an application that uses parallel computing
  • Capacity to use parallel computing systems
  • (6a03a0952355ae3a04d2f318) Using distributed parallel processing principles in designing scalable applications;

Responsibility

  • Capacity to comunicate knowledge related to parallel computing used in different activities domains
  • (6a03a0952355ae3a04d2f31c) Correctly representing the level of competence and accepting tasks within its limits;

Online platform

classroom code d7y3xird

Course content

Content Methods Obs
Lecture 1. (2h) Introduction: Parallel computers, why parallel computing, application examples, short history, to port or not to port. Performance: overhead, performance metrics for parallel systems Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-1.pdf
Lecture 2. (2h) Performance Metrics for Parallel Programs: analytic modeling, execution time, overhead, speedup, efficiency, cost, granularity, scalability, roadblocks, asymptotic analysis Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-2.pdf
Lecture 3. (2h) Architecture: logical organization - Flynn taxonomy, SIMD, MIMD, communication; physical organization - historical context, shared memory versus distributed memory Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-3.pdf
Lecture 4. (2h) Architecture and Models: physical organization - radius-based classification, multicore, clusters, grids, trends; early models, PRAM Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-4.pdf
Lecture 5. (2h) Models: dataflow and systolic architectures, circuit model, graph model, LogP and LogGP; message-passing paradigm; levels of parallelism Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-5.pdf
Lecture 6. (2h) Implicit Parallelism - Instruction Level Parallelism. Pipeline, Vector and Superscalar Processors Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-6.pdf
Lecture 7. (2h) Cache coherence in multiprocessor systems. Interconnection Networks - classification, topologies, evaluating static and dynamic interconnection networks Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-7.pdf
Lecture 8. (2h) Communication costs, routing mechanism, mapping techniques, cost-performance tradeoffs Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-8.pdfTextbook at http://staff.fmi.uvt.ro/ ~dana.petcu/calcul.htm
Lecture 9. (2h) Concurrency and Steps in Parallel Algorithm 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, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-9.pdfIdem
Lecture 10. (2h) Decomposition and Orchestration: recursive, data, exploratory, speculative and hybrid decompositions, orchestration under the data parallel, shared-address space and message passing model Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-10.pdfIdem
Lecture 11. (2h) 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, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-11.pdfIdem
Lecture 12. (2h) 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, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-12.pdfIdem
Lecture 13. (2h) Models of Parallel Algorithms and Simple Parallel Algorithms: models - data parallel, task graph, work pool, master-slave, pipeline, hybrids; applying data parallel model, building-block computations; sorting networks Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-13.pdfIdem
Lecture 14. (2h) Parallel computations in numerical analysis: linear equations, nonlinear equations, ordinary differential equations, computational fluid dynamics Lecture, conversation, exemplify Slides:http://staff.fmi.uvt.ro/~dana.petcu/calcul/PC-14.pdfIdem

Course bibliography

Bibliography:

Seminar content

Content Methods Obs
Lab 1 (2h): OpenMP – Generalities, basic mechanisms and simple examples Classroom examples
Lab 2 (2h): OpenMP – Matrix operations and performance studies Classroom examples
Lab 3 (2h): OpenMP – sorting and performance studies Classroom examples
Lab 4 (2h) OpenACC – generalities, simple examples and matrix operations Classroom examples
Lab 5 (2h): MPI – Generalities, basic mechanisms and simple examples Classroom examples
Lab 6 (2h): MPI – Matrix operations and performance studies Classroom examples
Lab 7 (2h): MPI – solving linear systems and performance studies Classroom examples
Bibliography:

Seminar bibliography

The content is consistent in structure with similar courses from other universities and covers the fundamental aspects necessary familiarity with the issue of parallel computing. Ability to identify, design, implement and analyze applications that utilize parallel calculation is essential for getting a timely response in case of scientific applications and commercial complex ones. Skills offered by this discipline are needed by an IT specialist in order to identify effective solutions for solving concrete problems, regardless of their specific activity field.

Corroboration

(none)

AI tools guidance

The use of generative AI is permitted for both classroom and laboratory in accordance with Universities regulations.

Evaluation and delivery

Activity Criteria Methods Percentage
C
  • Knowlege about the problems associated with parallel computing and their solutions (OC)
  • Written exam in the exam period
  • 50.0%
S
  • Capacity to design and programme an application that uses parallel computing (OAb)
  • Oral evaluation of the software project (semester homework)
  • 50.0%

Performance standards

Capacity to write a simple application that uses parallel computing Understand the basic principles of parallel computing

Additional info

-