*)N.B. if there are students who do not speak Portuguese the language is English.
Objectives: knowledge of the architecture of parallel machines; to know how to distribute, in selected problems, a computational task to a set of independent processes; to know how to use the paradigms of parallel computing. Competencies: Competence in analysis and synthesis; Competence in problem solving; Use of Internet as means of communication and source of information; Decision capability; Competence in critical reasoning; Competence in autonomous learning; Adaptability to new situations; Competence in research;
Basic notions. What is parallel computing and its importance. Main aplication domains. Parallel computing paradigms: shared memory and distributed memory. Main types of supercomputer architectures. Hardware and software of a supercomputer. Current trends in hardware and software.
Parallelism at software level: threads, MPI, OpenMP. Measuring the algorithm efficiency: speedup and parallel efficiency (Amdhal’s law).
Examples in programming in OpenMP. Parallel loops, collective operations, barriers. Private and public variables.
MPI. Algorithms parallelization techniques. Data decomposition and domain decomposition. Master-slave model for data distribution. MPI communication methods for sharing data. Communicators and communication topologies..
Applications: i) Linear Algebra, ii) Solution of differential equations (Poisson equation), iii) Fourier transforms..
Knowledge of programming in a high level programming language
Generic skills to reach
. Competence in analysis and synthesis; . Competence in organization and planning; . Competence to solve problems; . Using the internet as a communication medium and information source; . Capacity of decision; . Competence for working in group; . Competence in working in interdisciplinary teams; . Critical thinking; . Competence in autonomous learning; . Adaptability to new situations; . Research skills; (by decreasing order of importance)
Teaching hours per semester
total of teaching hours
assessment implementation in 20132014 Assessment Problem solving reports : 50.0% Project: 50.0%
Bibliography of reference
B. Chapman, G. Jost, R. van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, MIT Press, 2007.
W. Gropp, E. Lusk, A. Skjellum, Using MPI Portable Parallel Programming with the Message Passing Interface, segunda edição, MIT Press, 1999.
P. Pacheco, Parallel Programming with MPI, Morgan Kaufmann Publishers, 1997.
Teaching is essentially practical, with extensive usage of slide projections, internet access, usage of a terminal with command line prompt to show coding examples and their results, as well as the remote access to a computer cluster. All essential material is available on the Web.