Sono stati effettuati una serie di tests per verificare le funzionalitą del Globus Toolkit riguardo all'esecuzione di operazioni computazionali in remoto: questi tests hanno il solo scopo di verificare il corretto funzionamento del sistema, senza valutarne le effettive potenzialitą e le prestazioni riscontrate.
Per poter avviare i comandi del GRAM, č necessario creare il proprio proxy eseguendo il comando:% grid-proxy-init
Verrą richiesta la PEM pass phrase, la password utilizzata dall'utente per generare il proprio certificato:
% Your identity: ...
% Enter GRID pass phrase for this identity:Una volta inserita la password, verrą controllato il certificato dell'utente e, nel caso in cui quest'utlimo sia corretto, comparirą il seguente messaggio:
% Creating proxy .......................................... Done
% Your proxy is valid until : ...A questo punto č possibile utilizzare i vari comandi messi a disposizione dal Globus Toolkit per l'esecuzione di job in remoto. I comandi da noi testati sono:
Questo č il comando principale da utilizzare per eseguire dei job in remoto. Il comando richiede di specificare la stringa RSL contenente il nome del job e i suoi vari attributi. Per evitare di utilizzare il linguaggio RSL č stato reso disponibile uno script che facilita la sottomissione dei job:
globus-job-run.Eseguiamo il comando "globusrun -a -r ...": l'attributo -a richiede l'autenticazione all'utente, mentre -r permette di indicare la risorsa su cui eseguire il job.
da tom.ce.unipr.it
% globusrun -a -r pp4.ce.unipr.it
% gram_init failure:
% GSS Major Status: General failure
% GSS Minor Status Error Chain:
% acquire_cred.c:125: gss_acquire_cred: Error with GSI credential
% globus_i_gsi_gss_utils.c:1361: globus_i_gsi_gss_cred_read: Error with gss credential handle
% globus_gsi_credential.c:359: globus_gsi_cred_read: Error reading user credential
% globus_gsi_credential.c:1087: globus_gsi_cred_read_key: Error reading user credential: Can't read
% credential's private key from PEM
% OpenSSL Error: pem_lib.c:431: in library: PEM routines, function PEM_do_header: bad password read
% OpenSSL Error: pem_lib.c:663: in library: PEM routines, function PEM_read_bio: no start lineIn questo caso l'utente non ha preventivamente attivato il proprio proxy, per cui viene avvisato che č impossibile verificare le sue credenziali.
% globusrun -a -r pp4.ce.unipr.it
% GRAM Authentication test successful
% globusrun -a -r trovatore.ce.unipr.it
% GRAM Authentication test successfulQuesto comando richiede semplicemente al GRAM server di autenticare l'utente, verificando il proprio certificato.
% globusrun -a -r tom.ce.unipr.it
% GRAM Authentication test failure: connecting to the job manager failed. Possible reasons: job
% terminated, invalid job contact, network problems, ...Naturalmente, non č possibile richiedere l'autenticazione ad un host che non sia configurato come server.
da pp2.ce.unipr.it
% globusrun -a -r pp4.ce.unipr.it
% GRAM Authentication test successful
% globusrun -a -r trovatore.ce.unipr.it
% GRAM Authentication test successful
% globusrun -a -r pp2.ce.unipr.it
% GRAM Authentication test successful
% globusrun -a -r tom.ce.unipr.it
% GRAM Authentication test failure: connecting to the job manager failed. Possible reasons: job
% terminated, invalid job contact, network problems, ...Anche da pp2 non č possibile autenticarsi su tom, in quanto quest'ultimo non č configurato come server.
Eseguiamo ora il comando "globusrun -o -r ...": l'attributo -o visualizza il risultato dell'esecuzione del job sullo standard output. Nel test effettuato esegue il comando date, che ritornerą la data e l'ora correnti.
da tom.ce.unipr.it
% globusrun -o -r pp4.ce.unipr.it /bin/date
% ERROR: cannot parse RSL /bin/dateBisogna specificare una stringa in formato RSL, altrimenti si ottiene un messaggio di errore.
% globusrun -o -r pp4.ce.unipr.it '&(executable=/bin/date)'
% Fri Feb 21 10:33:03 CET 2003
% globusrun -o -r trovatore.ce.unipr.it '&(executable=/bin/date)'
% Fri Feb 21 10:32:50 CET 2003
% globusrun -o -r pp2.ce.unipr.it '&(executable=/bin/date)'
% Fri Feb 21 10:34:01 CET 2003Il comando č andato a buon fine e si č ottenuto sullo standard output il messaggio richiesto contenente la data e l'ora correnti.
da trovatore.ce.unipr.it
% globusrun -o -r pp4.ce.unipr.it '&(executable=/bin/date)'
% Fri Feb 21 10:35:08 CET 2003
% globusrun -o -r trovatore.ce.unipr.it '&(executable=/bin/date)'
% Fri Feb 21 10:34:54 CET 2003
% globusrun -o -r tom.ce.unipr.it '&(executable=/bin/date)'
% GRAM Job submission failed because the connection to the server failed (check host and port) (error
% code 12)Come gią visto in precedenza non č possibile eseguire un job remoto su di un host configurato come client.
% globusrun -o -r trovatore.ce.unipr.it '&(executable=/bin/date)(count=3)'
% Fri Feb 21 11:16:21 CET 2003
% Fri Feb 21 11:16:22 CET 2003
% Fri Feb 21 11:16:22 CET 2003E' stato aggiunto l'attributo (count = 3) che esegue 3 volte il job.
Questo e' il comando per eseguire un job in remoto senza la necessita' di specificare la stringa RSL corrispondente. Si tratta di uno script aggiunto nelle nuove versioni del Globus Toolkit.
da tom.ce.unipr.it
% globus-job-run -dumprsl pp4.ce.unipr.it -count 3 /bin/date
% &(executable="/bin/date")
% count=3)
L'attributo "-dumprsl" visualizza sullo standard output la stringa RSL corrispondente al comando eseguito. Non viene sottomesso nessun job.% globus-job-run pp4.ce.unipr.it -count 3 /bin/date
% Fri Feb 21 12:21:49 CET 2003
% Fri Feb 21 12:21:50 CET 2003
% Fri Feb 21 12:21:52 CET 2003% globus-job-run trovatore.ce.unipr.it -count 3 /bin/date
% Fri Feb 21 12:21:45 CET 2003
% Fri Feb 21 12:21:45 CET 2003
% Fri Feb 21 12:21:46 CET 2003L'attributo "-count" permette di specificare quante volte deve essere eseguito il job sottomesso sulla macchina remota.
Questo comando serve per sottomettere un job ad una macchina remota. Si tratta di un comando ASINCRONO in quanto non attende che il job sia terminato, ma termina immediatamente. Il job sottomesso e' dunque gestito dal job-manager della macchina remota. Il Globus Toolkit mette a disposizione anche i comandi per controllarne lo stato.
da pp2.ce.unipr.it
% globus-job-submit trovatore.ce.unipr.it /opt/fbp/my_prog
% https://trovatore.ce.unipr.it:33786/645/1045827494/Il comando funziona come "globus-job-run" e restituisce la stringa dell' ID del job, che verrą utilizzata per controllare lo stato dell'esecuzione.
Questo comando permette di controllare lo stato di avanzamento di un job precedentemente sottomesso con il comando "globus-job-submit". E' importante sottolineare il fatto che il comando deve essere eseguito dalla stessa macchina che ha eseguito il precedente comando di sottomissione del job. Per avere le informazioni su un determinato job bisogna specificare la stringa contenente l'ID del job che č stata restituita in precedenza dal comando "globus-job-submit".
da pp2.ce.unipr.it
% globus-job-status "https://trovatore.ce.unipr.it:33786/645/1045827494/"
% ACTIVEIn questo caso il job č ancora in esecuzione sulla macchina remota, come indicato con la stringa ACTIVE.
% globus-job-status "https://trovatore.ce.unipr.it:33786/645/1045827494/"
% DONEIn questo caso il job č terminato, come indicato con la stringa DONE. Non vi sono informazioni ulteriori sul modo con cui il job č terminato: potrebbe avere terminato normalmente la sua esecuzione e potrebbe essere stato interrotto in modo forzato da un altro utente.
Questo comando permette di terminare l'esecuzione di un job su di una macchina remota. L'esecuzione del comando presuppone che sia stato precedentemente sottomesso un job con il comando "globus-job-submit". Come nel caso del comando "globus-job-status" occorre specificare la stringa contenente l'ID del job che si vuole terminare.
da pp2.ce.unipr.it
% globus-job-cancel "https://trovatore.ce.unipr.it:33792/727/1045827494/"
% Are you sure you want to cancel the job now (Y/N) ?
% y
% Job canceled.
% NOTE: You still need to clean files associated with the
% job by running globus-job-clean <jobID>Il comando chiede conferma sulla reale intenzione di cancellare il job.
Questo comando va utilizzato immediatamente dopo la cancellazione di un job con il comando "globus-job-cancel": esso permetterą di cancellare eventuali files creati dal Globus Toolokit per l'esecuzione del job. Anch'esso vuole come parametro la stringa contenente l'ID del job.
da pp2.ce.unipr.it
% globus-job-clean "https://trovatore.ce.unipr.it:33792/727/1045827494/"
% WARNING: Cleaning a job means:
% - Kill the job if it still running, and
% - Remove the cached output on the remote resource
% Are you sure you want to cleanup the job now (Y/N) ?
% y
% Cleanup successful.
Il comando chiede conferma sulla reale intenzione di cancellare i files.