Tesi di laurea magistrale e triennale UNITO

in collaborazione con il Centro Nazionale HPC & BigData

Indice tesi attualmente disponibili su Federated Learning, Workflows e HPC:

  • Federated Learning su dati non-IID
  • Federated Learning con modelli non-deep: creazione di un benchmark per OpenFL-Extended
  • Generalizzando il Federated Learning: l’equilibrio tra prestazioni e apprendimento
  • Progettazione di un control plane distribuito per Streamflow WMS
  • Studio e testing di differenti tool per la parallelizzazione di codice su GPU
  • Generalizzando il Federated Learning: l’equilibrio tra prestazioni e apprendimento

Strumenti e attrezzatture utilizzabili: Risorse HPC4AI https://hpc4ai.unito.it, PC personale. Gli studenti potranno utilizzare come luogo di lavoro e studio i nuovi locali del contamination lab del centro nazionale FutureHPC & BigData presso il Dipartimento di Informatica dell’Università di Torino.

Per maggiori informazioni scrivi una mail: alpha@unito.it

Federated Learning su dati non-IID

Read more

Referenti: Marco Aldinucci, Bruno Casella (bruno.casella@unito.it)

Descrizione: Open Federated Learning (OpenFL) è una libreria Python per Federated Learning, sviluppata dai gruppi Intel Labs e Intel Internet of Things, che permette a diverse organizzazioni di collaborare al training di un modello globale senza condividere dati privati. La possibilità di evitare di condividere i dati permette al Federated Learning di trovare riscontro in tutti i settori dove privacy e sicurezza sono fondamentali, come il settore medico o industriale. I dati reali sono spesso distribuiti in maniera non-IID (non independently and identically distributed) tra le varie organizzazioni della federazione, rappresentando così una critical challenge per i sistemi di Federated Learning.

Nella versione attuale di Intel OpenFL la fase di testing dei modelli locali è effettuata sui dati locali di ciascun client. Testare i modelli locali sul test set globale (dato dall’unione di tutti i validation set locali) permetterebbe di capire se i singoli modelli riescono a generalizzare i dati dei clients della federazione.

La tesi consiste nell’implementazione di tale meccanismo di testing globale ed estensiva sperimentazione nei non-IID settings più comuni (quantity skew, labels skew, covariate shift ecc).

Federated Learning con modelli non-deep: creazione di un benchmark per OpenFL-extended

Read more

Referenti: Marco Aldinucci, Gianluca Mittone (gianluca.mittone@unito.it)

Descrizione: Con il termine Federated Learning (FL) si intende una tecnica di Machine Learning (ML) in cui il processo di apprendimento è effettuato a partire da dati partizionati su più device.

La peculiarità di questo metodo è quella di produrre un unico modello di ML efficace su tali dati senza il bisogno di dover raggruppare quest’ultimi in un solo luogo, con tutta una serie di vantaggi sulla privacy degli utenti e sui costi della gestione dei dati stessi.

Questo approccio, fin’ora utilizzato solo su Deep Neural Networks (DNN), sta venendo espanso dalla comunità scientifica anche a modelli non-deep, quali Alberi di Decisione, modelli Naive Bayes, Regressione Logistica e così via.

In questa tesi verrà esplorato l’algoritmo per non-deep FL AdaBoost.F, sviluppato nel
nostro dipartimento, nella sua implementazione nel framework per FL di Intel OpenFL al fine di indagarne le prestazioni sia di apprendimento sia computazionali.

Progettazione di un control plane distribuito per Streamflow WMS

Read more

Referenti: Marco Aldinucci, Iacopo Colonnelli (iacopo.colonnelli@unito.it)

Descrizione: StreamFlow è un framework modulare, container-native che consente di distribuire gli step di un workflow complesso tra diversi esecutori: dal desktop a un intero cluster Kubernetes su un cloud pubblico o un supercomputer.

StreamFlow, che è sviluppato a UNITO (https://streamflow.di.unito.it), è 100% compliant allo standard aperto CWL (https://www.commonwl.org/
implementations
). Streamflow è una prodotto della ricerca attualmente sviluppato nei progetti EU DeepHealth (https://deephealth-project.eu), ACROSS (https://www.acrossproject.eu), EUPEX European Pilot for Exascale (https://eupex.eu), adottato in numerosi ambiti applicativi (genomica, ingegneria, bioinformatica).

StreamFlow è uno dei prodotti software selezionati per il centro
nazionale “HPC, BigData e QuantumComputing” (ICSC) in partenza al 1 settembre 2022 (fondi PNRR MUR).

Nella versione attuale il control plane di StreamFlow è centralizzato sul nodo driver che può diventare un single-point-of-failure e limitare la scalabilità del sistema.
La tesi consiste nella progettazione e la prototipazione di un control plane distribuito per StreamFlow.

Studio e testing di differenti tool per la parallelizzazione di codice su GPU

Read more

Referenti: Marco Aldinucci, Alberto Riccardo Martinelli (albertoriccardo.martinelli@unito.it)

Descrizione: Le GPU sono ormai utilizzate in molti campi per risolvere problemi scientifici complessi in modo efficiente.

Scrivere codice portabile ed efficiente è un task notoriamente difficile e nel caso delle gpu questo problema è ancora più marcato. Negli ultimi anni sono stati molti gli sforzi per creare dei tool per facilitare la scrittura di codice parallelo per GPU.

OpenAcc e OpenMP sono I tool maggiormente usati per questo compito.

Il candidato dovrà effettuare uno studio approfondito di questi tool (confrontandoli anche con approcci di più basso livello) per capirne I punti di forza e di debolezza.
Inoltre dovrà scrivere degli esempi con entrambi I tool per avere un confronto completo sia sull’usabilità che sulle prestazioni.
Al candidato verrà fornito Spray-web, un codice scientifico che simula la dispersione di inquinanti in un ambiente 3D. Esistono diverse versioni di questo codice: OpenMP, OpenACC, CUDA e FPGA. Il candidato potrà testare le varie versioni per avere esperienza con un codice reale che gli permetta di avere una comprensione ancora più completa su tali tool.

Generalizzando il Federated Learning: l’equilibrio tra prestazioni e apprendimento

Read more

Referenti: Marco Aldinucci, Bruno Casella, Gianluca Mittone

Tipologia: Tesi magistrale (ricerca)

Descrizione: Con il termine Federated Learning (FL) si intende una tecnica di Machine Learning (ML) in cui il processo di apprendimento è effettuato a partire da dati partizionati su più device. Il Federated Learning trova particolare riscontro in tutte quelle applicazioni che richiedono privacy e sicurezza, come per esempio nel settore medico e industriale. Questo approccio, fin’ora utilizzato solo su Deep Neural Networks (DNN), sta venendo espanso dalla comunità scientifica anche a modelli non-deep, quali Alberi di Decisione, modelli Naive Bayes, Regressione Logistica e così via.

In questa tesi, lo studente dovrà condurre estensivi esperimenti per analizzare il trade-off tra modelli di ML e modelli di DL nel FL, da un punto di vista sia computazionale sia di apprendimento, al fine stabilire possibili linee guida per l’uso del FL non-deep. Come algoritmo per FL non-deep verrà utilizzato AdaBoost.F, sviluppato nel nostro dipartimento, nella sua implementazione nel framework per FL di Intel OpenFL. Scrivere codice portabile ed efficiente è un task notoriamente difficile e nel caso delle gpu questo problema è ancora più marcato. Negli ultimi anni sono stati molti gli sforzi per creare dei tool per facilitare la scrittura di codice parallelo per GPU. OpenAcc e OpenMP sono I tool maggiormente usati per questo compito.

Il candidato dovrà effettuare uno studio approfondito di questi tool (confrontandoli anche con approcci di più basso livello) per capirne I punti di forza e di debolezza.
Inoltre dovrà scrivere degli esempi con entrambi I tool per avere un confronto completo sia sull’usabilità che sulle prestazioni.
Al candidato verrà fornito Spray-web, un codice scientifico che simula la dispersione di inquinanti in un ambiente 3D. Esistono diverse versioni di questo codice: OpenMP, OpenACC, CUDA e FPGA. Il candidato potrà testare le varie versioni per avere esperienza con un codice reale che gli permetta di avere una comprensione ancora più completa su tali tool.

Strumenti e attrezzature utilizzate: Risorse HPC4AI https://hpc4ai.unito.it, PC personale

Gli studenti potranno utilizzare come luogo di lavoro e studio i nuovi locali del contamination lab del centro nazionale FutureHPC & BigData presso il Dipartimento di Informatica dell’Università di Torino.

Prerequisiti: Capacità di programmare sistemi complessi (es. usando Python, bash, C/C++), dimestichezza nell’uso di sistemi UNIX (creazione ed uso di docker container), conoscenza basilare del protocollo ssh, programmazione parallela e distribuita, gestione di ambienti Python con Conda/pip, conoscenza generale del ML (modelli singoli e ensemble, principali dataset, metriche di valutazione dell’apprendimento) e delle DNN, uso di Git.

Competenze attese in uscita: Dimestichezza con l’uso di strutture HPC/Cloud
(supercomputer), comprensione del funzionamento generale del FL ed in particolare del framework OpenFL, capacità di gestione di esperimenti computazionali, raccolta ed organizzazione di dati realativi a ML e HPC (High Performance Computing) e relativa presentazione grafica convenzionale, interazione con software di ricerca.

Gruppo di ricerca:

Alcuni articoli scientifici collegati:

  • McMahan, Brendan, et al. “Communication-efficient learning of deep networks from decentralized data.” Artificial intelligence and statistics. PMLR, 2017.
  • Kairouz, Peter, et al. “Advances and open problems in federated learning.” Foundations and Trends® in Machine Learning 14.1–2 (2021): 1-210.
  • Polato, Mirko et al. “Boosting the Federation: Cross-Silo Federated Learning without Gradient Descent.” (2022).
  • Casella, Bruno et al., “Benchmarking FedAvg and FedCurv for Image Classification Tasks”, Proceedings of ITADATA2022
  • Pennisi, Matteo et al., “Decentralized Distributed Learning with Privacy-Preserving Data Synthesis”, submitted to IEEE Transactions on Medical Imaging 2022