Processus stoppé sans raison

Bonjour Mathias,

Difficile de dire ce qui coince sans message d'erreur... Rien dans la console/sortie de qiime2 ?

Pour avoir plus d'information sur un job, il est possible d'utiliser la commande scontrol show job <jobid> (le jobid est l'identifiant renvoyé par sbatch, aussi visible avec squeue). Mais dans notre cas, avec srun, ce n'est pas utile.

Pour ce type de traitement, je vous inviterais plutôt à utiliser la commande sbatch.
Le fonctionnement est similaire à srun mais non interactif.
Cela à plusieurs avantage: exécution en arrière plan, on garde une trace du traitement effectué, possibilité d'utiliser les JobArray, etc.

Il faut alors écrire un petit script bash avec la ou les commandes à exécuter.
Nommons ce script denoising.sh:

#!/bin/bash
#SBATCH --mem-per-cpu=16GB

module load qiime2/r2019.01

qiime dada2 denoise-single --i-demultiplexed-seqs seq_single_end_16S.qza --p-trunc-len 0 --output-dir dada2_denoise --verbose

On peut alors l'exécuter:

sbatch denoising.sh

Et suivre l'exécution du job en regardant le fichier résultat slurm-<jobid>.out ou la commande squeue.

En effet, l'utilisation de "threads" permets d'accélérer le traitement.
Il en faut pas hésiter à l'utiliser dès que possible (i.e. dès que le logiciel a une option pour parraléliser le traitement, on parle alors de "threads"/"fork"/"cores"/"cpu").

Sachant qu'un serveur de base dispose de 256Go RAM et 28 CPU/Cores, c'est le maximum que l'on peut allouer pour un job.
Je n'ai pas d'expérience sur le logiciel pour savoir le bon nombre de threads à utiliser. Il faut tester. A priori, plus on utilise de threads, plus ce sera rapide. Essayons avec 12 threads.
Il faudra donc lancer qiime dada2 denoise-single avec l'option --p-n-threads 12.
Mais aussi demander à slurm de réserver 12 cores/CPU pour ce traitement: --ntasks-per-node=12
Il est très important de faire correspondre le nombre de threads du logiciel avec celui indiqué à Slurm (il y a sinon aucun gain).

Ainsi, on aura un script comme ci-dessous.
J'en profite pour indiquer plus d'option à Slurm: le nom du job, le temps d'éxécution (prendre bcp de marge), le nombre de serveur, le nom de la partition ("fast" si job < 24h), le fichier de sortie (je peux indiquer un non ou un path différent) et demander à recevoir des courriels.
Vient ensuite quelques infos utiles à renvoyer, le chargement des modules et finalement notre commande !
Le script est devenu plus touffu masi ce n'est qu'un exemple que je vous laisse adapter à vos besoins.

#!/bin/bash

################################ Slurm options #################################

### Job name (default: name of the script)
#SBATCH --job-name=denoise

### Max run time "hours:minutes:seconds" (default: 1 hour)
#SBATCH --time=20:00:00

### Requirements nodes/servers (default: 1)
#SBATCH --nodes=1

### Requirements cpu/core/task (default: 1)
#SBATCH --ntasks-per-node=12

### Requirements memory (default: 2GB per cpu)
#SBATCH --mem-per-cpu=8GB

### Partition (default: fast)
### fast = job time < 24h
### long = job time < 10j
#SBATCH --partition=fast

### Sortie (default: slurm-[jobid].out)
#SBATCH --output=slurm-%j.out

### Send mail on events (NONE, BEGIN, END, FAIL, ALL)
#SBATCH --mail-user=email@address
#SBATCH --mail-type=ALL

################################################################################


# Useful information to print
echo '########################################'
echo 'Date:' $(date --iso-8601=seconds)
echo 'User:' $USER
echo 'Host:' $HOSTNAME
echo 'Job Name:' $SLURM_JOB_NAME
echo 'Job Id:' $SLURM_JOB_ID
echo 'Directory:' $(pwd)
echo '########################################'

# modules loading
module load qiime2/r2019.01

# QIIME2 dada2 denoise
qiime dada2 denoise-single --p-n-threads 12 --i-demultiplexed-seqs seq_single_end_16S.qza --p-trunc-len 0 --output-dir dada2_denoise --verbose


echo '########################################'
echo 'Job finished' $(date --iso-8601=seconds)

N'hésitez-pas à nous faire une retour ou à revenir vers nous si cela ne fonctionnait pas.

Bonne journée et bon calcul :slight_smile:

2 « J'aime »