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.
- 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
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.
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
- Vasco Fernando de Figueiredo Tavares Pedro [responsible]