Difference between revisions of "Introducción a la programación paralela"
Line 2: | Line 2: | ||
<div class="thumbnail img-thumbnail">http://wiki.sc3.uis.edu.co/images/a/a8/Logo_sc33.png</div> | <div class="thumbnail img-thumbnail">http://wiki.sc3.uis.edu.co/images/a/a8/Logo_sc33.png</div> | ||
− | <p><div class="btn btn-primary"><i class="fa fa-long-arrow-left"></i> [[ | + | <p><div class="btn btn-primary"><i class="fa fa-long-arrow-left"></i> [[Cursos]]</div></p> |
<div class="column clearfix"> | <div class="column clearfix"> | ||
<div class="col-md-14"> | <div class="col-md-14"> |
Revision as of 19:19, 13 April 2015
Arquitectura de Computadores - Código 22966
Profesor
Carlos Jaime Barrios Hernandez, PhD. - (cbarrios@uis.edu.co)
Auxiliatura Técnica-Académica : John Anderson Garcia Henao, Ing. (john.garcia1@correo.uis.edu.co)
PRESENTACION
Contenido
PRESENTACIÓN
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.
PROGRAMA DEL CURSO
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 Compartida, Introducción al a programación de maquinas masivamente paralelas y sistemas híbridos)
5. Lineamientos para el desarrollo de Aplicaciones Paralelas
6. Evaluación de Desempeño
7. Direcciones y Temas Candentes en Programación Paralela
MATERIAL DEL CURSO 2013- 2014
1. Introducción
2. Arquitecturas Paralelas
3. Concurrencia y Paralelismo
4. Modelo de Programación de Memoria Compartida: Diapositivas ; Códigos: [] ; [] ; [] . Enlace Recomendado: http://openmp.org/wp
5. Modelo de Programación de Memoria Distribuída: Diapositivas ; Códigos: 1. Enlace Recomendado:http://www.open-mpi.org
METODOLOGÍA
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: http://eventos.redclara.net/indico/evento/ompss)
EVALUACIÓN
1. (30%) Examen de Conocimientos Único (20 de Septiembre)
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.
2. (70%) Trabajo de Aplicación (Presentación Final 13 de Septiembre)
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:
- Calidad del Análisis y Diseño de la Solución
- Eficiencia y Rendimiento de la Solución Propuesta
- Calidad del Proyecto (Estructura, Documentación, Coherencia)
- Evaluación de Rendimiento (Identificación de Limitaciones)
- Organización y Presentación de los informes previos y de la presentación final.
Los pesos de cada una de las entregas son:
- Informe Inicial (20/70)
- Informe de Avance (20/70)
- Informe y Presentación Final (30/70)
Los trabajos se realizarán de manera individual y las entregas y seguimiento se hará de la siguiente manera:
1.Entrega de los temas (Semana del 3 al 8 de Junio: Extendido para el 14 de Junio)
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.
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.
4. Informe y Presentación Final (13 de Septiembre)
- 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/
-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
INFORMACIÓN IMPORTANTE
Supercomputación y Cómputo Científico UIS : CENTIC 4to Piso
Teléfonos 6344000 ext 1251 – 2855
http://sc3.uis.edu.co
PRESENTACIONES Y MATERIAL DEL CURSO 2012
Diapositivas de las Sesiones
Sesión No.1:
- Archivo:PPI.pdf Introduction to Parallel Programming (And Parallel Systems).
- Archivo:E-Ciencia.pdf Programación Paralela y Programación Científica desde la E-Ciencia y El Cómputo Avanzado.
Sesión No.2:
- Archivo:PP-Archi.pdf Scalable Systems and Architectures.
- Archivo:PP-Concurrency.pdf Concurrency and Parallel Programming.
Sesión No.3:
- Archivo:Scheduling.pdf Management, Scheduling and Deployment in HPC.
Sesión No.4:
- Archivo:MemCompOpenMP.pdf Introducción a la Programación de Memoria Compartida con OpenMP.
Sesión No. 5:
- Archivo:SharedMemMPI.pdf Introducción a la Programación de Memoria Distribuida con MPI.
Sesión No. 6:
- Archivo:CUDA.pdf Introducción a la Programación con CUDA
- Archivo:Gpu-programming.pdf GPU Programming with Nvidia CUDA.
Sesión No. 7:
- Archivo:EvalPerf.pdf Evaluación de Rendimiento - Una aproximación de base.
Sesión No. 8:
- Archivo:HotTopics.pdf Direcciones y Temas Candentes.
Lecturas Sugeridas
De The Fourth Paradigm: Data Intensive Scientific Discovery:
- Jim Gray on eScience: A Transformed Scientific Method. (Tony Hey, Stewart Tansley, and Kristin Tolle)
- Parallelism and The Cloud. (Dennis Gannon, Dan Reed)
- Multicore Computing and Scientific Discovery. (James Larus, Dennis Gannon)