2024

Parallel Programming

Name: Parallel Programming
Code: INF13266M
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area: Informatics

Teaching languages: Portuguese, English
Languages of tutoring support: Portuguese, English
Regime de Frequência: Presencial

Sustainable Development Goals

Learning Goals

It is intended that the student:

- learn the techniques used to solve the specific problems of parallel algorithms;
- get to know some parallel algorithms;
- know how to analyze the behavior of parallel algorithms;
- be able to develop and program parallel algorithms.

Contents

Parallelism and competition
Systems for parallel computing
- multicore, multiprocessor, cluster, heterogeneous
- shared and distributed memory
- caches, consistency and consistency
- communication and synchronization
Support for parallel programming
- atomic accesses
- lock, traffic light, monitor
- critical section, race
- exchange of messages
Programming Models
- threads Posix
- OpenMP
- MPI
Drawing of parallel algorithms
- task parallelism
- data parallelism
- standards for parallelism
Performance of parallel programs

Teaching Methods

The classes are divided in theoretical classes, in which are exposed the problems and the techniques to be used, and in which algorithms are developed and analyzed, and practical classes, where the exposed techniques are used and where students are proposed the development of algorithms .

The evaluation is carried out through the elaboration of practical works of programming and use of parallel algorithms, and of written tests during the semester or, alternatively, a final examination.

Teaching Staff