El BSC llença la nova versió de PyCOMPSs/COMPSs amb noves funcions per al control d’energia i una major interactivitat

14 Novembre 2023

Aquesta versió de COMPSs inclou suport per al sistema Energy Aware Runtime (EAR) que permet obtenir informació de l'energia consumida en aplicacions en Python.

L'execució interactiva de les aplicacions s'ha millorat amb un nou kernel de Jupyter i una extensió JupyterLab per gestionar PyCOMPS a l'ecosistema Jupyter.

Una altra addició és el suport per a les restriccions dinàmiques a les tasqeus definides per l'usuari.

La nova versió de la dislib inclou nous algorismes pel regressor de Random Forest i per l’avaluació de la SVD truncada

El grup Workflows and Distributed Computing del Barcelona Supercomputing Center-Centro Nacional de Supercomputación (BSC-CNS) llença la versió 3.3 (nom en clau Orquídia), 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 mF2C, CLASS, ExaQUte, ELASTIC, BioExcel CoE, LANDSUPPORT, EXPERTISE ETN, en el projecte Edge Twins HPC del tipus Innovation Launchpad i en un cas d'ús del ChEESE CoE. 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 Europeus AI-SPRINT, PerMedCoE, CAELESTIS, DT-GEO, ICOS, CEEC CoE així com en el projecte HP2C-DT finançat per l'agència estatal de recerca. 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.

Tot i que PyCOMPSs té suport per Jupyter notebooks des de la versió 2.4, la versió actual ha ampliat aquest suport i inclou una extensió JupyterLab. L'extensió permet encendre i apagar el runtime de COMPSs i proporciona ajuda per generar automàticament els decoradors Python, facilitant el desenvolupament d'aplicacions PyCOMPSs. L'extensió també proporciona una interfície gràfica que permet el seguiment interactiu de les aplicacions, mostrant el graf de tasques de l'aplicació i el seu progrés.

COMPSs 3.3 també inclou la integració amb l'Energy Aware Runtime (EAR) per permetre obtenir perfils d'energia en aplicacions basades en Python. El programari EAR és un entorn de gestió que optimitza l'energia i l'eficiència d'un clúster de computació. Per millorar l'energia del clúster, EAR proporciona control energètic, comptabilitat, seguiment i optimització tant de les aplicacions que s'executen al clúster com del clúster global en general. La integració amb COMPSs admet ara la gestió energètica dels fluxos de treball de COMPSs que abans no era possible.

Les tasques de COMPS es poden anotar indicant una restricció que fixa un requisit de maquinari o programari. Per exemple, es pot indicar que la tasca s'ha d'executar amb un nombre determinat de nuclis o amb una quantitat determinada de memòria. Tanmateix, en versions anteriors, aquesta funcionalitat quedava fixada per a totes les tasques d'un mateix tipus en una execució d'una aplicació. En la versió 3.3 es permet el canvi dinàmic d'aquestes restriccions basades en valors de variables globals.

A més, la versió 3.3 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.

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

Nova versió de dislib

El grup també anuncia la nova versió de dislib 0.9.0. La biblioteca de computació distribuïda (dislib) proporciona algorismes distribuïts preparats per utilitzar-los com a biblioteca. Fins ara, dislib s'ha centrat en algorismes d'aprenentatge automàtic i ofereix una interfície inspirada en scikit-learn. L'objectiu principal de dislib és facilitar l'execució d'algoritmes d'anàlisi de big data en plataformes distribuïdes, com ara clústers, núvols i superordinadors. Dislib s'ha implementat a fent servir el model de programació PyCOMPSs.

Dislib es basa en una estructura de dades distribuïdes, ds-array, que permet l'execució paral·lela i distribuïda dels mètodes d'aprenentatge automàtic. El codi de la biblioteca dislib s'implementa com una aplicació PyCOMPSs, on els diferents mètodes s'anoten com a tasques PyCOMPSs. En el moment de l'execució, PyCOMPSs s'encarrega de tots els aspectes de paral·lelització i distribució de dades. Tanmateix, el codi d'usuari de l'usuari final de la dislib omet els aspectes de paral·lelització i distribució, i està escrit com a simples scripts de Python, amb una interfície molt semblant a la interfície de scikit-learn. Dislib inclou mètodes d'agrupació, classificació, regressió, descomposició, selecció de models i gestió de dades. Un contracte de recerca amb FUJITSU va finançar parcialment la biblioteca dislib i es va utilitzar per avaluar el processador A64FX. Actualment, els desenvolupaments dislib estan finançats pel projecte H2020 AI-Sprint i pel projecte EuroHPC eFlows4HPC.

Des de la seva creació, dislib s'ha aplicat en casos d'ús d'astrofísica (DBSCAN, amb dades de la missió GAIA), anàlisi de resultats de dinàmiques moleculars (Daura i PCA, BioExcel CoE). En el projecte eFlows4HPC, s'està aplicant en dos casos d'ús: en informàtica urgent per a riscos naturals (regressors Random Forest), en bessons digitals per a la fabricació (SVD) i en l’entrenament distribuït de xarxes neuronals. En el projecte AI-Sprint es desenvolupa un cas d'ús d'assistència sanitària personalitzada per la detecció de fibril·lació auricular mitjançant l'ús de l'algorisme Random Forest.

La versió 0.9.0 inclou dues versions noves de l'algorisme regressor de Random Forest seguint un enfocament de dades paral·leles: una solució basada en l'ús del mecanisme de gestió d'errors de les tasques PyCOMPSs i una segona basada en el paradigma de nidificació PyCOMPSs on les tasques paral·leles poden generar altres tasques dins d'elles. També inclou dos nous algorismes SVD: el RandSVD i el LancSVD. Tots dos implementen la SVD truncada, però el RandSVD l'implementa mitjançant un algorisme aleatori i LancSVD es basa en l'algorisme de Lanczos. El llançament també inclou una versió ampliada de l'algoritme TeraSort que permet ordenar l'algorisme per columnes. A més, s'han inclòs altres operadors i extensions més petites per tractar el ds-array.

Dislib 0.9.0 ve amb altres extensions i amb una nova guia d'usuari. El codi es obert i esta disponible per la seva descarrega.