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 )