Objetivos
1. Introducción
1.1. Procesamiento paralelo
1.2. Concepto de sistema paralelo
1.3. Programación de propósito general en GPU
2. Arquitecturas paralelas
2.1. Taxonomía de Flynn
2.2. Multiprocesadores de memoria compartida
2.3. Multiprocesadores de memoria distribuida
2.4. Arquitecturas combinadas
2.5. Arquitectura GPU-CUDA
2.6. CPU vs. GPU
3. Diseño de algoritmos paralelos
3.1. Grafo de dependencia de treas
3.2. Grafo de interacción de tareas
3.3. Etapas del diseño de algoritmos paralelos
4. Modelos de algoritmos paralelos
4.1. Modelo de paralelismo de datos
4.2. Modelo de grafo de tareas
4.3. Modelo Master-Workers
4.4. Modelo Híbrido
4.5. Modeo GPU-CUDA
5. Herramientas de programación paralela
5.1. Programación paralela en memoria compartida
5.2. Programación paralela en memoria distribuida
5.3. Programación paralela en GPU
6. Green computing
6.1. Calentamiento global
6.2. Green computing
6.3. Medición del consumo energético
7. Problema de aplicación: N Body
7.1. Descricpión del problema N Body
7.2 Soluciones al problema N Body
8. Solución al problema N Body
8.1. Solución secuencial
8.2. Solución paralela en memoria compartida
8.3. Solución paralela en memoria distribuida
8.4. Solución paralela híbrida
8.5. Solución paralela en GPU
9. Resultados
9.1. Entorno experimental
9.2. Resultados experimentales
10. Conclusiones y trabajos futuros
Apéndice A
Apéndice B
Apéndice C
Apéndice D
Apéndice E
Referencias