Sun Grid Engine define os requisitos de memória por trabalho

1

Eu quero ser capaz de configurar requisitos de memória por trabalho.

Por exemplo: para executar 5 trabalhos, para os quais sei que cada um precisará de 4 GB de memória. Eu tenho 16 GB de RAM no servidor Ubuntu e 16 GB de swap. Eu quero evitar o uso da troca. Posso fazer algo como: %código%? Os trabalhos exigirão 4 GB em algum momento, mas não no começo.

Como dizer ao SGE quais são meus requisitos? Como evitar o agendamento de 5 x 4 GB quando apenas 16 GB estão disponíveis?

Eu li o guia do usuário e tentei qsub -l mem_required_for_my_job=4G job1; qsub -l mem_required_for_my_job=4G job2; qsub -l mem_required_for_my_job=4G job3; qsub -l mem_required_for_my_job=4G job4; qsub -l mem_required_for_my_job=4G job5 . Nenhum deles é o que eu quero. Eu não quero que meus empregos sejam mortos no meio do processamento. Eu quero que eles não sejam programados, a menos que o máximo de recursos necessários esteja disponível.

Posso fazer isso?

Obrigado a todos!

    
por grs 01.03.2011 / 19:34

2 respostas

2

Em nosso cluster, usamos h_vmem para impor a alocação de memória de trabalho.

O que parece estar faltando é definir o valor disponível como um recurso consumível. Em qconf -mc ou no diálogo qmon complexes, é necessário definir o recurso como solicitável e consumível.

Em seguida, em cada host com qconf -me , você precisa definir a quantidade de memória disponível em complex_values .

Por exemplo, temos definições de host semelhantes:

hostname              node004
load_scaling          NONE
complex_values        h_vmem=30.9G,exclusive=1,version=3.3.0
    
por 02.03.2011 / 02:44
0

Acho que o que você está procurando é virtual_free

"Se um pedido de trabalho para virtual_free exceder o valor disponível, o trabalho não será despachado para uma fila nesse host." de link

Veja também link

    
por 01.03.2011 / 21:53