Nueva versión de la librería DLB (2.0) con nueva interfaz para gestionar los recursos asignados a procesos en ejecución

08 Enero 2018

La principal novedad de esta versión es el nuevo módulo DROM, que proporciona una interfaz para entidades externas que permite cambiar los recursos computacionales asignados a procesos durante su ejecución.

El departamento de Ciencias de la Computación del BSC anuncia el lanzamiento de la versión 2.0 de la librería DLB (Dynamic Load Balance). La principal novedad de esta versión es el nuevo módulo DROM (Dynamic Resource Ownership Management). Este proporciona una interfaz para entidades externas (por ejemplo, un gestor de recursos) que permite cambiar los recursos computacionales asignados a procesos durante su ejecución.

Además, en esta versión también se ha ampliado el módulo encargado de mejorar el balanceo de carga entre procesos (LeWI). Concretamente, LeWI permite ahora una comunicación asíncrona con los runtimes a través de una extensión en la API.

Marta García, investigadora principal del equipo DLB, asegura que “mejorar el balanceo de carga no solo es importante para mejorar el rendimiento de las aplicaciones a nivel individual, también es clave para aprovechar al máximo los recursos de supercomputación”.

DLB tiene un gran potencial para solucionar los problemas de balanceo de carga en aplicaciones híbridas, que de otra manera implicarían grandes esfuerzos de modificación del código. También aligera la decisión de los usuarios sobre la mejor configuración de procesos y threads en códigos híbrido”, afirma Jesús Labarta, director del departamento de Ciencias de la Computación.

Varios proyectos europeos cuentan hoy en día con la ayuda de DLB para mejorar el balanceo de carga, entre ellos: Human Brain Project, HPC Europa 3, MontBlanc 3, POP o Interwine. Además, es utilizado por una amplia gama de aplicaciones de diferentes campos, desde la neurociencia, la mecánica computacional, la dinámica molecular, o las simulaciones cosmológicas o el modelado climático.

DLB es la herramienta que usamos, principalmente, para mitigar el impacto del desbalanceo de carga en las ejecuciones de Alya. Estos desbalanceos pueden aparecen espontáneamente o provenir de la repartición inicial de datos. DLB resuelve ambos problemas en tiempo de ejecución, actuando solo cuando es necesario, y haciendo nuestra aplicación mucho más flexible para usar los nuevos entornos HPC. Ahorramos millones de horas de CPU cada año gracias a DLB” explica Ricard Borrell, investigador senior del equipo de desarrollo de Alya.

Actualmente, la librería DLB está organizada en 2 módulos diferentes, LeWI y DROM, que son independientes entre ellos pero pueden trabajar de manera coordinada.

En esta nueva versión de DLB, además de algunas correcciones de errores, se han introducido las siguientes nuevas funcionalidades:

1. DROM (Dynamic Resource Ownership Management) module.

- DROM ofrece una interfaz para entidades externas (por ejemplo, un gestor de colas o recursos), que permite quitar o añadir CPUs a un proceso en ejecución y re-asignarlas a otro proceso que empieza o que ya está en ejecución.

2. Versión asíncrona del algoritmo de balanceo LeWI (Lend When Idle).

- El algoritmo de balanceo LeWI, ahora puede trabajar de manera síncrona o asíncrona. La nueva versión asíncrona permite una interacción entre los sistemas de runtime y DLB sin consultas constantes.

3. Nueva API publica de DLB

- Más clara, con la unificación de la nomenclatura.

- Más exhaustiva, soportando más casos de uso.

4. Sistema de callbacks para runtimes parallelos

- El sistema de callbacks permite registrar funciones para ser llamadas por DLB. Ofreciendo una interfaz cómoda para integrar nuevos runtimes paralelos con DLB.

5. Soporte de interoperabilidad para múltiples runtimes

- DLB ofrece soporte para múltiples runtimes en el mismo proceso compartiendo recursos computacionales.

6. Nuevo mecanismo para configurar el uso de DLB basado en la variable de entorno DLB_ARGS.

- Ahora, las opciones de DLB están encapsuladas en una sola variable de entorno, facilitando así la configuración y detección de errores cuando se establecen las opciones de ejecución.

Se puede descargar DLB de manera gratuita (distribuido bajo licencia de código abierto LGPL-3.0) y obtener más información en la página de DLB: https://pm.bsc.es/dlb