To Top
Optimización del comportamiento paralelo

Optimización del comportamiento paralelo

Imprimir Email
(0 votos)

Optimización del comportamiento paralelo

rack Optimización del comportamiento paralelo - Data System

Las unidades de almacenamiento en disco ofrecen un rendimiento óptimo para los grandes accesos: operaciones de lectura (o escritura) realizadas sobre una gran cantidad de datos en un solo acceso (9 ms para posicionar y solo 3 ms para transferir un bloque de 64 kB [ID01]). Sin embargo, hemos indicado que los patrones de E/S en los programas HPC paralelos consisten en su mayoría en un gran número de peticiones simultáneas sobre cantidades más o menos grandes y no contiguas.

Un enfoque ambiguo, pero todavía muy utilizado, consiste en hacer que un proceso recargue todos los datos útiles para la aplicación en su espacio de memoria. A continuación, los datos se redistribuirán en el momento oportuno a los procesos correspondientes. Además de una red de interconexión rápida (los datos transitan dos veces por la red), esta solución llamada de precarga requiere un espacio de memoria lo suficientemente grande como para soportar el archivo. De lo contrario, la aplicación se enfrenta a un problema de fuera del núcleo que también depende de la E/S.

Para superar este problema de E/S en paralelo, la comunidad científica ha propuesto cuatro enfoques: la agregación de accesos, el uso de técnicas asíncronas, la implementación de técnicas de caché y/o de programación. Como veremos, cada uno de estos mecanismos puede ser implementado en diferentes lugares (nivel de aplicación vs. capas de sistema o nivel de cliente vs. servidores). Como las posibilidades de optimización dependen de la ubicación, cada una de las técnicas tiene que hacer concesiones. En el resto de este capítulo presentaremos las técnicas más utilizadas.

Acceso a la agregación

Esta estrategia implica combinar varias solicitudes en una consulta más larga. Esto tiene dos propósitos: reduce la cantidad de llamadas al sistema de archivos y proporciona un acceso más consistente y eficiente. Muchas tecnologías desarrolladas para mejorar el rendimiento utilizan este principio [TGL02, TGL99a, NL97, LR96, MWLY03, HJMY00]. En la siguiente sección, veremos las principales diferencias entre ellos. Primero describiremos dos enfoques implementados a nivel de proceso único (y, por lo tanto, en un solo nodo informático) y luego examinaremos estrategias de agrupación para combinar solicitudes de aplicaciones distribuidas.
  

data-aggregation Optimización del comportamiento paralelo - Data System

Vectores de E/S

La primera solución para transmitir varias peticiones en una sola llamada es utilizar rutinas de vectores de acceso. Este tipo de enfoque se implementa a nivel de aplicación en los nodos cliente.

La interfaz POSIX proporciona las funciones Read y Write que permiten una llamada para manipular múltiples áreas de memoria disjuntos ubicadas en el espacio de usuario desde/a una porción contigua de un archivo. Desgraciadamente, este primer mecanismo no permite la tarea contraria: manipular un área contigua desde/a múltiples áreas dentro de un archivo.

Para solucionarlo, se ha propuesto el enfoque de la lista de E/S [CCC+03]. Permite indicar dentro de una sola llamada un patrón de acceso complejo: simple, doble, … Una lista de pares (offset, tamaño) describe la distribución de los datos en memoria y una lista similar se utiliza para hacer coincidir en el disco.

E/S basadas en flujos

Este enfoque se ha recomendado para reducir las interacciones que pasan por las redes en el contexto de los sistemas de archivos distribuidos. Desarrollado en el marco del proyecto PVFS ([LR96], véase la sección 3.1.6), el concepto consiste en agregar varias peticiones en una sola trama de red en los nodos cliente para enviarla al servidor de datos. El número de mensajes que pasan por el clúster se reduce así considerablemente.

La construcción de cada trama de “solicitud” tiene en cuenta el protocolo de intercambio utilizado y el tamaño óptimo de los segmentos correspondientes. De este modo, se pueden reducir considerablemente los mensajes de control necesarios para cada solicitud de E/S y, por tanto, el tránsito por la red.

La sobrecarga de este método es la operación de empaquetamiento del acceso dentro de las capas del sistema en el lado del cliente (capa PVFS) y la fase de reestructuración de la solicitud (lado del servidor).

Sin embargo, esta solución no tiene en cuenta los problemas relacionados con la colocación de los datos y el intercalado (es posible realizar varias consultas sobre los mismos datos). Además, se propuso sobre la base de una arquitectura en la que la latencia de la red es relativamente alta en comparación con el rendimiento ofrecido por las unidades de almacenamiento, lo que, como hemos comentado en el capítulo anterior, suele ser inexacto.

data_buffer_icon Optimización del comportamiento paralelo - Data System

 El grado de no continuidad:

Define el espacio entre dos bloques distantes. Por lo tanto, si este factor es demasiado alto, la implementación del método puede ser mucho más cara que el coste acumulado de todos los accesos necesarios para recuperar los datos útiles mediante llamadas simples POSIX. Es importante tener en cuenta que, a diferencia de los dos métodos anteriores, entre la aplicación y el sistema de archivos pasa una cantidad mayor o menor de datos «inútiles». Se ha demostrado que el cálculo de este ratio para cada llamada permite una elección óptima de la estrategia a aplicar sin añadir un coste significativo [Raj02] (presentamos el cálculo del grado de continuidad en detalle en el Apéndice A).

Por último, es interesante señalar que, aunque esta solución también puede utilizarse para las operaciones de escritura, requiere la implementación de un tipo de acceso específico:

Lectura-escritura modificada. Este tipo de procedimiento permite modificar solo las partes deseadas de los datos (la información incluida no se sobrescribe). Además, para mantener la integridad de los datos, es imprescindible bloquear la región del archivo a la que accede la aplicación.

Los accesos de la aplicación. Por lo tanto, para reducir los fenómenos de contención debidos a la toma de bloqueos, el buffer temporal utilizado para las escrituras es de un tamaño mucho menor que el utilizado durante las operaciones de lectura.

Esta solución se encuentra generalmente en las bibliotecas de aplicaciones que implementan las especificaciones de E/S de MPI (ver sección 3.2.6).

memory.png

Fuente

Isabel Moreno Manzano / IES Tetuán de las Victorias / Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Si necesitas más información puedes ponerte en contacto con nosotros en:

Metro Manuel Becerra
Calle Doctor Esquerdo 12
28028 Madrid
Fijo: 910174686
Móvil: 661531890
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

 


Deja un comentario

Calificado 4.69 / 5.0 para Data System Diseño Web

Reparación portátil © Todos los derechos reservados

Hola! Haz clic en uno de nuestros representantes a continuación para chatear por WhatsApp o envíanos un correo electrónico a [email protected]

Chatea con nosotros por WhatsApp
Close and go back to page