Programa de Estudios Ingeniería en Inteligencia Artificial y Big Data
NOMBRE DE LA ASIGNATURA O UNIDAD DE APRENDIZAJE
Computación Paralela
CICLO CLAVE DE LA ASIGNATURA
6°SEMESTRE IIA636
HORAS FRENTE A DOCENTE HORAS INDEPENDIENTES CRÉDITOS
48 80 8
OBJETIVO GENERAL DE LA ASIGNATURA
Que los alumnos adquieran y pongan en práctica los conceptos relacionados con el cómputo paralelo y
que puedan incorporar tales nociones a su formación profesional.
TEMAS Y SUBTEMAS
1 INTRODUCCION A LA COMPUTACION PARALELA
1.1 Fundamentos.
1.2 Características.
1.3 Ley de Moore.
1.4 Potencial.
1.5 Aplicabilidad.
2 ASPECTOS DE LA PROGRAMACION PARALELA
2.1 Aspectos clave de la programación paralela.
[Link] de Descomposición.
[Link].
[Link].
[Link] de Carga.
[Link].
2.2 Identificación de paralelismo.
[Link] de Bernstein.
2.3 Estrategias de descomposición.
[Link]ón de Dominio.
[Link]ón Funcional.
[Link]ón Explorativa.
[Link]ón Especulativa.
2.4 Modelos de algoritmos paralelos.
[Link] de Paralelismo de Datos.
[Link] Master/Worker.
[Link] Pipeline.
[Link] de Grafos de tareas.
2.5 Modelos de comunicación.
[Link] compartida.
[Link] de mensajes.
2.6 Herramientas y conceptos para lograr concurrencia: Threads, Semáforos, Variables
condicionales, Procesos, Pipes y Sockets.
3 ARQUITECTURAS PARALELAS
3.1 Memoria Compartida.
[Link]ón.
[Link]ísticas.
[Link].
[Link] y desventajas.
3.2 Memoria Distribuida.
[Link]ón.
[Link]ísticas.
[Link].
[Link] y desventajas.
3.3 Supercomputadores.
[Link]ón.
[Link]ísticas.
[Link].
[Link] y desventajas.
3.4 Multicomputadores. Clusters. Clusters Beowulf y COW.
[Link]ón.
[Link]ísticas.
[Link].
[Link] y desventajas.
3.5 Grid.
[Link]ón.
[Link]ísticas.
[Link].
[Link] y desventajas.
3.6 La importancia de la comunicación científica.
[Link].
[Link].
3.7 Escritura científica.
[Link] de un artículo científico: título, resumen, palabras clave, introducción, modelo,
resultados, conclusiones, referencias, apéndices, figuras y tablas.
3.8 Presentaciones científicas.
[Link].
[Link] y recursos gráficos.
[Link].
[Link].
[Link]ón de inquietudes de la audiencia.
4 RENDIMIENTO DE LAS APLICACIONES PARALELAS
4.1 Índices de evaluación. Utilidad. Necesidad. Ventajas y desventajas.
4.2 Speedup. Definición. Significado, utilidad, representación gráfica e interpretación.
4.3 Escalabilidad. Definición. Ley de Amdahl. Significado, utilidad e interpretación.
4.4 Eficiencia. Definición. Significado, utilidad e interpretación.
4.5 Balanceo de Carga. Definición. Significado, utilidad e interpretación.
5 HERRAMIENTAS PARA LA PROGRAMACIÓN PARALELA
5.1 Librerías de paso de mensajes. Conceptos. Primitivas de comunicación.
5.2 PVM (Parallel Virtual Machine). Características. Primitivas. Funcionamiento. Alcance.
Configuración. Flexibilidad.
5.3 MPI (Message Passing Interface). Características. Primitivas. Funcionamiento. Alcance.
Configuración. Flexibilidad.
5.4 Programación de algoritmos paralelos haciendo hincapié en el uso del estándar MPI
ACTIVIDADES DE APRENDIZAJE BAJO LA CONDUCCIÓN DEL DOCENTE
Exámenes parciales…………………………………………………………………….. 40%
Examen Final…………………………………………………………………………….. 30%
Portafolio de Evidencia…………………………………………………………………. 30%
ACTIVIDADES DE APRENDIZAJE INDEPENDIENTES
Elaboración de reportes de lectura
Elaboración de un ensayo sobre la materia
CRITERIOS Y PROCEDIMIENTOS DE EVALUACIÓN Y ACREDITACIÓN
Dos exámenes parciales 40%
Participación 30%
Ensayo 20%
Tareas 10%
INFORMACIÓN DOCUMENTAL RECOMENDADA (bibliografía)
1. Albert, R., y Breedlove, T. (2009) C++: An active learning approach. USA: Jones and Bartlett
Publishers
2. Brassard G.& et all. (Sin fecha). Fundamentos de Algoritmia. Pearson: Prentice Hall
3. Cairo Battistutti, O., (2005), Metodología de la Programación, Algoritmos Diagrama de Flujo
y Programas, Ciudad, Estado, Provincia, País: Alfaomega. ISBN 970-15-1100-X
4. Cheng, H. H. (2010). C for engineers and scientists: An interpretive approach. USA: McGraw-
Hill Higher Education
5. Deitel, P y Deitel, H. (2008) Como Programar en C++. México:Pearson Prentice Hall.
6. Deitel, J., y Deitel, M. (2012) C++: How to program. USA: Prentice Hall.
7. Deitel, H. (2008). Java cómo programar. (7ª ed.) Prentice Hall México, 2008. ISBN
9789702611905
8. García Molina, J.J., (2005), Introducción a la programación un Enfoque Algorítmico, Ciudad,
Estado, Provincia, País: Paraninfo.
9. Joyanes, L. (2012) Fundamentos generales de programación. España;McGraw Hill.
10. Joyanes, L. (2008) Fundamentos de programación: algoritmos, estructura de datos y objetos.
España: McGraw-Hill.
11. Joyanes, L. (2010) Programación en C, C++, Java y UML. México: McGraw-Hill. ISBN 978-
970-10-6949-3.
12. Joyanes, L., Fernández, M. y Rodríguez L. (2003) Fundamentos de Programación Libro de
Problemas Algoritmos Estructura de Datos y Objetos. México:Mc. Graw Hill.
13. Kamthane, N. (2011) Programming in C. India: Dorling Kindersley.
14. López, L. (2011) Programación Estructurada y Orientada a Objetos México:Alfaomega.
15. Marquez, G. (2012) Introducción a la programación estructurada en C. España:Pearson
16. McMilan, M. (2011) Learning C++. USA: InfinateSkills.
17. Méndez, A. (2013) Diseño de algoritmos y su programación en C. México:Alfaomega.
18. Mothe, M. (2012) C++ programming: a practical approach. India: Dorling Kindersley.
19. Urrutia, G. (2012) Curso de Programación en C para principiantes. España:@Gorka Urrutia
20. Zavala, R y Llamas, R. (2013) Fundamentos de programación para principiantes
PERFIL DEL DOCENTE:
Licenciatura en Ingeniería, Matemáticas, Física o carreras cuyo contenido en el área de
matemáticas sea similar.
Deseable haber realizado estudios de posgrado, contar con experiencia docente o haber
participado en cursos o
seminarios de iniciación en la práctica docente. De igual forma, deberá acreditar, ya sea con
certificación o constancias, el dominio de medios tecnológicos para la enseñanza – aprendizaje,
capacidad para el diseño de materiales didácticos, planeación de asesorías o el diseño de
estrategias de aprendizaje mediante tecnologías de la comunicación e informació[Link]
docente mínima de tres años.