Configure o SGE para preencher cada nó completamente em vez de distribuir trabalhos

2

Originalmente postado no Stack Overflow por engano ... Veja PS no final da resposta do post.

Eu pesquisei isso há algum tempo, mas não consigo encontrar a resposta. O problema que tenho é o seguinte: suponha que eu tenha um SGE configurado com duas máquinas de 12 CPUs. Eu tenho dois trabalhos de 1-CPU para enviar para a grade, mas outros usuários, muitas vezes, querem enviar trabalhos de 12 CPUs. Estas são tarefas de memória compartilhada que não podem ser divididas em várias máquinas. O que acontece é que às vezes eu envio meus dois trabalhos e cada um deles vai para uma máquina separada, deixando cada um com 11/12 CPUs livres. Isso impede que outras pessoas executem tarefas de 12 CPUs enquanto eu estou trabalhando.

Existe alguma maneira de contornar isso? Eu sei que você pode usar as regras de preenchimento para controlar um único qsub (para que o preenchimento possa fazer um qsub de 12 CPUs permanecer em uma máquina, dividido entre vários, etc.), mas existe uma configuração comparável para forçar qsubs separados a irem para a mesma máquina? Eu também sei que posso solicitar explicitamente uma máquina em particular (acho que é -h machinename, ou algo similar), mas eu prefiro ter uma configuração mais robusta do que isso.

Qualquer ajuda é apreciada. Obrigado!

PS: na postagem do Stack Overflow, uma resposta veio antes do thread ser fechado, sugerindo o uso do ambiente paralelo allocation_rule = $ fill_up. A menos que tenha feito algo errado ao tentar, não acho que isso satisfaça o problema. Pelo que tenho visto testando, se eu configuro para fill_up isto significa que as CPUs requisitadas DENTRO de um único qsub são colocadas na mesma máquina de grid, se possível, mas CPUs de qsubs DIFERENTES ainda irão para a máquina de baixa carga (ou o que for a grade escolhe), e pode ir para uma máquina vazia. O teste para isso envolveu a supressão de alguns trabalhos de CPU, aguardando ~ 5 min e, em seguida, enviando mais alguns. Embora às vezes o primeiro grupo acabe na mesma máquina (eu estou supondo porque a carga da máquina não é em tempo real, então todos eles foram enviados para a mesma máquina de baixa carga?), Mas o segundo grupo não iria consistentemente para a mesma máquina que o primeiro grupo.

    
por Andrew 06.10.2015 / 19:33

1 resposta

1

A configuração load_forumla padrão do planejador é np_load_avg , que atribui novos trabalhos aos nós com a menor média de carregamento. Para que ele preencha os nós, você pode definir load_formula para slots . Para ver as configurações atuais do agendador:

qconf -ssconf

Para modificar as configurações:

qconf -msconf
    
por 07.10.2015 / 05:56