Je cherche à lancer un sbatch avec une configuration --array=1-4284 (mon analyse est composée de 4284 jobs). Lorsque que je lance la commande, je reçois l'erreur suivante : sbatch: error: Batch job submission failed: Invalid job array specification. Après exploration, la commande passe lorsque la taille de l'array ne dépasse pas 1000.
Existe-t-il une autre solution que la fractionnement (1-1000, puis 1001-2000, etc)? Peut-on augmenter ponctuellement ce nombre au prix de la performance (un run lancé sur la nuit par exemple)?
Je vous remercie pour votre aide ! Et merci pour ce super cluster !
en effet la limite de Slurm par défaut semble être 1000
System Administration
A new configuration parameter has been added to control the maximum job array size: MaxArraySize . The smallest index that can be specified by a user is zero and the maximum index is MaxArraySize minus one. The default value of MaxArraySize is 1001. The maximum MaxArraySize supported in Slurm is 4000001. Be mindful about the value of MaxArraySize as job arrays offer an easy way for users to submit large numbers of jobs very quickly.
si les tâches sont complètement indépendantes, tu devrais pouvoir lancer 5 jobs au total, 4 de 1000 et 1 de 284 (c'est vrai que ce n'est pas le plus commode!)
En effet, c'est bien ce paramètre qui limite la taille du job array.
Nous sommes en train de regarder pour augmenter cette limite, et on reviens vers vous dès que possible.
PS: J'ai eu le même réflexe et tester en limitant le nombre simultané de running tasks avec "%" mais ça ne suffit pas. Ceci dit, c'est plutôt une bonne pratique de contrôler le nombre de job tournant simultanément (grâce au "%"), cela permets de contrôler la charge demandé.
Oui j'ai l'impression que c'est le même problème. Ma solution a été de faire des fichiers de 1000 runs et de lancer à la suite. Je ne sais pas si depuis ça été corrigé.
Merci du retour ! En fait je n'ai que 250 fastq à passer... mais avec des noms de fichiers en 0-1000, 1000..., 2000..., 3000..., 4000..., 5000...!
J'ai un peu triché en écrivant des arrays en incluant le chiffre des milliers dans les noms de fichiers
par exemple
--array=1,2,3,4
[...] 1{SLURM_ARRAY}.fastq.gz
pour les fichiers en 11 12 13 14
--array=1,2,3,4
[...] 10{SLURM_ARRAY}.fastq.gz
pour les fichiers en 101 102 103 104
--array=1,2,3,4
[...] 100{SLURM_ARRAY}.fastq.gz
pour les fichiers en 1001 1002 1003 1004
etc
ça a marché même si un peu rébarbatif car il faut faire x scripts et donc batch
si une meilleure solution est proposée je suis preneur !