859 visualizaciones desde el 8 de Septiembre del 2017
454,3 KB
5 paginas
Creado hace 16a (31/03/2009)
Middlewares para Sistemas de Alto
Middlewares para Sistemas de Alto
Rendimiento
Rendimiento
José M. Peña
Contenidos
Contenidos
Middlewares:
Ejemplo lenguajes/entornos de
g
programación:
◦ Lenguaje de programación paralela:
p
j
j
3/31/2009
Middleware
Middleware
Middleware: En el concepto de
“software intermediario”, da soporte al
d
desarrollo de aplicaciones
ll d
distribuidas:
◦ Abstracción: Haciendo de interfaz entre
li
i
las tareas/procesos y el hardware o
sistema operativo.
Servicios: Proporciona servicios y
◦ Servicios: Proporciona servicios y
funcionalidades para el desarrollo de
aplicaciones.
OpenMP
Ejemplos de servicios HPC:
◦ Sistemas de ficheros para cluster
Lustre
◦ Memoria compartida distribuida
TreadMarks
Middleware de un Sistema
Distribuido
Objetivos:
◦ Interoperabilidad.
◦ Facilidad de desarrollo.
Ej
Ejemplos de Servicios:
◦ Descubrimiento.
◦ Seguridad.
d S
l
i
i
Mecanismos:
◦ Recubrimiento del Software
◦ Abstracciones.
◦ Deslocalización de servicios.
Middleware de un Sistema Cluster
Objetivos:
◦ Rendimiento.
◦ Disponibilidad.
Ejemplos de Servicios:
Ejemplos de Servicios:
◦ Acceso a datos.
◦ Checkpointing.
Mecanismos:
◦ Acceso directo al HW
◦ Reparto de carga.
◦ Caching.
◦ Caching
Middleware
Middleware
1
Niveles de Middleware
Niveles de Middleware
◦ Nivel de implementación:
Acceso a E/S compartida (e.g., disco).
Migración de procesos/checkpointing.
Espacio unificado (procesos, usuarios, …)
◦ Nivel de programación:
Lenguajes y bibliotecas específicos (HPF, MPI, OpenMP)
Servicios:
Sistemas de ficheros de cluster
Sistemas de ficheros de cluster
Memoria compartida distribuida (DSM)
◦ Nivel de gestión:
Gestión de trabajos.
Administración del sistema.
OpenMP
OpenMP
Estandarizado.
Adecuado para:
◦ Máquinas SMP
◦ Memoria compartida
◦ Paralelismo a nivel de tarea/datos
p
Características:
Basado en directrices de pre-procesador (en fase de
compilado).
Fácil de utilizar.
Flexibilidad limitada.
Dependencia del compilador.
MIDDLEWARE DE
MIDDLEWARE DE
SISTEMAS DE ALTO
SISTEMAS DE ALTO
RENDIMIENTO
RENDIMIENTO
Lenguajes y entornos de programación
Lenguajes de programación:
Lenguajes de programación:
◦ Lenguajes paralelos
OpenMP
OpenMP
Estructuras de control paralelas
int main(int argc, char **argv)
{
const int MAX = 250000;
int i, m[MAX];
#pragma omp parallel for
for (i = 0; i < MAX; i++)
for (i
)
MIDDLEWARE DE
MIDDLEWARE DE
SISTEMAS DE ALTO
SISTEMAS DE ALTO
RENDIMIENTO
RENDIMIENTO
Servicios a nivel de programación
Servicios:
Servicios:
◦ Sistemas de ficheros de cluster.
◦ Sistemas de memoria compartida distribuida.
OpenMP
OpenMP
Funciones auxiliares:
◦ Barreras de sincronización:
omp_get_thread_num()
omp_get_num_threads()
◦ Información de control:
omp_get_nested()
omp_in_parallel()
◦ Control de cerrojos:
omp_*_lock()
Lustre
Lustre
Desarrollado por
Sun Microsystems
◦ Características
y
generales:
Compatible POSIX
Con estado
Basado en objetos
Tolerante a fallos
DSM:
DSM: TreadMarks
TreadMarks
Biblioteca de DSM a nivel de usuario:
◦ Bibliotecas propias de gestión.
◦ Identificación selectiva de variables
p p
g
compartidas (páginas de memoria virtual).
◦ Indicación explicita de sincronización.
◦ Consistencia perezosa.
◦ Múltiples lectores/escritores.
◦ Utiliza copias de trabajo y originales
modificados.
◦ Combinación en base a diferencias.
DSM:
DSM: TreadMarks
TreadMarks
Uso:
(
_
◦ Reserva de memoria (Tmk malloc).
)
◦ Compartición explícita de memoria
(Tmk_distribute).
◦ Sincronización entre todas las copias
(Tmk_barrier, Tmk_lock_...).
◦ Consistencia al adquirir cerrojos:
Invalidando datos compartidos.
Alternativas:
Recuperándolos bajo demanda (invalidate).
Mandando cambios al adquirir el cerrojo (update).
3/31/2009
5
Links de descarga
http://lwp-l.com/pdf6875
Comentarios de: Middlewares para Sistemas de Alto Rendimiento (0)
Comentarios de: Middlewares para Sistemas de Alto Rendimiento (0)
No hay comentarios