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ó possui dois ou quatro deles 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, seguimos uma política de "ei, preste atenção e seja gentil", mas é difícil para todos seguir em frente, mesmo com as melhores intenções. Então, apenas agendamos o nó inteiro para um determinado usuário de cada vez. Isso é um desperdício para tarefas de processo único e de thread único.
Com o Torque, é possível executar um script de prólogo como raiz antes do início da tarefa. Isso pode ser feito para definir as permissões do dispositivo adequadamente. Mas nós estamos correndo ( née Sun) Grid Engine. Possui prolog
scripts por fila , mas é executado como o usuário a quem o trabalho pertence (como o Torque prologue.user
), o que não ajuda aqui.
Há algo óbvio que estou faltando (espero), ou uma maneira alternativa de abordar isso? Percebo que tenho o código fonte e, portanto, posso fazer qualquer coisa , mas espero que exista uma maneira padrão de que estou perdendo.
Obrigado!