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).

Per accedir a una versió actualitzada al present curs del contingut de l'assignatura podeu visitar la pàgina web http://www.JordiTorres.Barcelona/SA-MIRI-2017 (Actualitzat a 2018)

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. To train students to follow by themselves the continuous development of supercomputing systems that enable the convergence of advanced analytic algorithms and big data technologies driving new insights based on the massive amounts of available data.
    Related competences: CEE4.1, CEE4.2, CEE4.3, CG1, CTR3, CB6, CB8, CB9,

Continguts

  1. Course content and motivation
  2. Supercomputing Basics
  3. HPC Building Blocks (general purpose blocks)
  4. HPC Software Stack (general purpose blocks)
  5. Parallel Programming Models: OpenMP
  6. Parallel Programming Models: MPI
  7. Parallel Performance Metrics and Measurements
  8. HPC Building Blocks for AI servers
  9. Coprocessors and Programming Models
  10. Powering Artificial Intelligence, Machine Learning and Deep Learning with Supercomputing
  11. Parallel AI platforms and its software stack
  12. Distributed AI platforms and its software stack
  13. Conclusions and remarks: Towards Exascale Computing

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 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 some short midterm exams (and could be some pop quiz) along the course (as a part of theory class time). The student will be able to take an optional final exam to improve the score of the midterm exams.

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:

A) Attendance (minimum 80% required) & participation in class will account for 15% of the grade.
B) Homework, papers reading, paper presentations, will account for 15% of the grade.
C) Exams will account of 15% of the grade.
D) Lab sessions (+ Lab reports) will account for 55% of the grade.

Bibliografia

Bàsica:

  • - Slides provided by the teacher that will content all the references (each year the documentation is updated),
  • Understanding Supercomputing, to speed up machine learning algorithms - Jordi Torres, Ed. UPC, Barcelona 2017 ,

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.