Execute o qsub no cluster via ssh

2

Estou configurando um sistema que gera automaticamente trabalhos de computação em uma máquina local (Linux), copia-os para um cluster e os envia para o sistema de enfileiramento.

Eu tento evitar a necessidade de scripts que são executados no cluster (assim, há apenas um script e ele é executado onde posso depurá-lo).

Eu tenho meu authorized_keys configurado, então depois de criar todos os arquivos necessários localmente, eu faço isso, a partir do diretório de casos local:

ssh cluster 'mkdir /home/user/casedir'
scp localdir/* cluster:/home/user/casedir/
ssh cluster 'qsub /home/user/casedir/run_script.sge'

... isso cria o diretório de casos no cluster, copia todos os arquivos de que preciso, mas falha na terceira linha, dizendo:     qsub: comando não encontrado

No entanto, se eu digitar interativamente ssh cluster para obter um shell no cluster, digite o comando qsub, ele inicializará o job e será executado corretamente.

... o que estou errado aqui? O cluster está executando uma versão bastante antiga do Sun Grid Engine, caso isso seja relevante.

Eu acho que eu poderia produzir e copiar localmente um script bash que executaria o comando qsub no cluster, mas isso parece ser uma maneira muito indireta de fazer isso.

    
por Zak 18.09.2015 / 17:39

1 resposta

3

Suponho que você adicionou qsub ao seu $PATH nos arquivos .bashrc ou .profile de seu usuário no cluster. Aqueles não são lidos ao executar um comando via ssh .

Ele deve funcionar bem se você usar o caminho completo para qsub :

ssh cluster '/usr/local/bin/qsub /home/user/casedir/run_script.sge'

Obviamente, você precisará alterar /usr/local/bin/qsub para qualquer que seja o caminho de qsub em seu cluster. Se você não souber, efetue logon no cluster e execute type qsub .

    
por 18.09.2015 / 18:16