2023

Fundamentals of High Performance Computing

Name: Fundamentals of High Performance Computing
Code: INF14383L
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area: Informatics

Teaching languages: Portuguese
Languages of tutoring support: Portuguese
Regime de Frequência: Presencial

Sustainable Development Goals

Learning Goals

The goal of this curricular unit is to introduce and explore the concept of High Performance Computing environments (HPC), its architecture, organization and use, in order to allow reaching a solution for complex problems in a useful amount of time. At the end of this course, students should be able to:


- Learn about HPC cluster environments

- Understand the architecture of HPC clusters

- Understand and use data storage systems on HPC clusters

- Access and use HPC systems

- Prepare their applications to run on HPC systems

- Evaluate performance on HPC systems

Contents

Introduction to Linux command line

- Open a terminal

- Run applications

- Browse the file system

- Redirect data

- Chaining commands (piping)

- Wildcards in filenames

- Environment variables

- Terminal configuration

- Remote access to Linux systems

- Basic shell scripts

Introduction to Shell Scripting

HPC systems

- Serial, Parallel, and High-Performance Computing

- Computer architecture overview

- HPC Architectures

- Node interconnection

- Coprocessors (GPUs, etc)

- Clustering

- Process scheduling

HPC Services

- Example of HPC Services

- Service levels

- Access to HPC Services

- SSH login

- File transfer

- Remote desktop

- Tunnels

Security em HPC

User environment

-Compilers

- Environment modules

- File systems

Job management systems

- Batch schedulers

- Working with jobs

- Array jobs

- GPU jobs

Teaching Methods

The teaching methodology includes two types of classes:
- lectures
- laboratory classes

In theoretical classes, the basic concepts of High Performance Computing (HPC) are presented gradually, with examples of existing HPC systems and case studies.

The laboratory practical classes are dedicated to the exploration and use of HPC systems, using real problems.

Assessment

The evaluation can be continuous or by exam and is made of two components: 1) a theoretical component, with a weight of 60% over the final grade; and 2) a practical component, with a weight of 40% over the final grade.

Continuous evaluation:

Theoretical component (60%)
- 2 written midterm exams, (50% each)

Practical component (40%)
- 1 group project (100%)

Evaluation by exam:

Theoretical component (60%)
- 1 final written exam, (100%)

Practical component (40%)
- 1 group project (100%)