5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 1/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaDirección de Estudios ProfesionalesCoordinación de Desarrollo Curricular
Programa de Estudios por Competencias
Programación Paralela y DistribuidaI. 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
Aprobación por los H.H. ConsejosAcadémico y de Gobierno
Fecha:24 FEBRERO 2006
Programa elaborado por: Ing. Luis Enrique
Ledezma Fuentes, Ing. Elfego GutiérrezOcampo
Fecha de elaboración :21-Febrero-2006
Clave Horas de teoríaHoras depráctica
Totalde
horasCréditos
Tipo deUnidad de
Aprendizaje
Carácter dela Unidad deAprendizaje
Núcleo deformación
Modalidad
L41057 2 2.5 4.5 8 Curso ylaboratorio
Obligatoria Sustantivo Presencial
Prerrequisitos( Conocimientos Previos): Programación Avanzada, Estructuras de
Datos, Lenguaje C, Java, Análisis y Diseño de Algoritmos
Unidad de AprendizajeAntecedente
Ninguna
Unidad de AprendizajeConsecuente
NingunaProgramas 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)
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 2/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaDirección de Estudios ProfesionalesCoordinación de Desarrollo Curricular
II. PRESENTACIÓNDe manera general, la computación en paralelo comprende arquitecturas de computadoras paralelas, algoritmos paralelos yprogramació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, comonecesidades de máquinas de alto rendimiento, conceptos generales, taxonómicas de arquitecturas (SIMD, MIMD, SISD, MISD), lasunidades funcionales del pipeline, topologías de redes de conexión y mediciones de rendimiento. La segunda se centra en el estudio delos 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 seenfoca al software de soporte y modelos de programación en paralelo, la quinta a sistemas y algoritmos distribuidos y la sexta adesarrollo 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 lossiguientes: 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 soncondición sin que son para poder aprobar la asignatura. Aún cuando el alumno superase por puntuación el límite de aprobado no seconcederá el mismo si no demuestra pericia en los tópicos marcados como mínimos indispensables.
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 3/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaDirección de Estudios ProfesionalesCoordinación de Desarrollo Curricular
III. LINEAMIENTOS DE LA UNIDAD DE APRENDIZAJE
DOCENTE DISCENTE- Realizar el encuadre del curso- Asistir puntualmente a las clases o justificar la ausencia
por adelantado (asistencia a conferencias, etc«)
- Asesorar a los alumnos y resolver sus dudas,preferiblemente en horario marcado de tutoría.- Evaluar la unidad de aprendizaje- Evaluar y Calificar a los alumnos.- Preparar el material didáctico para las clases y
prácticas.
- Realizar las evaluaciones que se establezcan.- Mantener unas pautas de comportamiento socialmente
aceptables cuando se encuentre en clases y laboratorio.
- Cuando se requiera, entregar a tiempo y forma lostrabajos requeridos.
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 dealgoritmos y programación en paralelo haciendo uso de un mínimo de 4 computadoras con vistas a capacitar al estudiante a su egreso enel 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.
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 4/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaDirección de Estudios ProfesionalesCoordinació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íacomputacional.
- 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 deProgramación en Paralelo y Distribuida.
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 5/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaDirección de Estudios ProfesionalesCoordinación de Desarrollo Curricular
VI. ÁMBITOS DE DESEMPEÑO PROFESIONAL
- Analista y diseñador de programas de cómputo y sistemas de resolución a problemas de excesiva carga computacional medianteté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
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 6/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma 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
2
1
3 4 5
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 7/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
XI. DESARROLLO DE LA UNIDAD DE APRENDIZAJE
UNIDAD DE COMPETENCIA IELEMENTOS DE COMPETENCIA
Conocimientos Habilidades Actitudes/ Valores
Dar a conocer las bases del
cómputo paralelo en general
Conceptos generales.Constitución de una
computadora paralela.Modelos dearquitectura (MIMD,SIMD, SISD, MISD),Cómputo Paralelo,Programación enParalelo, MemoriaCompartida y
Distribuida, Redes deInterconexión,Paradigmas de laProgramación enparalelo.
- Comprender qué esel paralelismo, cómo
se logra yaplicaciones
-Cumplir con las actividades asignadas- Respetar al docente y a los
compañeros mediante uncomportamiento socialmente aceptable
ESTRATEGIAS DIDÁCTICAS:Presentaciones acompañadas de apuntespreparados por el profesor
RECURSOS REQUERIDOSLibros de texto, Apuntes del docente,Pizarrón, Proyector (de cañon otransparencias)
TIEMPO DESTINADO8 horas
CRITERIOS DE DESEMPEÑO I EVIDENCIASDESEMPEÑO PRODUCTOS
Resolución de problemasEvaluación teórica de comprensión yentendimiento
Trabajos de investigación y examen escrito
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 8/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
UNIDAD DE COMPETENCIA IIELEMENTOS DE COMPETENCIA
Conocimientos Habilidades Actitudes/ ValoresDar a conocer las distintas formasde conectar procesadores con
procesadores, procesadores conmemoria (taxonomías), así comolas medidas de desempeño.
Sistemas dearquitectura (SMP,
MPP, COW, DSM).Modelos de acceso amemoria (UMA,NUMA, COMA,NORMA).Ley de Amdahl, Ley deGustafson
- Comprender lasdiferentes
arquitecturasparalelas
- Analizar sistemas deacceso a memoriaavanzados para unacomputadoraparalela.
- Comprender distintas
estrategias deacceso a memoriapara lectura yescritura.
- Medir el rendimientode máquinas enparalelodependiendo de la
parte secuencial deun programa.
-Cumplir con las actividades asignadas-Desarrollar la capacidad analítica del
funcionamiento de una computadoracon arquitectura en paralelo- Respetar al docente y a loscompañeros mediante uncomportamiento socialmente aceptable
ESTRATEGIAS DIDÁCTICAS:Presentaciones acompañadas de apuntespreparados por el profesor
RECURSOS REQUERIDOSLibros de texto, Apuntes del docente,Pizarrón, Proyector (de cañon otransparencias), Laboratorio de
TIEMPO DESTINADO9 horas
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 9/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
computadoras.
CRITERIOS DE DESEMPEÑO II EVIDENCIASDESEMPEÑO PRODUCTOS
Resolución de problemasEvaluación de arquitecturas paralelas,accesos de memoria y evaluación de
sistemas paralelos.
Trabajos de investigaciónExamen escrito
UNIDAD DE COMPETENCIA IIIELEMENTOS DE COMPETENCIA
Conocimientos Habilidades Actitudes/ ValoresComprender y aplicar técnicas de
diseño de programas en paraleloy distribuirlos mediante el modeloPRAM.
Modelo PRAM y sus
accesos a memoria:EREW, CREW,ERCW, CRCW
Tener la capacidad para
elaborar programasconcernientes utlizandoThreads en Java
- Respetar al docente y a los
compañeros mediante uncomportamiento socialmente aceptable
ESTRATEGIAS DIDÁCTICAS:Presentaciones acompañadas de apuntespreparados por el profesor.Prácticas en sala de cómputo con
lenguaje Java
RECURSOS REQUERIDOSLibros de texto, Apuntes del docente,Pizarrón, Proyector (de cañon otransparencias). Computadora.
TIEMPO DESTINADO18 horas
CRITERIOS DE DESEMPEÑO III EVIDENCIASDESEMPEÑO PRODUCTOS
Resolución de problemas Desarrollo de programas haciendo uso deprogramación en paralelo.
Reporte de funcionamiento de losprogramas vistos en clase, con la siguienteestructura1.- Introducción
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 10/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
2.- Planteamiento del problema3.- Esquema de solución y recursosutilizados4.- Algoritmos5.- Pruebas realizadas6.- Código fuente7.- Conclusiones
Practicas de laboratorio
UNIDAD DE COMPETENCIA IVELEMENTOS DE COMPETENCIA
Conocimientos Habilidades Actitudes/ ValoresComprender y aplicar técnicas de
diseño de programas en paraleloy distribuidos mediante laprogramación de paso demensajes
- Modelos de
programación enparalelo, paso demensajes.
- Programación depaso demensajes (MPI,PVM)
- Tener la capacidad
para armar uncluster de 4computadoras comomínimo utilizando elSistema OperativoLinux, Lenguaje C ylas bibliotecas PVMy/o MPI.
- Tener la capacidadpara elaborar programasconcurrentesutilizando PVM y/oMPI
- Respetar al docente y a los
compañeros mediante uncomportamiento socialmente aceptable
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 11/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
ESTRATEGIAS DIDÁCTICAS:Presentaciones acompañadas de apuntespreparados por el profesor. Prácticas ensala de cómputo con software MPI, Java,lenguaje C
RECURSOS REQUERIDOSLibros de texto, Apuntes del docente,Pizarrón, Proyector (de cañon otransparencias). 4 computadoras comomínimo.
TIEMPO DESTINADO18 horas
CRITERIOS DE DESEMPEÑO IV EVIDENCIAS
DESEMPEÑO PRODUCTOS
Prácticas de laboratorioDesarrollo de programas haciendo uso deprogramación en paralelo
Reporte de funcionamiento de losprogramas vistos en clase con la siguienteestructura:1.- Introducción2.- Planteamiento del problema3.- Esquema General de Solución yRecursos Utilizados
4.- Algoritmos5.- Pruebas realizadas6.- Código fuente7.- Conclusiones
UNIDAD DE COMPETENCIA VELEMENTOS DE COMPETENCIA
Conocimientos Habilidades Actitudes/ Valores
Comprender y aplicar técnicasde diseño de algoritmosparalelos y distribuidos.
Explorar la intuiciónusada en crear unalgoritmo paralelodiseñándolo mediantela técnica PCAM(Partición,comunicación,
Tener la capacidad deresolver problemasmediante la técnica dediseño PCAM.
- Respetar al docente y a loscompañeros mediante uncomportamiento socialmente aceptable
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 12/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
aglomeración ymapeo)
ESTRATEGIAS DIDÁCTICAS:Presentaciones acompañadas de apuntespreparados por el profesor.
RECURSOS REQUERIDOSLibros de texto, Apuntes del docente,Pizarrón, Proyector (de cañon otransparencias).
TIEMPO DESTINADO15 horas
CRITERIOS DE DESEMPEÑO V EVIDENCIASDESEMPEÑO PRODUCTOS
Resolución de problemas Resolver problemas mediante la técnicade diseño PCAM
Diseño de algoritmosExamen escrito
XII. EVALUACIÓN Y ACREDITACIÓN
EvaluaciónPara 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 ordinariaExamen acumulativo 30 %2 Proyectos Parciales 70 %
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 13/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma Institucional de Innovación Curricular
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 unreporte de la práctica. Se pueden entregar en CD o bien enviar por correo electrónico.
5/7/2018 ProgramacionParalelaYDistribuida - slidepdf.com
http://slidepdf.com/reader/full/programacionparalelaydistribuida 14/14
Universidad Autónoma del Estado de México
Secretaria de DocenciaCoordinación General de Estudios SuperioresPrograma 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. ³ I ntroduction 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.