Demande conseil pour lancer 10 répétitions d’un job GPU sur IPOP

Bonjour,

Je me permets de vous contacter car je fais tourner un entraînement deep learning (NETTAG) sur le cluster IPOP via Slurm (projet : multiomx_dl). Lors d’un run précédent, le script a tourné environ 13 jours sur 1 GPU (A100 MIG 40GB), avec 8 CPU et 64 Go de RAM (partition ipop-up).

Je dois maintenant lancer le même entraînement 10 fois (répétitions/variations de seed) afin d’obtenir des résultats plus robustes. Je voulais vous demander la meilleure façon de procéder sur le cluster : faut-il privilégier un job “array” Slurm (10 tâches) ? ou une autre approche recommandée pour réduire le temps ?

Voici ci-dessous mon job Slum, si cela peut faciliter la réponse :

#!/bin/bash

#SBATCH --job-name=nettag_as_original

#SBATCH --partition=ipop-up

#SBATCH --gres=gpu:a100_4g.40gb:1

#SBATCH --cpus-per-task=8

#SBATCH --mem=64G

#SBATCH --time=4000:00:00

#SBATCH --output=nettag_final-test%j.out

set -e

source ~/.bashrc

conda activate nettag

#dossier NETTAG

cd /shared/projects/multiomx_dl/NETTAG/code

Lancer NETTAG

bash human_350k_run_dev.sh

Merci d’avance pour votre aide,
Cordialement,

Asraa ESMAEL

PhD student,

Team 3, Paris Cardiovascular Research Center – PARCC

Bonjour,

Oui vous pouvez utiliser un job array:

--array=1-10

et récupérer la variable $SLURM_ARRAY_TASK_ID (qui prendra à chaque task une valeur différente entre 1 et 10) pour faire varier les paramètres.

Les tasks iront dans la queue et apparaîtront sous la forme job_id[1-10] quand elles sont en attente (PD) ou jobid_#task quand elles sont en cours d’exécution (R).

Cordialement.