El BSC publica la versión 3.2 del modelo de programación PyCOMPSs/COMPSs

23 Mayo 2023

El Barcelona Supercomputing Center ofrece a la comunidad HPC un conjunto de herramientas que ayudan a los desarrolladores a programar y ejecutar sus aplicaciones de forma eficiente en infraestructuras computacionales distribuidas.

Esta versión de COMPSs incluye varias funcionalidades nuevas, como una nueva caché en software para tareas GPU y soporte para contenedores para tareas desarrolladas con MPI y MPMD.

La funcionalidad para registrar la procedencia de datos se ha extendido con el nuevo perfil Workflow Run Crate profile (v0.1).

El entorno de COMPSs ha sido evaluado con la plataforma EOSC-Synergy SQAaaS y ha obtenido la insignia de plata.

El grupo Workflows and Distributed Computing del Barcelona Supercomputing Center - Centro Nacional de Supercomputación (BSC-CNS) está orgulloso de anunciar el lanzamiento de la versió 3.2 (nombre en clave Narcissus), del entorno de programación COMPSs.

Esta versión de COMPSs, disponible a partir de hoy, actualiza el resultado del trabajo del equipo en los últimos años en la provisión de un conjunto de herramientas que ayudan a los desarrolladores a programar y ejecutar sus aplicaciones de forma eficiente en infraestructuras computacionales distribuidas, como clústers, nubes y clústeres gestionados con contenedores. COMPSs es un modelo de programación basado en tareas capaz de mejorar notablemente el rendimiento de aplicaciones a gran escala mediante la paralelización de manera automática de su ejecución.

COMPSs ha estado disponible en los últimos años por los usuarios del supercomputador MareNostrum y en la Red Española de Supercomputación (RES) y se ha utilizado en varios proyectos de investigación como mF2C, CLASS, ExaQUte, ELASTIC, BioExcel CoE, LANDSUPPORT, EXPERTISE ETN, el proyecto de innovación Edge Twins HPC FET y en un caso de uso del ChEESE CoE. En estos proyectos se ha utilizado COMPSs para desarrollar casos de uso proporcionados por diferentes comunidades de diversas disciplinas como la biomedicina, la ingeniería, la biodiversidad, la química, la astrofísica, finanzas, telecomunicaciones, procesos de fabricación y ciencias de la tierra. Actualmente también está en extensión y en uso en aplicaciones en los proyectos AI-SPRINT, PerMedCoE, MEEP, CAELESTIS, DT-GEO, ICOS, así como en el proyecto nacional HP2C-DT. Una mención especial es el proyecto eFlows4HPC, coordinado por el grupo e iniciado en enero de 2021, que tiene como objetivo desarrollar una pila de software para workflows donde uno de los componentes principales es el entorno PyCOMPSs / COMPSs.

Esta versión incluye una memoria caché en software para tareas de GPU. El soporte para las tareas de la GPU se limitaba a las versiones anteriores a copiar los datos de la memoria de la CPU en la memoria de la GPU, y viceversa, para cada tarea. Con la versión actual, los datos se pueden almacenar en la memoria de la GPU y reutilizarse en múltiples tareas con la consiguiente reducción de tiempo de ejecución. La memoria caché en software almacena los datos en la memoria de la GPU. En caso de que el nodo de memoria donde se necesitan datos determinados esté lleno, el sistema libera objetos de esta GPU menos utilizados recientemente hasta que haya espacio disponible suficiente.

Una de las características de los COMPS es que las tareas pueden ser multihilo o multinodo, por tanto, tienen soporte para tareas MPI. Del mismo modo, el soporte para las tareas MPMD MPI (ensamblaje de múltiples aplicaciones MPI) se añadió a la versión 3.0. Además, en la versión 2.8 se añadió soporte para tareas en contenedores. Sin embargo, el soporte para las tareas MPI y MPMD en contenedores requería mayores desarrollos y se ha añadido para esta versión.

La versión 3.0 de los COMPS incluía ya un mecanismo para registrar automáticamente la procedencia de datos de la ejecución de las aplicaciones COMPS. Esto permite la reproducibilidad y la replicabilidad tanto de las aplicaciones COMPS como de los algoritmos de dislib. El mecanismo se extendió a la versión 3.1 en las aplicaciones Java COMPS. En la versión 3.2 se ha mejorado con soporte para el nuevo perfil Workflow Run Crate (v0.1) y se ha mejorado la estructuración de los archivos fuente de la aplicación entre otros.

COMPSs 3.2 ha sido evaluado con la herramienta EOSC Synergy Software Quality Assurance (SQA) como servicio (SQAaaS). El SQAaaS incluye una herramienta de evaluación que reconoce los atributos de calidad del software, permitiendo un adecuado reconocimiento mediante insignias digitales que se pueden compartir y verificar. COMPSs ha obtenido la insignia de plata por los siguientes criterios: accesibilidad del código (abierto y disponible públicamente), publicación del código bajo licencia de código abierto, disponibilidad de metadatos del código, disponibilidad y formato de la documentación del código y publicación del código con versiones semánticas.

Además, la versión 3.2 de COMPSs viene dotada con otras funcionalidades menores, extensiones y resolución de errores.

COMPSs ha tenido alrededor de 1.000 descargas durante el año pasado y es utilizado por unos 20 grupos en aplicaciones reales. Recientemente, COMPSs ha atraído el interés de áreas como la ingeniería, el reconocimiento de imágenes, la genómica y sismología, áreas en las que se han realizado cursos específicos y acciones de divulgación.

Los paquetes y la lista completa de funciones están disponibles en la página de descargas. En esta página también se puede encontrar una imagen de Docker que permite probar las funcionalidades de COMPSs a través de un tutorial paso a paso que guía al usuario en el desarrollo y ejecución de un conjunto de aplicaciones de ejemplo.

Además del software, hay un conjunto de guías de usuario y administrador, así como artículos publicados en conferencias y revistas relevantes.

Para más información, visite nuestra página web: http://www.bsc.es/compss