Accueil Direction du Numérique Site de L'Université

Accueil > Site Public > Calcul

Exemple de job batch avec dépendance pour copier des données depuis l’archive

Publié le 12 septembre 2019

Export en PDF : Enregistrer au format PDF

Voici un exemple de jobs avec dépendances (qsub -hold_jid) utilisé pour copier des données depuis le /archive vers le /work via la file "transfer" dédiée à cet usage.

Pour rappel : l’espace de stockage /archive n’est pas disponible directement sur les nœuds batch.

Script 1 : copie de données

Dans l’exemple, le nom du fichier est copy_job.ksh :

#!/bin/ksh

# copy task from ARG $1 to ARG $2

# transfer queue (/user1, /work and /archive are available)
#$ -q transfer
#$ -pe smp 1

# no mail
#$ -m n

[[ -e "$1" ]] || {
	echo "error arg 1 : source data not found : $1"
	exit 1
}

[[ -z "$2" ]] && {
	echo "error arg 2 : destination empty"
	exit 2
}

echo "Copying data from $1 to $2"

cp -pr "$1" "$2"

# wait 10 seconds
sleep 10

Script 2 : traitement des données

Dans l’exemple, le nom du fichier est compute_job.ksh :

#!/bin/ksh

# compute task

#$ -q batch
#$ -pe smp 2

#$ -M antoine.migeon@u-bourgogne.fr

[[ -e "$1" ]] || {
	echo "error arg 1 : compute data not found : $1"
	exit 1
}

echo "compute data located in $1"

cd $1

#....

Exécution sur un lot de données

Dans cet exemple nous allons soumettre pour chaque jeu de données (nommés data_to_compute_1 data_to_compute_2 data_to_compute_3), un job de traitement des données (nommés compute_1 compute_2 compute_3) qui aura comme dépendance un job de copie (nommé cp_1 cp_2 cp_3).

for job in 1 2 3
do

	# copy job
	qsub -N cp_${job} copy_job.ksh $ARCHIVEDIR/data_to_compute_${job} $WORKDIR/project/

	# compute job will wait for the copy job to be finished
	qsub -N compute_${job} -hold_jid cp_${job} compute_job.ksh $WORKDIR/project/data_to_compute_${job}

done

Le job compute_1 commencera dès que le job cp_1 sera terminé.


Date de création: septembre 1994
Contact : ccub@u-bourgogne.fr
Ce site requiert l'activation de Javascript sur votre navigateur pour fonctionner dans son intégralité.