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

Hervé Miguel Cordeiro Paulino, Pedro Abílio Duarte de Medeiros

Weekly hours

4

Total hours

56

Teaching language

Português

Objectives

Knowledge and understanding goals

  • Multiprocessor and heterogeneous architectures (CPUs and GPUs)
  • 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 CUDA from Nvidia and Apache Spark.

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, and good programming skills.

Subject matter

  1. Parallel computing: hardware, software, applications and performance theory.
  2. Prallel algorithms and their GPU computing. 
  3. Programming distributed-memory multiprocessors. 

Bibliography

Main:

  • P. Pacheco, " An Introduction to Parallel Programming", Morgan Kauffman, 2011
  • CUDA C Programming Guide, NVIDIA corporation

Complementary:

  • Norm Matloff, "Programming on Parallel Machines: GPU, Multicore, Clusters and More", University of California, Davis,

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. Access to machines with heterogeneous architectures (CPus and GPUs Nvidia) for shared memory programming.

Evaluation method

Evaluation elements

Two intermediate tests or final exam (60% of the final grade). 

Two programming assignments (40% of the final grade).

Frequency

Average of the grades of the programming assignments >=  8.

Final grade

NT = average of the grade of the tests or grade of the final exam

NP = average of the grades of the programming assignments

if NT < 8 then final grade = NT

else final grade = NT*0.6 + NP*0.4

Courses