Comment puis-je définir le nombre maximal de travaux en cours d'exécution par utilisateur sur SGE?

9

Nous utilisons SGE (Sun Grid Manager). Nous avons certaines limitations sur le nombre total de travaux simultanés de tous les utilisateurs.

Je voudrais savoir s'il est possible de définir une limite temporaire et volontaire sur le nombre de travaux en cours d'exécution simultanés pour un utilisateur spécifique.

Par exemple, l'utilisateur daveest sur le point de soumettre 500 tâches, mais il ne souhaite pas que plus de 100 soient exécutées simultanément, par exemple, car il sait que les tâches font beaucoup d'E / S qui ont bloqué le système de fichiers (histoire vraie, malheureusement).

Est-ce possible?

David B
la source

Réponses:

9

Vous pouvez définir un complexe avec qconf -mc. Appelez-le quelque chose comme high_ioou ce que vous voulez et définissez le champ consommable sur YES. Puis dans la configuration globale avec qconf -me globalou dans une file d'attente particulière avec qconf -mq <queue name>set high_io=500dans les valeurs complexes. Dites maintenant à vos utilisateurs de spécifier -l high_io=1ou autant de "jetons" que vous souhaitez qu'ils utilisent. Cela limitera le nombre de travaux simultanés à ce que vous définissez la valeur complexe.

L'autre façon de procéder est d'utiliser des quotas. Ajoutez un quota qconf -arqsqui ressemble à ceci:

 {
        name         dave_max_slots
        description  "Limit dave to 500 slots"
        enabled      true
        limit        users {dave} to slots=500
 }
Kamil Kisiel
la source
Merci Kamil et désolé pour la réponse tardive. Quelques suivis, puisque je suis assez nouveau qconf. Concernant votre première suggestion, pourriez-vous être un peu plus explicite? Qu'est-ce que le «consommable»? Après avoir configuré comme mentionné, je dis simplement à l'utilisateur de le faire qsubavec -l high_io=1?
David B
1
Fondamentalement, un complexe est une ressource de valeur qui peut être demandée par un travail avec le -lcommutateur sur qsub. En définissant un complexe comme consommable, cela signifie que lorsqu'un travail demande ce complexe, le nombre disponible est diminué. Donc, si une file d'attente contient 500 du complexe high_io et qu'un travail en demande 20, il y en aura 480 disponibles pour d'autres travaux. Vous demanderiez le complexe comme dans votre exemple.
Kamil Kisiel
Merci Kamil. Désolé, je ne peux pas voter (pas encore assez de réputation).
David B