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
DAC
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
4

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

Continguts

  1. Contingut del curs i motivació
  2. Fonaments de supercomputació
  3. Components bàsics d'un supercomputador
  4. Software Stack d'un supercomputador
  5. Models de programació de paral·lelisme: OpenMP
  6. Models de programació de paral·lelisme: MPI
  7. Mètriques i mesures del rendiment paral·lel
  8. Components bàsics d'un supercomputador per a servidors AI
  9. Coprocessadors i models de programació
  10. Potenciant l'avanç de la intel·ligència artificial, l'aprenentatge automàtic i l'aprenentatge profund mitjançant la supercomputació
  11. Plataformes paral·leles per IA i la seva software stack
  12. Plataformes distribuïdes per IA i el seu software stack
  13. Cap a la computació exascale

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
2h

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: Marenostrum visit



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

2- Getting Started with Supercomputing



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

3- Getting Started with Parallel Programming Models



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

4- Getting Started with Parallel Performance Metrics



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

5- Getting Started with Parallel Performance Model – I



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

6- Getting Started with Parallel Performance Model – II



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

7- Getting Started with GPU based Supercomputing



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

8- Getting Started with CUDA programming model



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

9- Getting Started with Deep Learning Frameworks in a Supercomputer



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

10- Getting Started with Deep Learning basic model



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

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
2h

12- Getting Started with parallelization of a Deep Learning problems



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

13- Getting Started with a distributed Deep Learning problems



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

Metodologia docent

The theoretical part of the course will follow the slides designed by the teacher during theory class 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 continuous assessment which 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.

Course Activities:
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 lab sessions using supercomputing facilities. Each hands-on will involve writing a lab report with all the results to be delivered one week later.

Homework Assignments: Homework will be assigned weekly that includes reading the documentation that expands the concepts introduced during lectures, and periodically will include reading research papers related with the lecture of the week, and prepare presentations (with slides).

Assessment: There will be 2 short midterm exams (and could be some pop quiz) along the course.

Student presentation: Students/groups randomly chosen will present the homework (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 15% of the grade.
- Homework, papers reading, paper presentations, will account for 25 % of the grade.
- Exams will account for 15% of the grade.
- Lab sessions (+ Lab reports) will account for 45 % of the grade.

Bibliografia

Bàsica:

  • Class handouts and materials associated with this class - Jordi Torres , (can be found on the Racó-FIB web server), 2019.
  • Understanding Supercomputing, to speed up machine learning algorithms - Jordi Torres, Course notes, 2018.
  • Marenostrum User's guide - BSC documentation, Operations department, 2019.
  • Marenostrum User's guide - BSC documentation, Operations department, 2019.
  • High Performance Computing: Modern Systems and Practices - Thomas Sterling, Matthew Anderson, Maciej Brodowicz, Morgan Kaufmann, 2018 (available at the library of the UPC Barcelona Tech) and preview in google:.
    https://books.google.es/books?id=qOHIBAAAQBAJ

Web links

Capacitats prèvies

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