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
Els supercomputadors són l'exponent de la tecnologia de computació d'alt rendiment. En aquest curs estudiarem tots els elements en l'arquitectura del sistema d'un supercomputador, des del multiprocessador de memòria compartida a la xarxa d'interconnexió i clúster de memòria distribuïda, incloent les infraestructures que allotgen aquests supercomputadors. També discutirem la pila de programari del sistema amb els models de programació paral·lela i les seves eines d'anàlisi de rendiment associats. Finalment parlarem de l'evolució d'aquests sistemes de supercomputació perquè permetin la convergència d'aquests amb la costosa analítica avançada que requereix el món actual. En aquest punt, pararem especial atenció els algoritmes de Deep Learning i la seva execució en les actuals plataformes amb GPUs. La component pràctica és la part més important d'aquesta assignatura. En aquest curs es fa servir el mètode de “learn by doing”, amb un conjunt de Hands-on basats en problemes reals que els estudiants han de dur a terme al llarg del curs. Es realitzarà una avaluació continuada al llarg del curs que no permet relaxació i que produeix millors resultats i major motivació entre els estudiants. El mètode es basa igualment en el treball en equip i que l'alumne ‘aprengui a aprendre' mitjançant la lectura i presentació d'articles. D'aquesta manera l'estudiant serà capaç d'adaptar-se i anticipar-se a les tecnologies que arribaran en els propers anys. Per a la part pràctica farem servir recursos de supercomputació del Barcelona Supercomputing Center (BSC-CNS).

Professors

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. Contingut del curs i motivació
  2. Fonaments de supercomputació
  3. Supercomputers Architecture
  4. Supercomputers Benchmarking
  5. General Purpose Supercomputers
  6. Resource Management in Supercomputers
  7. Parallel Programming Models and Motivation
  8. MPI basics
  9. Taking Time
  10. OpenMP basics
  11. MPI Advanced
  12. Parallel Performance
  13. Heterogeneous Supercomputers
  14. Accelerator Architecture
  15. Getting Started with CUDA Programming Model
  16. Supercomputing, the heart of Deep Learning
  17. Software Stack for Artificial Intelligence
  18. Deep Learning Basics Concepts
  19. Computing Performance
  20. Training on Multiple GPUs
  21. Training on Multiple Servers

Activitats

Activitat Acte avaluatiu


Course content and motivation


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

Supercomputing Basics



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

HPC Building Blocks (general purpose blocks)



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

HPC Software Stack (general purpose blocks)



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

Parallel Programming Models: OpenMP



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

Parallel Programming Models: MPI



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

Parallel Performance Metrics and Measurements



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

HPC Building Blocks for AI servers



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

Coprocessors and Programming Models



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

Powering Artificial Intelligence, Machine Learning and Deep Learning with Supercomputing



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

Parallel AI platforms and its software stack



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

Distributed AI platforms and its software stack



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

Conclusions and remarks: Towards Exascale Computing



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

1- Supercomputing Building Blocks



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

2- Getting Started with Supercomputing



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

3- Getting Started with Parallel Programming Models



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

4- Getting Started with Parallel Performance Metrics



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

5- Getting Started with Parallel Performance Model – I



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

6- Getting Started with Parallel Performance Model – II



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

7- Getting Started with GPU based Supercomputing



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

8- Getting Started with CUDA programming model



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

9- Getting Started with Deep Learning Frameworks in a Supercomputer



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

10- Getting Started with Deep Learning basic model



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

11- Getting Started with a Deep Learning real problems and its solutions



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

12- Getting Started with parallelization of a Deep Learning problems



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

13- Getting Started with a distributed Deep Learning problems



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

Metodologia docent

The theoretical part of the course will follow the slides designed by the teacher. The practical component is the most important part of this subject. In this course the “learn by doing” method is used, with a set of Hands-on, based on problems that the students must carry out throughout the course. The course will be marked by a continuous assessment that ensures constant and steady work. The method is also based on teamwork and a ‘learn to learn' approach reading and presenting papers. Thus the student is able to adapt and anticipate new technologies that will arise in the coming years.
Class attendance and participation: Regular and consistent attendance is expected and to be able to discuss concepts covered during class.

Lab activities: Hands-on sessions will be conducted during the course using supercomputing facilities. Each hands-on will involve writing a lab report with all the results.

Reading/Presentation Assignments: 6 assignments that include reading documentation/papers that expand the concepts introduced during lectures.

Assessment: There will be 2 short midterm exams along the course (and some pop quiz that can be used to replace attendance if due to the situation it is required).

Student presentation: Students/groups randomly chosen will present the reading assignment (presentations/projects).

Mètode d'avaluació

The evaluation of this course will take into account different items (tentative):

Attendance (minimum 80% required) & participation in class will account for 20% of the grade.
Readings, Presentations (and Homework) will account for 20 % of the grade.
Exams will account for 20% of the grade.
Lab sessions (+ Lab reports) will account for 40 % of the grade.

Bibliografia

Bàsica:

  • Class handouts and materials associated with this class - Torres, J, 2019.
  • Understanding Supercomputing, to speed up machine learning algorithms (Course notes) - Torres, J, 2018.
  • Marenostrum4 User's guide - BSC documentation, Operations department, 2019.
  • High performance computing : modern systems and practices - Sterling, T.; Anderson, M.; Brodowicz, M, Morgan Kaufmann, 2018. ISBN: 9780124201583
    http://cataleg.upc.edu/record=b1519884~S1*cat
  • Dive into deep learning - Zhang, A.; Lipton, Z.C.; Li, M.; Smola, A.J, 2020.
  • First contact with Deep learning: practical introduction with Keras - Torres, J, Kindle Direct Publishing, 2018. ISBN: 9781983211553
    http://cataleg.upc.edu/record=b1510639~S1*cat

Web links

Capacitats prèvies

Programming in C and Linux basics will be expected in the course. Prior exposure to parallel programming constructions, Python language, experience .

Addenda

Continguts

THERE ARE NOT CHANGES IN THE CONTENTS REGARDING THE INFORMATION IN THE COURSE GUIDE.

Metodologia docent

THE COURSE IS PLANNED WITH 100% PRESENTIALITY, SO THERE ARE NOT CHANGES IN THE METHODOLOGY REGARDING THE INFORMATION IN THE COURSE GUIDE.

Mètode d'avaluació

THERE ARE NOT CHANGES IN THE EVALUATION METHOD REGARDING THE INFORMATION IN THE COURSE GUIDE.

Pla de contingència

IF THE COURSE HAS TO BE OFFERED WITH REDUCED PRESENTIALITY OR NOT PRESENTIALLY, THERE WILL BE NOT CHANGES IN THE CONTENTS AND THE EVALUATION METHOD, BUT THE METHODOLOGY WILL BE ADAPTED TO ALLOW FOLLOWING THE COURSE REMOTELY, INCLUDING AMONG OTHERS: * USE THE 'RACÓ' TO DOWNLOAD THE SLIDES, EXERCISES, PRACTICAL ASSIGNMENTS, AND OTHER DOCUMENTATION * USE VIDEO AND/OR SCREENCAST MATERIAL FOR ASYNCHRONOUS LECTURES AND PRACTICAL CLASSES * USE VIDEOCONFERENCE FOR SYNCHRONOUS LECTURES AND PRACTICAL CLASSES * USE THE 'RACÓ' FOR ASSIGNMENT SUBMISSIONS * USE MAIL AND/OR THE FORUM FOR ASYNCHRONOUS CONSULTATION * USE CHAT AND/OR VIDEOCONFERENCE FOR SYNCHRONOUS CONSULTATION * TENTATIVE TO USE "ATENEA" OR "RACÓ" FOR TWO MIDTERM EVALUATION