GRAM (GRID RESOURCE ALLOCATION MANAGEMENT)

 

Lo scopo del GRAM è quello di abilitare un accesso sicuro e controllato ad un'insieme di risorse computazionali eterogenee, gestendo l'esecuzione remota di operazioni sulle risorse stesse. Il Globus Toolkit mette a disposizione dell'utente di Grid una struttura a livelli per la gestione delle risorse computazionali: al livello più alto vi sono tutti quei servizi per la gestione di insiemi di risorse, mentre, al livello inferiore, vi sono i servizi di allocazione della singola risorsa. Il GRAM è il più basso livello delle struttura del Globus resource management.

 

Quando un job è sottomesso, la richiesta è inviata al gatekeeper del computer remoto. Il gatekeeper gestisce la richiesta e crea una chiamata al job manager per il job (il job manager di default utilizzato da Globus è la "fork" standard). Il job manager esegue e controlla il programma remoto, comunicando ogni eventuale variazione all'utente sulla sua macchina locale. Quando il job termina, sia con successo, che fallendo, il job manager termina a sua volta.

Per realizzare questa struttura il GRAM utilizza come linguaggio di comunicazione il RSL (Resource Specification Language), un linguaggio standard utilizzato universalmente per scambiare informazioni sullo stato delle risorse di un'organizzazione. Con esso si possono fornire due tipi di informazioni:

·         dati relativi alla risorsa: nome della macchina, numero dei nodi, quantità di memoria totale ...

·         dati relativi al job: struttura delle directory, nome del file eseguibile, argomenti ed attributi ...

Di seguito è riportato un esempio di comando che sfrutta il linguaggio RSL:

&(count>=5) (count<=10) (max_time=240) (memory>=64) (executable=myprog)

Con questo comando si richiedono da 5 a 10 istanze di esecuzione del programma "myprog", ognuna su di una macchina con almeno 64MB di memoria, per un tempo massimo di permanenza di 4 ore. Per maggiori informazioni sulle specifiche del linguaggio RSL si rimanda alla seguente pagina sul sito ufficiale di Globus: The Globus Resource Specification Language RSL v1.0

Il protocollo di GRAM è semplicemente fondato su di una serie di RPC (Remote Procedure Call) basate sul protocollo HTTP.

GRAM, quindi, è responsabile di:

·         gestire e processare le specifiche del linguaggio RSL che vengono richieste dal job. Questo è realizzato rifiutando la richiesta o creando uno o più processi (jobs) per poter soddisfare la richiesta

·         abilitare il monitoraggio remoto e la gestione di job già creati

Gatekeeper: è un processo, eseguito come root, che dà inizio al processo di richiesta di allocazione di risorse. Deve esistere sul computer remoto prima che ogni richiesta sia sottomessa. Quando il gatekeeper riceve la richiesta di allocazione da un cliente :

 

Comandi principali per l'utilizzo di GRAM con il Globus Toolkit 2.2:

globus-job-run: questo comando è utilizzato per sottomettere un job in modo interattivo. Esso traduce gli argomenti del comando in una richiesta RSL ed usa globusrun per sottomettere il job. Esempio: % globus-job-run host.ce.unipr.it /bin/ls  questo comando esegue sulla macchina host il comando ls per elencare i files presenti nella home directory.

globus-job-submit: questo comando è utilizzato per eseguire dei job offline. Esso usa gli stessi argomenti del comando globus-job-run. Il job è sottomesso in modo batch, cioè, dopo la sottomissione, non vi è più nessun collegamento aperto fra l'utente locale e l'host remoto.

globus-job-status: questo comando, utilizzato dopo il comando globus-job-submit, ritorna lo stato dell'esecuzione del job sottomesso.

globus-job-delete: questo comando, utilizzato dopo il comando globus-job-submit, cancella l'esecuzione del job sottomesso.

globus-job-get-output: questo comando, utilizzato dopo il comando globus-job-submit, ritorna lo stdout/stderr settati per il job sottomesso.

globus-job-clean: questo comando, utilizzato dopo il comando globus-job-submit, esegue un cleanup delle impostazioni effettuate dopo il completamento del job.

globusrun: questo comando è utilizzato da Globus per sottomettere i job alle risorse. Il job viene eseguito utilizzando il GRAM come servizio. Può anche essere utilizzato per verificare lo stato dei job sottomessi precedentemente, per testare il servizio di autenticazione dei gatekeepers, per analizzare delle stringe RSL. Esempio: % globusrun -s -r unipr/jobmanager-fork '&(executable=my_prog)'  questo comando risolve la contact string in RSL per il job manager "fork" sull'host "unipr" e sottomette il programma "my_prog" su quell'host.

 

GSI (Grid Security Infrastructure)Home Page di Grasso FabrizioMappa del sito (Sommario)GridFTP (Grid File Transfer Protocol)