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

From Supercomputación y Cálculo Científico UIS
Line 6: Line 6:
 
     <div class="col-md-14">
 
     <div class="col-md-14">
 
         <div class="well well-midnight">
 
         <div class="well well-midnight">
                 <h5>Computación de alto rendimiento y científica - Código 26734</h5>
+
                 <h5>'''Computación de alto rendimiento y científica - Código 26734'''</h5>
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 
</div>
 
</div>
 +
[[File:PhD Debugging.gif|center|thumb|600x600px]]
  
 +
==== '''Instructores''' ====
 
<div class="col-md-14">
 
<div class="col-md-14">
     <div class="panel panel-darker-white-border">  
+
     <div class="panel panel-darker-white-border"><div class="panel-body">
        <div class="panel-heading">
+
             <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>
            <h3 class="panel-title">Profesor</h3>
 
        </div>
 
        <div class="panel-body">
 
             <p><b>[https://sites.google.com/site/carlosjaimebh/ Carlos Jaime Barrios Hernandez, PhD.]</b> - (cbarrios@uis.edu.co)</p>
 
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 
</div>
 
</div>
  
 +
==== '''Presentación''' ====
 
<div class="col-md-14">
 
<div class="col-md-14">
     <div class="panel panel-darker-white-border">  
+
     <div class="panel panel-darker-white-border"><div class="panel-body">
        <div class="panel-heading">
 
            <h3 class="panel-title">PRESENTACION</h3>
 
        </div>
 
        <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 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>
 
             <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>
Line 34: Line 29:
 
</div>
 
</div>
  
 +
==== '''Contenido''' ====
 
<div class="col-md-14">
 
<div class="col-md-14">
     <div class="panel panel-darker-white-border">  
+
     <div class="panel panel-darker-white-border"><div class="panel-body">
        <div class="panel-heading">
+
<b>Unidad I: Introducción General</b><ul>
            <h3 class="panel-title">Contenido</h3>
+
<li>
        </div>
+
<li>Arquitecturas Escalables
        <div class="panel-body">
+
</li>
<ul>
+
<li>Computación de Alto Rendimiento y Científica
<li><b>Unidad I.</b> Introducción. E-ciencia, Supercomputacion y Computo Avanzado. E-ciencia, Introduccion a las Arquitecturas Escalables, Cluster, Grid, Computacion Voluntaria y Cloud Computing. Uso de Arquitecturas Escalables (Taller en GridUIS-2), Portales Cientificos y otros recursos (Taller sobre Grid-Colombia y GISELA), Computacion Extrema.</li>
+
</li>
<li><b>Unidad II.</b> Modelos de Programacion Basicos: Memoria Compartida y Memoria Distribuida.Concurrencia y Paralelismo, Programacion de Memoria Compartida (OpenMP), Programacion de Memoria Distribuida (MPI), Optimizacion de Codigos Secuenciales, desarrollo de scripts (bash, python).</li>
+
<li>Introducción al Uso de Arquitecturas Escalables
<li><b>Unidad III.</b> Pasaje por la Programacion Hibrida y Aceleradores. Arquitecturas y Modelos de Programacion Hibrida, OpenACC, CUDA, OpenCL.</li>
+
<li>Lilnux y SLURM
<li><b>Unidad IV.</b> Optimización, Tendencias y Direcicones Futuras</li>  
+
</li></li></li>
</ul>           
+
<li><b>Unidad II: Programación Científica</b>  
        </div>
+
<li>Algo de Algoritmos
 +
</li>
 +
<li>C/C++
 +
</li>
 +
<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'''
 +
** R
 +
** Hadoop
 +
** Paraview
 +
** Otros
 +
</div>
 
     </div>
 
     </div>
</div>
+
</div><h4 class="panel-title">'''ASPECTOS METODOLOGICOS'''</h4>
 
+
         <div class="panel-body"><ul>
<div class="col-md-14">
 
    <div class="panel panel-darker-white-border">
 
        <div class="panel-heading">
 
            <h3 class="panel-title">ASPECTOS METODOLOGICOS</h3>
 
        </div>
 
         <div class="panel-body">
 
<ul>
 
 
<li>Seminarios Teorico-Prácticos</li>
 
<li>Seminarios Teorico-Prácticos</li>
 
<li>Análisis de Casos </li>
 
<li>Análisis de Casos </li>
 
<li>Seminarios Especializados con Invitados Internacionales (Opcional: Seminario Ommps, dictado por el Barcelona Supercomputing Center.</li>
 
<li>Seminarios Especializados con Invitados Internacionales (Opcional: Seminario Ommps, dictado por el Barcelona Supercomputing Center.</li>
 
</ul>
 
</ul>
         </div>
+
         </div><div class="col-md-14">
    </div>
 
</div>
 
 
 
<div class="col-md-14">
 
 
     <div class="panel panel-darker-white-border">  
 
     <div class="panel panel-darker-white-border">  
 
         <div class="panel-heading">
 
         <div class="panel-heading">
             <h3 class="panel-title">MATERIAL DEL CURSO</h3>
+
             <p class="panel-title"></p>
        </div>
+
         </div></div>
        <div class="panel-body">
 
            <ul>
 
                <li>Unidad I: [http://www.sc3.uis.edu.co/owncloud/index.php/s/OMKIFGYtARnexJm Parte 1], [http://www.sc3.uis.edu.co/owncloud/index.php/s/ZnhngOmO6Dkw5p1 Parte 2]</li>
 
                <li>Unidad II: [http://www.sc3.uis.edu.co/owncloud/index.php/s/DMkTdt5pk5BjOOJ Parte 3]</li>
 
                <li>Unidad III:</li>
 
                <li>Unidad IV: </li>
 
            </ul>
 
            <p>Códigos de Práctica:</p>
 
            <ul>
 
                <li>[http://people.sc.fsu.edu/~jburkardt/c_src/openmp/openmp.html OpenMP: Tutorial y ejemplos]</li>
 
                <li>[http://people.sc.fsu.edu/~jburkardt/c_src/mpi/mpi.html MPI :  Tutrorial y ejemplos]</li>
 
            </ul>
 
         </div>
 
    </div>
 
 
</div>
 
</div>
  
Line 89: Line 79:
 
     <div class="panel panel-darker-white">
 
     <div class="panel panel-darker-white">
 
         <div class="panel-heading">
 
         <div class="panel-heading">
             <h3 class="panel-title">EVALUACIONES</h3>
+
             <h3 class="panel-title">VALUACIONES</h3>
 
         </div>
 
         </div>
 
         <div class="panel-body">
 
         <div class="panel-body">

Revision as of 14:36, 4 September 2017


Logo_sc33.png

Computación de alto rendimiento y científica - Código 26734
PhD Debugging.gif

Instructores

Carlos Jaime Barrios Hernandez, PhD. - (cbarrios@uis.edu.co)

Gilberto Javier Diaz Toro, MSc (gilberto.diaz@uis.edu.co)

Jorge Luis Chacón Velazco, PhD (jchacon@uis.edu.co)

Presentación

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.

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.

Las sesiones se realizan en el CENTIC

Contenido

Unidad I: Introducción General
  • Arquitecturas Escalables
  • Computación de Alto Rendimiento y Científica
  • Introducción al Uso de Arquitecturas Escalables
  • Lilnux y SLURM
  • Unidad II: Programación Científica
  • Algo de Algoritmos
  • C/C++
  • Python
  • Unidad III: Modelos de Programación Paralela
  • OpenMP
  • MPI
  • PyCUDA, OpenACC y CuBLAS
    • Unidad IV: Algunas Herramientas Interesantas para el Cómputo Científico y Visualización
      • R
      • Hadoop
      • Paraview
      • Otros

    ASPECTOS METODOLOGICOS

    • Seminarios Teorico-Prácticos
    • Análisis de Casos
    • Seminarios Especializados con Invitados Internacionales (Opcional: Seminario Ommps, dictado por el Barcelona Supercomputing Center.

    VALUACIONES

    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.

    • Nota 1 (25%): Propuesta de Problema y Algoritmo Inicial.
    • Nota 2 (25%): Código de Solución con Memoria Compartida.
    • Nota 3 (25%): Código e Solución con Memoria Distribuída.
    • Nota 4 (25%): Código de Solución Hibrida o Acelerado.

    BIBLIOGRAFÍA Y FUENTES DE INFORMACION

    • The Fourth Paradigm: Data-Intensive Scientific Discovery in http://research.microsoft.com/en-us/collaboration/fourthparadigm/
    • Designing and Building Parallel Programs, by Ian Foster in http://www.mcs.anl.gov/~itf/dbpp/
    • 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/
    • 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)
    • Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)
    • Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)
    • Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (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 by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)
    • http://developer.nvidia.com/
    • http://grid.uis.edu.co
    • https://computing.llnl.gov/tutorials/parallel_comp/
    • http://www.sc-camp.org