El BSC hace pública la versión 2.9 de COMPSs

29 Junio 2021

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 incorpora soporte para tareas anidadas, incluidas las recursivas. Esta característica mejora la programabilidad de las aplicaciones que tienen naturalmente una estructura jerárquica. También ayuda a asignar tareas en grandes nodos y tareas más pequeñas en recursos dentro de los nodos, lo que permite una mejor explotación de la localidad.

Para las aplicaciones en Python, se incluye una nueva memoria compartida entre los diferentes procesos Python que ejecutan las tareas, que mejora el rendimiento de las aplicaciones, ya que reduce el requerimiento de serializar todos los parámetros de las tareas a ficheros.

 

El grup Workflows and Distributed Computing del Barcelona Supercomputing Center-Centro Nacional de Supercomputación (BSC) está orgulloso de anunciar el lanzamiento de la versión 2.9 (nombre en clave Jasmine), 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ústeres, 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 automática de su ejecución.

COMPSs ha estado disponible en los últimos años para 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 EUBra-BIGSEA, MUG, EGI, ASCETIC, TANGO, NEXTGenIO, I-BiDaaS y mF2C. 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, ExaQUte, LANDSUPPORT, el centro de excelencia BioExcel, PerMedCoE, CLASS, ELASTIC y EXPERTISE ETN, así como en el proyecto Edge Twins HPC del tipo Innovation Launchpad. También se ha aplicado a un caso de uso del centro de excelencia ChEESE. Una mención especial es el proyecto eFlows4HPC, coordinado por el grupo, que se inició en enero de 2021 y que tiene como objetivo desarrollar una pila de software para workflows donde uno de los componentes principales es el entorno PyCOMPSs / COMPSs.

La nueva versión incluye soporte para tareas anidadas, incluidas las tareas recursivas. Esta característica mejora la programabilidad de las aplicaciones que tienen naturalmente una estructura jerárquica. También ayuda a asignar tareas en grandes nodos y tareas más pequeñas en recursos dentro de los nodos, lo que permite una mejor explotación de la localidad. Esta característica está habilitada en la versión del runtime con agentes, donde cada agente ejecuta una instancia del runtime, convirtiéndola en un motor de ejecución distribuido.

La serialización y deserialización de los parámetros de las tareas es una de las fases más costosas de la versión Python de COMPSs. En esta versión, se incluye para Python un nuevo soporte con una memoria compartida entre los diferentes procesos Python de la aplicación, que reduce el coste en tiempo de las aplicaciones de Python y que anteriormente tenía que serializar siempre todos los parámetros de las tareas a ficheros. De este modo, se pueden guardar parámetros en la memoria compartida y volverlos a utilizar en varias tareas.

Otras mejoras proceden del trabajo inicial hacia el soporte de checkpoint y reinicio en las aplicaciones COMPSs. En este sentido, una nueva funcionalidad permite finalizar de manera controlada las aplicaciones con un tiempo límite. Esto ayuda a aplicaciones con tiempos de ejecución muy largos que no se pueden ejecutar en un solo trabajo enviado a colas en un planificador de trabajos. En este caso, cuando el trabajo se acerca al límite de tiempo, la aplicación se detiene de forma segura y se puede reiniciar en otro trabajo. La funcionalidad todavía no es totalmente automática y requiere una comprobación inicial por parte de la aplicación para ver si un trabajo anterior estaba ejecutándola.

Otras mejoras son nuevas funciones en la generación de trazas y en el análisis del rendimiento, extendiendo la generación de trazas para el runtime con agentes, añadiendo nuevos eventos en las trazas en general y añadiendo una funcionalidad para poder registrar la cantidad de memoria utilizada por cada proceso.

Además, la versión 2.9 de COMPSs llega con otras funcionalidades menores, extensiones y resolución de errores.

COMPSs ha tenido alrededor de 1.000 descargas durante el año pasado y lo utilizan 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 la 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, donde también se puede encontrar una máquina virtual, 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