UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA DIRECCIÓN GENERAL DE ASUNTOS ACADÉMICOS

Anuncio
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
DIRECCIÓN GENERAL DE ASUNTOS ACADÉMICOS
PROGRAMA DE ASIGNATURA POR COMPETENCIAS
I. DATOS DE IDENTIFICACIÓN
1. Unidad Académica: _____Facultad de Ingeniería______________________________________________________
2. Programa (s) de estudio: (Técnico, Licenciatura)
Ingeniero en Computación
4. Nombre de la Asignatura: Arquitectura de Computadoras II
6. HC: 5
HL__2__ HT_____ HPC_____ HCL_____ HE
7. Ciclo Escolar:
2002-1
9. Carácter de la Asignatura:
3. Vigencia del plan:_95-1_
5. Clave: _2523_
CR_____
8. Etapa de formación a la que pertenece: __Disciplinaria__
Obligatoria ___X_______
10. Requisitos para cursar la asignatura:
Optativa ____________
Se recomienda haber cursado Análisis de Sistemas Operativos, así como tener nociones de Linux y
Lenguaje C.
Formuló: M.C. Cecilia Curlango Rosas. M.C. Aglay González Pacheco Saldaña. M.C. José Antonio Cárdenas Haro. M.C. Jorge Eduardo Ibarra
Esquer. Ing. Patricia Luz Aurora Rosas Méndez.
Vo. Bo. _Ing. Miguel Angel Martínez Romero
Cargo: _Sub-director Académico_______Fecha:
Junio de 2002
II. PROPÓSITO GENERAL DEL CURSO
Dar al alumno las herramientas básicas para realizar cómputo paralelo, ampliando de esta manera sus conocimientos generales así como las áreas
en las que puede desempeñarse profesionalmente.
III. COMPETENCIA (S) DEL CURSO
Elaborar aplicaciones paralelas para la solución de problemas científicos y de ingeniería.
IV. EVIDENCIA (S) DE DESEMPEÑO
Elaboración de un proyecto que resuelva problemas aplicando las herramientas del cómputo paralelo.
V. DESARROLLO POR UNIDADES
COMPETENCIA
Distinguirá las diferencias entre el cómputo paralelo y el cómputo secuencial a través de lecturas introductorias, investigación documental y
discusiones de grupo para identificar la pertinencia de soluciones de cómputo paralelo.
CONTENIDO
1. FUNDAMENTOS TEÓRICOS DEL CÓMPUTO PARALELO.
1.1. Antecedentes.
1.1.1. Historia del cómputo paralelo
1.1.2. Ventajas
1.1.3. Taxonomía
1.2. Paradigmas del cómputo paralelo
1.2.1. Paradigmas del software paralelo
1.2.2. Clasificación de paralelismo
1.2.2.1. Temporal
1.2.2.2. Espacial
1.2.2.3. Independiente
1.2.3. Niveles de paralelismo
1.2.4. Desempeño
1.2.5. Ley de Amdahl
1.3. Paralelismo en los programas
1.3.1. Estructuras de datos
1.3.2. Paralelismo de datos
1.3.3. Localidades de datos
1.3.4. Ciclos paralelos
1.3.5. Sentencias para control paralelo
1.3.6. Pipelining
1.4. Arquitecturas paralelas de computadoras
1.4.1. Tipos de organización de procesadores
1.4.1.1. Rejilla
1.4.1.2. Hiperárbol
1.4.1.3. Pirámide
1.4.1.4. Hipercubo
1.4.1.5. Conexión cubo en ciclos
DURACIÓN 15 HORAS
COMPETENCIA
Analizar problemas computacionales y discernir entre los algoritmos de cómputo paralelo para obtener una solución apropiada
CONTENIDO
2. ALGORITMOS PARALELOS Y COMPLEJIDAD
COMPUTACIONAL.
2.1. Flujo de datos y paralelismo implícito
2.1.1. Von Neumann vs Paralelo
2.2. Modelos computacionales RAM y PRAM
2.2.1. Introducción
2.2.2. Modelos de PRAM
2.2.3. Tipos de PRAM CRCW
2.2.4. Algoritmos PRAM
2.2.4.1. Modelo del árbol binario
2.2.4.2. Reducción paralela
2.2.4.3. Suma de n valores
2.3. Organización de procesadores
2.3.1. Organización de procesadores representados por grafos
2.3.2. Diámetro
2.3.2.1. Ancho de bisección de la red
2.3.2.2. Número de aristas por nodo
2.4. Introducción a la complejidad de los algoritmos paralelos
2.4.1. Tiempos de corrimiento
2.4.2. La gran “O”
DURACIÓN 20 HORAS
COMPETENCIA
Elaborar programas que implementen algoritmos paralelos para reducir el tiempo de ejecución de procesos de cómputo aplicando los modelos
correctos.
CONTENIDO
3. Diseño de programas paralelos
3.1. Modelos de cómputo paralelo
3.1.1. Modelos de hardware paralelo
3.1.1.1. Tipos de sistemas de memoria
3.1.1.2. Sistemas de memoria única
3.1.1.3. Sistemas de memoria múltiple
3.1.2. Modelos de ejecución paralela
3.1.2.1. Paralelismo a nivel procesos
3.1.2.2. Paralelismo a nivel hilos
3.1.2.3. Paralelismo a nivel declaraciones
3.1.3. Modelos de computación distribuida
3.1.3.1. Modelo MPI (Message-Passing-Interface)
3.1.3.2. Modelo PVM (Parallel Virtual Machine)
3.2. Control del paralelismo
3.2.1. Segmentos
3.2.2. Procesos
3.2.3. Semáforos
3.2.4. Lectores y escritores
3.2.5. Secciones críticas
3.2.6. Sincronización
3.2.7. Comunicación interprocesos
3.3. Tendencias del cómputo paralelo
3.3.1. Proyecto Grid
DURACIÓN 29 HORAS
COMPETENCIA
Aplicar las herramientas de programación paralela para la elaboración de programas paralelos.
NOTA: Esta unidad se verá de manera simultánea con las unidades anteriores, dedicándole una hora a la semana y como apoyo al trabajo en
laboratorio.
CONTENIDO
4. HERRAMIENTAS PARA PROGRAMACION PARALELA
4.1. Introducción a los clusters Linux
4.2. Ventajas y desventajas entre PVM, MPI y Cilk
DURACIÓN 16 HORAS
VI. ESTRUCTURA DE LAS PRACTICAS
No. de
Práctica
1
2
Competencia(s)
Familiarizarse con el funcionamiento de
programas en paralelo usando los
comandos básicos de MPI, así como
comprender la manera en que un programa
se manda a ejecutar en varios
procesadores.
Familiarización con los comandos básico
de envío y recepción de mensajes
Descripción
Material de Apoyo
Duración
Escribir el código proporcionado por el Computadora, (una por cada 2 hrs.
instructor, compilarlo y verificar su alumno),
con
sistema
funcionamiento.
operativo Linux y librerías
de MPI
Hacer un programa donde se aplique la Computadora, (una por cada 4 hrs.
estructura de un programa paralelo y se alumno),
con
sistema
utilicen los comandos de MPI
operativo Linux y librerías
de MPI
3
Conocimiento de las técnicas o Hacer un programa donde se evalúe el Computadora, (una por cada 2 hrs.
procedimientos para la evaluación de tiempo transcurrido entre dos puntos de un alumno),
con
sistema
programas en paralelo.
proceso en MPI.
operativo Linux y librerías
de MPI
4
Comprender las ventajas de paralelizar un Hacer un programa donde se resuelva un
algoritmo básico como por ejemplo:
algoritmo.



5
calcular el producto punto de dos vectores
multiplicación de matrices usando
producto punto
regla del trapezoide (integral de una
función desde un punto A a un punto B)
Computadora, (una por cada 4 hrs.
alumno),
con
sistema
operativo Linux y librerías
de MPI
Comprensión del concepto de aceleración, Hacer dos programas para un mismo algoritmo Computadora, (una por cada 6 hrs.
(por ejemplo un método de ordenación), el alumno),
(speed up), y la forma de calcularlo.
con
sistema
primer programa debe ser totalmente operativo Linux y librerías
secuencial y el segundo programa debe utilizar de MPI
instrucciones en paralelo. Medir la aceleración
(speed up), eficiencia y costo de los dos
programas.
6
Comprensión del concepto de orden del Hacer un programa donde se resuelva un
Computadora, (una por cada 4 hrs.
algoritmo
con
mayor
dificultad
que
la
práctica
algoritmo y la forma en que este se mejora
alumno),
con
sistema
anterior como:
al implementarlo paralelamente.
operativo Linux y librerías
No. de
Práctica
Competencia(s)
Descripción




7
Material de Apoyo
Duración
multiplicación de matrices, utilizando el
de MPI
Algoritmo de Fox.
Método bitónico de ordenación
Tour de Euler
Algoritmos de azar (Numérico, Montecarlo
y L.V.)
Comprensión de la configuración de la red Hacer un programa donde en cada ejecución se Computadora conectada en 4 hrs.
para la ejecución de los programas en utilicen diferente número de procesadores. red, (una por cada alumno),
Evaluar el tiempo de ejecución del programa con sistema operativo Linux
múltiples procesadores
al utilizar un número mayor de procesadores. y librerías de MPI.
Realizar una gráfica de rendimiento.
8
Integración de los conceptos vistos durante Proponer un problema, hacer un programa Computadora conectada en 6 hrs.
paralelizado y medir su rendimiento. Resolver red, (una por cada alumno),
el semestre.
el mismo problema en secuencial para con sistema operativo Linux
comparar.
y librerías de MPI.
VII. METODOLOGÍA DE TRABAJO
Se sugiere que los grupos de laboratorio sean de un máximo de 8 alumnos.
La unidad IV se cubrirá a la par con las otras unidades durante el semestre.
Las prácticas de laboratorio serán individuales.
VIII. CRITERIOS DE EVALUACIÓN
3 Parciales
Ordinario
Tarea
Laboratorio
60%
20%
10%
10%
Aprobar laboratorio para aprobar la materia. La calificación de laboratorio deberá ser numérica.
Se sugiere que el proyecto contenga la aplicación de todos los conceptos aprendidos, si lo hay.
IX. BIBLIOGRAFÍA
Básica
Parallel Computer Architecture. A Hardware/Software
Approach.
Anoop Gupta, David E. Culler Jaswinder Pal Singh
Morgan Kaufmann Publishers
1er Edición
Agosto de 1998
ISBN 1558603433
Fundamentals of Sequential and Parallel Algorithms
Ken A. Berman, Jerome Paul, Kenneth A. berman
Brooks Cole
1er. Edición
1996
ISBN 0534946747
Parallel Programming with MPI
Peter S. Pacheco
Morgan Kaufmann Publishers
1er. Edición
1996
ISBN 1558603395
Introduction to Parallel Algorithms
Joseph JaJa
Addison-Wesley
1992
ISBN 0201548569
MPI: The Complete Reference (Vol. 1)
Marc Snir, et. al.
Cambridge, Mass. : The MIT Press,
2a. Edición
c1998
ISBN 0262692155
Complementaria
MPI: The Complete Reference (Vol. 2)
Marc Snir, et. al.
Cambridge, Mass. : The MIT Press,
2a. Edición
c1998
ISBN 0262571234
Parallel Programming in C with MPI and OpenMP
Michael J. Quinn
Ed. McGraw Hill Science/Engineering/Math
Junio, 2003
ISBN 0072822562
Descargar