Comment bien choisir le paramètre mémoire de sbatch?

Bonjour Céline,

Je dois avouer que quelque chose m'échappe. En effet, au vu de la demande (--mem=250GB) et du fait de la capacité du serveur (256G de mémoire physique) , il n'est pas possible que le job en question est utilisé 1.11 TB. Mais, en effet, c'est pourtant bien ce que remontent les outils (comme seff, ou sacct)...

Je penche pour une erreur d'enregistrement ou un bug. @team.ifbcorecluster avez-vous déjà rencontré ce type d'anomalie ?

Quelques éléments de réponses à vos questions:

a) Comment prévoir efficacement la quantité de mémoire nécessaire ?

L'habitude ou les tests... Il n'y a pas à ma connaissance d'outils ou de méthodes.
La commande seff, comme vous l'avez fait, est alors très utile pour évaluer les ressources utilisées.

b) Comment en faire la requête dans les paramètres sbatch ?

Exactement comme vous avez fait :slight_smile:
On peut spécifier la mémoire totale dont on a besoin (indépendamment du nombre de CPU):

#SBATCH --mem=200GB

Ou en spécifiant un taille de mémoire par CPU. Dans ce cas, la mémoire totale allouée dépendra du nombre de CPU demandé (soit ici 10*20GB = 200 GB):

#SBATCH --cpus-per-task=10
#SBATCH --mem-per-cpu=20GB

c) Faut-il que je demande plus de cores, seulement pour accéder à la mémoire ?

Pas forcément (cf. réponse ci-dessus).
Usuellement plus on utilise de mémoire, plus on utilise de CPU mais c'est pas une règle absolue.
Il faut noter aussi que si on demande 250GB de mémoire (soit la totalité de la mémoire disponible sur un nœud de calcul standard de l'IFB Core), alors autant utiliser la totalité des CPU de ce nœud (puisque faute de mémoire encore disponible, il ne pourra y avoir d'autre jobs exécuté sur ce nœud). Cf la liste des noeuds de calcul avec leur capacité CPU et mémoire: https://ifb-elixirfr.gitlab.io/cluster/doc/slurm_at_ifb/#ifb-core-cluster-computing-nodes

Dites-nous si ce n'est pas clair ou si vous avez besoin de complément d'information.