L'obiettivo di questo lavoro di tesi è sviluppare un'infrastruttura di calcolo distribuita per supportare l'elaborazione di dati scientifici di grandi dimensioni mettendo insieme diverse risorse di elaborazione distribuite in tutta Europa. Una serie di specifiche tecniche comuni è stata derivata per fornire una vista di alto livello dell'architettura generale e fornire dettagli sugli elementi essenziali per la realizzazione dell'infrastruttura stessa, come use-case scientifici, tecnologie emergenti e nuove metodologie di elaborazione. Il lavoro è stato alimentato dalla necessità di fornire una soluzione scalabile, gestire nuove tecnologie di memorizzazione, come quelle basate su “non-volatile chip”, fornire un accesso immediato ai dati, migliorare l'esperienza degli utenti promuovendo la convergenza tra High Performance e Cloud Computing.Oggigiorno il modello di accesso principale per i sistemi HPC su larga scala si basa sulla pianificazione di lavori “batch”. Questo approccio non è collegato a un requisito della comunità scientifica computazionale, ma riflette il problema predominante nella gestione dei sistemi HPC, ovvero la massimizzazione dell'utilizzo delle risorse. Viceversa, la situazione si differenzia quando si prendono in considerazione workstation personali o server a memoria condivisi, dove le condivisioni interattive di timesharing sono la norma. Il nostro disegno, che propone un nuovo paradigma chiamato "Interactive Computing", si riferisce alla capacità di un sistema di supportare massicci carichi di lavoro pur consentendo l'interruzione al volo delle applicazioni. L'interazione in tempo reale di un utente con un runtime del programma è motivata da vari fattori, come la necessità di stimare lo stato di un programma o la sua tendenza futura, di accedere ai risultati intermedi e di indirizzare il calcolo modificando i parametri di input o le condizioni al contorno del problema. All'interno della comunità delle neuroscienze, uno dei casi scientifici presi in considerazione in questo lavoro, le applicazioni più utilizzate (es. simulazione dell'attività cerebrale, rendering e visualizzazione di grandi volumi di immagini, esperimenti di connettività, etc.) implicano che il runtime possa essere modificato interattivamente in modo che l'utente possa acquisire informazioni su parametri, comportamenti e potenziali margini di ottimizzazione. Uno scenario di utilizzo tipico per il calcolo interattivo riguarda la visualizzazione, l'elaborazione e la riduzione di grandi quantità di dati, in particolare laddove l'elaborazione non possa essere standardizzata o implementata in un flusso di lavoro statico. I dati possono essere generati mediante simulazione o raccolti da esperimenti e/o osservazioni. In entrambi i casi, durante l'analisi lo scienziato esegue un processo interattivo di successive riduzioni e produzione di visualizzazioni di dati che possono includere anche elaborazioni complesse come convoluzione, filtraggio, clustering, ecc. Questo tipo di elaborazione può essere facilmente parallelizzato per sfruttare le risorse HPC , ma sarebbe chiaramente controproducente interrompere una sessione utente in passaggi interattivi separati intervallati da processi batch poiché la loro pianificazione rallenterebbe l'intera esecuzione. Oltre a ciò, in molti campi applicativi, gli scienziati computazionali stanno iniziando a utilizzare framework interattivi e linguaggi di scripting per integrare l'applicazione di elaborazione dati e di elaborazione più tradizionale in esecuzione in batch, ad es. l'uso di R, Stata, Matlab / Octave o Jupyter Notebook solo per citarne alcuni. Questo lavoro è stato supportato dal progetto Human Brain Project (www.humanbrainproject.eu) e Cineca (www.hpc.cineca.it), il più grande centro di calcolo in Italia.
Una infrastruttura di calcolo distribuita per il processamento di dati scientifici di grandi dimensioni
2019
Abstract
L'obiettivo di questo lavoro di tesi è sviluppare un'infrastruttura di calcolo distribuita per supportare l'elaborazione di dati scientifici di grandi dimensioni mettendo insieme diverse risorse di elaborazione distribuite in tutta Europa. Una serie di specifiche tecniche comuni è stata derivata per fornire una vista di alto livello dell'architettura generale e fornire dettagli sugli elementi essenziali per la realizzazione dell'infrastruttura stessa, come use-case scientifici, tecnologie emergenti e nuove metodologie di elaborazione. Il lavoro è stato alimentato dalla necessità di fornire una soluzione scalabile, gestire nuove tecnologie di memorizzazione, come quelle basate su “non-volatile chip”, fornire un accesso immediato ai dati, migliorare l'esperienza degli utenti promuovendo la convergenza tra High Performance e Cloud Computing.Oggigiorno il modello di accesso principale per i sistemi HPC su larga scala si basa sulla pianificazione di lavori “batch”. Questo approccio non è collegato a un requisito della comunità scientifica computazionale, ma riflette il problema predominante nella gestione dei sistemi HPC, ovvero la massimizzazione dell'utilizzo delle risorse. Viceversa, la situazione si differenzia quando si prendono in considerazione workstation personali o server a memoria condivisi, dove le condivisioni interattive di timesharing sono la norma. Il nostro disegno, che propone un nuovo paradigma chiamato "Interactive Computing", si riferisce alla capacità di un sistema di supportare massicci carichi di lavoro pur consentendo l'interruzione al volo delle applicazioni. L'interazione in tempo reale di un utente con un runtime del programma è motivata da vari fattori, come la necessità di stimare lo stato di un programma o la sua tendenza futura, di accedere ai risultati intermedi e di indirizzare il calcolo modificando i parametri di input o le condizioni al contorno del problema. All'interno della comunità delle neuroscienze, uno dei casi scientifici presi in considerazione in questo lavoro, le applicazioni più utilizzate (es. simulazione dell'attività cerebrale, rendering e visualizzazione di grandi volumi di immagini, esperimenti di connettività, etc.) implicano che il runtime possa essere modificato interattivamente in modo che l'utente possa acquisire informazioni su parametri, comportamenti e potenziali margini di ottimizzazione. Uno scenario di utilizzo tipico per il calcolo interattivo riguarda la visualizzazione, l'elaborazione e la riduzione di grandi quantità di dati, in particolare laddove l'elaborazione non possa essere standardizzata o implementata in un flusso di lavoro statico. I dati possono essere generati mediante simulazione o raccolti da esperimenti e/o osservazioni. In entrambi i casi, durante l'analisi lo scienziato esegue un processo interattivo di successive riduzioni e produzione di visualizzazioni di dati che possono includere anche elaborazioni complesse come convoluzione, filtraggio, clustering, ecc. Questo tipo di elaborazione può essere facilmente parallelizzato per sfruttare le risorse HPC , ma sarebbe chiaramente controproducente interrompere una sessione utente in passaggi interattivi separati intervallati da processi batch poiché la loro pianificazione rallenterebbe l'intera esecuzione. Oltre a ciò, in molti campi applicativi, gli scienziati computazionali stanno iniziando a utilizzare framework interattivi e linguaggi di scripting per integrare l'applicazione di elaborazione dati e di elaborazione più tradizionale in esecuzione in batch, ad es. l'uso di R, Stata, Matlab / Octave o Jupyter Notebook solo per citarne alcuni. Questo lavoro è stato supportato dal progetto Human Brain Project (www.humanbrainproject.eu) e Cineca (www.hpc.cineca.it), il più grande centro di calcolo in Italia.File | Dimensione | Formato | |
---|---|---|---|
FiameniGiuseppeXXXI_PHDThesis.pdf
accesso aperto
Tipologia:
Altro materiale allegato
Dimensione
2.73 MB
Formato
Adobe PDF
|
2.73 MB | Adobe PDF | Visualizza/Apri |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14242/140949
URN:NBN:IT:UNIMORE-140949