Bonjour,
Je n'arrive pas à paramétrer l'usage de /plusieurs cores/ou multi threads/, probablement parce que je ne transmets pas cette demande à toutes les couches qui sont imbriquées dans mon protocole :
slurm (avec --cpus-per-task) qui lance singularity (pour du docker) avec l'exécution d'un shell qui, après le download des données, lance leur analyse avec snakemake (avec -j $SLURM_CPUS_PER_TASK).
Mon objectif aurait été qu'en augmentant --cpus-per-task on gagne un peu de temps sur l’exécution du script. Mais j'obtiens toujours ~ 25 minutes (avec 1 ou 8 CPU) : il y a donc qqch qui m’échappe : donc Grand Merci d'avance pour l'aide ...
Claire.
Hormis le script pour slurm (cf. + bas), tous les codes sont ici :
Voici le protocole suivi :
- ssh @core.cluster.france-bioinformatique.fr
- git clone https://github.com/thomasdenecker/FAIR_Bioinfo.git
- cd FAIR_Bioinfo
- 2 modifs du FAIR_script.sh : i) replacement de "snakemake -j 6" par "snakemake -j $SLURM_CPUS_PER_TASK" et ii) mise en commentaire de la dernière ligne (pour ne pas lancer l'appli shiny)
- singularity pull docker://tdenecker/fair_bioinfo
- sbatch fair_bioinfo.slurm
le run complet prend ~ 25 minutes ...
fair_bioinfo.slurm :
#!/bin/bash
#SBATCH -o slurm.%N.%j.out
#SBATCH -e slurm.%N.%j.err
#SBATCH --partition fast
#SBATCH --cpus-per-task=8
#SBATCH --mem 48GB
singularity exec -B $PWD:/home/rstudio fair_bioinfo_latest.sif bash ./FAIR_script.sh