Faculdade de Ciências e Tecnologia

High Perfomance Computing

Code

11165

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Maria Cecília Farias Lorga Gomes, Pedro Abílio Duarte de Medeiros

Weekly hours

4

Total hours

56

Teaching language

Português

Objectives

Knowledge and understanding goals

  • Multiprocessor architectures
  • Techniques for problem decomposition
  • Languages, libraries and tools needed for all the development cycle of a parallel program

Know-how goals

  • Performance optimization of a sequential program
  • Ability to use tools for measuring the performance of symmetric multiprocessors and clusters
  • Multiprocessor programming using C/C++ OpenMP, MPI and OpenCL

Soft-Skills:

  • Critical reasoning and evaluation on alternative solutions and approaches for problem solving.

Prerequisites

Students should have knowledge about computer architecture, computer networks and operating systems.

Subject matter

  1. Parallel computing: hardware, software, applications and performance theory.
  2. Programming shared-memory multiprocessors. OpenMP. Application examples.
  3. GPU computing. OpenCL/CUDA.
  4. Programming distributed-memory multiprocessors. MPI. Application examples.
  5. Structured Parallel Programming -- structured models and abstractions for parallel programming and existing languages, libraries, and frameworks supporting them.

Bibliography

Main:

  • B. Wilkinson, M. Allen, “Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers (2nd Edition)”, Prentice-Hall 2004


Other books:

  • P. Pacheco, " An Introduction to Parallel Programming", Morgan Kauffman, 2011
  • G. Hager, G. Wellein, “Introduction to High Performance Computing for Engineers and Scientists”, CRC Press, 2011
  • B. Gaster, L. Howes, D. Kaeli and P. Mistry, "Heterogeneous Computing with OpenCL", Morgan Kauffman, 2011

Teaching method

Lectures are intended to support the instructor’s presentation of fundamental issues.
Laboratory sessions take place in a general-purpose laboratory with PC-based multi-core nodes for shared memory and distributed-memory programming. A dedicated cluster is also available where cluster management and monitoring tools are installed.

Courses