Computación de alto rendimiento y científica

From Supercomputación y Cálculo Científico UIS
Revision as of 11:49, 7 May 2019 by Cbarrios (talk | contribs)

Volver a Cursos

Computación de Alto Rendimiento y Científica - Código 76734

PhD Debugging.gif

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

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

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.