Amb treballs serials ens referim a un programa que corre en un node sol i ocupa un slot, és a dir un nucli CPU.
El comando per a enviar treballs al Grid Engine és qsub. El format general del comando és
$ qsub programa
com per exemple
$ qsub ./mi_trabajo.sh
Per defecte, Grid Engine suposa que el programa que volem executar és un script que embolica l'o els binaris que es van a executar en el node de càlcul. Vegem el següent exemple mi_trabajo.sh que té el següent contingut:
#!/bin/bash
#
# mi_trabajo.sh
#
#$ -N el meu_treball
#$ -cwd
#$ -o mitrabajo.$JOB_ANEU.out
#$ -i mitrabajo.$JOB_ANEU.err
/bin/tire Estic corrent en el node `hostname`
/bin/tire Vaig dormir a les `dóna't`
sleep 60
/bin/tire Ara són les `dóna't`
Les línies que comencen amb #$ indiquen opcions per al comando qsub. Vegem com està estructurat el script.
#!/bin/bash Shell del script
# Comentaris
#$ -N mitrabajo
Indica el nom que volem donar al treball
#$ -cwd
Usa el directori des d'on hem enviat el treball com a directori de treball en lloc del directori de l'usuari ($HOME)
#$ -o el meu_treball.$JOB_ANEU.out
Indica que l'eixida del treball es guarde en el fitxer mitrabajo.$JOB_ANEU.out en el directori del treball. $JOB_ANEU és el nombre d'identificació del Treball que li assigna Grid Engine
#$ -i el meu_treball.$JOB_ANEU.err
Indica que l'eixida d'errors del treball es guarde en el fitxer mitrabajo.$JOB_ANEU.out en el directori del treball. $JOB_ANEU és el nombre d'identificació del Treball que li assigna Grid Engine
/bin/tire .. Executables
Com la variable JOB_ANEU existeixen altres variables de l'entorn els més importants són
HOME El directori de l'usuari en el node d'execució.
USER L'ANEU del propietari del treball.
JOB_ANEU L'ANEU del treball actual.
JOB_NAME El nom de de el treball definit amb l'opció %u2013N.
HOSTNAME Nom de node d'execució.
SHELL Shell de login de l'usuari.
TMPDIR Path absolut al directori temporal.
TMP El mateix que TMPDIR.
NHOSTS Noms de nodes usat pel treball paral·lel.
NSLOTS Nombre de slots de la cua assignats al treball paral·lel.
QUEUE Nom de cua en la qual corre el treball.
Més informació sobre les opcions de qsub i una llista completa dels variables la podem trobar en el manual indicat en els enllaços d'interès al final d'aquest capítol, o consultant la pàgina del manual executant:
$ man qsub
És important saber que els treballs no tenen per què ser executats en l'ordre en el qual siguen enviats perquè pot ser que uns treballs tinguen més prioritat que uns altres o que no hi haja els recursos necessaris disponibles en el moment.
Encara que menys usat, existeix la possibilitat d'executar un binari directament amb qsub amb el comando
$ qsub %u2013b i
Com per exemple:
[hpuser@login ]$ qsub -b i /bin/hostname
Your job 184 ("hostname") has been submitted
En aquest cas, l'eixida la podem trobar en el directori de l'usuari en forma dels fitxers hostname.o184 i hostname.i184.