Parallel Computing
1
2025-2026
02003476
Computation
Portuguese
Face-to-face
SEMESTRIAL
6.0
Elective
2nd Cycle Studies - Mestrado
Recommended Prerequisites
Porgramming experience with a high level language (Python or C or Fortran).
Teaching Methods
Classes are essentially hands-on practice sessions of parallel computing.
Teaching involves slide presentations of theoretical material, programming examples, and programming exercises . Internet access is used for obtaining relevant material.
The programming exercises are made using Python and the mpi4py module, either on classroom PCs or personal laptop, at the choice of the student.
Learning Outcomes
Objectives:
Know the architecture of parallel machines;
Know how to distribute, in selected problems, a computational task to several (as much as possible) independent processes;
Understand when to use the different parallel programing paradigms.
Competences:
Develop analysis and synthesis abilities;
Problem solving;
Usage of internet as communication means and source of information;
Decision-making capability;
Critical reasoning;
Capacity for autonomous learning;
Adaptability to new situations;
Research ability
Work Placement(s)
NoSyllabus
Basic notions: parallel computing and its importance. Main application domains. Paradigms of parallel computing: shared and distributed memory. What is a supercomputer: main types of hardware architectures, components and middleware. Trends in supercomputing.
Parallelization in software: OpenMP, MPI . Measuring the efficiency of parallel algorithms: speedup and Amdhal's law.
OpenMP programming: fork and join model. Parallel zone. Parallel loops, collective operations and barriers. Private and shared variables. Data race problems.
MPI. Parallelization techniques: data decomposition and domain decomposition. Model master-slave for data distribution and collection. MPI communication types. Collective operations for data and computation. Communicators and communication topologies. Creation of derived data types.
Applications to linear algebra problems and to the numerical solution of the Poisson equation.
Head Lecturer(s)
Helmut Wolters
Assessment Methods
Assessment
Resolution Problems: 100.0%
Bibliography
Documenta¸ c˜ao online do Python: http://www.python.org
Python 3 Tutorial: https://docs.python.org/3/tutorial/index.html
Anaconda: https://www.anaconda.com/download
Microsoft Windows 10/11 Subsystem for Linux: https://learn.microsoft.com/en-us/windows/wsl/install A Whirlwind Tour of Python Jake VanderPlas, O’Reilly, August 2016. https://www.oreilly.com/library/view/a-whirlwind-tour/9781492037859
Learning Scientific Programming with Python Christian Hill, Cambridge University Press (2016) https://doi.org/10.1017/CBO9781139871754
Stackoverflow: https://stackoverflow.com/questions/tagged/python.