1. Universidad Autónoma del Estado de México
Secretaria de Docencia
Dirección de Estudios Profesionales
Coordinación de Desarrollo Curricular
Programa de Estudios por Competencias
Programación Paralela y Distribuida
I. IDENTIFICACIÓN DEL CURSO
ORGANISMO ACADÉMICO: Facultad de Ingeniería de la Universidad Autónoma del Estado de México (UAEMex)
Programa Educativo: Ingeniería en Computación Área de docencia: Programación e ingeniería de software
Programa elaborado por: Ing. Luis Enrique Fecha de elaboración :
Aprobación por los H.H. Consejos
Fecha: Ledezma Fuentes, Ing. Elfego Gutiérrez 21-Febrero-2006
Académico y de Gobierno 24 FEBRERO 2006 Ocampo
Total Tipo de Carácter de
Horas de Núcleo de
Clave Horas de teoría de Créditos Unidad de la Unidad de Modalidad
práctica formación
horas Aprendizaje Aprendizaje
L41057 2 2.5 4.5 8 Curso y Obligatoria Sustantivo Presencial
laboratorio
Prerrequisitos Unidad de Aprendizaje Unidad de Aprendizaje
( Conocimientos Previos): Programación Avanzada, Estructuras de Antecedente Consecuente
Datos, Lenguaje C, Java, Análisis y Diseño de Algoritmos Ninguna Ninguna
Programas educativos en los que se imparte: Licenciatura en Computación (Facultad de Ingeniería, UAP Atlacomulco, Ecatepec,
Texcoco, Valle de Chalco, Valle de México, Valle de Teotihuacan y Zumpango)
2. Universidad Autónoma del Estado de México
Secretaria de Docencia
Dirección de Estudios Profesionales
Coordinación de Desarrollo Curricular
II. PRESENTACIÓN
De manera general, la computación en paralelo comprende arquitecturas de computadoras paralelas, algoritmos paralelos y
programación en paralelo.
La presente unidad de aprendizaje cubre parte de los requisitos AC9 y AC20, así como la totalidad de los requisitos AC15, AC16, AC17,
AC22 y AC23 especificados en el manual del CONAIC sobre criterios de acreditación de Programas de Informática y Computación.
La estructura planteada consta de seis unidades de competencia. La primera estudia las bases del cómputo paralelo en general, como
necesidades de máquinas de alto rendimiento, conceptos generales, taxonómicas de arquitecturas (SIMD, MIMD, SISD, MISD), las
unidades funcionales del pipeline, topologías de redes de conexión y mediciones de rendimiento. La segunda se centra en el estudio de
los sistemas de arquitecturas y modelos de computadoras en paralelo (SMP, MPP, COW, DSM), las estrategias de acceso a memoria.
Una tercera unidad de competencia explica lo relativo a modelos y diseños de algoritmos computacionales en paralelo.La cuarta se
enfoca al software de soporte y modelos de programación en paralelo, la quinta a sistemas y algoritmos distribuidos y la sexta a
desarrollo e implementación de programas de en paralelo haciendo uso de las técnicas vistas.
Se recomienda que el alumno practique su programación ya sea en lenguaje C ó en java.
La evaluación debe considerar tanto la parte teórica como la práctica, y se marcan como conocimientos mínimos indispensables los
siguientes: arquitectura paralela de computadoras, estrategias de diseño de algoritmos paralelos, estrategia de acceso en memoria,
resolución de un problema haciendo uso de programación en paralelo, entendiéndose como mínimos indispensables aquellos que son
condición sin que son para poder aprobar la asignatura. Aún cuando el alumno superase por puntuación el límite de aprobado no se
concederá el mismo si no demuestra pericia en los tópicos marcados como mínimos indispensables.
3. Universidad Autónoma del Estado de México
Secretaria de Docencia
Dirección de Estudios Profesionales
Coordinación de Desarrollo Curricular
III. LINEAMIENTOS DE LA UNIDAD DE APRENDIZAJE
DOCENTE DISCENTE
- Realizar el encuadre del curso - Realizar las evaluaciones que se establezcan.
- Asistir puntualmente a las clases o justificar la ausencia - Mantener unas pautas de comportamiento socialmente
por adelantado (asistencia a conferencias, etc…) aceptables cuando se encuentre en clases y laboratorio.
- Asesorar a los alumnos y resolver sus dudas,
preferiblemente en horario marcado de tutoría. - Cuando se requiera, entregar a tiempo y forma los
- Evaluar la unidad de aprendizaje trabajos requeridos.
- Evaluar y Calificar a los alumnos.
- Preparar el material didáctico para las clases y
prácticas.
IV. PROPÓSITO DE LA UNIDAD DE APRENDIZAJE
Encuadrado en el Plan F2 por Competencias de la UAEMex, presentar al alumno con la tecnología de vanguardia en el diseño de
algoritmos y programación en paralelo haciendo uso de un mínimo de 4 computadoras con vistas a capacitar al estudiante a su egreso en
el análisis, diseño, desarrollo y construcción de sistemas de resolución de problemas de gran envergadura en donde se requiera el uso
de arquitecturas paralelas o sistemas distribuidos.
4. Universidad Autónoma del Estado de México
Secretaria de Docencia
Dirección de Estudios Profesionales
Coordinación de Desarrollo Curricular
V. COMPETENCIAS GENÉRICAS
- Analizar y diseñar algoritmos y programas haciendo uso de técnicas de programación en paralelo aplicables a la tecnología
computacional.
- Analizar y diseñar proyectos donde se requiera programación en paralelo y distribuida
- Comunicarse con expertos de otras áreas
- Utilizar eficazmente computadoras con 2 o más procesadores
- Analizar soluciones del entorno y problemas propios de ser tratados mediante sistemas computacionales paralelos y distribuidos
- Proponer soluciones eficaces y eficientes
- Crear nuevas ideas para la solución de problemas
- Aplicar los conocimientos en la práctica
- Conocer la temática básica de la profesión que desempeña en la práctica
- Especificar arquitecturas de computadoras de arquitectura paralelas o sistemas distribuidos.
- Diseñar, desarrollar y dar mantenimiento a sistemas paralelos o distribuidos
- Conocer la temática básica sobre programación paralela y distribuida.
Algunas de estas competencias se adquieren en conjunto al estudiar el resto de unidades de aprendizaje bajo el área de competencia de
Programación en Paralelo y Distribuida.
VI. ÁMBITOS DE DESEMPEÑO PROFESIONAL
5. Universidad Autónoma del Estado de México
Secretaria de Docencia
Dirección de Estudios Profesionales
Coordinación de Desarrollo Curricular
- Analista y diseñador de programas de cómputo y sistemas de resolución a problemas de excesiva carga computacional mediante
técnicas de programación paralela y distribuida.
- Investigación de nuevas técnicas de programación paralelizada
- Docencia a cualquier nivel de aprendizaje escolarizado
VII. ESCENARIOS DE APRENDIZAJE
Aula, Sala de Cómputo (MPI, PVM, Java, C)
VIII. NATURALEZA DE LA COMPETENCIA
(Inicial, entrenamiento, complejidad creciente, ámbito diferenciado)
Entrenamiento y complejidad creciente
6. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
IX. ESTRUCTURA DE LA UNIDAD DE APRENDIZAJE
1. Dar a conocer las bases del cómputo paralelo en general.
2. Dar a conocer las distintas formas de conectar procesadores con procesadores, procesadores con memoria (taxonomías), así
como las medidas de desempeño.
3. Comprender y aplicar técnicas de diseño de programas en paralelo y distribuidos mediante el modelo PRAM.
4. Comprender y aplicar técnicas de diseño de programas en paralelo y distribuidos mediante el modelo de paso de mensajes.
5. Comprender y aplicar técnicas de diseño de algoritmos paralelos y distribuidos.
X.- SECUENCIA DIDÁCTICA
1
2
3 4 5
7. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
XI. DESARROLLO DE LA UNIDAD DE APRENDIZAJE
ELEMENTOS DE COMPETENCIA
UNIDAD DE COMPETENCIA I
Conocimientos Habilidades Actitudes/ Valores
Conceptos generales. - Comprender qué es -Cumplir con las actividades asignadas
Dar a conocer las bases del Constitución de una el paralelismo, cómo - Respetar al docente y a los
cómputo paralelo en general computadora paralela. se logra y compañeros mediante un
Modelos de aplicaciones comportamiento socialmente aceptable
arquitectura (MIMD,
SIMD, SISD, MISD),
Cómputo Paralelo,
Programación en
Paralelo, Memoria
Compartida y
Distribuida, Redes de
Interconexión,
Paradigmas de la
Programación en
paralelo.
ESTRATEGIAS DIDÁCTICAS: RECURSOS REQUERIDOS TIEMPO DESTINADO
Presentaciones acompañadas de apuntes Libros de texto, Apuntes del docente, 8 horas
preparados por el profesor Pizarrón, Proyector (de cañon o
transparencias)
CRITERIOS DE DESEMPEÑO I EVIDENCIAS
DESEMPEÑO PRODUCTOS
8. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
Evaluación teórica de comprensión y Trabajos de investigación y examen escrito
Resolución de problemas entendimiento
ELEMENTOS DE COMPETENCIA
UNIDAD DE COMPETENCIA II
Conocimientos Habilidades Actitudes/ Valores
Dar a conocer las distintas formas Sistemas de - Comprender las -Cumplir con las actividades asignadas
de conectar procesadores con arquitectura (SMP, diferentes -Desarrollar la capacidad analítica del
procesadores, procesadores con MPP, COW, DSM). arquitecturas funcionamiento de una computadora
memoria (taxonomías), así como Modelos de acceso a paralelas con arquitectura en paralelo
las medidas de desempeño. memoria (UMA, - Analizar sistemas de - Respetar al docente y a los
NUMA, COMA, acceso a memoria compañeros mediante un
NORMA). avanzados para una comportamiento socialmente aceptable
Ley de Amdahl, Ley de computadora
Gustafson paralela.
- Comprender distintas
estrategias de
acceso a memoria
para lectura y
escritura.
- Medir el rendimiento
de máquinas en
paralelo
dependiendo de la
parte secuencial de
un programa.
ESTRATEGIAS DIDÁCTICAS: RECURSOS REQUERIDOS TIEMPO DESTINADO
Presentaciones acompañadas de apuntes Libros de texto, Apuntes del docente, 9 horas
9. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
preparados por el profesor Pizarrón, Proyector (de cañon o
transparencias), Laboratorio de
computadoras.
CRITERIOS DE DESEMPEÑO II EVIDENCIAS
DESEMPEÑO PRODUCTOS
Evaluación de arquitecturas paralelas, Trabajos de investigación
Resolución de problemas accesos de memoria y evaluación de Examen escrito
sistemas paralelos.
ELEMENTOS DE COMPETENCIA
UNIDAD DE COMPETENCIA III
Conocimientos Habilidades Actitudes/ Valores
Comprender y aplicar técnicas de Modelo PRAM y sus Tener la capacidad para - Respetar al docente y a los
diseño de programas en paralelo accesos a memoria: elaborar programas compañeros mediante un
y distribuirlos mediante el modelo EREW, CREW, concernientes utlizando comportamiento socialmente aceptable
PRAM. ERCW, CRCW Threads en Java
ESTRATEGIAS DIDÁCTICAS: RECURSOS REQUERIDOS TIEMPO DESTINADO
Presentaciones acompañadas de apuntes Libros de texto, Apuntes del docente, 18 horas
preparados por el profesor. Pizarrón, Proyector (de cañon o
Prácticas en sala de cómputo con transparencias). Computadora.
lenguaje Java
CRITERIOS DE DESEMPEÑO III EVIDENCIAS
DESEMPEÑO PRODUCTOS
Resolución de problemas Desarrollo de programas haciendo uso de Reporte de funcionamiento de los
programación en paralelo. programas vistos en clase, con la siguiente
10. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
estructura
1.- Introducción
2.- Planteamiento del problema
3.- Esquema de solución y recursos
utilizados
4.- Algoritmos
5.- Pruebas realizadas
6.- Código fuente
7.- Conclusiones
Practicas de laboratorio
ELEMENTOS DE COMPETENCIA
UNIDAD DE COMPETENCIA IV
Conocimientos Habilidades Actitudes/ Valores
Comprender y aplicar técnicas de - Modelos de - Tener la capacidad - Respetar al docente y a los
diseño de programas en paralelo programación para armar un cluster compañeros mediante un
y distribuidos mediante la en paralelo, de 4 computadoras comportamiento socialmente aceptable
programación de paso de paso de como mínimo
mensajes mensajes. utilizando el Sistema
- Programación Operativo Linux,
de paso de Lenguaje C y las
mensajes (MPI, bibliotecas PVM y/o
PVM) MPI.
- Tener la capacidad
para elaborar
programas
concurrentes
11. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
utilizando PVM y/o
MPI
ESTRATEGIAS DIDÁCTICAS: RECURSOS REQUERIDOS TIEMPO DESTINADO
Presentaciones acompañadas de apuntes Libros de texto, Apuntes del docente, 18 horas
preparados por el profesor. Prácticas en Pizarrón, Proyector (de cañon o
sala de cómputo con software MPI, Java, transparencias). 4 computadoras como
lenguaje C mínimo.
CRITERIOS DE DESEMPEÑO IV EVIDENCIAS
DESEMPEÑO PRODUCTOS
Desarrollo de programas haciendo uso de Reporte de funcionamiento de los
Prácticas de laboratorio programación en paralelo programas vistos en clase con la siguiente
estructura:
1.- Introducción
2.- Planteamiento del problema
3.- Esquema General de Solución y
Recursos Utilizados
4.- Algoritmos
5.- Pruebas realizadas
6.- Código fuente
7.- Conclusiones
ELEMENTOS DE COMPETENCIA
UNIDAD DE COMPETENCIA V
Conocimientos Habilidades Actitudes/ Valores
Comprender y aplicar técnicas Explorar la intuición Tener la capacidad de - Respetar al docente y a los
de diseño de algoritmos usada en crear un resolver problemas compañeros mediante un
paralelos y distribuidos. algoritmo paralelo mediante la técnica de comportamiento socialmente aceptable
diseñándolo mediante diseño PCAM.
la técnica PCAM
12. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
(Partición,
comunicación,
aglomeración y
mapeo)
ESTRATEGIAS DIDÁCTICAS: RECURSOS REQUERIDOS TIEMPO DESTINADO
Presentaciones acompañadas de apuntes Libros de texto, Apuntes del docente, 15 horas
preparados por el profesor. Pizarrón, Proyector (de cañon o
transparencias).
CRITERIOS DE DESEMPEÑO V EVIDENCIAS
DESEMPEÑO PRODUCTOS
Resolución de problemas Resolver problemas mediante la técnica Diseño de algoritmos
de diseño PCAM Examen escrito
XII. EVALUACIÓN Y ACREDITACIÓN
Evaluación
Para obtener la calificación se considerará:
exámenes parciales escritos (se considera la posibilidad de exámenes rápidos o sorpresa)
Tareas de investigación
Practicas
Proyectos de aplicación
Evaluación ordinaria
Examen acumulativo 30 %
13. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
2 Proyectos Parciales 70 %
Evaluación extraordinaria
Examen acumulativo 50 %
Proyecto final 50 %
Evaluación a título de suficiencia
Examen acumulativo 50 %
Proyecto final 50 %
Acreditación:
1. Cumplir con el 80% de asistencia al curso teórico y 100% en la entrega de tareas
2. Contar con una calificación aprobatoria tonto el la parte práctica (proyectos), como en la teórica (examen).
Las tareas y los exámenes deben desarrollarse en forma individual, mientras que los programas y el proyecto serán en equipo de entre dos y cuatro participantes.
Las Tareas deben incluir un resumen del tema, una lista de aquello que no haya quedado claro con relación al tema, y referencias bibliográficas o de Internet.
Los programas (que constituyen la parte práctica del curso) deben incluir el código fuente, en el que se mencionen los nombres de los miembros del equipo, y un
reporte de la práctica. Se pueden entregar en CD o bien enviar por correo electrónico.
14. Universidad Autónoma del Estado de México
Secretaria de Docencia
Coordinación General de Estudios Superiores
Programa Institucional de Innovación Curricular
XIII. REFERENCIAS
1. Loshin, David. “High Performance Computing Demystified” Ed. AP Professional (1994) ISBN 0124558259
2. Casavnat, Thomas; Tvrdik, Pavel “Parallel Computers: Theory And Practice” (1998) C.A. ISBN 0818651628, IEEE.
3. Notas del Curso MPI.
4. Guoliang Chen. “Parallel Computing” . University of Science and Technology of China. 2003.
5. Grama, Ananth, Ansshul Gupta, George Karypis y Vipin Kumar. “Introduction to Parallel Computing”. ADDISON-WESLEY. 2003.
6. Quinn, Michael J. “Parallel Computing: Theory and Practice”. McGRAW-HILL. 1994.
7. Foster, Ian. “Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering” . ADDISON-
WESLEY. 1995.