|
|
Line 1: |
Line 1: |
| == Utiliser plusieurs nœuds == | | == Utiliser plusieurs nœuds == |
| Un ensemble de tâches peut être réparti sur plusieurs nœuds d'une grappe, comme c'est le cas des tâches exécutées sur les serveurs de Calcul Canada. Voici un exemple :
| | {{Warning |
| {{Command
| | |title=non recommandé |
| |scontrol show hostname > ./node_list_${SLURM_JOB_ID}
| | |content= |
| | Même si GNU parallel peut être utilisé avec plusieurs nœuds d'une grappe, il n'est pas recommandé de le faire, car des problèmes pourraient survenir, surtout dans le cas des tâches courtes. That is because it needs to start SSH session on remote nodes, which is an operation which can hang, and which requires multiple seconds. If you choose to use it, make sure you add a delay between jobs of 30 seconds or more, using the option <tt>--sshdelay 30</tt> |
| }} | | }} |
| {{Command
| |
| |parallel --jobs $SLURM_NTASKS_PER_NODE --sshloginfile ./node_list_${SLURM_JOB_ID} --env MY_VARIABLE --workdir $PWD ./my_program
| |
| }}
| |
| Dans ce cas, nous créons un fichier qui contient la liste des nœuds de <tt>$SLURM_JOB_NODELIST</tt> ; ce fichier indique les nœuds que GNU Parallel doit utiliser pour la distribution des tâches. Avec <tt>--env</tt>, une variable d'environnement peut être transférée à tous les nœuds alors que l'option <tt>--workdir</tt> fait en sorte que toutes les tâches seront lancées dans le même répertoire que le nœud principal.
| |