====== Configuração e uso do LCPAD ======
O LCPAD - Laboratório Central de Processamento de Alto Desempenho -
disponibiliza recursos computacionais na UFPR em particular para procedimentos intensos com simulações etc.
O sistema disponibiliza várias máquinas com amplos recursos de processamento e de memória.
==== Conta no LCPAD ====
Para ter conta é necessário solicitar e o trabalho deve estar vinculado a um projeto cadastrado.
No LEG alguns usuários utilizam o LCPAD vinculados a um projeto de PJ.
==== Acesso ====
* as máquinas do LCPAD devem ser acessadas remotamente através de outras máquinas via internet
* O usuário cadastrado receberá email com login e senha de acesso.
* o acesso deve ser feito sempre à servidora ''lcpad.ufpr.br''
* a partir desta servidora é possível acessar as demais máquinas do LCPAD via o comando ''rlogin'' (mais detalhes abaixo)
* O acesso à servidora ''lcpad.ufpr.br'' pode ser feito por ''ssh'' (inclusive gráfico com ''ssh -X'') via programa gráfico de ssh (putty, etc) ou linha de comando com:
% ssh LOGIN@lcpad.ufpr.br
* Recomenda-se trocar a senha no primeiro uso com o comando:
% passwd
* uma vez acessada a servidora pode-se obter instruções e informações sobre os recursos disponíveis digitando-se o comando a seguir e as informações serão exibidas na tela (digite ''"q"'' para sair da página de instruções)
% normas
==== Uso ====
* O sistema operacional das máquinas do LCPAD é LINUX (debian). É portanto recomandado que usuários estejam familiarizados com [[http://www.leg.ufpr.br/~paulojus/restrito/dicas/node2.html|comandos básicos do LINUX]]
* É possível rodar aplicativos gráficos na servidora ''lcpad.ufpr.br'' mas não nas demais.
* Todas as servidoras utilizam uma área de usuário (conta) comum. A área dos usuários da estatística é sempre da forma ''/home/users/est/LOGIN''
* O LCPAD utiliza o interpretador de comandos //Z-shell (/bin/zsh)//. Para mais detalhes [[lcpad#shell|ver sessão SHELL]] abaixo.
//Sugestão://
* usar a servidora ''lcpad.ufpr.br'' para sessões interativas e/ou ''jobs'' rápidos
* usar as demais para ''jobs'' mais longos e/ou múltiplos ''jobs''
* Existem diversas máquinas adicionais (ver saida do comando ''normas'') tais como ''a01-a10'', ''h01-h04'', ''o01-o03'' (**dentre outras**).
* para ver a lista de máquinas disponíveis digite em ''lcpad'':
lcpad % carga
* para acessar uma delas use o ''rlogin''
lcpad % rlogin bl03
bl03 %
Note que o ''rlogin'' funciona mas é um link para ''ssh''.
==== Uso do R no LCPAD ====
Existem duas versões do programa ''R'' disponíveis no LCPAD
- Uma versão disponível para acesso **apenas na servidora ''lcpad.ufpr.br''** que pode ser usada inclusive interativamente e graficamente. Para iniciar esta versão do R em modo interativo digite:
% /home/users/est/paulojus/R/bin/R
Voce pode (e deve) crirar um //alias// para o comando acima no sistema
% alias R='/home/users/est/paulojus/R/bin/R'
Para modo BATCH o comando usual e acompanha o andamento do //job// com:
% R CMD BATCH seu_programa.R &
% tail -f seu_programa.Rout
- Nas demais máquinas do LCPAD não é possivel utilizar o R gráfico e foi compilada uma versão sem suporte gráfico do ''R'' que chamamos de ''Rnox''. Par usar esta versão voce deve primeiro criar um //alias// nos seu arquivo ''.bashrc'' e/ou ''.zshrc'' (se voce copiou estes arquivos da conta de PJ isto não é necessário pois o //alias// já está nos arquivos copiados):
alias Rnox="nice -n 19 /home/users/est/paulojus/Rnox/bin/R"
source .bashrc
source .zshrc
Depois disto voce pode rodar processos **em qualquer máquina ** com:
% Rnox CMD BATCH seu_programa.R &
==== Processos, logout, interrupções, etc ====
**Usando o Z-shell (zsh)** se um processo em BATCH é iniciado com
% Rnox CMD BATCH seu_programa.R &
ele será interrompido caso se voce se deslogar da máquina.
Existem diferentes estratégias para contornar isto:
- Mudar o seu //shell// para o ''bash'' ([[lcpad#shell|ver sessão SHELL]] abaixo)
- Utilizar ''disown'' ou ''nohup'' no //Z-shell// como nos exemplos a seguir (válido tanto para uso do ''R'' quanto ''Rnox'')
a02% Rnox CMD BATCH ap.R &
a02% disown %
a02% exit
e o //job// continua. Ou então:
a02% nohup Rnox CMD BATCH ap.R &
No caso do ''Rnox'' esta última solução pode ser //automatizada// mudando o seu //alias// em ''.zshrc'' para:
alias Rnox="nice -n 19 nohup /home/users/est/paulojus/Rnox/bin/R"
source .zshrc
==== SHELL ====
* O LINUX utiliza ''interpretadores de comandos'' (chamados de //shell//) no terminal para executar as instruções dos usuários. Existem diversos interpretadores de comandos que são muito semelhantes na sintaxe dos comandos mas possuem algumas diferenças entes eles.
* O interpretador de comandos talvez mais comum (usado no LEG e instalação padrão de LINUX tais como debian e Ubuntu) é o ''bash'' (//born again shell//) e o arquivo de configuração na área do usuário é o ''.bashrc''
* No LCPAD utiliza-se outro, o ''zsh'' (//Z-shell//) e o arquivo de configuração na área do usuário é o ''.zshrc''
* na servidora principal ''lcpad.ufpr.,br'' é possível mudar o interpretador de comandos padrão com
% chsh
* nas demais servidoras este comando não pode ser utilizado, mas pode-se trocar o interpretador de comando para o ''bash'' digitando-se:
a01% /bin/bash
E para retornar ao ''zsh'' basta digitar
a01% /bin/zsh
* para fazer esta mudança parmanente e obter o ''bash'' toda vez que acessar as máquinas voce pode colocar na ultima linha do seu arquivo ''.zshrc'' o comando de mudança de shell:
/bin/bash
* se voce não quiser se preocupar com nada destas configurações pode ainda copiar os arquivos de configuração de PJ:
% cp ../paulojus/.zshrc .
% cp ../paulojus/.bashrc .
==== Acompanhando seus processo ====
- No ''R'' sugere-se sempre colocar no seu programa comandos ''print()'' (por exmeplo imprimir o número da simulação) que permitam que voce acompanhe o andamento com
% tail -f seu_programa.Rout
- Numa náuqina voce pode ver se o processo está rodando com um dos seguintes comandos do linux:
% ps -u SEU_LOGIN
% top
- O LCPAD disponibiliza ainda comandos para acompanha processos:
% carga
% carga -u
% carga -U
% carga -j
* A primeira forma mostra o //load// das máquinas. (útil para escolher em qual máquina está menos carregada submeter o próximo //job//),
* a segunda mostra o número total de processos que o usuário está rodando em cada máquina,
* a terceira mostra o número de processos do usuário que efetivamente consomem cpu.
* a quarta sintaxe mostra o nome dos programas daquele usuário rodando em cada máquina.
==== Finalmente .... ====
Vale insistir: não deixe de digitar na servidora o comando abaixo para ter mais informações sobre recursos e uso do sistema!!!
% normas
==== Agradecimento ====
Agradecemos ao Prof. Carlos Carvalho (Depto de Física) o apoio, instruções e soluções para uso do LCPAD.