Difference between revisions of "Computación de alto rendimiento y científica"
Line 1: | Line 1: | ||
Volver a [[Cursos]] | Volver a [[Cursos]] | ||
− | ''' | + | '''Computación de Alto Rendimiento y Científica - Código 76734''' |
− | [[File:.gif|center|thumb|600x600px]] | + | [[File:PhD Debugging.gif|center|thumb|600x600px]] |
==== '''Instructores''' ==== | ==== '''Instructores''' ==== | ||
Carlos Jaime Barrios Hernández, PhD. ( c b a r r i o s + * @ * + u i s . e d u . c o ) | 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''' ==== | ==== '''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.<p>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.</p><p></p> | |
==== '''Contenido''' ==== | ==== '''Contenido''' ==== | ||
− | '''Unidad I: | + | '''Unidad I: Introducción General''' |
* Introducción a la Computación Científica | * Introducción a la Computación Científica | ||
* Introducción al Linux | * Introducción al Linux | ||
* Linux y SLURM | * Linux y SLURM | ||
− | '''Unidad II: | + | '''Unidad II: Programación Científica''' |
* Algoritmos | * Algoritmos | ||
* Introducción al C/C++ | * Introducción al C/C++ | ||
Line 23: | Line 26: | ||
* Debugging y Profiling | * Debugging y Profiling | ||
− | '''Unidad III: | + | '''Unidad III: Modelos de Programación Paralela''' |
* Arquitecturas de Computación de Alto Rendimiento | * Arquitecturas de Computación de Alto Rendimiento | ||
* Memoria Compartida con OpenMP | * Memoria Compartida con OpenMP | ||
Line 29: | Line 32: | ||
* OpenACC y Otras Directivas de Aceleración | * OpenACC y Otras Directivas de Aceleración | ||
− | '''Unidad IV: | + | '''Unidad IV: Herramientas Interesantes para Cómputo Científico''' |
− | * | + | * R |
− | * | + | * Hadoop |
− | * | + | * Otras |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | '''Unidad V: Visualización''' | |
− | * | + | * gnuPlot |
− | * | + | * Paraview |
− | * | + | * Visit |
− | * | + | * Otros |
− | |||
− | ** En el | + | ==== '''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 darán posteriormente. | ** Deben colocar el proyecto en un blog generado para los proyectos finales. Las condiciones se darán posteriormente. | ||
==== '''Presentaciones del Curso''' ==== | ==== '''Presentaciones del Curso''' ==== | ||
− | # [[:File:.pdf| | + | # [[:File:IntroHPCSC.pdf|Introduction to High Performance Computing and Scientific Computing (tomado de SC-CAMP)]] |
===='''Bibliografía y Fuentes de Información'''==== | ===='''Bibliografía y Fuentes de Información'''==== | ||
<div class="col-md-14"><div class="panel panel-darker-white-border"><ul><li>Elements of Parallel Computing, Eric Aubanel (Chapman & Hall/CRC)</li><li>Essentials of Computer Architecture, D. Comer (CRC Press)</li><li>High Performance Embedded Computing: Applications in Cyber-Physical systems and Mobile Computing, M. Wolf (Morgan Kaufmann)</li><li>[http://research.microsoft.com/en-us/collaboration/fourthparadigm/ The Fourth Paradigm: Data-Intensive Scientific Discovery]</li><li>[http://www.mcs.anl.gov/~itf/dbpp/ Designing and Building Parallel Programs, by Ian Foster]</li><li>[http://www.cise.ufl.edu/research/ParallelPatterns/ Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009]</li><li>Patterns for Parallel Software Design, Jorge Luis Ortega-Arjona (Wiley)</li><li>Structured Parallel Programming: Patterns for Efficient Computation, M. McCool, A. D. Robison and J. Reinders (Morgan Kaufmann)</li><li>The Art of Concurrency “A thread Monkey’s Guide to Writing Parallel Applications”, by Clay Breshears (Ed. O Reilly, 2009)</li><li>Parallel Scientific Computing in C++ and MPI « A Seamless Approach to Parallel Algorithms and Their Implementation », Karniadakis and Kirby II (Cambridge Press)</li><li>Parallel And Distributed Computation Numerical Methods, D. P. Bertsekas and J. N. Tsitsiklis (Prentice Hall)</li><li>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)</li><li>The Algorithms Design Manual, S. S. Skiena ( Springer)</li><li>Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)</li><li>Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)</li><li>Fundamentals of Multicore Software Development, Ed. Victor Pankratius, Ali-Reza Adl-Tabatabai and Walter Tichy (CRC Press)</li><li>Introduction to HPC with MPI for Data Science, Frank Nielsen (Springer)</li><li>Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (Nvidia/Morgan Kaufmann)</li><li>CUDA Application Design and Development, Rob Farber (Nvidia/Morgan Kaufmann)</li><li>Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)</li><li>Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)</li><li>CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, S. Cook (Morgan Kaufmann)</li><li>The CUDA Handbook: A Comprehensive Guide to GPU Programming, N. Wilt (Addison-Wesley)</li><li>CUDA by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)</li><li>CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming, G. Ruetsch and M. Fatica (Morgan Kaufmann/PGI/Nvidia)</li><li>HPC@Green IT: Green High Performance Computing Methods, R. Gruber and V. Keller (Springer)</li><li>OpenACC for Programmers: Concepts and Strategies, S. Chandraserkaran and G. Juckeland (Addison-Wesley)</li><li>OpenACC: Parallel Programming with OpenACC, Edited by Rob Farber (Morgan Kaufmann)</li><li>High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches, J. Reinders and J. Jeffers (Morgan Kaufmann)</li><li>[https://www.openmp.org/ OpenMP]</li><li>[https://www.openacc.org/ OpenACC]</li><li>[http://developer.nvidia.com/ NVIDIA]</li><li>[http://www.sc3.uis.edu.co/ SC3]</li><li>[http://www.red-ricap.org/ RICAP]</li><li>[https://computing.llnl.gov/tutorials/parallel_comp/ Computing.llnl.gov]</li><li>[http://www.sc-camp.org/ SC-Camp]</li></ul></div></div> | <div class="col-md-14"><div class="panel panel-darker-white-border"><ul><li>Elements of Parallel Computing, Eric Aubanel (Chapman & Hall/CRC)</li><li>Essentials of Computer Architecture, D. Comer (CRC Press)</li><li>High Performance Embedded Computing: Applications in Cyber-Physical systems and Mobile Computing, M. Wolf (Morgan Kaufmann)</li><li>[http://research.microsoft.com/en-us/collaboration/fourthparadigm/ The Fourth Paradigm: Data-Intensive Scientific Discovery]</li><li>[http://www.mcs.anl.gov/~itf/dbpp/ Designing and Building Parallel Programs, by Ian Foster]</li><li>[http://www.cise.ufl.edu/research/ParallelPatterns/ Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009]</li><li>Patterns for Parallel Software Design, Jorge Luis Ortega-Arjona (Wiley)</li><li>Structured Parallel Programming: Patterns for Efficient Computation, M. McCool, A. D. Robison and J. Reinders (Morgan Kaufmann)</li><li>The Art of Concurrency “A thread Monkey’s Guide to Writing Parallel Applications”, by Clay Breshears (Ed. O Reilly, 2009)</li><li>Parallel Scientific Computing in C++ and MPI « A Seamless Approach to Parallel Algorithms and Their Implementation », Karniadakis and Kirby II (Cambridge Press)</li><li>Parallel And Distributed Computation Numerical Methods, D. P. Bertsekas and J. N. Tsitsiklis (Prentice Hall)</li><li>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)</li><li>The Algorithms Design Manual, S. S. Skiena ( Springer)</li><li>Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)</li><li>Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)</li><li>Fundamentals of Multicore Software Development, Ed. Victor Pankratius, Ali-Reza Adl-Tabatabai and Walter Tichy (CRC Press)</li><li>Introduction to HPC with MPI for Data Science, Frank Nielsen (Springer)</li><li>Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (Nvidia/Morgan Kaufmann)</li><li>CUDA Application Design and Development, Rob Farber (Nvidia/Morgan Kaufmann)</li><li>Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)</li><li>Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)</li><li>CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, S. Cook (Morgan Kaufmann)</li><li>The CUDA Handbook: A Comprehensive Guide to GPU Programming, N. Wilt (Addison-Wesley)</li><li>CUDA by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)</li><li>CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming, G. Ruetsch and M. Fatica (Morgan Kaufmann/PGI/Nvidia)</li><li>HPC@Green IT: Green High Performance Computing Methods, R. Gruber and V. Keller (Springer)</li><li>OpenACC for Programmers: Concepts and Strategies, S. Chandraserkaran and G. Juckeland (Addison-Wesley)</li><li>OpenACC: Parallel Programming with OpenACC, Edited by Rob Farber (Morgan Kaufmann)</li><li>High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches, J. Reinders and J. Jeffers (Morgan Kaufmann)</li><li>[https://www.openmp.org/ OpenMP]</li><li>[https://www.openacc.org/ OpenACC]</li><li>[http://developer.nvidia.com/ NVIDIA]</li><li>[http://www.sc3.uis.edu.co/ SC3]</li><li>[http://www.red-ricap.org/ RICAP]</li><li>[https://computing.llnl.gov/tutorials/parallel_comp/ Computing.llnl.gov]</li><li>[http://www.sc-camp.org/ SC-Camp]</li></ul></div></div> | ||
==== '''Horas de Consulta''' ==== | ==== '''Horas de Consulta''' ==== | ||
− | Las 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. |
Revision as of 16:22, 9 November 2021
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 darán posteriormente.
Presentaciones del Curso
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
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.