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

From Supercomputación y Cálculo Científico UIS
(dESCRIOBE)
(24 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>
+
* Introducción al Linux
 +
* Linux y SLURM
  
<ul>
+
'''Unidad II: Programación Científica'''
<li>Arquitecturas Escalables
+
* Algoritmos  
</li>
+
* Introducción al C/C++
<li>Computación de Alto Rendimiento y Científica
+
* Introducción al Python
</li>
+
* Debugging y Profiling
<li>Introducción al Uso de Arquitecturas Escalables
 
<li>Lilnux y SLURM
 
</li>
 
<li>
 
</li></ul><b>Unidad II: Programación Científica</b><ul><li>Algo de Algoritmos
 
</li>
 
<li>C/C++
 
</li>
 
<li>Python
 
</li></ul><b>Unidad III:</b> '''Modelos de Programación Paralela'''
 
  
* <li>OpenMP</li><li>MPI
+
'''Unidad III: Modelos de Programación Paralela'''
</li><li>PyCUDA, OpenACC y CuBLAS
+
* Arquitecturas de Computación de Alto Rendimiento
</li>
+
* Memoria Compartida con OpenMP
'''Unidad IV: Algunas Herramientas Interesantas para el Cómputo Científico y Visualización'''
+
* Memoria Distribuída con MPI
 +
* OpenACC y Otras Directivas de Aceleración
 +
 
 +
'''Unidad IV: Herramientas Interesantes para Cómputo Científico'''
 
* R
 
* R
 +
* Hadoop
 +
* Otras
  
* Hadoop
+
'''Unidad V: Visualización'''
 +
* gnuPlot
 
* Paraview
 
* Paraview
 +
* Visit
 
* Otros
 
* Otros
</div>
 
    </div>
 
</div><h4 class="panel-title">'''ASPECTOS METODOLOGICOS'''</h4>
 
        <div class="panel-body"><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><div class="col-md-14">
 
    <div class="panel panel-darker-white-border">
 
        <div class="panel-heading">
 
            <p class="panel-title"></p>
 
        </div></div>
 
</div>
 
  
<div class="col-md-14">
+
==== '''Evaluaciones (2do Semestre de 2018)''' ====
    <div class="panel panel-darker-white">
+
* '''Evaluación 1: 20% (10 de Septiembre en Horas de Clase) :''' Unidad I (Taller de Evaluación Teórico Individual)
        <div class="panel-heading">
+
* '''Evaluación 2: 30% (Septiembre 24-25 9:00-17:00)''':  Participación en el Tutorial ''<u>Overview of Common Strategies for Parallelization</u>'' durante el #CARLA2018 (Presentación del Certificado de Asistencia y Cumplimiento de la totalidad de las horas del curso) Más información en [www.ccarla.org] 
            <h3 class="panel-title">VALUACIONES</h3>
+
* '''Evaluación 2: 20% (29 de Octubre, En Horas de Clase)''' Entrega de Proyecto de Clase 1: Individual. Se asignarán posteriormente.
        </div>
+
* '''Evaluación 3: 30% (3 de Diciembre)''' Entrega de Proyecto Final de clase : Por Grupos. Se asignarán posteriormente.  
        <div class="panel-body">
+
** Componente 1 (20%): Presentación en un Poster con los resultados relevantes
            <p>La evaluación se realizara en cuatro entregas de igual porcentaje, a manera de ePoster o Digital Poster, para cada una de las notas. Estas entregas se realizarán en parejas y se tendrá en cuenta los siguientes factores: complejidad del problema, aporte, originalidad, presentación y calidad de la solución en términos de eficiencia. Los ePosters deberán ser enviados en formato pdf, junto con el código de solución y las instrucciones de compilación. Los ePosters se presentarán en un espacio asignado para tal fin, y los autores tendrán 10 minutos para su presentación. </p>
+
** Componente 2 (20%): Calidad de la solución propuesta.  
                <ul>
 
                    <li>Nota 1 (25%): Propuesta de Problema y Algoritmo Inicial.</li>
 
                    <li>Nota 2 (25%): Código de Solución con Memoria Compartida.</li>
 
                    <li>Nota 3 (25%): Código e Solución con Memoria Distribuída.</li>
 
                    <li>Nota 4 (25%): Código de Solución Hibrida o Acelerado.</li>
 
                </ul> 
 
        </div>
 
        <div class="panel-footer">Evaluaciones</div>
 
    </div>
 
</div>
 
  
<div class="col-md-14">
+
==== '''Horas de Consulta''' ====
    <div class="panel panel-darker-white-border">
+
Las horas de Consulta son los Martes de 9:00 a.m. a 12:00 del dia en LP 226 o en el cuarto piso del Centic, pero se debe solicitar cita previa por email.
        <div class="panel-heading">
 
            <h3 class="panel-title">BIBLIOGRAFÍA Y FUENTES DE INFORMACION</h3>
 
        </div>
 
        <div class="panel-body">
 
                <ul>
 
                        <li>The Fourth Paradigm: Data-Intensive Scientific Discovery in http://research.microsoft.com/en-us/collaboration/fourthparadigm/</li>
 
                        <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 23:49, 14 September 2018

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 (2do Semestre de 2018)

  • Evaluación 1: 20% (10 de Septiembre en Horas de Clase) : Unidad I (Taller de Evaluación Teórico Individual)
  • Evaluación 2: 30% (Septiembre 24-25 9:00-17:00): Participación en el Tutorial Overview of Common Strategies for Parallelization durante el #CARLA2018 (Presentación del Certificado de Asistencia y Cumplimiento de la totalidad de las horas del curso) Más información en [www.ccarla.org]
  • Evaluación 2: 20% (29 de Octubre, En Horas de Clase) Entrega de Proyecto de Clase 1: Individual. Se asignarán posteriormente.
  • Evaluación 3: 30% (3 de Diciembre) Entrega de Proyecto Final de clase : Por Grupos. Se asignarán posteriormente.
    • Componente 1 (20%): Presentación en un Poster con los resultados relevantes
    • Componente 2 (20%): Calidad de la solución propuesta.

Horas de Consulta

Las horas de Consulta son los Martes de 9:00 a.m. a 12:00 del dia en LP 226 o en el cuarto piso del Centic, pero se debe solicitar cita previa por email.