Referencias Bibliográficas: [van Steen and Tanenbaum, 2023,Kleppmann, 2017a]
Temas
- Medios
- Variedades: canales (paso de mensajes o E/S), memoria compartida, heterogéneos, almacenes de datos.
- Dependencia de la disponibilidad y naturaleza del hardware subyacente, conectividad y protocolos; soporte del lenguaje, emulación. Ver también: Arquitectura y Organización (AR) -InterfacingCommunication.
- Canales
- Medios de comunicación de parte a parte explícitos (generalmente nombrados).
- APIs: Sockets, constructos arquitectónicos, basados en lenguaje y de kits de herramientas, como Message Passing Interface (MPI), y constructos en capas como Llamada a Procedimiento Remoto (RPC). Ver también: Redes y Comunicaciones (NC) -Fundamentals.
- APIs de canales de E/S.
- Memoria
- Arquitecturas de memoria compartida en las que las partes se comunican directamente solo con la memoria en direcciones dadas, con extensiones a memoria heterogénea que admite múltiples almacenes de memoria con transferencia de datos explícita entre ellos; por ejemplo, memoria local y compartida de GPU, Acceso Directo a Memoria (DMA).
- Jerarquías de memoria: Múltiples capas de dominios, alcances y cachés compartidos; localidad: latencia, falso uso compartido.
- Propiedades de consistencia: Límites de atomicidad a nivel de bits, coherencia, orden local.
- Almacenes de Datos
- Estructuras de datos mantenidas cooperativamente que implementan mapas y TADs relacionados.
- Variedades: Propiedad exclusiva, compartida, fragmentada, replicada, inmutable, versionada.
Aprendizaje esperado (Learning Outcomes)
- Explicar las similitudes y diferencias entre: (1) La parte A envía un mensaje en el canal X con contenido 1 recibido por la parte B (2) A establece la variable compartida X a 1, leída por B (3) A establece "X=1" en un mapa compartido distribuido al que accede B [Explicar]
- Escribir un programa que distribuya diferentes segmentos de un conjunto de datos a múltiples trabajadores y recoja los resultados (por ejemplo, sumar segmentos de un arreglo) [Escribir]
- Escribir un programa paralelo que solicite datos de múltiples sitios y los resuma usando alguna forma de reducción [Escribir]
- Comparar el rendimiento de versiones con y sin búfer de un programa productor-consumidor [Comparar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM