Exemple de script parallele qui va lancer 3programmes en meme temps et accomplir une tache pour rassembler les resultats une fois que les 3 programmes sont terminés (merci à Jean-François pour son aide)

#!/bin/bash                                                                                                                                                       
#SBATCH -J  nom_de_mon_job                                                                                                             
#SBATCH -o messortiesecran.out                                                                                                
#SBATCH -e meserreurs.out                                                                                              
#                                                                                                                                    
#SBATCH --ntasks=3   # 3 taches                                                                                                                 
#SBATCH --cpus-per-task= 2 # on peut éventuellement reservr des CPU pour les programmme ici 2 processeurs par tache

#SBATCH --mail-type=ALL

#SBATCH --mail-user=jean-francois.rey@inrae.fr                                                                                       

# On supprime la configuration d'environement précédent (plus de programme par défaut)

module purge

#on charge par exemple le module   R3
module load R/3.5.2

# on  Lance les 3 taches

srun -n1 -N1 monprog.sh "0" &
srun -n1 -N1 monprog.sh "1" &

srun -n1 -N1 monprog.sh "2" &

# on attend la fin des 3 taches"
wait
# les 3 programmes sont terminées on lance le programme final

srun programmefinal.sh


Il faut noter la présence du & a la fin du lancement de chaque instance . le & permet de lancer en tache de fond sans attendre la fin.

le deuxiéme aspect important et le wait qui par opposition au & va attendre que les 3 taches soient terminées pour procéder à l'assemblage des resultats des 3 taches.