El BSC llença la versió 3.0 de PyCOMPSs/COMPSs

20 Juny 2022

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.

En particular, PyCOMPSs es la interfície per aplicacions Python, component emprat per la convergència entre la supercomputació, intel·ligència artificial i big data.

Aquesta versió de COMPSs inclou diverses funcionalitats noves, com ara suport transparent de checkpointing, creació automàtica d'informació de data provenance i suport per a aplicacions MPMD MPI.

Per les aplicacions en Python, PyCOMPSs inclou una compilació Mypy del codi i s'ha desenvolupat una nova CLI per unificar les execucions d'aplicacions en diferents entorns.

 

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ó 3.0 (nom en clau Lavender), 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 manera automàtica de la seva execució.

COMPSs ha estat disponible en els últims anys pels 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, mF2C, CLASS, ExaQUte, ELASTIC, BioExcel CoE, LANDSUPPORT, EXPERTISE ETN i en el projecte Edge Twins HPC del tipus Innovation Launchpad. 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, PerMedCoE i CAELESTIS. També ha estat aplicat a un cas d'ús del ChEESE CoE. Una menció especial és el projecte eFlows4HPC coordinat per el grup, iniciat el gener del 2021, que té com a objectiu desenvolupar un programari per workflows on un dels components principals és l’entorn PyCOMPSs / COMPSs.

La nova versió inclou noves funcionalitats que amplien la tolerància a fallades de les aplicacions i les seves característiques de reproductibilitat.

S'ha afegit un suport transparent de checkpointing basat en tasques que permet recuperar les execucions fallides. El sistema proposat aprofita el determinisme de les tasques per evitar la reexecució de tasques en cas de fallada, copiant automàticament la seva sortida a mesura que avança l'execució. La realització d'aquestes còpies comporta una sobrecàrrega important en les operacions d'entrada/sortida i en la xarxa; l'equilibri òptim per a aquest compromís entre resiliència i rendiment depèn de cada execució i de les preferències de l'usuari final. Amb aquest objectiu, el sistema proposat és el resultat de la combinació de diferents mecanismes que seleccionen sistemàticament quins valors de sortida cal fer checkpoint, i permet la personalització d'aquestes decisions incorporant mecanismes per definir noves polítiques. A més de les còpies sistemàtiques, el sistema també proporciona als desenvolupadors d'aplicacions un mètode per configurar punts específics del codi de l'aplicació on fer el checkpoint de l'execució.

Els entorn COMPSs també s'han ampliat amb un mecanisme que registra automàticament la procedència de les dades de l'execució de les aplicacions de les COMPSs (data provenance). Això permet la reproductibilitat i la replicabilitat de les aplicacions COMPSs i els algorismes de dislib. L'enfocament es basa en l'especificació RO-Crate 1.1 que ofereix una bona integració amb les eines i marcs existents. El motor d'execució del COMPSs s'ha modificat per generar RO-Crates. Un sistema registra accessos únics als fitxers per identificar automàticament les entrades i sortides de l'aplicació. Un postprocés extreu la informació necessària dels registres per generar el RO-Crate.

En el marc del projecte eFlows4HPC s'han realitzat altres desenvolupaments per permetre la convergència entre Computació d'Alt Rendiment (CAP), Intel·ligència Artificial (IA) i anàlisi de dades. Es proporciona un nou suport per a les aplicacions MPMD MPI com a tasques, així com suport per a l'epíleg i el pròleg de les tasques, i un suport genèric per a descripcions reutilitzables d'execucions de programari extern dins d'una tasca COMPSs. Per tal d'unificar l'execució de l'aplicació en diferents entorns informàtics, s'ha dissenyat i implementat una nova interfície de línia de comandaments (CLI).

Altres millores ofertes són la compilació Mypy de l'enllaç Python per accelerar les execucions de Python, la integració amb DLB DROM per millorar l'afinitat en les tasques OpenMP i el suport RISC-V de 64 bits.

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

COMPSs ha tingut al voltant de 1000 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 la 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 descarregues. En aquesta pàgina també es pot trobar una imatge de Docker que permet provar les funcionalitats de COMPSs a través d'un tutorial pas a pas que guia a 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.