Download Middleware

Document related concepts
no text concepts found
Transcript
Middlewares para Sistemas de Alto
Rendimiento
José M. Peña
Contenidos
y
y
Middlewares:
Ejemplo lenguajes/entornos de
programación:
◦ Lenguaje de programación paralela:
x OpenMP
y
Ejemplos de servicios HPC:
◦ Sistemas de ficheros para cluster
x Lustre
◦ Memoria compartida distribuida
x TreadMarks
Middleware
y
Middleware: En el concepto de
“software intermediario”, da soporte al
p
desarrollo de aplicaciones
distribuidas:
◦ Abstracción: Haciendo de interfaz entre
las tareas/procesos y el hardware o
sistema operativo.
◦ Servicios: Proporciona servicios y
funcionalidades para el desarrollo de
aplicaciones.
li
i
Middleware de un Sistema
Distribuido
y
Objetivos:
Middleware de un Sistema Cluster
y
◦ Interoperabilidad.
◦ Facilidad de desarrollo.
y
Ejemplos de Servicios:
◦ Rendimiento.
◦ Disponibilidad.
y
◦ Descubrimiento.
◦ Seguridad.
y
Mecanismos:
Ejemplos de Servicios:
◦ Acceso a datos.
◦ Checkpointing.
y
◦ Recubrimiento del Software
◦ Abstracciones.
◦ Deslocalización de
servicios.
Objetivos:
Mecanismos:
◦ Acceso directo al HW
◦ Reparto de carga.
◦ Caching.
Middleware
Niveles de Middleware
◦ Nivel de implementación:
x Acceso a E/S compartida (e.g., disco).
x Migración de procesos/checkpointing.
procesos/checkpointing
x Espacio unificado (procesos, usuarios, …)
◦ Nivel de programación:
x Lenguajes y bibliotecas específicos (HPF, MPI, OpenMP)
x Servicios:
x Sistemas de ficheros de cluster
x Memoria compartida distribuida (DSM)
◦ Nivel de gestión:
x Gestión de trabajos.
x Administración del sistema.
sistema
MIDDLEWARE DE
SISTEMAS DE ALTO
RENDIMIENTO
Lenguajes y entornos de programación
y
Lenguajes de programación:
◦ Lenguajes paralelos
OpenMP
Estandarizado.
Estandarizado
y Adecuado para:
y
◦ Máquinas SMP
◦ Memoria compartida
◦ Paralelismo
P l li
a nivel
i ld
de ttarea/datos
/d t
y
Características:
x Basado en directrices de pre-procesador (en fase de
compilado).
x Fácil de utilizar.
utilizar
x Flexibilidad limitada.
x Dependencia del compilador
compilador.
OpenMP
y
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++)
m[i] = i*i*1.23;
return 0;
}
OpenMP
y
Mecanismos de sincronización:
◦ Barreras de sincronización:
x #pragma omp barrier
◦ Operaciones atómicas:
x #pragma omp atomic
◦ Secciones críticas:
x #pragma
#
omp critical
iti l
OpenMP
y
Funciones auxiliares:
◦ Barreras de sincronización:
x omp_get_thread_num()
omp get thread num()
x omp_get_num_threads()
◦ Información de control:
x omp_get_nested()
x omp_in_parallel()
omp in parallel()
◦ Control de cerrojos:
x omp_*_lock()
* l k()
MIDDLEWARE DE
SISTEMAS DE ALTO
RENDIMIENTO
Servicios a nivel de programación
y
Servicios:
◦ Sistemas de ficheros de cluster.
p
distribuida.
◦ Sistemas de memoria compartida
Lustre
y
Desarrollado por
Sun Microsystems
◦ Características
generales:
x Compatible POSIX
x Con estado
x Basado en objetos
x Tolerante a fallos
◦ Componentes:
C
t
x Object Storage Client
(OSC)
(OSC).
x Metadata Served
(MDS)
x Object Storage Server
(
(OSS)
)
Lustre
LDAP Server
◦ Componentes:
x Object Storage
Client (OSC).
x Metadata Served
(MDS)
x Object Storage
Server (OSS)
Meta-data
M
d Server
S
(MDS)
Configuration information, network connection details,
& security management
Lustre Client
Directory operations,
Meta-data & concurrency
recovery,
file status,
file creation
file I/O &
file locking
Object
Targets
Obj
SStorage T
(OST)
Object Storage Targets
(OST)
© S.Ravindrandh Chowdary
Lustre File System – HP, 09
Lustre
y
Mejoras de rendimiento:
◦ Soporte nativo sobre redes de altas
prestaciones (e
(e.g.,
g InfiniBand),
InfiniBand) en lugar
de pasar por la pila TCP/IP
DSM
y
Motivación:
◦ Migración de código de sistemas
multiprocesadores/vectoriales.
multiprocesadores/vectoriales
◦ Modelo de programación más intuitivo.
y
Implementaciones:
◦ Basadas en compiladores.
compiladores
◦ Basadas en memoria virtual:
x TreadMarks
T dM k
DSM: Gestión de Copias
y
Número de copias:
◦ Única: Mal rendimiento.
◦ Múltiples de lectura
lectura.
◦ Múltiples de lectura/escritura.
y
Localización:
◦ Broadcast.
B d
◦ Gestor de páginas DSM
◦ Gestión distribuidas: Múltiples gestores.
DSM: TreadMarks
y
Biblioteca de DSM a nivel de usuario:
◦ Bibliotecas propias de gestión.
◦ Identificación selectiva de variables
compartidas (páginas de memoria virtual).
◦ Indicación explicita de sincronización
sincronización.
◦ Consistencia perezosa.
◦ Múltiples lectores/escritores.
lectores/escritores
◦ Utiliza copias de trabajo y originales
modificados.
modificados
◦ Combinación en base a diferencias.
DSM: TreadMarks
y
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:
x Invalidando datos compartidos.
x Alternativas:
x Recuperándolos bajo demanda (invalidate).
x Mandando cambios al adquirir
q
el cerrojo
j ((update).
p
)