Applicazioni parallele (multi-sito) in ambiente Grid
Creators: name: Gregoretti, Francesco
Publisher: name: Università degli Studi di Napoli Federico II
Year: 2006

description: Nel campo delle architetture di calcolo ad alte prestazioni, il Grid Computing rappresenta ad oggi la frontiera delle attività di ricerca, come è testimoniato dall'elevato numero di progetti dedicati a tale tecnologia. Le tecnologie Grid, consentendo la condivisione sicura e l'utilizzo coordinato di risorse distribuite geograficamente, mettono a disposizione degli utenti un'enorme potenza di calcolo, attraverso l'acquisizione di un elevato numero di risorse computazionali difficilmente disponibile localmente. In particolare l'interconnessione dei supercalcolatori e dei cluster disponibili presso i diversi centri realizza una struttura globale che consente l'esecuzione delle applicazioni candidate alla risoluzione di complessi problemi ``computationally intensive'' e ``data intensive''.
Il calcolo su Grid, d'altra parte, impone la realizzazione di nuove applicazioni distribuite (o modifiche sostanziali alle applicazioni parallele tradizionali), di strumenti di sviluppo adeguati e la disponibilità di nuovi sistemi per la gestione dell'esecuzione delle applicazioni stesse. Fondamentalmente il modello computazionale utilizzato per la programmazione su Grid è il tradizionale modello a scambio di messaggi. In particolare le applicazioni parallele multi-sito consistono di più componenti (subjob) eseguiti in parallelo su uno o più processori di uno o più cluster o supercalcolatori presso differenti siti. Tali applicazioni possono così accedere efficacemente ad un numero di risorse computazionali molto più ampio di quello a disposizione utilizzando un qualsiasi supercalcolatore o cluster singolo. Un'opportuna distribuzione dei subjob tra le risorse disponibili consente a queste applicazioni di beneficiare in termini di prestazioni di questa potenza computazionale aggregata nonostante l'overhead addizionale introdotto dalle comunicazioni (tra i subjob) che utilizzano le reti più lente (per esempio WAN).
In questo lavoro è stata realizzata un'implementazione parallela multi-sito dell'algoritmo del Gradiente Coniugato a Blocchi (BCG) (utilizzato come testbed di applicazioni parallele multi-sito) ed è stato progettato e realizzato un sistema (denominato MPI jobs management system) per la gestione dell'esecuzione di applicazioni parallele (secondo le specifiche MPI) multi-sito sui cluster distribuiti di una Grid.
L'algoritmo del BCG rispetto all'algoritmo standard del CG presenta caratteristiche che lo rendono più consono ad un'elaborazione in ambiente Grid. La relativa implementazione parallela multi-sito fa uso di due livelli di parallelismo: il primo riflette la decomposizione in task dell'algoritmo a blocchi (grana grossa), il secondo è realizzato suddividendo i task computazionalmente più onerosi tra processi paralleli (grana fine).
L'MPI jobs management system consente di sottomettere le applicazioni parallele multi-sito ad un sistema Grid, sollevando l'utente dall'individuazione e acquisizione simultanea delle risorse necessarie alla loro esecuzione. Esso consente di schedulare i subjob paralleli, eseguirli sui calcolatori più appropriati, tenendo conto sia dei requisiti e preferenze dei subjob, sia delle caratteristiche delle risorse, e gestirne la sincronizzazione. Requisiti e preferenze dovranno riflettere le esigenze dei diversi subjob paralleli in termini di complessità computazionale e complessità delle comunicazioni, in modo da ottimizzare il mapping con le risorse disponibili.
Infine, l'utilizzo della libreria MGF (MPI Globus Forwarder) consente di eseguire in modo trasparente ed efficiente le applicazioni multi-sito realizzate secondo le specifiche MPI su più calcolatori paralleli di una Grid, compresi i cluster a rete privata.