Title | Computación paralela y distribuida |
---|---|
Author | Emmanuel Escobar |
Pages | 6 |
File Size | 70.5 KB |
File Type | |
Total Downloads | 171 |
Total Views | 1,026 |
Computación paralela y distribuida MSC-0302 Nombre de la asignatura: Computación paralela y distribuida Línea de trabajo: Tecnologías web Tiempo de dedicación del estudiante a las actividades de: DOC TIS TPS Horas totales Créditos 48 20 100 168 6 1. Historial de la asignatura. Fecha revisión / Obser...
Computación paralela y distribuida MSC-0302
Nombre de la asignatura:
Computación paralela y distribuida
Línea de trabajo:
Tecnologías web Tiempo de dedicación del estudiante a las actividades de:
1.
DOC
TIS
TPS
Horas totales
Créditos
48
20
100
168
6
Historial de la asignatura. Fecha revisión / actualización
Participantes
Observaciones, cambios o justificación
Febrero de 2011
Dr. Jesús Alberto Verduzco Ramírez M.C. Juan García Virgen Consejo de Posgrado del Departamento de Sistemas y Computación
2.
Pre-requisitos y correquisitos.
Después de acreditar Seminario de Investigación I y estar cursando el tercer semestre. 3.
Objetivo de la asignatura.
Aprender los conceptos básicos de arquitectura de computadoras paralelas, tendrá la capacidad de programar a nivel de hilos y de procesos en computadoras con arquitectura de múltiples núcleos, aprenderá a programar en un ambiente de cómputo distribuido. 4.
Aportación al perfil del graduado.
Las necesidades excesivas de procesamiento, almacenamiento y precisión de numerosas aplicaciones actuales, obligan a diseñar y desarrollar software eficiente y seguro para plataformas multiprocesador. Por otra parte, el auge de los procesadores multinúcleo y de las tecnologías de redes de ordenadores de alto desempeño
ha incrementado
la difusión del procesamiento
paralelo. Sin embargo, para utilizar los sistemas paralelos y/o distribuidos de forma eficiente es necesaria la técnica de la programación paralela. Esta asignatura abarca fundamentalmente las nociones básicas en la programación paralela y distribuida, centrándose en el desarrollo de software para arquitecturas como los clusters de ordenadores y los sistemas multinúcleo.
Los objetivos particulares son:
Dotar al alumno de un conocimiento general sobre programación paralela y
arquitecturas paralelas.
implementación de algoritmos paralelos.
problemas con objeto de mejorar las prestaciones.
Conocer distintos modelos de programación y técnicas para el diseño evaluación e
Dotar al alumno de cierta experiencia en la resolución paralela y distribuida de
Conocer los entornos de programación más difundidos para el desarrollo de sistemas paralelos.
5.
Contenido temático.
Unidad
Temas
Subtemas 1.1 Fundamentos de sistemas
de
cómputo
paralelo y distribuido. 1.2 Clasificación lógica del paralelismo 1.3 Clasificación 1
Revisión de tecnologías de programación paralela.
física
de
los
ordenadores
paralelos 1.4 Sistemas a memoria compartida 1.5 Sistemas a memoria distribuida 1.6 Sistemas multinucleo 1.7 Tecnologías de Cluster 1.8 Computación Grid 1.9 Computación en la nube 2.1. Modelos de paralelismo 2.2. Niveles de paralelismo. 2.3. Fases en la creación de programas paralelos 2.4. Paradigmas de la programación paralela
2
Diseño de programas paralelos y distribuidos.
2.5. Algoritmos paralelos y distribuidos 2.6. Complejidad y eficiencia de algoritmos paralelos 2.7. Herramientas para el monitoreo de ejecución de algoritmos paralelos. 2.8. Equilibrio de carga de tareas 3.1. Conceptos generales y terminología
3
Tecnologías de aplicaciones distribuidas.
3.2. Modelos de computación distribuida 3.3. Biblioteca para el desarrollo de aplicaciones distribuidas.
Unidad
Temas
Subtemas 3.4. Sincronización de tareas 3.5. Distribución de la carga 3.6. Aplicaciones distribuidas 3.7. Mecanismos de tolerancia a fallas en computación distribuida. 3.8. Migración de tareas entre nodos 4.1.
Introducción y motivación de OpenMP
4.2.
Conceptos generales y terminología habitual
4
4.3.
Regiones paralelas y regiones seriales
4.4.
Variables compartidas y variables privadas
Interfaz de programación de
4.5.
Distribución de la carga computacional
aplicaciones OpenMP y de pase
4.6.
Desarrollo de programas con OpenMP
de mensajes MPI.
4.7.
Modelo de comunicación basado en paso de mensajes
4.8.
Entorno MPI
4.9.
Principales directivas MPI
4.10. Desarrollo de programas con MPI 4.11. Pruebas de desempeño
6.
Metodología de desarrollo del curso.
Exposición de contenidos mediante presentación o explicación por parte del profesor. Sesión supervisada donde los estudiantes trabajan en grupo y reciben asistencia y guía
cuando sea necesaria.
conocimientos interdisciplinarios.
cooperativo para su conclusión.
(laboratorio, aulas informáticas).
evaluación del progreso del estudiante.
Situaciones en las que el alumno debe explorar y trabajar un problema práctico aplicando
Exposición de ejercicios asignados a un grupo de estudiantes que necesita trabajo
Actividades desarrolladas en espacios especiales con equipamiento especializado
Conjunto de pruebas escritas, orales, prácticas, proyectos, trabajos, etc. utilizados en la
Preparación de actividades para exponer o entregar en las clases prácticas. Estudio de contenidos relacionados con las clases teóricas: Incluye cualquier actividad de estudio que no se haya computado en el apartado anterior (estudiar exámenes, trabajo en biblioteca, lecturas complementarias, hacer problemas y ejercicios, etc.).
7.
Sugerencias de evaluación.
Examen escrito de respuesta abierta. Prueba cronometrada, efectuada bajo control, en la que el alumno construye su respuesta. Se le puede conceder o no el derecho a consultar
material de apoyo.
sencillos hasta trabajos amplios y complejos.
Trabajo académico. Desarrollo de un proyecto que puede ir desde trabajos breves y
Estudios de caso: Supone el análisis y la resolución de una situación planteada que presenta problemas de solución múltiple, a través de la reflexión y el diálogo para un
aprendizaje grupal, integrado y significativo. Lectura y análisis de artículos científicos relacionados con la temática de la computación móvil.
Porcentajes sugeridos:
8.
Prácticas
Proyectos
Tareas
Exámenes
Participación
20%
20%
10%
40%
10%
Bibliografía y software de apoyo.
Lecturas obligatorias: Unidad 1
Buyya, R. (1999).High Performance Cluster Computing:Architectures and Systems. Prentice Hall.
Kumar, V.;Grama, A.; Gupta, A.; Karypis G. (2003). Introduction to Parallel Computing. Benjamin/Cummings Publishing Company.
Glove, D. (2010). Multicore Application Programming. Addison Wesley. Unidad 2
Buyya, R. (1999). High Performance Cluster Computing: Programming and Applications. Prentice Hall.
Foster, I. (1995). Designing and Building Parallel Programs. Addison-Wesley Publishing Company.
Wadleigh, K.; Crawford, I. (2000).Software optimization for High Performance Computing. Prentice Hall PTR.
Power, H. (1999). Algorithms & Applications in Parallel Computing. WITPress Unidad 3
Quinn, M.J. (2003). Parallel Programming in C with MPI and OpenMP. McGraw-Hill.
Kumar, V.;Grama, A.; Gupta, A.; Karypis G. (2003). Introduction to Parallel Computing. Benjamin/Cummings Publishing Company. Unidad 4
Chapman, B.; Jost, G. (2007). Using OpenMP, Portable Shared Memory Parallel Programming. Scientific and Engineering Computation Series.
Akhter, S.; Robert, J. (2003). Multi-Core Programming Increasing Performance Through Software Multithreading. Intel Press Bibliografía Complementaria:
Distributed and Paralled System, Zoltán Juhász F. Almeida; D. Gimenez, Mantas, J.
(2008). Introduccion a la Programacion Paralela.
Paraninfo Cengage Learning.
Chandra, R.; Dagum, L.; Kohr, D.; Maydan, D. (2001). Parallel Programming in OpenMP. Academic Press. USA.
Kumar, V.;Grama, A.; Gupta, A.; Karypis G. (2003). Introduction to Parallel Computing. Benjamin/Cummings Publishing Company.
Wilkinson, B., Allen, M. (2005). Parallel Programming. Techniques and applications using networked workstations and parallel computers. Vol II. Prentice-Hall.
C. Xavier, S.S. Iyengar (1998). Introduction to Parallel Algorithm. John Wiley & sons, inc. USA.
Páginas web:
Página oficial de MPICH: http://www.mcs.anl.gov/research/projects/mpi/mpich1/index.htm Página oficial LAM-MPI: http://www.lam-mpi.org/ http://www.top500.org
http://www.mpi-forum.org/ http://www.open-mpi.org/ http://www.openmp.org/
http://www.supercomputingonline.com/ http://www.ncsa.illinois.edu/
Software de apoyo:
Sistema operativo Linux
Lenguaje de programación Ansi C, C++
Librería de paso de mensajes MPI
Librería de memoria compartida OpenMP 9.
Actividades propuestas. Se sugiere que las prácticas propuestas sean realizadas por equipos de tres personas para estar en concordancia con la finalidad de fomentar la discusión de ideas que plantea el curso y fomentar el trabajo colaborativo. En este sentido, se proponen las siguientes prácticas por unidad: Unidad
1.- Revisión de tecnologías de programación paralela.
2.- Diseño de programas paralelos y distribuidos.
Actividad Proporcionar al estudiante el panorama general del
supercómputo y sus aplicaciones.
desempeño de procesadores.
procesadores multinúcleo.
3.- Tecnologías de aplicaciones distribuidas.
4.- Interfaz de programación de aplicaciones OpenMP y de pase
Ejecución
de
benchmarks
para
medir
Desarrollo de aplicaciones multihilos para
Instalación
y
configuración
de
un
el
los
cluster
de
computadoras Determinación
de
la
complejidad
de
algoritmos
paralelos y distribuidos Determinación de la eficiencia. Experimentación
en
ambientes Grid con
Globus
Toolkit y gLite Experimentación
con
el
planificador
distribuido
Condor. Desarrollo de aplicaciones numéricas y para la manipulación de datos
de mensajes MPI.
10. Nombre y firma del catedrático responsable....