Demande bigmem - limite de temps

Bonjour,

Serait-il possible d'avoir accès à la partition bigmem? L’aligne que je réalisais s’est arrêté après un mois.

slurmstepd-cpu-node-103: error: *** JOB 43858349 ON cpu-node-103 CANCELLED AT 2025-03-09T22:53:15 DUE TO TIME LIMIT ***

Merci

aborowiecka

Bonjour,

Votre job n'a utilisé que 7.2Go de mémoire (sur 500G demandé, soit 1.4%)
Par contre, vous utilisez 100% des 8 CPU.
Je vous invite donc à plutôt à augmenter les ressources CPU allouées.

reportseff --format +reqcpus,AveCPU,CPUTime,reqmem,MaxRSS,user,Account,start,end,NNodes,NodeList,QOS,Partition  43858349
     JobID   State         Elapsed  TimeEff   CPUEff   MemEff   ReqCPUS    AveCPU      CPUTime      ReqMem    MaxRSS       User            Account                Start                  End           NNodes     NodeList      QOS     Partition 
  43858349  TIMEOUT    30-00:00:18  100.0%     ---      1.4%       8      00:00:00   240-00:02:24    500G    7278384K   aborowiecka   _gwas_ys_pseudo_tb   2025-02-07T22:52:56   2025-03-09T22:53:14     1      cpu-node-103   normal     long

PS: Très généralement (c'est pas toujours vrai suivant les traitements) mais un job qui plus d'une dizaine de jours est probablement à revoir (parallélisation, etc).

"J'utilise le programme MTBseq, qui est un pipeline d'analyse conçu pour standardiser les analyses. Malheureusement, je ne peux pas augmenter le nombre de threads au-delà de 8 pour l'étape en question, ni paralléliser le processus car cette option n'est pas disponible. Je pense que je confonds les threads avec les CPUs par tâche. J'ai utilisé 8, mais au final, je n'ai utilisé qu'un seul CPU sur le nœud cpu-node-103. Faut-il que j'augmente le nombre de CPUs à 300, qui est le maximum, ou est-ce déjà au maximum ?"

En simplifiant un peu, l'option --threads corresponds bien au nombre de tâche à exécuter en parallèle.
Il doit correspondre au nombre de CPU demandé pour le job (--cpus-per-task).

Je relancerais donc votre job an augmentant le nombre de CPU à 32 peut-être 64, avant d'en demander plus...

A noter, qu'il est souvent possible de paralléliser par les données (et c'est souvent le plus simple et le plus efficace): si je doit faire tourner mon pipeline sur X jeu de données, je peux alors lancer X jobs, chacun traitant un jeu de donnée.

1 « J'aime »

Merci beaucoup pour ces explications ! Je vais tester cela. (Et pour lancer les données séparément, malheureusement j'ai déjà analysé les étapes où c'était possible de les traiter séparément, je suis maintenant à l'étape où le programme doit les rassembler.)

J'ai relancé mon analyse : 45061657 long All_L4_T aborowie R 17-00:59:32 1 cpu-node-107 , ici je n'utilise qu'un seul thread, c'est bien ça ? Donc même si j'ai relancé avec 64 cpus par task je n'utilise qu'un CPU ? Et je vais sûrement manquer de cpu et temps pour terminer mon analyse comme précédemment ?

Je ne comprends pas votre question.

Voici ce qui tourne à cet instant sur le noeud cpu-node-107:
image

Autant dire pas grand chose. Un seul CPU sollicité qui est d'ailleurs très peu utilisé (~10%) et aucun threads. La mémoire n'est pas utilisé non plus.
Vous n'utilisez donc pas les ressources importantes qui sont demandées (64 CPU, 500Go RAM) et vos traitements n'avancent pas.

Je pense qu'il faut que vous appréhendiez mieux tout ça, peut-être en vous rapprochant d'une plateforme de Bioinformatique, du Mésocentre de votre région ou autre qui pourront mieux vous guider.