Arquitectura de Supercomputadores

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Computación de Altas Prestaciones)
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
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/

Profesores

Responsable

  • Jordi Torres Viñals ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0.15
Aprendizaje autónomo
7.7

Competencias

Competencias Técnicas de cada especialidad

High performance computing

  • CEE4.1 - Capacidad de analizar, evaluar y diseñar computadores y proponer nuevas técnicas de mejora en su arquitectura.
  • CEE4.2 - Capacidad de analizar, evaluar, diseñar y optimizar software considerando la arquitectura y de proponer nuevas técnicas de optimización.
  • CEE4.3 - Capacidad de analizar, evaluar, diseñar y administrar software de sistema en entornos de supercomputación.

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Capacidad para aplicar el método científico en el estudio y análisis de fenómenos y sistemas en cualquier ámbito de la Informática, así como en la concepción, diseño e implantación de soluciones informáticas innovadoras y originales.

Competencias Transversales

Trabajo en equipo

  • CTR3 - Ser capaz de trabajar como miembro de un equipo, ya sea como un miembro más, o realizando tareas de dirección con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.

Básicas

  • CB6 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • CB8 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • CB9 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

Objetivos

  1. Capacitar a los estudiantes para que sigan por sí mismos el desarrollo continuo de los sistemas de supercomputación que permiten el avance de algoritmos analíticos avanzados o la inteligencia artificial.
    Competencias relacionadas: CB6, CB8, CB9, CTR3, CG1, CEE4.1, CEE4.2, CEE4.3,

Contenidos

  1. 00. Bienvenida: Contenido del curso y motivación
  2. 01. Conceptos básicos de supercomputación
  3. 02. General purpose supercomputers
  4. 03. Parallel programming languages for shared memory platforms
  5. 04. Parallel programming languages for distributed platforms
  6. 05. Parallel Performance
  7. 06. Heterogeneous supercomputers
  8. 07. Parallel programming languages for heterogeneous platforms
  9. 08. Emerging Trends and Challenges in Supercomputing
  10. 09. Getting started with DL
  11. 10. AI is a Supercomputing problem
  12. 11. Using Supercomputers for DL training
  13. 12. Parallel and Distributed Deep Learning Frameworks
  14. 13. Accelerate the learning with Parallel training on multiple GPUs
  15. 14. Accelerate the learning with Distributed training on multiple servers

Actividades

Actividad Acto evaluativo


00. Welcome


Objetivos: 1
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

01. Supercomputing basics



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
4h

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



Teoría
0h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

02. General purpose supercomputers



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Exercise 02: Getting started with Supercomputing



Teoría
0h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0.2h
Aprendizaje autónomo
2h

03. Parallel programming languages for shared memory platforms



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Exercise 03: Getting started with OpenMP



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
2h

04. Parallel programming languages for distributed platforms



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Exercise 04: Getting started with MPI



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
3h

05. Parallel Performance



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Exercise 05: Getting started with parallel performance metrics and models



Teoría
0h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
3h

06. Heterogeneous supercomputers



Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Exercise 06: Comparing supercomputers performance



Teoría
0h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
3h

07. Parallel programming languages for heterogeneous platforms



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Exercise 07: Getting started with CUDA



Teoría
0h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
5h

08. Emerging Trends and Challenges in Supercomputing



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

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



Teoría
0h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
3h

Midterm



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

09. Getting started with DL



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

Exercise 09: First contact with Deep Learning



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0.1h
Aprendizaje autónomo
4h

10. AI is a Supercomputing problem



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Exercise 10: The new edition of the TOP500



Teoría
0h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0.2h
Aprendizaje autónomo
4h

11. Using Supercomputers for DL training



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Exercise 11: Using a supercomputer for Deep Learning training



Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0.2h
Aprendizaje autónomo
6h

12. Parallel and Distributed Deep Learning Frameworks



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Exercise 12: Using prebuild models for Deep Learning training



Teoría
0h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0.2h
Aprendizaje autónomo
8h

13. Accelerate the learning with Parallel training on multiple GPUs



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Exercise 13: Getting started with parallel Deep Learning training



Teoría
0h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0.2h
Aprendizaje autónomo
8h

14. Accelerate the learning with Distributed training on multiple servers



Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1h

Exercise 14: Getting started with distributed Deep Learning training



Teoría
0h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0.2h
Aprendizaje autónomo
8h

Final remarks



Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Metodología docente

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étodo de evaluación

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

25% Attendance + participation
10% 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).

Bibliografía

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

Capacidades previas

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.

Adenda

Contenidos

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

Metodología docente

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

Método de evaluación

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

Plan de contingencia

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