Arquitectura de Supercomputadors

Esteu aquí

Crèdits
6
Tipus
Complementària d'especialitat (Computació d'Altes Prestacions)
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
AC
This course introduces the fundamentals of high-performance and parallel computing. It is targeted at scientists and engineers seeking to develop the skills necessary for working with supercomputers, the leading edge in high-performance computing technology.

In the first part of the course, we will cover the basic building blocks of supercomputers and their system software stack. Then, we will introduce their traditional parallel and distributed programming models, which allow one to exploit parallelism, a central element for scaling the applications in these types of high-performance infrastructures.

In the second part of the course, we will motivate the current supercomputing systems developed to support artificial intelligence algorithms required in today's world. This year's syllabus will pay special attention to Deep Learning (DL) algorithms and their scalability using a GPU platform.

This course uses the “learn by doing” approach, based on a set of exercises, made up of programming problems and reading papers, that the students must carry out throughout the course. The course will be marked by a continuous assessment, which ensures constant, steady work.

All in all, this course seeks to enable students to acquire practical skills that can help them as much as possible to adapt and anticipate the new technologies that will undoubtedly emerge in the coming years. For the practical part of the exercises, the student will use supercomputing facilities from the Barcelona Supercomputing Center (BSC-CNS).

UPDATED VERSION: https://torres.ai/sa-miri/

Professorat

Responsable

  • Jordi Torres Viñals ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0.15
Aprenentatge autònom
7.7

Competències

Competències Tècniques de cada especialitat

Computació d'altes prestacions

  • CEE4.1 - Capacitat d'analitzar, avaluar i dissenyar computadors i proposar noves tècniques de millora en la seva arquitectura.
  • CEE4.2 - Capacitat d'analitzar, avaluar, dissenyar i optimitzar programari considerant l'arquitectura i de proposar noves tècniques d'optimització.
  • CEE4.3 - Capacitat d'analitzar, avaluar, dissenyar i administrar programari de sistema en entorns de supercomputació.

Competències Tècniques Generals

Genèriques

  • CG1 - Capacitat per aplicar el mètode científic en l'estudi i anàlisi de fenòmens i sistemes en qualsevol àmbit de la Informàtica, així com en la concepció, disseny i implantació de solucions informàtiques innovadores i originals.

Competències Transversals

Treball en equip

  • CTR3 - Ser capaç de treballar com a membre d'un equip, ja sigui com a un membre més, ja sigui realitzant tasques de direcció, amb la finalitat de contribuir a desenvolupar projectes d'una manera pragmàtica i amb sentit de la responsabilitat; assumir compromisos tenint en compte els recursos disponibles.

Bàsiques

  • CB6 - Que els estudiants sàpiguen aplicar els coneixements adquirits y la seva capacitat de resolució de problemes en entorns nous o poc coneguts dins de contexts més amplis (o multidisciplinaris) relacionats amb la seva àrea d'estudi.
  • CB8 - Que els estudiants sàpiguen comunicar les seves conclusions i els coneixements i raons darreres que les sustenten- a públics especialitzats i no especialitzats d'una manera clara i sense ambigüitats.
  • CB9 - Que els estudiants posseeixin les habilitats d'aprenentatge que els permetin continuar estudiant d'una manera que haurà de ser en gran mesura autodirigida o autònoma.

Objectius

  1. Capacitar els estudiants per seguir per si mateixos el continu desenvolupament de sistemes de supercomputació que permeten la convergència d'algoritmes analítics avançats o la intel.ligència artificial.
    Competències relacionades: CB6, CB8, CB9, CTR3, CEE4.1, CEE4.2, CEE4.3, CG1,

Continguts

  1. 00. Benvinguda: Contingut del curs i motivació
  2. 01. Fonaments de supercomputació
  3. 02. General purpose supercomputers
  4. 03. Parallel programming models
  5. 04. Parallel performance metrics
  6. 05. Parallel Performance models
  7. 06. Heterogeneous supercomputers
  8. 07. Parallel programming languages for heterogeneous platforms
  9. 08. Emerging Trends and Challenges in Supercomputing
  10. 09. Artificial Intelligence is a computing problem
  11. 10. Deep Learning essential concepts
  12. 11. Using Supercomputers for DL training
  13. 12. Accelerate the learning with parallel training using a multi-GPU parallel server
  14. 13. Accelerate the learning with parallel training using a multi-GPU parallel server
  15. 14. How to speed up the training of Transformers-based models

Activitats

Activitat Acte avaluatiu


00. Welcome


Objectius: 1
Teoria
0.5h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

01. Supercomputing basics



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
4h

Exercise 01: Read and present a paper about exascale computers challenges



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

02. General purpose supercomputers



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Exercise 02: Getting started with Supercomputing



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0.2h
Aprenentatge autònom
2h

03. Parallel programming models



Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Exercise 03: Getting Started with Parallel Programming Models



Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
2h

04. Parallel performance metrics



Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Exercise 04: Getting Started with Parallel Performance Metrics



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
4h

05. Parallel performance models



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Exercise 05: Getting started with parallel performance metrics and models



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
3h

06. Heterogeneous supercomputers



Teoria
6h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Exercise 06: Comparing supercomputers performance



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
3h

07. Parallel programming languages for heterogeneous platforms



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Exercise 07: Getting started with CUDA



Teoria
0h
Problemes
0h
Laboratori
3h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
5h

08. Emerging Trends and Challenges in Supercomputing



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
1h

Exercise 08: Read and present a paper about emerging trends in supercomputing



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
3h

Midterm



Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

09. Artificial Intelligence is a Supercomputing problem



Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Exercise 09: First contact with Deep Learning



Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0.1h
Aprenentatge autònom
4h

10. Deep Learning essential concepts



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
1h

Exercise 10: The new edition of the TOP500



Teoria
0h
Problemes
0h
Laboratori
1h
Aprenentatge dirigit
0.2h
Aprenentatge autònom
4h

11. Using Supercomputers for DL training



Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Exercise 11: Using a supercomputer for Deep Learning training



Teoria
0h
Problemes
0h
Laboratori
3h
Aprenentatge dirigit
0.2h
Aprenentatge autònom
4h

12. Accelerate the learning with parallel training using a multi-GPU parallel server



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
1h

Exercise 12: Accelerate the learning with parallel training using a multi-GPU parallel server



Teoria
0h
Problemes
0h
Laboratori
3h
Aprenentatge dirigit
0.2h
Aprenentatge autònom
4h

13. Accelerate the learning with distributed training using multiple parallel servers



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
1h

Exercise 13: Accelerate the learning with distributed training using multiple parallel server



Teoria
0h
Problemes
0h
Laboratori
3h
Aprenentatge dirigit
0.2h
Aprenentatge autònom
8h

14. How to speed up the training of Transformers-based models



Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
1h

Exercise 14: How to speed up the training of Transformers-based models



Teoria
0h
Problemes
0h
Laboratori
3h
Aprenentatge dirigit
0.2h
Aprenentatge autònom
4h

Final remarks



Teoria
0.5h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Metodologia docent

Class attendance and participation: Regular attendance is expected, and is required to be able to discuss concepts that will be covered during class.

Lab activities: Some exercises will be conducted as hands-on sessions during the course using supercomputing facilities. The student's own laptop will be required to access these resources during the theory class. Each hands-on session will involve writing a lab report with all the results. There are no days for theory classes and days for laboratory classes. Theoretical and practical activities will be interspersed during the same session to facilitate the learning process.

Reading/presentation assignments: Some exercise assignments will consist of reading documentation/papers that expand the concepts introduced during lectures. Some exercises will involve student presentations (randomly chosen).

Assessment: There will be one midterm exam in the middle of the course. The student is allowed to use any type of documentation (also digital via the student's laptop).

Mètode d'avaluació

The evaluation of this course can be obtained by continuous assessment. This assessment will take into account the following:

20% Attendance + participation
15% Midterm exam
65% Exercises (+ exercise presentations) and Lab exercises (+ Lab reports)
Details of the weight of each component of the course in the grade are described in the tentative scheduling section.

Course Exam: For those students who have not benefited from the continuous assessment, a course exam will be announced during the course. This exam includes evaluating the knowledge of the entire course (practical part, theoretical part, and self-learning part). During this exam, the student is not allowed to use any documentation (neither on paper nor digital).

Bibliografia

Bàsica:

Web links

Capacitats prèvies

Programming in C and Linux basics will be expected in the course. In addition, prior exposure to parallel programming constructions, Python language, experience with linear algebra/matrices, or machine learning knowledge will be helpful.