|
Curso 2010/11
Índice
1. Profesores
- Alberto Sánchez Campos
- Despacho: 2011-B Ampliación Rectorado
- Email: alberto.sanchez |arroba| urjc.es
- Tutorias:
- Martes: 10:30 a 13:30
- Miércoles: 10:30 a 13:30
- Marcos Novalbos Mendiguchía
- Despacho: 2011-C Ampliación Rectorado
- Email: marcos.novalbos |arroba| urjc.es
- Tutorias:
- Miércoles: 10:30 a 13:30
- Jueves: 10:30 a 13:30
2. Objetivos
Los objetivos de esta asignatura se centran en introducir al alumno
en el funcionamiento, ventajas e inconvenientes de las arquitecturas de
alto rendimiento, permitiéndole diseñar y proporcionar soluciones que
aprovechen las diferentes capacidades y enfoques de las mismas.
Se pretende dar a la asigntura un enfoque práctico de forma que los
alumnos sean capaces de sacar el máximo rendimiento de las
arquitecturas con las que vayan a trabajar en su vida profesional. Para
ello se realizarán prácticas tanto de sistemas de memoria compartida
como de memoria distribuida para la realización de aplicaciones
paralelas. Esta parte de programación paralela será uno de los puntos
fuertes de la asignatura, pues se está introduciendo cada vez con más
fuerza en múltiples campos tanto de investigación como de desarrollo en
las empresas.
3. Temario
4. Prácticas
A lo largo del curso se realizarán dos prácticas obligatorias con el
objetivo de desarrollo una aplicación paralela sobre distintas
arquitecturas. El alumno puede plantear la práctica que desee realizar.
Como ejemplo de aplicaciónes se proponen:
- Filtrado de video.
- Compresión de imágenes volumétricas.
- Sistema de ficheros paralelo.
- Almacén de datos.
- Multiplicación de matrices de gran dimensión.
- Resolución de sudokus samurais.
- Middleware para cluster heterogéneos: Monitor en tiempo real.
- API de programación de paso de mensajes.
Nota de las prácticas
Los requisitos mínimos para sacar un "5" en las práctica son:
-
Compilar la práctica delante de los profesores.
-
Que el ejecutable generado realice "todas" las funciones pedidas.
-
Que el ejecutable compile y funcione sin la intervención del profesor.
-
Memoria con las siguientes secciones:
-
Explicación del diseño seguido para la implementación (incluir diseños rechazados y explicación del rechazo)
-
Pasos seguidos para la implementación (gprof, ley de ahmdal, errores...)
-
Conclusiones
-
No incluir: Código fuente, a menos que sea indispensable para explicar alguna mejora concreta.
Requisitos para subir más de un 5:
-
Pruebas realizadas en varias máquinas/arquitecturas.
-
Interfaz gráfica (configuración del programa, gráficas...).
-
Configurable mediante ficheros de configuración.
-
Buen diseño.
-
Gestión de errores.
- 7
Evaluación en la memoria que demuestre los beneficios e inconvenientes
jugando con diversos parámetros (número de nodos de trabajo, tamaño de
bloques de trabajo...)
-
Extras añadidos por el alumno.
-
Optimización en el paso de mensajes (para prácticas en cluster)
Las arquitecturas sobre las que se trabajará son:
- Sistemas de memoria compartida
- Cluster homogéneo de computadores
5. Trabajos optativos
Además de las prácticas obligatorias se propone la realización de una serie de trabajos
que servirán al alumno completar la nota de la asignatura.
El alumno podrá presentar un trabajo a lo largo del curso
consistente en una memoria (máximo 10 páginas) en la que se describa la
arquitectura o herramienta seleccionada. Además se debe realizar una
presentación de 20 minutos sobre el mismo (1,5 puntos). Los trabajos
propuestos son los siguientes:
- Procesador Cell. Ejemplo de arquitectura (ej. PS3).
- Intel QuadCore
- Xenon (Xbox 360)
- Procesador UltraSPARC RK (Rock)
- SGI Altix 4000
- IBM Cluster 1600
- Arquitectura GPUs NVIDIA Tesla/8800
- GPGPU & Cuda
- OpenMP
- Globus Toolkit
- Open Mosix
- Se admiten propuestas de los alumnos.
6. Evaluación
Esta asignatura se evaluará en función de las prácticas y ejercicios propuestos. En caso de no asistir
al menos a 5 sesiones teóricas incluyendo las presentaciones de los trabajos optativos, se deberá realizar
un examen teórico. Para aprobar la asignatura será necesario aprobar todas las prácticas obligatorias
propuestas a lo largo del curso, de forma independiente. Para que una práctica esté aprobada será necesario:
- Presentar la práctica en clase antes de la fecha indicada para cada una de ellas.
- Aprobar el examen oral que se realizará en el laboratorio en el momento de la entrega.
- Presentar la memoria explicativa de la práctica cumpliendo los objetivos propuestos en cada caso.
7. Bibliografía
No hay un libro completo que cubra todos los temas que se van a
impartir a lo largo del curso. Por lo tanto, se proponen una serie de
títulos como bibliografía de consulta.
Arquitecturas de memoria compartida y muticore.
Niagara II: The Hydra Returns, David Kanter. Real World Technologies.
Grid computing
The Grid 2: Blueprint for a New Computing Infrastructure, Ian Foster y Carl Kesselman. Morgan Kaufmann; 2 edition.
Arquitecturas Paralelas
Arquitectura de Computadores, Julio Ortega, Mancia Anguita, Alberto Prieto. Ed. Thomson.
Parallel Programing, Barry Wilkinson, Michael Allen. Prentice Hall, 1999.
Parallel Programin with MPI, Peter Pacheco. Editorial Mogan Kaufman, 1997.
Using MPI: Portable Parallel Programming with the Message Passing Interface, William Gropp, Ewing Lusk, Anthony Skjellum. Editorial MIT Press, 1999.
Advanced Computer Architecture. A Design Space Approach, Derso Sima, Terence Fountain, Peter Kacsuk. Addison wesley, 1997.
|