Difference between revisions of "Introducción a la programación paralela"

From Supercomputación y Cálculo Científico UIS
Line 40: Line 40:
 
         </div>
 
         </div>
 
         <div class="panel-body">
 
         <div class="panel-body">
             <p></p>
+
             <ol>
 +
                <li>Introducción a la Programación Paralela</li>
 +
                <li>Introducción a las Arquitecturas y Sistemas Escalables</li>
 +
                <li>Algoritmos Concurrentes y Paralelos</li>
 +
                <li>Modelos de Programación Paralela (Introducción a la programación de Memoria Distribuida, Introducción a la programación de Memoria</li>
 +
                <li>Compartida, Introducción al a programación de maquinas masivamente paralelas y sistemas híbridos)</li>
 +
                <li>Lineamientos para el desarrollo de Aplicaciones Paralelas</li>
 +
                <li>Evaluación de Desempeño</li>
 +
                <li>Direcciones y Temas Candentes en Programación Paralela</li>
 +
            </ol>
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 
</div>
 
</div>
  
 +
<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">
 +
            <ol>
 +
                <li>Sesiones Teórico-Prácticas</li>
 +
                <li>Lecturas y Discusiones de Artículos (La mayoría en Inglés)</li>
 +
                <li>Observación y Análisis de Aplicaciones y Propuestas</li>
 +
                <li>[http://eventos.redclara.net/indico/evento/ompss Curso Intensivo Propuesto (Opcional: 1 al 5 de Julio durante la semana de receso con instructores del Barcelona Supercomputing Center)]</li>
 +
            </ol> 
 +
        </div>
 +
    </div>
 +
</div>
  
<div class="column clearfix">
+
<div class="col-md-14">
        <div class="col-md-14">
+
    <div class="panel panel-darker-white-border">  
              <div class="panel well well-neutra">
+
        <div class="panel-heading">
                              <div class="col-md-14">
+
            <h3 class="panel-title">MATERIAL DEL CURSO</h3>
                                    <div class="panel well well-neutra">
+
        </div>
----
+
        <div class="panel-body">
'''''PRESENTACIÓN'''''
+
<ul>
----
+
<li>Introducción</li>
 +
<li>Arquitecturas Paralelas</li>
 +
<li>Concurrencia y Paralelismo</li>
 +
<li>Modelo de Programacion de Memoria Compartida</li>
 +
<ol>
 +
<li>Presentación</li>
 +
<li>Códigos</li>
 +
</ol>
 +
<li>Modelo de Programación de Memoria Distribuída [http://www.open-mpi.orgOpen - MPI]</li>
 +
<ol>
 +
<li>Presentación</li>
 +
<li>Códigos</li>
 +
</ol>
 +
</ul>
 +
       
 +
        </div>
 +
    </div>
 +
</div>
  
 +
<div class="col-md-14">
 +
    <div class="panel panel-darker-white">
 +
        <div class="panel-heading">
 +
            <h3 class="panel-title">EVALUACIONES</h3>
 +
        </div>
 +
        <div class="panel-body">
  
----
 
'''''PROGRAMA DEL CURSO'''''
 
----
 
1. Introducción a la Programación Paralela
 
<br>
 
2. Introducción a las Arquitecturas y Sistemas Escalables
 
<br>
 
3. Algoritmos Concurrentes y Paralelos
 
<br>
 
4. Modelos de Programación Paralela (Introducción a la programación de Memoria Distribuida, Introducción a la programación de Memoria Compartida, Introducción al a programación de maquinas masivamente paralelas y sistemas híbridos)
 
<br>
 
5. Lineamientos para el desarrollo de Aplicaciones Paralelas
 
<br>
 
6. Evaluación de Desempeño
 
<br>
 
7. Direcciones y Temas Candentes en Programación Paralela
 
  
----
+
            <div class="col-md-6">
'''''MATERIAL DEL CURSO 2013- 2014'''''
+
                <div class="panel panel-midnight-border">
----
+
                    <div class="panel-heading">
1. Introducción
+
                        <h3 class="panel-title">Evaluación 1</h3>
<br>
+
                    </div>
2. Arquitecturas Paralelas
 
<br>
 
3. Concurrencia y Paralelismo
 
<br>
 
4. Modelo de Programación de Memoria Compartida:  [[Media:MOpenMP.pdf ‎|Diapositivas]] ; Códigos: []  ; [] ; [] . Enlace Recomendado: http://openmp.org/wp
 
<br>
 
5. Modelo de Programación de Memoria Distribuída:  [[Media:MPI14.pdf |Diapositivas]] ; Códigos: 1. Enlace Recomendado:http://www.open-mpi.org
 
  
----
+
                    <div class="panel-body">                       
'''''METODOLOGÍA'''''
+
                        <p></p>
----
+
                    </div>
1. Sesiones Teórico-Prácticas
+
                    <div class="panel-footer">Evaluación 1</div>
<br>
+
                </div>
2. Lecturas y Discusiones de Artículos (La mayoría en Inglés).
+
            </div>
<br>
 
3. Observación y Análisis de Aplicaciones y Propuestas.
 
<br>
 
4. Curso Intensivo Propuesto (Opcional: 1 al 5 de Julio durante la semana de receso con instructores del Barcelona Supercomputing Center: http://eventos.redclara.net/indico/evento/ompss)
 
  
----
+
            <div class="col-md-6">
'''''EVALUACIÓN'''''
+
                <div class="panel panel-midnight-border">
----
+
                    <div class="panel-heading">
'''1. (30%) Examen de Conocimientos Único (20 de Septiembre)'''
+
                        <h3 class="panel-title">Evaluación 2</h3>
<br>
+
                    </div>
Este examen de conocimientos es un análisis de caso, se realizará en el tiempo de la clase de manera individual. Incluye un punto de los trabajos presentados por sus compañeros.
 
<br>
 
  
'''2. (70%) Trabajo de Aplicación (Presentación Final 13 de Septiembre)'''
+
                    <div class="panel-body">
<br>
+
                        <p></p>
El trabajo de aplicación, es un trabajo que se realizará durante todo el semestre y que implica dos entregas previas, un seguimiento del trabajo realizado y una entrega final, observando unos parámetros de evaluación que son:
 
  
'''Criterios:'''
+
                    </div>
 +
                    <div class="panel-footer">Evaluación 2</div>
 +
                </div>
 +
            </div>
  
#Calidad del Análisis y Diseño de la Solución
+
            <div class="col-md-12">
#Eficiencia y Rendimiento de la Solución Propuesta
+
                <div class="panel panel-midnight-border">
#Calidad del Proyecto (Estructura, Documentación, Coherencia)
+
                    <div class="panel-heading">
#Evaluación de Rendimiento (Identificación de Limitaciones)
+
                        <h3 class="panel-title">Evaluación 3</h3>
#Organización y Presentación de los informes previos y de la presentación final.
+
                    </div>
  
 +
                    <div class="panel-body">
 +
                        <p></p>                     
  
Los pesos de cada una de las entregas son:
+
                    </div>
 +
                    <div class="panel-footer">Evaluación 3</div>
 +
                </div>
 +
            </div>
 +
       
 +
        </div>
 +
        <div class="panel-footer">Evaluaciones</div>
 +
    </div>
 +
</div>
  
*'''Informe Inicial (20/70)'''
+
<div class="col-md-14">
*'''Informe de Avance (20/70)'''
+
    <div class="panel panel-darker-white-border">  
*'''Informe y Presentación Final (30/70)'''
+
        <div class="panel-heading">
<br>
+
            <h3 class="panel-title">BIBLIOGRAFÍA Y FUENTES DE INFORMACION</h3>
 
+
        </div>
Los trabajos se realizarán de manera individual y las entregas y seguimiento se hará de la siguiente manera:
+
        <div class="panel-body">
 
+
            <p></p>          
 
 
'''1.Entrega de los temas (Semana del 3 al 8 de Junio: Extendido para el 14 de Junio)'''
 
<br>
 
'''2. Entrega del Primer Informe que implica el análisis y diseño de la solución. (Semana del 25 al 29 de Junio)'''
 
*Ese informe deberá realizarse de manera escrita a manera de resumen extendido en un documento en pdf, de máximo 6 paginas en columna sencilla, tamaño de la letra 12ppt.
 
*Discusión y presentación en el tablero en una sesión privada.
 
<br>
 
'''3. Informe de Avance (16 de Agosto)'''
 
 
 
*Este informe de avance deberá exponerse únicamente, usando máximo 5 diapositivas y 10 minutos de presentación al profesor. Deberá estar planteado el algoritmo final de la solución, pseudocódigo, tipo de lenguaje a utilizar, estrategia de implementación y aspectos técnicos esperados. 
 
<br>
 
'''4. Informe y Presentación Final (13 de Septiembre)'''
 
<br>
 
*Se presentará en un documento escrito, tipo artículo, en español, de máximo 10 páginas en un documento pdf, tipo de fuente Arial y tamaño de letra 12ppt, en columna sencilla. El documento se enviará al correo que el profesor indique el día: 9 de septiembre.
 
*Se realizará una presentación de 10 minutos incluyendo un demo del prototipo o solución realizada.
 
*Tanto el código fuente como las instrucciones de compilación y ejecución deberán enviarse al profesor previamente. (9 de Septiembre)
 
 
 
----
 
'''''BIBLIOGRAFÍA Y FUENTES DE INFORMACIÓN'''''
 
----
 
-The Fourth Paradigm: Data-Intensive Scientific Discovery in http://research.microsoft.com/en-us/collaboration/fourthparadigm/
 
<br>
 
-Designing and Building Parallel Programs, by Ian Foster in http://www.mcs.anl.gov/~itf/dbpp/
 
<br>
 
-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/
 
<br>
 
-The Art of Concurrency “A thread Monkey’s Guide to Writing Parallel Applications”, by Clay Breshears (Ed. O Reilly, 2009)
 
<br>
 
-Parallel Scientific Computing in C++ and MPI « A Seamless Approach to Parallel Algorithms and Their Implementation », Karniadakis and Kirby II (Cambridge Press)
 
<br>
 
-Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)
 
<br>
 
-Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)
 
<br>
 
-Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (Nvidia/Morgan Kaufmann)
 
<br>
 
-Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)
 
<br>
 
-Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)
 
<br>
 
-CUDA by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)
 
<br>
 
-http://developer.nvidia.com/
 
<br>
 
-http://grid.uis.edu.co
 
<br>
 
-https://computing.llnl.gov/tutorials/parallel_comp/
 
<br>
 
-http://www.sc-camp.org
 
 
 
----
 
'''''INFORMACIÓN IMPORTANTE'''''
 
----
 
Supercomputación y Cómputo Científico UIS : CENTIC 4to Piso
 
<br>
 
Teléfonos 6344000 ext 1251 – 2855
 
<br>
 
http://sc3.uis.edu.co
 
 
 
----
 
'''''PRESENTACIONES Y MATERIAL DEL CURSO 2012'''''
 
----
 
<u>'''Diapositivas de las Sesiones'''</u>
 
 
 
'''Sesión No.1:'''
 
<br>
 
*[[Media:PPI.pdf|Archivo:PPI.pdf]] '''''Introduction to Parallel Programming (And Parallel Systems).'''''
 
*[[Media:E-Ciencia.pdf|Archivo:E-Ciencia.pdf]] '''''Programación Paralela y Programación Científica desde la E-Ciencia y El Cómputo Avanzado.'''''
 
<br>
 
'''Sesión No.2:'''
 
<br>
 
*[[Media:PP-Archi.pdf|Archivo:PP-Archi.pdf]] '''''Scalable Systems and Architectures.'''''
 
*[[Media:PP-Concurrency.pdf|Archivo:PP-Concurrency.pdf]] '''''Concurrency and Parallel Programming.'''''
 
<br>
 
'''Sesión No.3:'''
 
<br>
 
*[[Media:Scheduling.pdf|Archivo:Scheduling.pdf]] '''''Management, Scheduling and Deployment in HPC.'''''
 
<br>
 
'''Sesión No.4:'''
 
<br>
 
*[[Media:MemCompOpenMP.pdf|Archivo:MemCompOpenMP.pdf]] '''''Introducción a la Programación de Memoria Compartida con OpenMP.'''''
 
<br>
 
'''Sesión No. 5:'''
 
<br>
 
*[[Media:SharedMemMPI.pdf|Archivo:SharedMemMPI.pdf]] '''''Introducción a la Programación de Memoria Distribuida con MPI.'''''
 
<br>
 
'''Sesión No. 6:'''
 
<br>
 
*[[Media:CUDA.pdf|Archivo:CUDA.pdf]] '''''Introducción a la Programación con CUDA
 
*[[Media:Gpu-programming.pdf|Archivo:Gpu-programming.pdf]] '''''GPU Programming with Nvidia CUDA.'''''
 
<br>
 
'''Sesión No. 7:'''
 
<br>
 
*[[Media:EvalPerf.pdf|Archivo:EvalPerf.pdf]] '''''Evaluación de Rendimiento - Una aproximación de base.'''''
 
<br>
 
'''Sesión No. 8:'''
 
<br>
 
*[[Media:HotTopics.pdf|Archivo:HotTopics.pdf]] '''''Direcciones y Temas Candentes.'''''
 
<br>
 
<u>'''Lecturas Sugeridas'''</u>
 
<br>
 
De The Fourth Paradigm: Data Intensive Scientific Discovery:<br>
 
 
 
*[http://research.microsoft.com/en-us/collaboration/fourthparadigm/4th_paradigm_book_jim_gray_transcript.pdf Jim Gray on eScience: A Transformed Scientific Method.] (Tony Hey, Stewart Tansley, and Kristin Tolle)<br>
 
*[http://research.microsoft.com/en-us/collaboration/fourthparadigm/4th_paradigm_book_part3_gannon_reed.pdf Parallelism and The Cloud.] (Dennis Gannon, Dan Reed)<br>
 
*[http://research.microsoft.com/en-us/collaboration/fourthparadigm/4th_paradigm_book_part3_larus_gannon.pdf Multicore Computing and Scientific Discovery.] (James Larus, Dennis Gannon)
 
 
 
  </div>
 
                              </div>
 
                    </div>
 
 
         </div>
 
         </div>
 
     </div>
 
     </div>
 +
</div>

Revision as of 20:53, 16 April 2015


Logo_sc33.png

Arquitectura de Computadores - Código 22966

Profesor

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

PRESENTACION

La computación paralela más que una tendencia de programación es una exigencia industrial y real. Los sistemas paralelos se encuentran listos para ser explotados, desde dispositivos portátiles y embebidos hasta supercomputadoras.

Este curso introductorio dirigido a estudiantes de ingeniería de sistemas, es un acercamiento a conceptos básicos y estrategias de programación paralela. Trata desde sistemas y arquitecturas escalables, hasta ambientes de programación paralela, haciendo un fuerte énfasis en el análisis y diseño de algoritmos paralelos concurrentes y en la evaluación de arquitecturas para soluciones científicas e industriales.

Contenido

  1. Introducción a la Programación Paralela
  2. Introducción a las Arquitecturas y Sistemas Escalables
  3. Algoritmos Concurrentes y Paralelos
  4. Modelos de Programación Paralela (Introducción a la programación de Memoria Distribuida, Introducción a la programación de Memoria
  5. Compartida, Introducción al a programación de maquinas masivamente paralelas y sistemas híbridos)
  6. Lineamientos para el desarrollo de Aplicaciones Paralelas
  7. Evaluación de Desempeño
  8. Direcciones y Temas Candentes en Programación Paralela

ASPECTOS METODOLOGICOS

  1. Sesiones Teórico-Prácticas
  2. Lecturas y Discusiones de Artículos (La mayoría en Inglés)
  3. Observación y Análisis de Aplicaciones y Propuestas
  4. Curso Intensivo Propuesto (Opcional: 1 al 5 de Julio durante la semana de receso con instructores del Barcelona Supercomputing Center)

MATERIAL DEL CURSO

  • Introducción
  • Arquitecturas Paralelas
  • Concurrencia y Paralelismo
  • Modelo de Programacion de Memoria Compartida
    1. Presentación
    2. Códigos
  • Modelo de Programación de Memoria Distribuída - MPI
    1. Presentación
    2. Códigos

EVALUACIONES


Evaluación 1

Evaluación 2

Evaluación 3

BIBLIOGRAFÍA Y FUENTES DE INFORMACION