Como se pode executar um script de prólogo como root no gridengine?

2

Em um de nossos clusters de computação, temos sistemas com recursos de hardware exclusivos aos quais o acesso é controlado por permissões de arquivo de dispositivo. Cada nó tem dois ou quatro destes e vários núcleos de CPU. Gostaríamos de poder agendar trabalhos de diferentes usuários no mesmo nó e restringir o acesso aos recursos atribuídos corretamente. (Algumas filas podem até ser apenas CPU, sem acesso).

Por um tempo, estávamos correndo com uma política de "ei, preste atenção e jogue legal", mas é difícil para todos manterem-se em dia, mesmo com as melhores intenções. Então, em vez disso, apenas agendamos o nó inteiro para um determinado usuário por vez. Isso é um desperdício para tarefas single-thread, single-process.

Com o Torque, é possível executar um script de prólogo como raiz antes do início do trabalho . Isso pode ser feito para definir as permissões do dispositivo adequadamente. Mas nós estamos correndo ( née Sun) Grid Engine. Isso tem scripts por fila prolog , mas eles são executados como o usuário a quem o trabalho pertence (como prologue.user do Torque), o que não ajuda aqui.

Existe algo óbvio que sinto falta (espero) ou uma maneira alternativa de abordar isso? Eu percebo que eu tenho o código-fonte e, portanto, posso fazer qualquer coisa , mas eu espero que haja uma maneira padrão que estou perdendo.

Obrigado!

    
por mattdm 14.12.2010 / 16:02

1 resposta

5

O script de prólogo pode, na verdade, ser executado como qualquer usuário.

De man queue_conf :

prolog

The executable path of a shell script that is started before execution of Grid Engine jobs with the same environment set- ting as that for the Grid Engine jobs to be started afterwards. An optional prefix "user@" specifies the user under which this procedure is to be started.

Portanto, definir prolog root@/path/to/prolog deve tê-lo como root.

    
por 18.01.2011 / 20:50