Filas sobrepostas no Sun Grid Engine?

5

Gostaríamos de ter um cluster de computação baseado em SGE com uma fila que dá acesso a todos os nós para a equipe computacional e uma segunda fila de clusters que dá acesso a, digamos, metade dos nós para uso ocasional (mas pesado) por outro pessoal.

Queremos limitar os recursos da segunda fila para que a equipe computacional continue fazendo algum trabalho, mesmo quando houver uso ocasional (mas pesado) de não-comp. pessoal.

Existe uma maneira de configurar duas (ou mais) filas SGE de uma coleção de nós, de modo que uma fila possa conter todos os nós, e uma segunda fila contenha um subconjunto dos mesmos nós, e ambas as filas operem simultaneamente?

Quais parâmetros específicos de configuração do SGE eu pesquisaria para configurar algo assim?

    
por Alex Reynolds 02.06.2011 / 23:41

1 resposta

5

Claro, isso é totalmente possível. As filas SGE são independentes umas das outras, então você pode designar quaisquer nós que você quiser para cada fila, permitindo que eles se sobreponham como você quiser.

Para criar uma fila, digite qconf -aq : isso abrirá seu editor padrão (geralmente vim). Digite o nome da fila como qname , adicione os hosts que você deseja atribuir no hostlist e, para slots , adicione uma lista delimitada por vírgulas de entradas do formato [hostname=numslots] . Normalmente, o número de slots é o número de núcleos no host, mas você pode subscrever sub ou over, se preferir. Se você quiser que as filas se sobreponham, basta adicionar os mesmos hosts a várias filas.

Observe, no entanto, que, por padrão, as filas sobrepostas não estão cientes do uso de cada uma delas. Ambos atribuirão tarefas alegremente ao mesmo nó e esperarão que elas sejam executadas.

A maneira mais comum de evitar isso é tornar os nós exclusivos para o trabalho, portanto, apenas um trabalho pode ser executado por vez. (Este é o padrão em outros agendadores como o PBS.) O SGE torna isso um pouco complicado e envolve a criação de um "recurso" virtual que só pode ser usado uma vez por nó. Para fazer isso, digite qconf -mc para gerenciar recursos consumíveis . Isso abrirá um editor listando recursos consumíveis: adicione um novo chamado "exclusivo", assim:

#name          shortcut     type         relop  requestable  consumable  default  urgency
#-----------------------------------------------------------------------------------------
exclusive      excl         BOOL         EXCL   YES          YES          1        1000

Para mais informações, consulte o wiki do mecanismo de grade .

Você também pode configurar o que é chamado filas subordinadas . Neste, você define uma fila para que ela substitua automaticamente a outra quando um determinado número de slots por nó é atribuído. Para configurar isso, execute qconf -mq queue1 e, em "subordinado", especifique queue2=N . Então, sempre que o número de slots usados em um nó na fila1 estiver acima de N , o trabalho na fila2 será suspenso até que o trabalho da fila1 seja concluído.

    
por 03.06.2011 / 14:44