DLB Library (Dynamic Load Balancing)

Biblioteca dedicada a accelerar aplicacions híbrides paral·leles

Institució:

Institution

Grup d´investigació:

.

Investigador/s:

Marta Garcia Gasulla, Víctor López Herrero

DLB Library (Dynamic Load Balancing)

Web:

https://pm.bsc.es/dlb

Descripció:

La biblioteca DLB millorarà l'equilibri de càrrega del nivell exterior de paral·lelisme (per exemple, MPI) redistribuint els recursos computacionals al nivell intern de paral·lelisme (per exemple, OpenMP). Aquest reajust dels recursos es farà de manera dinàmica en temps d'execució.

Aquest dinamisme permet a DLB reaccionar davant diferents fonts de desequilibri: algorisme, dades, arquitectura de maquinari, variabilitat i disponibilitat de recursos entre d'altres.

Com funciona DLB?
DLB utilitzarà la mal·leabilitat del nivell intern de paral·lelisme per canviar el nombre de fils dels diferents processos que s'executen al mateix node. Hi ha diferents algorismes d'equilibri de càrrega implementats dins de DLB. Tots es basen en aquesta idea principal, però s'orienten a diferents tipus d'aplicacions o situacions.

Qui pot utilitzar DLB?
Qualsevol aplicació escrita en C, C++ o Fortran en qualsevol dels models de programació paral·lel compatibles. Els models de programació paral·lel compatibles actuals són els següents:

MPI+OpenMP
MPI+OmpSs
OmpSs (aplicacions múltiples)
Estem oberts a afegir suport per a més models de programació tant a nivell de paral·lelisme interior com extern.

Requisits tècnics:
Memòria compartida entre processos: DLB necessita un node de memòria compartida i més d'un procés en execució al mateix node.
Mecanisme de precàrrega: el sistema ha de proporcionar un mecanisme de precàrrega per interceptar les trucades MPI. (No és necessari si utilitzeu el temps d'execució de Nanos++ i no necessitem interceptar trucades MPI)
Regions paral·leles a OpenMP: si s'utilitza el model OpenMP, DLB necessita diferents regions paral·leles per obrir i tancar per canviar el nombre de fils (és a dir, l'estàndard OpenMP només permet canviar el nombre de fils fora d'una regió paral·lela).
Mode d'espera no ocupat per a trucades MPI: per utilitzar la CPU que està esperant en comunicació, DLB necessita que les trucades MPI estiguin ocupades esperant. Les diferents implementacions MPI solen oferir una manera d'obtenir aquest comportament, però no està habilitat per defecte. DLB ofereix un mode on no s'utilitzarà la CPU on s'està executant la trucada MPI, però es penalitza el rendiment obtingut.

Problema:

N/A

Solució:

N/A

Àrees d'aplicació:

N/A

Novetat:

N/A

Protecció:

LGPL License (Version 3.0)

Mercat objectiu:

N/A

Keywords:

Models de programació

TRL: N/A

CRL: N/A

BRL: N/A

IPRL: N/A

TmRL: N/A

FRL: N/A

Més informació

Si vols saber més sobre aquest projecte no dubtis en contactar amb nosaltres

Contacta´ns