Vargas: exécution d'un travail multitâche en batch



Vous êtes ici : Support technique → Calcul scalaire → Exécution/contrôle d'un code en batch → code multitâche (OpenMP ou Pthreads).


Les travaux sont gerés sur l'ensemble des noeuds par le logiciel LoadLeveler; ils sont répartis après soumission dans des "classes". Vous pouvez consulter ici les limites des classes sur Vargas.

Pour soumettre un travail multitâche en batch, il faut :

  1. Créer un script de soumission. Voici un exemple, enregistré dans le fichier openmp.ll, qui consiste à exécuter un travail nécessitant au maximum 5 Go de mémoire globale, 1h30mn de temps Elapsed et demandant 4 tâches OpenMP :

    > vargas : more openmp.ll
    # Nom arbitraire du travail LoadLeveler
    # @ job_name = OpenMP
    # Fichier de sortie standard du travail       
    # @ output = $(job_name).$(jobid)
    # Fichier de sortie d'erreur du travail
    # @ error =  $(job_name).$(jobid)
    # Type de travail
    # @ job_type = serial
    # Nombre de threads demandes (ici 4)
    # @ parallel_threads = 4
    # Temps Elapsed max. en hh:mm:ss (ici 1h30mn)
    # @ wall_clock_limit = 1:30:00
    # Memoire max. en data (ici 5 Gigaoctets pour l'ensemble des threads)
    # @ data_limit = 5Gb
    # Memoire max. en stack (ici 1 Gigaoctet pour l'ensemble des threads)
    # @ stack_limit = 1Gb,1Gb
    # pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
    # @ notification = error
    # @ queue                   
    
    # Pour avoir l'echo des commandes
    set -x
    
    # Repertoire temporaire de travail
    cd $TMPDIR
    
    # La variable LOADL_STEP_INITDIR est automatiquement positionnee par 
    # LoadLeveler au repertoire dans lequel on tape la commande llsubmit
    cp $LOADL_STEP_INITDIR/source.f .
    
    # Compilation et edition de liens d'un programme OpenMP au format libre
    xlf90_r -qsmp=omp source.f
    
    # La memoire STACK max. utilisee (ici 64 Mo) par les variables privees
    # de chaque thread : ATTENTION, defaut = 4Mo
    export XLSMPOPTS=$XLSMPOPTS:stack=65536000
    
    # Execution
    ./a.out
        
  2. Soumettre ce script (uniquement depuis Vargas) via la commande llsubmit :
    vargas : llsubmit  openmp.ll
        
Remarques :

Pour une étude plus approfondie, vous pouvez consulter :
© CNRS - IDRIS, 13/01/2012