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.