Contenidos
Unidad 1: Introducción
Evolución de las infraestructuras de software/hardware paralelas y distribuidas. Motivaciones. Conceptos. Ventajas. Aplicaciones.
Unidad 2: Clasificación de Computación Paralela y Distribuida
Tipos de sistemas paralelos y distribuidos. Multiprocesadores, supercomputadores y paralelismo. Memoria compartida. Memoria distribuida. Computación distribuida en el escritorio, clusters, computación de alto desempeño, clusters de datos, clouds, grids, P2P. Cuándo paralelizar o distribuir algoritmos.
Unidad 3: Computación Paralela
HPC. Modelos de programación paralela. Paralelización de programas. Niveles de paralelismo. Análisis de desempeño. Hilos explícitos, hilos implícitos.
Unidad 4: Clusters
Orígenes y motivaciones. SSI y SSE. Ejemplos: OpenMosix, MPI.
Unidad 5: Cluods, Virtualización y Contenedores
Orígenes y motivaciones. Ventajas y desventajas. Virtualización. Imágenes de máquina. Plataformas. Contenedores. Ejemplos Docker.
Unidad 6: P2P
Orígenes y motivaciones. Computación distribuida en el escritorio. Computación P2P. Modelo desestructurado y estructurado. DHT. Ejemplos y aplicaciones..
Unidad 8: Conclusiones y Tendencias
Discusión. Problemas y limitaciones. Líneas de investigación.
Bibliografía
- Satin: Simple and Efficient Java-based Grid Programming. Scalable Computing: Practice and Experience 6(3). van Nieuwpoort, R. V.; Maassen, J.; Kielmann, T. & Bal, H. E. Wiley. 2005
- Parallel Programming and Applications in Grid, P2P and Network-based Systems. Fatos Xhafa. IOS Press. 2009.
- The Art of Concurrency. C. Breshears. O’Reilly Media. 2009.
- Cloud Application Architectures: Building Applications and Infrastructure in the Cloud. G. Reese. McGraw-Hill Osborne Media. 2009.
- An Approach for Non-Intrusively Adding Malleable Fork/Join Parallelism into Ordinary JavaBeans Compliant Applications. Computer Languages, Systems and Structures. 36(3). C. Mateos, A. Zunino, M. Campo. Elsevier Science. 2010.
- A Novel Mechanism for Gridification of Compiled Java Applications. Computing and Informatics. 30(6). C. Mateos, A. Zunino, M. Campo. Slovak Academy of Sciences. 2011
- A Survey on Approaches to Gridification. Software: Practice and Experience. 38(5). C. Mateos, A. Zunino, M. Campo. Wiley. 2008.
- Concurrency in Go: Tools and Techniques for Developers 1st Edition. Katherine Cox-buday. Oreilly. 2017.
- The OpenMP Common Core. Timothy G. Mattson, Yun (Helen) He, and Alice E. Koniges. MIT Press. 2019.
- Parallel Programming in C with MPI and OpenMP. Michael Quinn. McGraw-Hill. 2003.
- Java Concurrency in Practice. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea. Addison-Wesley. 2006.