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.