---
# System prepended metadata

title: <center>Open ForBC</center>

---

# <center>Open ForBC</center>
### <center>Stato e possibili integrazioni all'interno dell'INFN</center>
##### <center>Federica Legger e Gabriele Gaetano Fronzé</center>
###### <center>Luglio 2021</center>

## Progressi
Nei mesi scorsi sono stati compiuti alcuni progressi cruciali per la riuscita del progetto. Sono affrontati qui di seguito.

### Risorse umane
Open ForBC è stato inserito come proposta di progetto Google Summer of Code all'interno dell'organizzazione CERN HSF. Il progetto ha ricevuto più di 5 valide candidature e uno studente è stato selezionato. Aneesh Chawla lavorerà per circa 3 mesi al progetto, sviluppando una infrastruttura di benchmark necessaria per misurare le prestazioni garantite da Open ForBC. La remunerazione dello studente sarà erogata da Google per l'intera durata del GSoC.

I fondi garantiti da R4I per l'assunzione di risorse umane locali per lo sviluppo del progetto sono stati impegnati per bandire posizioni per neodiplomati.
Infatti, dopo aver tentato di individuare un valido candidato con laurea magistrale o dottorato di ricerca, è risultato evidente che l'offerta remunerativa non sarebbe risultata competitiva rispetto a quanto proposto da contesti privati.
Sono quindi state bandite due posizioni per neodiplomati. Queste borse, economicamente molto vantaggiose per studenti universitari entro i 5 anni dal conseguimento del diploma, hanno riscontrato l'interesse di due candidati, dei quali uno già precedentemente impegnato nel Centro di Calcolo della sezione INFN di Torino. La commissione ha valutato i candidati il primo luglio 2021, che prenderanno servizio a metà agosto.

### Provisioning dell'hardware
L'hardware individuato come testbench per il progetto doveva presentare le seguenti caratteristiche:
* BMC per gestione remota completa (accensione, spegnimento e aggiornamento BIOS)
* Slot PCI Express di quarta generazione per evitare bottleneck
* Fisicamente compatibili con l'installazione di 3-4 schede video dual slot
* Alimentazione elettrica compatibile con l'installazione di 3-4 schede video con consumo fino a 400W
* Compatibilità con SSD NVMe per fornire un sottosistema di storage ad alte prestazioni
* Sistema spazioso per permettere la sostituzione agevole delle GPU

La soluzione individuata è un prodotto Gigabyte di recente rilascio.
Il sistema è basato su piattaforma AMD Ryzen Threadripper PRO, specifica per workstation, ma molto simile alla piattaforma server AMD Epyc.
Questo sistema offre 8 slot PCI Express 4.0 16x con collegamento diretto al processore (senza chipset), otto canali di RAM DDR4, CPU fino a 64 core e 128 thread e clock elevato.

In particolare sono state acquistate due macchine configurate come segue:

| Componente | Modello |
| -------- | -------- |
| CPU     | AMD Ryzen Threadripper PRO 3955WX (16 core @ 3.9 GHz) |
| Motherboard | Gigabyte MC62-G40 |
| RAM | 8 moduli da 16GB di DDR4 |
| Alimentatore | 2000W titanium ridondato |
| Storage | RAID1 + spare di SSD NVMe PCIe 3.0 |
| Chassis | Case tower rack-mountable 4U |

Ognuna delle due macchine è dotata di una GPU Nvidia A100 nella versione da 40GB.
Ulteriori schede video AMD saranno installate nei server. Attualmente AMD ha inviato una scheda video obsoleta per i primi test (s7150x2), ma in futuro saranno inviati sample di v320, v340 e v520. Il modello v520 è un modello attualmente fornito solamente a Amazon AWS ed altri cloud provider.

### Sviluppo partnership
Sono state sviluppate le seguenti partnership:
* AMD per fornitura gratuita di GPU
* Intel per fornitura di GPU e di computer per il personale
* Nvidia per la fornitura di GPU a prezzo scontato
* Western Digital per la fornitura di SSD NVMe
* Lenovo per il test di open ForBC su larga scala all'interno di un computing center per HCP
* Mellanox per la fornitura di periferiche di rete

## Stato della tecnologia
Le tecnologie di partizionamento delle GPU stanno diventando fondamentali per molte applicazioni.
Nvidia ha recentemente rimosso l'"error 43" che veniva forzato dai driver quando installati in una macchina virtuale sulla quale era in essere il passthrough di una scheda video Nvidia non professionale (GeForce e non Quadro/Tesla). L'errore impediva il corretto funzionamento di hardware non professionale in contesti virtualizzati. Questa modifica nei driver integrata dal produttore permette l'utilizzo di schede video consumer per il passthrough senza violare l'EULA Nvidia.

Un progetto indipendente (vGPU unlocker) permette da pochi mesi di partizionare schede video Nvidia consumer attraverso un meccanismo di spoofing dell'ID PCI dell'hardware, di fatto trasformando via software una scheda video GeForce in una Quadro/Tesla. Sebbene non sia chiara la compatibilità con l'EULA di questo meccanismo, Nvidia non si è espressa in merito e rappresenta una forte affermazione delle esigenze della clientela ed un chiaro suggerimento verso un'evoluzione più open dei prodotti. Questo aspetto può diventare estremamente interessante per lo sviluppo di Open ForBC: in caso di integrazione ufficiale da parte di Nvidia, Open ForBC doventerebbe uno standard anche per applicazioni domestiche e consumer vedendo una crescita esponenziale degli utilizzatori.

## Futuro utilizzo dell'hardware
Alla conclusione del progetto l'hardware acquistato non sarà accantonato, ma attraverso l'espansione della memoria RAM alla capacità massima (2TB), l'installazione di una CPU più performante (fino a 64 core e 128 thread a 2.7GHz) e l'aggiunta di ulteriori GPU, le due macchine potranno essere agevolmente integrate nel cloud di sezione dell'INFN di Torino. In questo modo potranno essere fornite agli utenti sessioni provviste di accelerazione grafica o di calcolo tramite il passthrough di GPU intere o partizionate tramite i profili Open ForBC.

## Possibili integrazioni strategiche in progetti INFN esistenti
Open ForBC abiliterà l'utilizzo di GPU partizionabili in contesti svariati.
Alcuni utilizzi possibili nell'ambito di attività INFN sono:
* Applicazioni per visualizzazione 3D di risultati di calcoli scientifici, per esempio usando una macchina simile a quelle Open ForBC per istanziare sessioni di front-end a supercomputer sui quali vengono risolti problemi con output visualizzabile. Per esempio come interfaccia del supercomputer Occam installato al Centro di Calcolo dell'INFN Torino.
* Applicazioni di calcolo in fisica, per un migliore utilizzo degli acceleratori al fine di approcciare problemi più grandi più rapidamente e con maggiore efficienza. Contatti con il gruppo di astrofisica teorica di Nicolao Fornengo.
* Come tecnologia per offire dal Corporate Cloud INFN sessioni dotate di accelerazione grafica per utilizzi di progettazione CAD e simili. Per esempio per l'officina meccanica dell'INFN Torino o per workstation CAD per progettazione elettronica.
* Integrato con ML-INFN per permettere un approccio software-defined hardware, consentendo di tarare il tipo di acceleratore da utilizzare sulla base del task da svolgere semplicemente modificando un file di configurazione. In generale per contesti di machine learning sono stati presi contatti con il gruppo di Fisica dei Sistemi Complessi facente capo a Michele Caselle, Matteo Osella e Filippo Valle.
* Per realizzare workstation portatili adatte a virtualizzare una o più decine di postazioni per l'erogazione di corsi su machine learning, grafica e programmazione su GPU mettendo a disposizione dei partecipanti le risorse necessarie trasportando un singolo dispositivo di dimensione ridotta.
