2024
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, English
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
- 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
- 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.
- 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%)
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%)
Teaching Staff
- Rui André Correia de Oliveira [responsible]