Pergunta

Estou tentando executar trabalhos qsub em um cluster SGE (Sun Grid Engine) que suporta no máximo 688 trabalhos.Gostaria de saber se existe alguma maneira de descobrir o número total de trabalhos que estão atualmente em execução no cluster para que eu possa enviar trabalhos com base na carga atual do cluster.

Eu pretendo fazer algo como:durma por 1 minuto e verifique novamente se o número de trabalhos no cluster é <688 e, em seguida, envie os trabalhos posteriormente.

E só para esclarecer minha pergunta é saber o número total de trabalhos enviados no cluster e não apenas os trabalhos que enviei atualmente.

Desde já, obrigado.

Foi útil?

Solução

Você pode usar qstat listar os trabalhos de todos os usuários;isso com awk e wc pode ser usado para descobrir o número total de trabalhos no cluster:

qstat -u "*" | awk '{if ($5 == "r" || $5 == "qw") print $0;}' | wc -l

O comando acima também leva em consideração os trabalhos que estão na fila e aguardando para serem agendados em um nó de computação.

No entanto, os administradores de sistemas do cluster podem impedir que os usuários verifiquem trabalhos que não lhes pertencem.Você pode verificar se consegue ver os trabalhos de outros usuários executando:

qstat -u "*"

Se você sabe com certeza que outro usuário está executando um trabalho e ainda assim não consegue vê-lo enquanto executa o comando acima, é mais provável que os administradores de sistema tenham desabilitado essa opção.

Reflexão tardia:pelo que entendi, você é apenas um usuário regular de cluster - por que está se preocupando em enviar trabalhos dessa maneira?Por que você simplesmente não envia todos os trabalhos que deseja e se o cluster não puder agendar seus trabalhos, ele simplesmente os colocará em um qw indique e agende-os sempre que a SGE considerar o momento mais apropriado.

Outras dicas

Dependendo de como o cluster está configurado, usando a matriz de tarefas (-t opção para qsub) contornaria esse limite.

Tenho limites semelhantes definidos para o número máximo de trabalhos que um único usuário pode enviar.Este limite refere-se a instâncias individuais de qsub e não o envio de uma matriz de trabalho único, potencialmente muitas tarefas (esse limite é definido por meio de outra variável de configuração, max_aj_tasks).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top