El BSC fa pública la versió 2.9 de COMPSs

29 Juny 2021

El Barcelona Supercomputing Center ofereix COMPSs a la comunitat HPC un conjunt d'eines que ajuden els desenvolupadors a programar i executar les seves aplicacions de forma eficient en infraestructures computacionals distribuïdes.

Aquesta versió de COMPSs aporta suport per a tasques niuades, incloses les recursives. Aquesta característica millora la programabilitat de les aplicacions que tenen naturalment una estructura jeràrquica. També ajuda a assignar tasques grans a nodes i tasques més petites a recursos dins dels nodes, cosa que permet una millor explotació de la localitat.

Per les aplicacions en Python, s'inclou una nova memòria compartida entre els diferents processos Python que executen les tasques, que millora el rendiment de les aplicacions ja que redueix el requeriment de serialitzar tots els paràmetres de les tasques a fitxers.

El grup Workflows and Distributed Computing del Barcelona Supercomputing Center-Centro Nacional de Supercomputación (BSC) està orgullós d'anunciar el llançament de la versió 2.9 (nom en clau Jasmine), de l'entorn de programació COMPSs.

Aquesta versió de COMPSs actualitza el resultat del treball de l'equip en els darrers anys en la provisió d'un conjunt d'eines que ajuden els desenvolupadors a programar i executar les seves aplicacions de forma eficient en infraestructures computacionals distribuïdes, com ara clústers, núvols i clústers gestionats amb contenidors. COMPSs és un model de programació basat en tasques capaç de millorar notablement el rendiment d'aplicacions a gran escala mitjançant la paral·lelització de la seva execució automàticament.

COMPSs ha estat disponible en els últims anys per als usuaris del supercomputador MareNostrum i a la Red Española de Supercomputación (RES) i ha estat emprat en diversos projectes de recerca, com ara EUBra-BIGSEA, MUG, EGI, ASCETIC, TANGO, NEXTGenIO, I-BiDaaS i mF2C. En aquests projectes s'ha fet servir COMPSs per desenvolupar casos d'ús proporcionats per diferents comunitats de diverses disciplines, com la biomedicina, l'enginyeria, la biodiversitat, la química, l'astrofísica, aplicacions financeres, telecomunicacions, processos de fabricació i ciències de la terra. Actualment també està en extensió i en ús en aplicacions en els projectes AI-SPRINT, ExaQUte, LANDSUPPORT, el centre d’excel·lència BioExcel, PerMedCoE, CLASS, ELASTIC i EXPERTISE ETN, així com en el projecte Edge Twins HPC del tipus Innovation Launchpad. També ha estat aplicat a un cas d'ús del centre d’excel·lència ChEESE Una menció especial és el projecte eFlows4HPC, coordinat per el grup, que es va iniciar el gener del 2021 i que té com a objectiu desenvolupar un programari per workflows on un dels components principals és l’entorn PyCOMPSs / COMPSs.

La nova versió inclou suport per a tasques niuades, incloses les recursives. Aquesta característica millora la programabilitat de les aplicacions que tenen naturalment una estructura jeràrquica. També ajuda a assignar tasques grans a nodes i tasques més petites en recursos dins dels nodes, cosa que permet una explotació millor de la localitat. Aquesta característica està habilitada a la versió del runtime amb agents, on cada agent executa una instància del runtime, convertint-la en un motor d'execució distribuït.

La serialització i deserialització dels paràmetres de les tasques és una de les fases més costoses de la versió Python de COMPSs. En aquesta versió, s'inclou per a Python un nou suport amb una memòria compartida entre els diferents processos Python de l'aplicació, que redueix el cost en temps de les aplicacions de Python i que abans havia de serialitzar sempre tots els paràmetres de les tasques a fitxers. D'aquesta manera, es poden guardar paràmetres a la memòria compartida i tornar-los a utilitzar per diverses tasques.

Altres millores són resultat del treball inicial envers el suport de checkpoint i reinici a les aplicacions COMPSs. En aquest sentit, una nova funcionalitat permet finalitzar de manera controlada les aplicacions amb un temps límit. Això ajuda aplicacions amb temps d'execució molt llargs que no es poden executar en un sol treball enviat a cues d'un planificador de treballs. En aquest cas, quan el treball s'apropa al límit de temps, l'aplicació es deté de forma segura i es pot reiniciar en un altre treball. La funcionalitat encara no és totalment automàtica i requereix una comprovació inicial per part de l'aplicació per veure si un treball anterior estava executant-la.

Altres millores són noves funcions en la generació de traces i anàlisi del rendiment, per les quals hem estès la generació de traces per el runtime amb agents, hem afegit nous esdeveniments en les traces en general i hem incorporat una funcionalitat per poder registrar la quantitat de memòria utilitzada.

A més, la versió 2.9 de COMPSs ve dotada amb altres funcionalitats menors, extensions i resolució d’errors.

COMPSs ha tingut al voltant de 1.000 descàrregues durant l'any passat i és utilitzat per uns 20 grups en aplicacions reals. Recentment, COMPSs ha atret l'interès d'àrees com l’enginyeria, el reconeixement d'imatges, la genòmica i la sismologia, àrees on s'han realitzat cursos específics i accions de divulgació.

Els paquets i la llista completa de funcions estan disponibles a la pàgina de descàrregues. En aquesta pàgina també es pot trobar una maquina virtual, que permet provar les funcionalitats de COMPSs a través d'un tutorial que, pas a pas, guia l'usuari en el desenvolupament i execució d’un conjunt d'aplicacions d'exemple.

A més del software, hi ha un conjunt de guies d'usuari i administrador i articles publicats a conferències i revistes rellevants.

Per a més informació, visiteu la nostra pàgina web: http://www.bsc.es/compss