Nas redes de computadores das universidades é comum encontrar computadores bloqueados com o aviso “Rodando simulações”. Esta nota descreve uma forma de rodar uma simulação em uma rede Linux deixando o computador disponível para outros usuários.
Desvinculando o processo do seu login
Suponha que você queira rodar o algoritmo Simulacao.R no software estatístico R. O procedimento mais conhecido é digitar R no terminal e chamar o script com:
source('Simulacao.R')
Outra possibilidade é executar:
echo "source('Simulacao.R')" | R --no-save > teste.txt
Esse comando executa o arquivo Simulacao.R e salva os resultados em teste.txt, sem salvar o workspace. Para mais opções, veja man R.
Se você executar qualquer um dos dois comandos e finalizar sua sessão, o kernel automaticamente encerrará todos os programas em execução vinculados ao seu login.
Uma forma simples e eficiente para evitar esse problema é utilizar o comando nohup:
nohup echo "source('Simulacao.R')" | R --no-save > teste.txt &
Assim, você pode finalizar a sessão e, em outro momento, abrir o arquivo teste.txt para verificar os resultados.
Outra possibilidade, útil para quem tem em casa um computador conectado à internet, é fazer login remotamente via ssh na rede da universidade e executar o comando desejado.
Nota enviada por Francyelle Lima Silva — Doutoranda IME/USP, 2013.
Rodando simulações do Matlab em uma rede Linux
Suponha que o usuário queira rodar o algoritmo Simulacao.m no Matlab. O procedimento é:
- Chamar esse script com o comando
screen matlab -nodisplay -r Simulacaono terminal. Neste caso,screenfaz a mesma função quenohup, porém é mais eficiente para o Matlab. - Para salvar os resultados em
.txt, dentro do script é possível usarsave Resultados.txt C -ascii, em queResultadosdeve ser a saída de alguma função ou os resultados do código.