Computación paralela y distribuida PDF

Title Computación paralela y distribuida
Author Emmanuel Escobar
Pages 6
File Size 70.5 KB
File Type PDF
Total Downloads 171
Total Views 1,026

Summary

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...


Description

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....


Similar Free PDFs