Guia de acesso e especificações das máquinas de simulação do lab (GPUs NVIDIA para deep learning). As specs vêm da telemetria ao vivo do Checker (hardware real de cada máquina); veja o dashboard para uso em tempo real. Acesso por SSH na porta 50000 de qualquer ponto da internet (o wifi institucional da UFPel bloqueia SSH).
Fichas das máquinas
CPU, GPU, RAM, discos e OS vêm da telemetria ao vivo do Checker — ao instalar hardware novo, a ficha atualiza sozinha no próximo poll (≤ 5 min). IPs, convenção do mount de cache e notas do lab são fixos por máquina.
Túnel para Jupyter
LAB_USER=seu_login
ssh -p 50000 -L 8888:localhost:8888 \
$LAB_USER@skynet.inf.ufpel.edu.br
Depois abra localhost:8888 no navegador local. A versão reutilizável (função jupyter_remoto) está logo abaixo.
⚠ Uso responsável
- Confira se a GPU está livre antes de rodar —
/checkno Slack ou o dashboard. - Iniciar um processo numa GPU já em uso pode corromper a simulação de um colega.
- Jobs longos: entre na fila para que a próxima pessoa saiba a estimativa.
Acesso
Conexão direta (troque USUARIO pelo seu login e a máquina pelo alvo):
ssh -p 50000 USUARIO@auto.inf.ufpel.edu.br
Para X11/compressão, adicione -X -C. Solicite acesso enviando sua chave pública (ssh-keygen → ~/.ssh/id_rsa.pub) pelo formulário do lab.
Atalhos no ~/.bashrc (função conecta)
Defina seu login uma vez em LAB_USER e reuse — sem editar o corpo da função. A guarda evita conexão sem argumento:
LAB_USER=seu_login # defina uma vez
conecta(){
[ -n "$1" ] || { echo "uso: conecta <maquina>"; return 1; }
export DISPLAY=:0
ssh -p 50000 "${LAB_USER}@$1.inf.ufpel.edu.br" -X -C
}
# uso:
conecta auto
Túnel para Jupyter Notebook/Lab
Num terminal à parte, mapeie a porta remota para a local e deixe rodando:
jupyter_remoto(){
[ $# -eq 3 ] || { echo "uso: jupyter_remoto <porta_local> <porta_remota> <maquina>"; return 1; }
ssh -N -L "$1:localhost:$2" "${LAB_USER}@$3.inf.ufpel.edu.br" -p 50000
}
# jupyter_remoto 8888 8888 auto
Na máquina, abra a sessão na mesma porta remota: jupyter lab --port PORTA_REMOTA --no-browser. Dica: rode dentro de um tmux (Ctrl+B, D para desanexar) — quedas de rede não matam o processo.
Windows: corrigir permissão da chave
O Windows cria a chave com permissões excessivas. No PowerShell, na pasta do usuário:
icacls .\.ssh\id_rsa /grant:r USUARIOWINDOWS:"(R)"
icacls .\.ssh\id_rsa /inheritance:r
Uso responsável
Antes de simular: confira se a máquina está livre — /check no canal #uso-dos-servidores do Slack, e na máquina w, htop e nvidia-smi. Iniciar um processo na GPU já em uso pode corromper a simulação de um colega.
Máquina ocupada? Entre na fila pelo Slack: /fila <maquina> no canal #uso-dos-servidores. Você recebe um DM automático quando ela liberar e for a sua vez — não precisa ficar verificando. Comandos úteis: /check <maquina> (estado/fila) e /historico (seu uso recente). Dá também para entrar/sair da fila pelo próprio dashboard.
Cache SSD: copie seus dados para o mount de cache da máquina (coluna acima), aponte seus scripts para lá, rode, e ao terminar devolva os dados à sua pasta pessoal — liberando o cache para o próximo. Controle duplicatas: o espaço é limitado.
Pacotes: não instale bibliotecas indiscriminadamente — uma dependência pode quebrar o ambiente dos outros. Consulte #uso-dos-servidores antes de instalar/atualizar.
Fix do pip no Python 3.11
Adicione ao ~/.config/pip/pip.conf:
[global]
break-system-packages = true
Apêndice — Controle de FAN da GPU
Para baixar a temperatura, subir a velocidade dos FANs (nenhum comando abaixo precisa de superusuário):
Configuração inicial (uma vez, como root)
nvidia-xconfig -a --cool-bits=4 --allow-empty-initial-configuration
Ou adicione à seção Screen do /etc/X11/xorg.conf a opção Coolbits "4" e AllowEmptyInitialConfiguration "True". Em /etc/X11/Xwrapper.config: allowed_users=console + needs_root_rights=yes, e instale nvidia-settings.
Passar para 80% da velocidade máxima:
export DISPLAY=:0 && nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=80
Se der erro ao atribuir as velocidades: sudo service gdm restart. Verifique com nvidia-smi.