Il progetto vuole sviluppare una tecnologia open source in ambiente Linux per il partizionamento delle GPU.
Abilitare queste tecnologie in ambiente Linux KVM appianerebbe una delle più importanti differenze che ancora giocano a discapito della sua adozione in contesti professionali e scientifici che necessitano di potenza di calcolo grafica. Questa soluzione si rivolge sia a applicazioni di calcolo su GPU, sia ad applicazioni di VDI (Virtual Desktop Infrastructure). Per entrambi, la motivazione di questa spinta, fulcro del progetto, è poter migliorare le soluzioni attualmente adottate per massimizzarne l’efficacia, economica ed energetica.
Dal punto di vista del calcolo, molto spesso, i software per GPU richiedono un enorme lavoro per riuscire ad utilizzare pienamente l’hardware a disposizione, il che si traduce in ingenti investimenti per lo sviluppo e l’ottimizzazione degli algoritmi, per permetterne la scalabilità. Questi sviluppi richiedono alta specificità degli algoritmi che portano spesso ad una perdita di portabilità del software. Tuttavia, se questo obiettivo non viene perseguito, la GPU viene utilizzata solo in parte, sprecando una frazione importante delle prestazioni di picco e dell’investimento iniziale. La possibilità di partizionare una GPU, tramite definizione software, permette di superare questo limite, consentendo di usare software meno ottimizzati eseguendone più istanze in maniera parallela. Con questo approccio ci aspettiamo di osservare una migliore saturazione della potenza delle GPU, il che si traduce in maggiore efficienza energetica dell’hardware e maggiore compatibilità.
Lo stesso approccio è mutabile per la virtualizzazione di macchine di front-end, cioè quelle la cui operazione avviene tramite interazione schermo-tastiera-mouse. In questo ambito la frontiera offerta da questo progetto è la possibilità di incrementare il numero di utenti per server e il conseguente miglioramento delle prestazioni energetiche ed economiche.
Questa soluzione può essere adottata come front-end per un cluster HPC (High Performance Computing), permettendo agli utenti di appoggiarsi ad una sessione remota dotata di accelerazione grafica per la visualizzazione dei risultati dei calcoli eseguiti dal cluster.
Federica Legger
2021
Sistemi di elaborazione dati e workflow
Per maggiori informazioni sul progetto, SCRIVICI