Vés al contingut

Arquitectura de Supercomputadors

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, designed for scientists and engineers aiming to develop skills in working with supercomputers, the forefront of high-performance computing technology.

In the first part of the course, we will explore the basic building blocks of supercomputers and their system software stacks. We will then enter into traditional parallel and distributed programming models, essential for exploiting parallelism and scaling applications in conventional high-performance infrastructures.

In the second part of the course, we will review the hardware and software stack that allows the management of distributed GPU applications, which have become ubiquitous in high-performance computing worldwide installations over the past decade. These GPU-based systems deliver the majority of performance in the largest Pre-Exascale supercomputers, such as the Marenostrum 5 supercomputer.

The third part of the course will focus on understanding how contemporary supercomputing systems have been the true drivers of recent advances in artificial intelligence, with particular emphasis on the scalability of deep learning algorithms using these advanced high-performance computing installations based on GPUs.

Adopting a "learn by doing" approach, the course combines lectures, reading assignments, and hands-on exercises using one of Europe¿s fastest supercomputers, the Marenostrum 5 at the Barcelona Supercomputing Center (BSC-CNS). Assessment will be continuous, ensuring consistent and steady progress, with the aim of equipping students with practical skills to adapt to and anticipate new technologies in the evolving landscape of high-performance computing.

Professorat

Responsable

  • Jordi Torres Viñals (torres@ac.upc.edu)

Hores setmanals

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

Competències

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ó.
  • 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.
  • 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, CG1, CEE4.1, CEE4.2, CEE4.3,

    Continguts

    1. 00. Benvinguda: Contingut del curs i motivació
    2. 01. Fonaments de supercomputació
    3. 02. Heterogeneous supercomputers
    4. 03. Supercomputer management and storage systems
    5. 04. Benchmarking supercomputers
    6. 05. Data center infrastructures
    7. 06. Parallel programming models
    8. 07. Parallel performance models
    9. 08. Parallel programming languages for heterogeneous platforms
    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 on multi-GPUs
    14. 13. Accelerate the learning with distributed training on multiple parallel servers
    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
    0h

    01. Supercomputing basics



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

    Exercise 01: Supercomputing impact



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

    02. Heterogeneous supercomputers



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

    Exercise 02: Getting started with storage and management systems



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

    03. Supercomputer management and storage systems



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

    Exercise 03: Exascale computers challenge



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

    04. Benchmarking supercomputers



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

    Exercise 04: Getting started with parallel programming models



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

    05. Data centers infrastructures



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

    Exercise 05: Getting started with parallel performance metrics



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

    06. Parallel programming models



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

    Exercise 06: Getting started with parallel performance models



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

    07. Parallel performance models



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

    Exercise 07: Emerging trends in supercomputing



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

    08. Parallel programming languages for heterogeneous platforms



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

    Exercise 08: Getting started with CUDA



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

    Midterm



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

    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 and Supercomputing



    Teoria
    0h
    Problemes
    0h
    Laboratori
    2h
    Aprenentatge dirigit
    0h
    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
    0h
    Aprenentatge autònom
    4h

    11. Using Supercomputers for DL training



    Teoria
    1.5h
    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
    0h
    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
    3h

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



    Teoria
    0h
    Problemes
    0h
    Laboratori
    3h
    Aprenentatge dirigit
    0h
    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
    0h
    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
    0h

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



    Teoria
    0h
    Problemes
    0h
    Laboratori
    3h
    Aprenentatge dirigit
    0h
    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
    10% Midterm exam
    70% Exercises (+ exercise presentations) and Lab exercises (+ Lab reports)

    Students who have not benefited from continuous assessment have the opportunity to take a final Course Exam. This exam includes evaluating the knowledge of the entire course (practical part, theoretical part, and self-learning part). During this course exam, the student is not allowed to use any documentation (neither on paper nor digital).

    Bibliografia

    Bàsic

    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.