Argomenti di tirocinio/tesi/assegni disponibili

Oggetto: Benchmarking delle tecniche di Data Mining per problematiche di Ingegneria del Software 

Tipologia: Tesi magistrale / Assegno di ricerca

Descrizione: Il Data Mining è il processo di analisi di dati da diverse prospettive per individuare delle correlazioni, pattern o sequenze ripetute tra grandi quantità di dati. Negli anni, le tecniche di Data Mining sono state usate per affrontare diversi problemi legati all’Ingegneria del Software, come software defect prediction, per agevolare lo sviluppo software. Le misure delle metriche del software forniscono informazioni sulla qualità del software e possono essere usate in ingresso alle tecniche di Data Mining per predire, pianificare e comprendere diversi aspetti del progetto software. Il Benchmarking delle tecniche di Data Mining è essenziale per selezionare le tecniche migliori in grado di risolvere alcuni problem della Ingegneria del Software. L’utilizzo di insiemi di dati consolidati sulle metriche del software, come NASA Defect, Eclipse, Android e Elastic Search, rappresenta un punto di partenza nella definizione dei benchmarking. Ai fini dello studio è richiesto l’utilizzo di pacchetti python per la manipolazione, l’analisi e la visualizzazione delle metriche del software tramite il support di jupyter notebook.        

Capacità richieste: programmazione di base, fondamenti di Data Mining.

Persona di riferimento: Elisabetta Ronchieri

Oggetto: Un pacchetto R per analizzare i dati relativi alle metriche del software: rsmd

Tipologia: Tesi magistrale / Assegno di ricerca

Descrizione: Le metriche del software forniscono misure sulle caratteristiche del software. rsmd è un pacchetto R per ricercare e scaricare dati sulle metriche del software direttamente dall’ambiente R. I dati saranno disponibili in una repository di dati, come gitlab. Per l’analisi statistica sarà possibile usare un insieme di pacchetti disponibili in R. Il nuovo pacchetto rsmd si prefigge di fornire un insieme di dati per trattare i problemi di Ingegneria del Software. Il programma di lavoro prevede di imparare a costruire un pacchetto R, creare un repository per memorizare i dati delle metriche del software e il codice R, identificare i dati relativi alle metriche del software, selezionando quelli da includere nel pacchetto, scrivere codice R per manipolare, analizzare e visualizzare i dati, verificare l’uso del pacchetto rmsd nell’ambiente R, come RStudio.        

Capacità richieste: programmazione di base, conoscenze base di statistica.

Persona di riferimento: Elisabetta Ronchieri

Oggetto: Definizione del modello machine learning per predire problemi in un centro di calcolo

Tipologia: Tesi triennale / Tesi magistrale / Assegno di ricerca

Descrizione: Un centro di calcolo è caratterizzato dalla interazione di sistemi complessi che ne garantiscono il funzionamento. Diversi tipi di dati sono disponibili, quali i sensori di rete, le risorse di calcolo e le condizioni atmosferiche. Tramite l’utilizzo di tecniche Machine Learning è possibile predirre malfunzionamenti, evitare fallimenti e ridurre al minimo la interruzione dei servizi. Il primo step dell’attività consiste nel collezionare, strutturare e organizzare i dati di risorse eterogenee provenienti da diversi servizi messi a disposizione in un centro di calcolo. Successivamente si costruirà un modello per il machine learning per riconoscere e predire problemi che si potrebbero verificare nel codice.

Capacità richieste: fondamenti di machine learning, conoscenze base di statistica.

Persona di riferimentoElisabetta Ronchieri, Davide Salomoni

Oggetto: Identificare moduli fault-prone del software utilizzando unlabelled datasets

Tipologia: Tesi magistrale / Assegno di ricerca

Descrizione: Classificare i moduli fault-prone (su nuovi progetti o progetti con un limitato numero di dati) è un problema interessante nell’ambito dei problemi dell’Ingegneria del Software, considerata la difficoltà nel determinare un labelled dataset per allenare il modello di classificazione. In letteratura, esistono diversi approcci per determinare moduli fault-prone su unlabelled datasets tramite l’adozione di sistemi non supervisionati. Questo lavoro si prefigge di esaminare le soluzioni esistenti per etichettare unlabelled datasets.

Capacità richieste: fondamenti di machine learning, nozioni base di statistica.

Persona di riferimentoElisabetta Ronchieri

Oggetto: Comparazione pratica di framework open source di stream processing 

Tipologia: Tesi magistrale / Assegno di ricerca

Descrizione: Una volta selezionata un’applicazione scientifica che includa generazione di dati in maniera real time o quasi-real time, il progetto si concentrerà sull’analisi di tali dati utilizzando e confrontando vari framework open source di stream processing, quali ad esempio https://spark.apache.org, http://storm.apache.org, https://kafka.apache.org, http://samza.apache.org, https://flink.apache.org, https://apex.apache.org.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base. La conoscenza di streaming architectures è un plus importante.

Persona di riferimento: Davide Salomoni

Oggetto: Sviluppo di un workflow Alfresco per la gestione automatizzata del flusso documentale per la gestione delle procedure ISO 27001

Tipologia: Tesi magistrale / Summer student

Descrizione: Il CNAF ha ottenuto nel 2017 la certificazione ISO 27001 per “Hosting di sistemi fisici e virtuali per la conservazione e l’accesso a dati biomedici e gestione applicativi di analisi dati finalizzati alla ricerca in campo biomedico/genomico”. La gestione dei documenti e dei registri necessari a garantire che le procedure vengano correttamente applicate e che le politiche di controllo di processo siano adeguate a garantire la sicurezza delle informazioni viene effettuata attraverso il software di gestione documnetale Alfresco. Si vogliono sviluppare una serie di workflow per automatizzare la gestione delle modifiche e garantire che il flusso autorizzativo venga rispettato.  

Capacità richieste: programmazione di base, business process modeling.

Persona di riferimento: Barbara Martelli

Oggetto: Open source IoT toolkit su Cloud

Tipologia: Tesi magistrale / Assegno di ricerca

Descrizione: Partendo da quanto disponibile sul mercato open source oggi e da quanto funzionalmente reso disponibile da fornitori commerciali, identificare potenziali soluzioni per la definizione ed implementazione di un toolkit open source, da utilizzare su Cloud ibride pubblico / private, che consenta la gestione di dispositivi IoT. Si prevede anche l’immediato test di tale toolkit utilizzando dispositivi disponibili presso il CNAF.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base, architetture IoT. La conoscenza di architetture Cloud è un plus importante. 

Persona di riferimento: Davide Salomoni

Oggetto: Comparazione di file system distribuiti Posix e ad oggetti

Tipologia: Assegno di ricerca 

Descrizione: Il progetto mira a valutare scalabilità, funzionalità e performance di diverse soluzioni che implementino uno storage distribuito Posix e ad oggetti, utilizzando l’infrastruttura multi-sito INFN e identificando punti di forza e di debolezza. Alcuni possibili candidati come sistemi di storage possono essere GPFS, CEPH, Onedata, Seafile, storj, ipfs.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base. La conoscenza di architetture Cloud è un plus importante. 

Persona di riferimentoDavide Salomoni, Daniele Cesini

Oggetto: Comparazione di soluzioni PaaS di tipo open source

Tipologia: Tesi triennale / Tesi magistrale 

Descrizione: Il progetto mira a comparare diverse soluzioni open source di tipo PaaS, valutandone criticamente pregi e difetti. Dopo la comparazione teorica, si dovrà selezionare un’applicazione scientifica e identificare la migliore soluzione di tipo PaaS per quell’applicazione.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base. La conoscenza di architetture Cloud è un plus importante. 

Persona di riferimento: Cristina Duma

Oggetto: Installazione dinamica e automaticamente scalabile di applicazioni web-based 

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare / Assegno di ricerca

Descrizione: L’obiettivo del progetto è installare un’applicazione web su un’infrastruttura Cloud al CNAF utilizzando container. Il set up deve essere automaticamente dispiegato sulla cloud attraverso Kubernetes e deve essere possibile gestire in maniera automatica la distribuzione del carico e il dimensionamento del numero di istanze che vengono dispiegate.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base, conoscenza di Docker containers. La conoscenza di architetture Cloud e di Kubernetes è un plus importante. 

Persona di riferimento: Barbara Martelli

Oggetto: Installazione dinamica di Jupyter server e notebooks attraverso template TOSCA

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare / Assegno di ricerca

Descrizione: L’obiettivo del progetto è schierare un server Jupyter sulla Cloud al CNAF e/o presso altri siti INFN, utilizzando un template, scritto in linguaggio TOSCA, attraverso un componente cloud chiamato Infrastructure Manager (IM). Il server dovrà essere connesso ad una soluzione di autenticazione e autorizzazione centralizzata e ad un sistema di storage distribuito. Le applicazioni in esecuzione sul Jupyter server devono essere in grado di leggere e scrivere dal sistema di storage attraverso la linea di commando oppure attraverso un portale web.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base. La conoscenza di architetture Cloud e dei Jupyer notebook è un plus importante.

Persona di riferimento: Alessandro Costantini

Oggetto: Calcolo opportunistico : progettazione e installazione di un’infrastruttura distribuita basata su BOINC, istanziata su Cloud ibride (pubblico/privato)

Tipologia: Tesi magistrale / Assegno di ricerca

Descrizione: BOINC (Berkeley Open Infrastructure for Network Computing) è un’infrastruttura di calcolo distribuita basata su un server centralizzato che coordina risorse di calcolo offerte su base volontaria. Un server BOINC dedicato a un dato progetto offre blocchi di lavoro a client BOINC che vengono spesso installati su sistemi temporaneamente inattivi (come server o desktop), memorizza i risultati ottenuti da tali sistemi e tiene traccia dell’ammontare di lavoro fornito da ciascun partecipante. BOINC funziona tipicamente in maniera efficiente con carichi di lavoro che richiedano molta CPU e poco I/O.
Il progetto prevede di pianificare e installare dinamicamente un BOINC server inizialmente sulla Cloud al CNAF e successivamente su cloud ibride, identificare e sviluppare un BOINC client per una applicazione scientifica, e infine dimostrare l’integrazione di un setup di BOINC con altre applicazioni e risorse basate su cloud e disponibili all’INFN.

Capacità richieste: amministrazione di sistemi Linux, programmazione di base. La conoscenza di architetture Cloud è un plus importante.

Persona di riferimento: Davide Salomoni

Oggetto: Nell’ambito del progetto INFN COSA (Computing on SoC Architecture), porting di applicazioni scientifiche su cluster di sistemi a basso consumo energetico di tipo System on Chip (SoC).

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare

Descrizione: Verrà eseguito il porting di applicazioni di interesse per la comunità scientifica internazionale su architetture computazionali eterogenee (CPU + acceleratori)  low power al fine di confrontarne le performance tramite metriche complesse che tengono conto dei consumi e dei costi con architetture tradizionali. Le applicazioni saranno scelte prevalentemente nel dominio della fisica delle alte energie (teorica e sperimentale) ma potranno appartenere anche a domini differenti quali  quelli, ad esempio,  della chimica e della biologia computazionale.

Capacità richieste: È richiesta la conoscenza, anche basilare, di sistemi operativi Linux/Unix.

Persona di riferimento: Daniele Cesini

In Alto

Oggetto: Nell’ambito del progetto INFN COSA (Computing on SoC Architecture), valutazione delle performance di architetture a basso consumo energetico di tipo System on Chip (SoC) per il calcolo scientifico rispetto ad architetture ibride tradizionali (CPU+GPGPU).

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare

Descrizione: Verranno eseguiti test sintetici (eventualmente da sviluppare) e benchmark standard reperibili in letteratura su development board basate su SoC low power al fine di valutarne le performance. Saranno prese in considerazione metriche di performance assoluta e metriche complesse che tengano conto  del consumo elettrico e del costo di acquisto/gestione. Dovranno essere valutate le performance della CPU e della GPU e di eventuali altri acceleratori per il calcolo disponibili sui SoC. Le performance saranno confrontate con architetture per il calcolo parallelo tradizionali (non low power) disponibili presso il nostro centro.

Capacità richieste: È richiesta la conoscenza, anche basilare, dei sistemi operativi Linux/Unix. Per la parte di sviluppo dei test sintetici è richiesta una buona conoscenza di un linguaggio di programmazione tra C, C++, Fortran e la disponibilità ad imparare tecniche di programmazione parallela quali OPENMP, OPENMPI, CUDA, OpenCL.

Persona di riferimento: Daniele Cesini

In Alto

Oggetto: Nell’ambito del progetto INFN COSA (Computing on SoC Architecture), costruzione e amministrazione di un prototipo di cluster Linux per il calcolo parallelo basato su architetture ibride (CPU+GPGPU+DSP) a basso consumo energetico di tipo System-on-Chip, con particolare riferimento all’ ”Energy-aware-scheduling” dei job.

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare

Descrizione: Verranno affrontate le problematiche della gestione di un cluster composto da alcune decine di unità per il calcolo parallelo basate su architetture non convenzionali in un ambiente Linux multi-utente. Lo use case principale sarà quello della gestione di job batch con gestione avanzata delle politiche di scheduling dei job (fair share, priorità multiple, advance reservation, backfilling) anche in considerazione dell’impatto delle stesse sul consumo energetico.

Capacità richieste: È richiesta una buona conoscenza dei sistemi operativi Linux/Unix.

Persona di riferimento: Daniele Cesini

In Alto

Oggetto: Nell’ambito del progetto INFN COSA (Computing on SoC Architecture), studio delle tecnologie per le  interconnessioni di rete di  cluster basati su architetture di tipo System-on-Chip low power e valutazione delle loro performance.

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare

Descrizione: Verranno affrontate le problematiche legate alle interconnessioni di sistemi di calcolo low power basate su SoC in cluster. Si studieranno i requisisti in termini di banda e latenza che tali interconnessioni dovranno avere per sistemi composti da molte unità computazionali poco potenti rispetto alle tradizionali architetture computazionali.

Capacità richieste: È richiesta una buona conoscenza dei sistemi operativi Linux/Unix.

Persona di riferimento: Daniele Cesini

In Alto

Oggetto: Nell’ambito del progetto INFN COSA (Computing on SoC Architecture), creazione di esperimenti e simulazioni per la didattica della fisica con micro-server basati su architetture di tipo System-on-Chip.

Tipologia: Tesi triennale / Tesi magistrale / Tirocinio curriculare

Descrizione: I moderni System-on-Chip low power, ad esempio quelli disponibili in ambito mobile ed embedded (ad esempio negli smartphone) sono dotati oltre ad unità computazionali quali CPU e GPU che garantiscono una certa potenza di calcolo anche di tutta una serie di sensori (temperatura, posizione, accelerazione, tensione, luminosità etc..) e di sistemi di comunicazione wired e wireless che li rendono adatti a realizzare piccoli esperimenti di fisica e di informatica applicata (in particolare per il calcolo parallelo). Essendo inoltre tali sistemi “portabili” per definizione, sono perfetti per un impiego didattico. La tesi verterà sullo studio delle tecnologie disponibili su tali sistemi adatte allo scopo sin qui descritto, sul concepimento di un esperimento (o simulazione) e sulla realizzazione pratica dello stesso.

Capacità richieste: Una buona dose di fantasia.

Persona di riferimento: Daniele Cesini

In Alto

Argomenti di tirocinio/tesi svolti

Oggetto: Progettazione e implementazione di un sistema di allarmistica basato su Sensu e confronto con un sistema basato su Nagios.

Tipologia: Tesi triennale

Descrizione: Nella gestione di un centro di calcolo una delle attività fondamentali è il monitoraggio delle risorse che il centro ha a disposizione e l’allarmistica relativa ad eventuali eventi problematici. Un robusto sistema di allarmistica che possa avvertire gli amministratori dei servizi in caso di criticità o di potenziali problemi è ampiamente auspicabile.

Il Centro Nazionale per lo sviluppo delle Tecnologie Informatiche e Telematiche (CNAF) dell’INFN sta utilizzando un nuovo sistema di monitoraggio e allarmistica basato su tecnologie open source (Sensu, RabbitMQ, Redis, InfluxDB, Grafana).
Le caratteristiche sono principalmente la possibilità di scalare orizzontalmente in termini di quantità di risorse monitorate, ma anche in termini di numero di grandezze misurate. Questo sistema viene già utilizzato in produzione per produrre, archiviare e visualizzare dati di monitoraggio.

Per quanto riguarda l’allarmistica, un sistema di sensori orchestrati da Sensu permette di inviare messaggi di allarme su diversi canali (mail, chat di messaggistica, etc.). Allo stesso tempo il centro è dotato di un sistema di allarmistica pre-esistente, basato su tecnologia Nagios.
Il reparto che gestisce i servizi di storage e accesso ai dati del centro basa attualmente l’allarmistica sul sistema Nagios.

Il progetto di tesi proposto riguarda un lavoro di studio, progettazione e realizzazione dei sensori Sensu per l’allarmistica relativa ai servizi di storage e accesso ai dati, con relativa analisi delle differenze rispetto all’attuale sistema basato su Nagios, in termini di funzionalità, robustezza e scalabilità.

Persona di riferimento: Enrico Fattibene

Oggetto: Sviluppo di una interfaccia di inserimento e gestione dati in InfluxDB.

Tipologia: Tirocinio curriculare triennale

Descrizione: Nella gestione di un centro di calcolo è importante avere efficienti sistemi di monitoraggio.
Il Centro Nazionale per lo sviluppo delle Tecnologie Informatiche e Telematiche (CNAF) dell’INFN utilizza un sistema di raccolta, archivizione e presentazione dei dati di monitoraggio basato su tecnologie Sensu, InfluxDB e Grafana.
Ad integrazione di questa infrastruttura esistono servizi sviluppati internamente che si integrano con la infrastruttura principale.
Il progetto proposto riguarda lo sviluppo di interfacce di inserimento e gestione dati e di generazione di report automatici dell’utilizzo delle risorse del centro, tramite tecnologie web quali PHP, CSS, Javascript. Lo studente approfondirà le problematiche relative al monitoraggio dei sistemi di un centro di calcolo e svilupperà servizi da integrare nella infrastruttura di produzione.

Persona di riferimentoEnrico Fattibene, Andrea Prosperini

In Alto

Oggetto: Progettazione e realizzazione di un sistema di conversione dei dati di monitoraggio del centro di calcolo dell’INFN-CNAF di Bologna da database Oracle a InfluxDB.

Tipologia: Tirocinio curriculare triennale

Descrizione: Nella gestione di un centro di calcolo una delle attività fondamentali è il monitoraggio delle risorse che il centro ha a disposizione, cioè il controllo dello stato e dell’utilizzo dei sistemi.

Il Centro Nazionale per lo sviluppo delle Tecnologie Informatiche e Telematiche (CNAF) dell’INFN sta sperimentando un nuovo sistema di monitoraggio basato su tecnologie open source. Le caratteristiche sono principalmente la possibilità di scalare orizzontalmente in termini di quantità di risorse monitorate, ma anche in termini di numero di grandezze misurate. I dati raccolti, relativi allo stato di funzionamento e all’utilizzo dei server e dei software in essi ospitati, vengono archiviati in InfluxDB, un timeseries database in forte ascesa nell’ambito dell’archiviazione dati di monitoraggio, per poi essere fruiti attraverso un sistema di visualizzazione basato sul software Grafana.
Un punto importante da affrontare è la conversione dei dati storici contenuti in uno dei sistemi attualmente in produzione, basato su database Oracle.
Il progetto proposto riguarda un lavoro di studio delle tecnologie coinvolte, la progettazione e la realizzazione di un sistema di conversione dei dati storici di monitoraggio da tecnologia Oracle a InfluxDB.

Persona di riferimento: Stefano Dal Pra

In Alto

Oggetto: Progettazione e realizzazione di un sistema di conversione dei dati di monitoraggio e accounting del centro di calcolo dell’INFN-CNAF di Bologna da database Graphite a InfluxDB.

Tipologia: Tirocinio curriculare triennale

Descrizione: Nella gestione di un centro di calcolo attività fondamentali sono il monitoraggio delle risorse che il centro ha a disposizione, cioè il controllo dello stato e dell’utilizzo dei sistemi, e l’accounting, cioè la verifica di quanto e come gli utenti hanno usufruito delle risorse messe a loro disposizione.

Il Centro Nazionale per lo sviluppo delle Tecnologie Informatiche e Telematiche (CNAF) dell’INFN sta sperimentando un nuovo sistema di monitoraggio basato su tecnologie open source. Le caratteristiche sono principalmente la possibilità di scalare orizzontalmente in termini di quantità di risorse monitorate, ma anche in termini di numero di grandezze misurate. I dati raccolti, relativi allo stato di funzionamento e all’utilizzo dei server e dei software in essi ospitati, vengono archiviati in InfluxDB, un timeseries database in forte ascesa nell’ambito dell’archiviazione dati di monitoraggio, per poi essere fruiti attraverso un sistema di visualizzazione basato sul software Grafana.

Attualmente al CNAF parte dei dati di monitoraggio e accounting sono archiviati su Graphite, un altro timeseries database. Allo scopo di unificare i sistemi, si intende convertire il sistema di trasferimento dati dal sistema Graphite a InfluxDB e spostare su InfluxDB i dati attualmente storici presenti sul sistema Graphite.
Il progetto proposto riguarda un lavoro di studio delle tecnologie coinvolte, la progettazione e la realizzazione della conversione del sistema di trasferimento e dei dati storici dati da tecnologia Graphite a InfluxDB.

Persone di riferimento: Antonio Falabella, Enrico Fattibene

Oggetto: Strumenti di monitoraggio del centro di calcolo dell’INFN al CNAF di Bologna.

Tipologia: Tirocinio curriculare triennale

Descrizione: L’obiettivo del tirocinio è quello di fornire gli strumenti adatti alla realizzazione di un sistema di visualizzazione dei dati di monitoraggio di risorse tipiche di un centro di calcolo quali server, dispositivi di memorizzazione e servizi software.
Lo studente affronterà le problematiche legate alla aggregazione e rappresentazione dei dati di monitoraggio e fruizione degli stessi da parte di diversi gruppi di utenti. Al termine del tirocinio lo studente sarà capace di progettare e realizzare la visualizzazione grafica di dati eterogenei e con diverse chiavi di aggregazione.

Nella gestione di un centro di calcolo una delle attività fondamentali è il monitoraggio delle risorse che il centro ha a disposizione, cioè il controllo dello stato e dell’utilizzo dei sistemi. Il Centro Nazionale per lo sviluppo delle Tecnologie Informatiche e Telematiche (CNAF) dell’INFN sta sperimentando un nuovo sistema di monitoraggio basato su tecnologie open source. Le caratteristiche sono principalmente la possibilità di scalare orizzontalmente in termini di quantità di risorse monitorate, ma anche in termini di numero di grandezze misurate. I dati raccolti, relativi allo stato di funzionamento e all’utilizzo dei server e dei software in essi ospitati, vengono archiviati per poi essere fruiti attraverso un sistema di visualizzazione basato sul software Grafana, un’interfaccia utente che implementa soluzioni moderne tipiche del web 2.0. Quindi non una semplice pagina web con dei grafici generati staticamente, ma una vera e propria applicazione web che permette di creare dashboard personalizzate, raggruppamenti tematici per tipologia di risorsa monitorata o tipologia di grandezze misurate. Il progetto di tutoraggio proposto riguarda un lavoro di studio, progettazione e realizzazione di un sistema di dashboard costruite attraverso Grafana per la visualizzazione di dati di monitoraggio di sistemi di calcolo e storage operati presso il CNAF.

Persone di riferimento: Antonio Falabella, Enrico Fattibene