HOW TO SGE

  • Comment choisir la queue longue (long.q) pour un job :

    qsub -q long.q myjob.sh
    # ou
    qsub -l qname=long.q myjob.sh
    
  • Comment changer de queue pour un job en attente sur la queue longue :

    qalter -l qname=small.q job_id
    
  • Comment soumettre un executable sans passer par un script :

    qsub -b y my_exe
    
  • Soumission sur un noeud particulier de la file courte, par ex. sur le noeud 10 et la queue courte (small.q):

    qsub -q small.q@compute-0-10 myjob.sh
    
  • Comment lancer un job sur une machine donnée ex. sur le noeud 10 :

    qsub -l hostname=compute-0-10 myjob.sh
    
  • Soumettre un job 50 fois (Array of jobs) :

    qsub -t 1-50 myjob.sh
    

  • Suppression du job numéro 10 :

    qdel 10
    
  • En cas de problème, forcer la suppression du job numéro 10

    qdel -f 10
    
  • Supprimer tous vos jobs :

    qdel -u $USER
    
  • Se connecter sur un noeud de calcul pour faire des tests (à utiliser avec parcimonie et uniquement dans le cadre d'un test ou d'une compilation/installation) :

    qrsh
    
  • Afficher l’état des files d’attente qstat; pour plus de détails :

    qstat -f
    
  • Pour une vue résumée de la charge des queues :

    qstat -g c
    
  • Uniquement les jobs qui tournent (état r) :

    qstat -s r
    
  • Cacher les queues vides:

    qstat -ne
    
  • Voir le détail pour le job dont l'identifiant est 999:

    qstat -j 999
    
  • Avoir tous les details sur le job n° 999

    qstat -f -j 999
    
  • Afficher les détails sur les ressources des noeuds disponibles:
    qhost
    

Signification des indicateurs d’état des queues obtenus par qstat -f :

  • a(larm), A(larm),
  • C(alendar suspended),
  • s(uspended),
  • S(ubordinate),
  • d(isabled), D(isabled),
  • E(rror)

Comment remplacer l’usage de NFS par un accès aux disques locaux Il faut s’assurer que vous avez un rép. à votre nom sous /state/partition1/scratch/ dans tous les noeuds de calcul. Si ce n’est pas le cas, vous devez le créer comme suit :

rocks run host compute mkdir -p /state/partition1/scratch/${USER}

Exemple de script SGE avec utilisation de scratch

#!/bin/bash
#
#$ -S /bin/bash
#$ -cwd
#$ -e job_name.err
#$ -o job_name.out

export scratch=`mktemp -d /state/partition1/scratch/${USER}/job.XXXXXX`
/home/$USER/test.pl > $scratch/job_output
cp -rp $scratch /home/$USER
rm -rf $scratch

Utiliser R avec SGE

Exemple de code R (somme.R):

args<-commandArgs(TRUE);
debut = as.numeric(args[1]);
fin = as.numeric(args[2]);
vect = seq(debut, fin);
cat(sum(vect),"\n");

Exemple de script SGE (submit_somme.sge):

#!/bin/bash
#$ -S /bin/bash
#$ -cwd
#$ -j y

# version = {3.0.3,3.1.3,3.2.0,3.3.1}
module load R-<version>
R CMD BATCH --slave "--args $1 $2" somme.R sortie.txt

voir comment utiliser module

Lancer avec SGE pour faire la somme des entiers de 1 à 10

qsub submit_somme.sge 1 10

Voir si votre job a été tué par SGE

Une petite commande a lancer sur le nœud maître permet de vérifier si votre job a été tué par SGE (SIGKILL):

awk -v username=$USER -F":" 'BEGIN{OFS="|"} $4==username && $13=="137" {print $1,$2,$4,$5,$6,"h_rt (en heure): "($11-$10)/3600}' /opt/gridengine/default/common/accounting

Si vous constatez par exemple que le h_rt vaut souvent 12.0003, il y a de grande chance pour que votre job ait été tué car il aurait dépassé la limite de temps définit par défaut (12h). Par conséquent, il convient de relancer votre job en définissant un h_rt plus élevé.

Pour rappel, cette option permet de définir le temps maximum pendant lequel votre job va tourner; par exemple, rajoutez l'option:

#$ -l h_rt=19:00:00

Vous permettra d'avoir un job qui durera, au maximum, 19h. Si vous mettez moins de 10h, vous aurez la possibilité de tourner sur une machine "bigmem" très performante.

Connaître son quota

Il vous est possible de connaître votre quota LDAP avec le script get_myquota.sh. La valeur retrounée n'est pas forcément celle présente sur le système. Contactez votre administrateur système en cas de doute.

Utiliser module

Voir ici : utiliser module

Comment transférer des données sur le cluster

Voir cet article. Pour les gros besoins/transferts, merci de nous consulter. En effet, le noeud maître ou noeud de login ne doivent pas être monopolisés par des transferts qui seraient bloquants pour les autres utilisateurs.