Introduction

Sur Thor, PBS (version 12.1) est utilisé pour gérer les files d'attente sur l'ensemble de la machine. PbsPro est un système distribué qui permet de gérer des files d'attente de jobs en répartissant la charge sur plusieurs machines d'un réseau. L'ensemble de ces noeuds de calcul sera géré comme une machine unique, et la distribution des simulations se fera d'une part en fonction des ressources demandées par rapport aux ressources disponibles, et d'autre part suivant la politique d'attribution des ressources.
Ces ressources sont disponibles suivant des files définies en fonction du nombre de cpus demandés pour une simulation.
La soumission d'une simulation se fait sur la base de commandes définies dans un script de soumission lancé ensuite par la commande qsub. Plusieurs types de langages de script peuvent être utilisés (shell unix, perl, python). Les paramètres du script peuvent être soumis directement lors de l'appel de la commande, ou dans le script ::

    [homer@thor ~]# cat myscript.sh
    #!/bin/sh
    #PBS -l walltime=1:00:00 
    #PBS -N testjob
    #PBS -l select=mem=10gb 
    #PBS -j oe
    date 
    ./my_application 
    date
    [homer@thor ~]# qsub myscript.sh

PBS fonctionne pour l'attribution des ressources sur la notion de chunk, correspondant à un ensemble de ressources défini comme une unité. Dans le cas de thor, la première unité de calcul peut être vue comme un noeud de calcul. Les demandes d'*unité* de calcul se font par l'option ::

    qsub -l select=[N:][chunk specification][+[N:]chunk specification] my_script.pbs

    #PBS -l  select=[N:][chunk specification][+[N:]chunk specification] 

Par exemple, pour demander 20 noeuds de calcul avec 20 coeurs ::

    qsub -l select=20:ncpus=20 my_script.pbs

Pour chaque files, il y a une distribution par nombres de coeurs. Les walltimes indiqués sont ceux imposés par défaut à votre job. Afin que la gestion de la machine soit optimale, il est recommandé d'indiquer le temps, à chaque soumission, le plus précis possible.
La politique d'attribution de ressources en nombre de coeurs limite un noeud de calcul par job par utilisateur. Cette limite permet aux jobs de ne pas interférer entre eux, mais ne favorise pas le remplissage global du cluster.
Une ressource en mémoire est fixée à 62 Go sur les 64 Go disponibles sur l'ensembles des lames.
Le partage équitable (faireshare) est activé sur cput (=CPU time = durée x no. coeurs): plus on a utilisé dernièrement de cput et plus notre job demande de cput, moins il sera prioritaire.