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

25 Junio 2020

El BSC 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 incluye algunas extensiones para aplicaciones intensivas de E/S: el soporte a un nuevo tipo de tareas de E/S que pueden superponerse con tareas computacionales y la posibilidad limitar el ancho de banda de almacenamiento usado por una tarea para poder controlar la cantidad de tareas intensivas en E/S que se ejecutan en un mismo instante.

Esta nueva distribución también viene con PyCOMPSs-player, una herramiento para desplegar y controlar un entorno PyCOMPSs/COMPSs basado en contenedores, listo para desarrollar y probar aplicaciones.

 

El grupo 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.7 (nombre en clave Jacinto), 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 EUBra-BIGSEA, MUG, EGI, ASCETIC, TANGO, NEXTGenIO, 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 y ciencias de la tierra. Actualmente también está en extensión y en uso en aplicaciones en los proyectos CLASS, ELASTIC, ExaQUte, LANDSUPPORT, the BioExcel CoE, y en EXPERTISE ETN, así como en un contrato de investigación con FUJITSU.

La nueva versión viene con soporte específico para aplicaciones intensivas de E/S con funcionalidades que permiten el soporte específico a la E/S: la nueva anotación @IO identifica tareas que básicamente están haciendo una operación de E/S. Esas tareas hacen un uso muy bajo del procesador y, por tanto, pueden superponerse con tareas computacionalmente intensivas. Las tareas de E/S pueden ser de cualquier tipo soportado por COMPSs: tareas regulares, tareas que invocan binarios externos y tareas MPI, lo que le permite dar soporte a tareas de E/S paralelas que usan MPI. Otro mecanismo, que se puede combinar con las tareas E/S, es la restricción de ancho de banda de almacenamiento. Esta proporciona una indicación de la cantidad de ancho de banda requerida por la tarea y se utiliza para limitar el número máximo de tareas de E/S que se ejecutan en paralelo, intentando no exceder el ancho de banda máximo de la infraestructura de almacenamiento. El motor de ejecución de COMPSs utiliza ambos mecanismos para planificar y ejecutar mejor las aplicaciones intensivas en E/S.

Otra adición muy interesante a esta nueva versión es PyCOMPSs-player. PyCOMPSs-player es una herramienta para usar interactivamente PyCOMPSs en máquinas locales a través de imágenes de Docker, lo que permite una instalación rápida para tutoriales, demostraciones, desarrollo de aplicaciones o test, o para sistemas donde la instalación puede ser difícil. Se puede instalar usando pip. Viene con un pequeño conjunto de comandos sencillos para inicializar (que descarga la imagen de Docker por primera vez), para iniciar un servidor Jupyter-notebooks, para iniciar el monitor COMPSs, etc.

COMPS 2.7 también admite un nuevo tipo de dependencia de datos basada en directorios en lugar del nombre de archivo real. Esto permite definir dependencias de datos en aplicaciones que usan directorios para organizar múltiples archivos usados ​​por una tarea.

Otras extensiones son: una nueva propiedad "peso" de parámetro que permite a las políticas de localidad tener en cuenta el tamaño del parámetro; soporte para tareas híbridas MPI + OpenMP; soporte para type-hinting en Python; mejoras y optimizaciones en DDS-2, que admite una sintaxis de tipo Spark.
Además, la versión 2.7 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 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, y artículos publicados en conferencias y revistas relevantes.

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