Esta versión de COMPSs incluye soporte para el sistema Energy Aware Runtime (EAR) que permite obtener información de la energía consumida en aplicaciones en Python.
- La ejecución interactiva de las aplicaciones se ha mejorado con un nuevo kernel de Jupyter y una extensión JupyterLab para gestionar PyCOMPSs en el ecosistema Jupyter.
- Otra adición es el soporte para las restricciones dinámicas a las tareas definidas por el usuario.
- La nueva versión de la dislib incluye nuevos algoritmos para el regresor de Random Forest y para la evaluación de la SVD truncada
El grupo Workflows and Distributed Computing del Barcelona Supercomputing Center-Centro Nacional de Supercomputación (BSC-CNS) lanza la versión 3.3 (nombre en clave Orquída), 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 ha sido usado 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 Europeos AI-SPRINT, PerMedCoE, CAELESTIS, DT-GEO, ICOS, CEEC CoE así como en el proyecto nacional HP2C-DT. Una mención especial es el proyecto eFlows4HPC coordinado por el grupo, 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.
Aunque PyCOMPSs tiene soporte para Jupyter notebooks desde la versión 2.4, la versión actual ha ampliado este soporte e incluye una extensión para JupyterLab. La extensión permite encender y apagar el runtime de COMPSs y proporciona ayuda para generar automáticamente los decoradores Python, facilitando el desarrollo de aplicaciones PyCOMPSs. La extensión proporciona también una interfaz gráfica que permite el seguimiento interactivo de las aplicaciones, mostrando el grafo de tareas de la aplicación y su progreso.
COMPSs 3.3 también incluye la integración con el Energy Aware Runtime (EAR) para permitir obtener perfiles de energía en aplicaciones basadas en Python. El software EAR es un entorno de gestión que optimiza la energía y la eficiencia de un cluster de computación. Para mejorar la energía del cluster, EAR proporciona control energético, contabilidad, seguimiento y optimización tanto de las aplicaciones que se ejecutan en el cluster como del cluster global en general. La integración con COMPSs admite ahora la gestión energética de los flujos de trabajo de COMPSs que antes no era posible.
Las tareas de COMPS pueden anotarse indicando una restricción que fija un requisito de hardware o software. Por ejemplo, se puede indicar que la tarea debe ejecutarse con un número determinado de núcleos o con una cantidad determinada de memoria. Sin embargo, en versiones anteriores, esta funcionalidad quedaba fijada para todas las tareas de un mismo tipo en una ejecución de una aplicación. En la versión 3.3, se permite el cambio dinámico de estas restricciones basado en valores de variables globales.
Además, la versión 3.3 de COMPSs viene dotada con otras funcionalidades menores, extensiones y resolución de errores.
COMPSs ha tenido alrededor de 1000 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, y artículos publicados en conferencias y revistas relevantes.
Para más información, visite nuestra página web: http://www.bsc.es/compss
Nueva versión de dislib
El grupo también anuncia la nueva versión de dislib 0.9.0. La biblioteca de computación distribuida (dislib) proporciona algoritmos distribuidos preparados para utilizarlos como biblioteca. Hasta ahora, dislib se ha centrado en algoritmos de aprendizaje automático y ofrece una interfaz inspirada en scikit-learn. El objetivo principal de dislib es facilitar la ejecución de algoritmos de análisis de big data en plataformas distribuidas, como clusters, nubes y superordenadores. Dislib se ha implementado utilizando el modelo de programación PyCOMPSs.
Dislib se basa en una estructura de datos distribuidos, ds-array, que permite la ejecución paralela y distribuida de los métodos de aprendizaje automático. El código de la biblioteca dislib se implementa como una aplicación PyCOMPSs, donde los distintos métodos se anotan como tareas PyCOMPSs. En el momento de la ejecución, PyCOMPSs se encarga de todos los aspectos de paralelización y distribución de datos. Sin embargo, el código de usuario del usuario final de la dislib omite los aspectos de paralelización y distribución, y está escrito como simples scripts de Python, con una interfaz muy parecida a la interfaz de scikit-learn. Dislib incluye métodos de agrupación, clasificación, regresión, descomposición, selección de modelos y gestión de datos. Un contrato de investigación con FUJITSU había financiado parcialmente la biblioteca dislib y se utilizó para evaluar al procesador A64FX. Actualmente, los desarrollos dislib están financiados por los proyectos H2020 AI-Sprint y EuroHPC eFlows4HPC.
Desde su creación, dislib se ha aplicado en casos de uso de astrofísica (DBSCAN, con datos de la misión GAIA), anàlisis de resultados de dinámicas moleculares (Daura y PCA, BioExcel CoE). En el proyecto eFlows4HPC, se está aplicando en dos casos de uso: en informática urgente para riesgos naturales (regresores Random Forest), en gemelos digitales para la fabricación (SVD) y en el entrenamiento distribuido de redes neuronales. En el proyecto AI-SPRINT se implementa una aplicación de asistencia sanitaria personalizada para la detección de fibrilación auricular mediante el algoritmo Random Forest.
La versión 0.9.0 incluye dos versiones nuevas del algoritmo regresor de Random Forest siguiendo un enfoque de datos paralelos: una solución basada en el uso del mecanismo de gestión de errores de las tareas PyCOMPSs y una segunda basada en el paradigma de nidificación PyCOMPSs donde las tareas paralelas pueden generar otras tareas dentro de ellas. También incluye dos nuevos algoritmos SVD: el RandSVD y el LancSVD. Ambos implementan la SVD truncada, pero el RandSVD lo implementa mediante un algoritmo aleatorio y LancSVD se basa en el algoritmo de Lanczos. El lanzamiento también incluye una versión ampliada del algoritmo TeraSort que permite ordenar el algoritmo por columnas. Además, se han incluido otros operadores y extensiones más pequeñas para tratar el ds-array.
Dislib 0.9.0 viene con otras extensiones y con una nueva guía de usuario. El código es abierto y está disponible para su descarga.