Imprimir

Programa

CURSO:COMPUTACION DE ALTO RENDIMIENTO	 
TRADUCCION:HIGH PERFORMANCE COMPUTING
SIGLA:IMT3870
CREDITOS:05 UC
MODULOS:02	
CARACTER:MINIMO
TIPO:CATEDRA,TALLER
CALIFICACION:ESTANDAR
DISCIPLINA:INGENIERIA, COMPUTACION
PALABRAS CLAVE:COMPUTACION,INTELIGENCIA,ARTIFICIAL,CIENCIA,DATOS,ALTO,RENDIMIENTO


I.DESCRIPCIÓN DEL CURSO 

En este curso los estudiantes aprenderan tecnicas y conceptos basicos para desarrollar, analizar e implementar algoritmos paralelos escalables y como sus programas pueden hacer uso de las tecnologias modernas de computo de alto rendimiento. Se estudiaran problemas actuales y las tecnologias que permiten soportar este tipo de computo.


II.RESULTADOS DE APRENDIZAJE 

1.Describir las arquitecturas mas comunmente utilizadas en la construccion de plataformas de alto rendimiento y sus mecanismos asociados.

2.Utilizar modelos para describir y analizar el rendimiento de algoritmos que se ejecutan en plataformas de alto rendimiento.

3.Implementar programas en ambientes paralelos utilizando memoria compartida, paso de mensajes y arquitectura manycore para ver su desempe?o.

4.Aplicar tecnicas de computo de alto rendimiento en areas de data science, aprendizaje de maquina o computo cientifico.


III.CONTENIDOS

1.Introduccion a las plataformas de alto rendimiento
1.1.Arquitecturas de supercomputadores y clusters
1.2.Arquitecturas de cluster y grid
1.3.Sistemas de almacenamiento de alto rendimiento

2.Uso de plataformas de alto rendimiento
2.1.Scheduling y administracion de trabajos
2.2.Experiencia practica: uso scheduler SLURM

3.Modelos para computo de alto rendimiento
3.1.Metricas de rendimiento
3.2.Modelo work-span
3.3.Paralelismo de control y paralelismo de datos
3.4.Experiencia practica: evaluacion de metricas

4.Programacion con memoria compartida.
4.1.OpenMP
4.2.CilkPlus
4.3.Experiencia practica: analisis de rendimiento con OpenMP

5.Programacion con paso de mensajes
5.1.MPI
5.2.Experiencia practica: analisis de rendimiento con MPI

6.Programacion en GPU
6.1.Programacion en CUDA y OpenCL
6.2.Experiencia practica: analisis de rendimiento en GPU

7.Programacion en manycore
7.1.Programacion MIC sobre Xeon Phi
7.2.Experiencia practica: analisis de ejecucion en MIC

8.Aplicaciones en aprendizaje de maquina
8.1.Aplicaciones en Deep learning: keras, tensorflow
8.2.Experiencia practica: analisis de rendimiento en aplicacion de Deep learning

9.Aplicaciones en big data
9.1.Aplicaciones en big data analytics
9.2.Experiencia practica: bibliotecas de HPC en Python


IV.ESTRATEGIAS METODOLOGICAS

-Clases expositivas.

-Actividades practicas.


V.ESTRATEGIAS EVALUATIVAS

-Controles: 20%

-Actividades practicas: 80%


VI.BIBLIOGRAFIA 

Minima

Matloff, N. Programming on Parallel Machines; GPU, Multicore, Clusters and more. Disponible gratuitamente en: http://heather.cs.ucdavis.edu/parprocbook. Creative Commons License.


Complementaria 

Grama, A., Gupta, A., Karypis, G., Kumar, V. Introduction to Parallel Computing. Pearson, 2003. http://www-users.cs.umn.edu/~karypis/parbook/

McCool, M., Robinson, A., Reinders, J., Kauffman, M. Structured Parallel Programming: Patterns for Efficiente Computation. Elsevier, 2012

Matloff, N. Parallel Computing for Data Science: With Examples in R, C++ and CUDA. Chapman and Hall, 2015.

Eijkhout, V. Introduction to High-Performance Scientific Computing. lulu.com, 2011. https://bitbucket.org/VictorEijkhout/hpc-book-and-course


PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE 
ESCUELA DE INGENIERIA/ ENERO 2020