Computación de alto rendimiento y científica
Volver a Cursos
Computación de Alto Rendimiento y Científica - Código 76734
Contents
Instructores
Carlos Jaime Barrios Hernández, PhD. ( c b a r r i o s + * @ * + u i s . e d u . c o )
Gilberto Javier Diaz Toro, MsC. ( g i l b e r t o . d i a z + * @ * + u i s . e d u . c o )
Jorge Luis Chacón Velasco, PhD. (j c h a c on - * @ * - u i s . e d u . c o )
Presentación
El cómputo de alto rendimiento más que una tendencia en el uso de tecnología, es una realidad, que plantea diferentes retos para todos los dominios del conocimiento o de actividad profesional. Más allá de las competencias normales de un ingeniero o científico, es necesario entender la tecnología para aprovechar las oportunidades que nos ofrecen, adquirir un lenguaje común para interactuar con ingenieros de sistemas o computistas y proyectar una actividad multidisciplinaria, altamente eficiente.
El curso ofrece un acercamiento a conceptos básicos y estrategias de interacción con arquitecturas escalables, desde el computo cientifico para explotar posibilidades de concurrencia y paralelismo. El curso permitirá a los participantes, conocer modelos de programacion fundamentales para la creacion de sus propios codigos, así como una vision e interacción con plataformas de supercomputo especifica y algunas herramientas de interacción en redes de tecnología avanzada, permitiendo reconocer perspectivas y oportunidades de desarrollo.
Contenido
Unidad I: Introducción General
- Introducción a la Computación Científica
- Introducción al Linux
- Linux y SLURM
Unidad II: Programación Científica
- Algoritmos
- Introducción al C/C++
- Introducción al Python
- Debugging y Profiling
Unidad III: Modelos de Programación Paralela
- Arquitecturas de Computación de Alto Rendimiento
- Memoria Compartida con OpenMP
- Memoria Distribuída con MPI
- OpenACC y Otras Directivas de Aceleración
Unidad IV: Herramientas Interesantes para Cómputo Científico
- R
- Hadoop
- Otras
Unidad V: Visualización
- gnuPlot
- Paraview
- Visit
- Otros
Evaluaciones (1er Semestre de 2019)
- Evaluación 1: 25% ( Martes 21 de Mayo de 2019 en Horas de Clase) : Unidad I (Taller de Evaluación Teórico-Práctico Individual)
- Evaluación 2: 25% (Martes 4 de Junio de 2019 en Horas de Clase): Taller DLI de OpenACC/CUDA Individual. Deben enviar el certificado a los correos de los profesores a mas tardar el 6 de Julio de 2019.
- Evaluación 3: 25% (Martes 15 de Julio de 2019, En Horas de Clase) Taller DLI II de Uso de Librerias para Calculo Cientifico. Deben enviar el certificado a los correos de los profesores a mas tardar el 6 de agosto de 2019
- Evaluación 4: 25% (Martes 13 de Agosto de 2019, En Horas de Clase) Presentación de Proyecto Final de clase : Por Grupos. Se asignarán posteriormente.
- Exposición de 5 Minutos con los resultados relevantes y funcionamiento del proyecto
- Deben colocar el proyecto en un blog generado para los proyectos finales. Las condiciones se daran posteriormente.
Horas de Consulta
Las horas de Consulta son los Martes de 13:30 a.m. a 16:00 del dia en LP 226 o en el cuarto piso del CENTIC, en la oficina de CTO de supercomputación, con alguno de los instructores pero se debe solicitar cita previa por email.
Presentaciones del Curso
- Introduction to High Performance Computing and Scientific Computing (tomado de SC-CAMP)
Bibliografía y Fuentes de Información
- Elements of Parallel Computing, Eric Aubanel (Chapman & Hall/CRC)
- Essentials of Computer Architecture, D. Comer (CRC Press)
- High Performance Embedded Computing: Applications in Cyber-Physical systems and Mobile Computing, M. Wolf (Morgan Kaufmann)
- The Fourth Paradigm: Data-Intensive Scientific Discovery
- Designing and Building Parallel Programs, by Ian Foster
- Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009
- Patterns for Parallel Software Design, Jorge Luis Ortega-Arjona (Wiley)
- Structured Parallel Programming: Patterns for Efficient Computation, M. McCool, A. D. Robison and J. Reinders (Morgan Kaufmann)
- The Art of Concurrency “A thread Monkey’s Guide to Writing Parallel Applications”, by Clay Breshears (Ed. O Reilly, 2009)
- Parallel Scientific Computing in C++ and MPI « A Seamless Approach to Parallel Algorithms and Their Implementation », Karniadakis and Kirby II (Cambridge Press)
- Parallel And Distributed Computation Numerical Methods, D. P. Bertsekas and J. N. Tsitsiklis (Prentice Hall)
- An Introduction to High Performance Scientific Computing, Scientific and Engineering Computation Series, Ll. D. Fosdick, E. R. Jessup, C. J. C. Schauble and G. Dmik (MIT Press)
- The Algorithms Design Manual, S. S. Skiena ( Springer)
- Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)
- Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)
- Fundamentals of Multicore Software Development, Ed. Victor Pankratius, Ali-Reza Adl-Tabatabai and Walter Tichy (CRC Press)
- Introduction to HPC with MPI for Data Science, Frank Nielsen (Springer)
- Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (Nvidia/Morgan Kaufmann)
- CUDA Application Design and Development, Rob Farber (Nvidia/Morgan Kaufmann)
- Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)
- Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)
- CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, S. Cook (Morgan Kaufmann)
- The CUDA Handbook: A Comprehensive Guide to GPU Programming, N. Wilt (Addison-Wesley)
- CUDA by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)
- CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming, G. Ruetsch and M. Fatica (Morgan Kaufmann/PGI/Nvidia)
- HPC@Green IT: Green High Performance Computing Methods, R. Gruber and V. Keller (Springer)
- OpenACC for Programmers: Concepts and Strategies, S. Chandraserkaran and G. Juckeland (Addison-Wesley)
- OpenACC: Parallel Programming with OpenACC, Edited by Rob Farber (Morgan Kaufmann)
- High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches, J. Reinders and J. Jeffers (Morgan Kaufmann)
- OpenMP
- OpenACC
- NVIDIA
- SC3
- RICAP
- Computing.llnl.gov
- SC-Camp