Difference between revisions of "Computación de alto rendimiento y científica"

From Supercomputación y Cálculo Científico UIS
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
+
Volver a [[Cursos]]
  
<div class="thumbnail img-thumbnail">http://wiki.sc3.uis.edu.co/images/a/a8/Logo_sc33.png</div>
+
'''Computación de Alto Rendimiento y Científica - Código 76734'''
<p><div class="btn btn-primary"><i class="fa  fa-long-arrow-left"></i> [[Cursos]]</div></p>
 
<div class="column clearfix">
 
    <div class="col-md-14">
 
        <div class="well well-midnight">
 
                <h5>'''Computación de alto rendimiento y científica - Código 26734'''</h5>
 
        </div>
 
    </div>
 
</div>
 
 
[[File:PhD Debugging.gif|center|thumb|600x600px]]
 
[[File:PhD Debugging.gif|center|thumb|600x600px]]
  
 
==== '''Instructores''' ====
 
==== '''Instructores''' ====
<div class="col-md-14">
+
Carlos Jaime Barrios Hernández, PhD. ( c b a r r i o s + * @ * + u i s . e d u . c o )  
    <div class="panel panel-darker-white-border"><div class="panel-body">
+
 
            <p><b>[https://sites.google.com/site/carlosjaimebh/ Carlos Jaime Barrios Hernandez, PhD.]</b> - (cbarrios@uis.edu.co)</p><p>Gilberto Javier Diaz Toro, MSc (gilberto.diaz@uis.edu.co)</p><p>Jorge Luis Chacón Velazco, PhD (jchacon@uis.edu.co)</p>
+
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 )  
        </div>
+
 
    </div>
+
Jorge Luis Chacón Velasco, PhD. (j c h a c on - * @ * - u i s . e d u . c o  )
</div>
 
  
 
==== '''Presentación''' ====
 
==== '''Presentación''' ====
<div class="col-md-14">
+
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>
    <div class="panel panel-darker-white-border"><div class="panel-body">
 
            <p>El cómputo de alto rendimiento más que una tendencia en el uso de tecnologia, 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 cientifico, 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>
 
            <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>Las sesiones se realizan en el CENTIC</p>
 
        </div>
 
    </div>
 
</div>
 
  
 
==== '''Contenido''' ====
 
==== '''Contenido''' ====
<div class="col-md-14">
+
'''Unidad I: Introducción General'''
    <div class="panel panel-darker-white-border"><div class="panel-body">
+
* Introducción a la Computación Científica  
<b>Unidad I: Introducción General</b><ul>
+
* Introducción al Linux
<li>
+
* Linux y SLURM  
<li>Arquitecturas Escalables
+
 
</li>
+
'''Unidad II: Programación Científica'''
<li>Computación de Alto Rendimiento y Científica
+
* Algoritmos  
</li>
+
* Introducción al C/C++
<li>Introducción al Uso de Arquitecturas Escalables
+
* Introducción al Python
<li>Lilnux y SLURM
+
* Debugging y Profiling
</li></li></li>
+
 
<li><b>Unidad II: Programación Científica</b>
+
'''Unidad III: Modelos de Programación Paralela'''
<li>Algo de Algoritmos
+
* Arquitecturas de Computación de Alto Rendimiento
</li>
+
* Memoria Compartida con OpenMP
<li>C/C++
+
* Memoria Distribuída con MPI
</li>
+
* OpenACC y Otras Directivas de Aceleración
<li>Python
 
</li></li></ul>
 
* <b>Unidad III:</b> '''Modelos de Programación Paralela'''
 
* <li>OpenMP
 
</li>
 
<li>MPI
 
</li>
 
<li>PyCUDA, OpenACC y CuBLAS
 
</li>
 
  
* '''Unidad IV: Algunas Herramientas Interesantas para el Cómputo Científico y Visualización'''
+
'''Unidad IV: Herramientas Interesantes para Cómputo Científico'''
** R
+
* R
** Hadoop
+
* Hadoop
** Paraview
+
* Otras
** Otros
 
</div>
 
    </div>'''ASPECTOS METODOLOGICOS'''
 
</div><ul>
 
<li>Seminarios Teorico-Prácticos</li>
 
<li>Análisis de Casos </li>
 
<li>Seminarios Especializados con Invitados Internacionales (Opcional: Seminario Ommps, dictado por el Barcelona Supercomputing Center.</li>
 
</ul><div class="col-md-14">
 
    <div class="panel panel-darker-white-border">
 
'''EVALUACIONES'''
 
</div>
 
</div>'''30% Talleres y Quices de Clase'''<div class="col-md-14">
 
70% Trabajo Final de Aplicación
 
  
20% Informe Escrito Tipo Artículo
+
'''Unidad V: Visualización'''
 +
* gnuPlot
 +
* Paraview
 +
* Visit
 +
* Otros
  
30% Desarrollo del Proyecto
+
==== '''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.
  
20% Presentación Pública
+
==== '''Presentaciones del Curso''' ====
 +
# [[:File:IntroHPCSC.pdf|Introduction to High Performance Computing and Scientific Computing (tomado de SC-CAMP)]]
  
</div><h4 class="panel-title">'''BIBLIOGRAFÍA Y FUENTES DE INFORMACION'''</h4><div class="col-md-14">
+
===='''Bibliografía y Fuentes de Información'''====
    <div class="panel panel-darker-white-border"><div class="panel-body">
+
<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>
                <ul>
+
==== '''Horas de Consulta''' ====
                        <li>The Fourth Paradigm: Data-Intensive Scientific Discovery in http://research.microsoft.com/en-us/collaboration/fourthparadigm/</li>
+
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.
                        <li>Designing and Building Parallel Programs, by Ian Foster in http://www.mcs.anl.gov/~itf/dbpp/</li>
 
                        <li>Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009. http://www.cise.ufl.edu/research/ParallelPatterns/</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>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>Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (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 by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley) </li>
 
                        <li>http://developer.nvidia.com/ </li>
 
                        <li>http://grid.uis.edu.co </li>
 
                        <li>https://computing.llnl.gov/tutorials/parallel_comp/ </li>
 
                        <li>http://www.sc-camp.org </li>
 
                </ul>
 
        </div>
 
    </div>
 
</div>
 

Revision as of 11:49, 7 May 2019

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.