Laboratório Virtual

O Laboratório Virtual do IMECC é um conjunto de computadores que podem ser utilizados pelos usuários do instituto para rodar remotamente programas e simulações que requerem tempo relativamente alto de processamento (para os quais é inconveniente o uso dos laboratórios físicos).

O laboratório está constituído, no momento pelos seguintes equipamentos:

Hostname Processador

Núcleos/

Threads

RAM

Sistema

Operacional

lv04.lv.ime.unicamp.br Intel Core i7-8700 @ 3.20GHz  6/12 64GB Debian Testing
lv05.lv.ime.unicamp.br Intel Core i7-3970X @ 3.50GHz 6/12 32GB Debian Testing
lv06.lv.ime.unicamp.br Intel(R) Core(TM) i9-13900K @5.8GHz 6/12 128GB Debian Testing
lv07.lv.ime.unicamp.br Intel(R) Core(TM) i9-13900K @5.8GHz 6/12 128GB Debian Testing
 

Requisitos para uso do serviço

  • O serviço está disponível apenas para os professores, pesquisadores, pós-doutorandos e alunos de pós-graduação do IMECC. O usuário interessado deve solicitar a liberação do serviço para a sua conta à Informática, através do e-mail informatica@ime.unicamp.br.
  • O solicitante precisa ter uma conta ativa no sistema de computadores do IMECC (mesma conta utilizada para o acesso aos laboratórios de informática do Instituto).
  • Para acesso ao sistema, o usuário necessita de um computador com um aplicativo cliente de SSH instalado. Equipamentos Windows 10 ou superior, Linux e MacOS já dispõem nativamente do aplicativo OpenSSH, que implementa esse serviço. Para usuários de sistemas Windows (ou mesmo Windows 10 ou superior), recomendamos o uso do software Bitvise SSH Client, pois além de prover uma interface gráfica também dispõe de aplicativos para a transferência de arquivos entre os equipamentos local e remoto.
  • Para acesso ao sistema a partir de endereços externos à rede do IMECC, é necessário configurar o serviço de VPN da rede da Unicamp, conforme instruções do CCUEC/Unicamp, disponíveis na página Acesso Remoto Seguro - VPN.

 

Acesso ao Sistema

O acesso aos equipamentos do Laboratório Virtual é feito através do serviço de SSH (Secure Shell). Por meio desse serviço, o computador cliente (equipamento do usuário) realiza uma conexão segura (criptografada) para um dos equipamentos do laboratório, a sua escolha. Para iniciar uma sessão proceda da seguinte forma:

  1. Para acesso a partir de endereços externos à rede do IMECC, inicialize o serviço de VPN no computador. Instruções para isso estão disponíveis na página Acesso Remoto Seguro - VPN, mantida pelo Centro de Computação da Unicamp.
  2. Escolha o equipamento ao qual deseja se conectar na lista acima.
  3. Abra uma janela de terminal em seu computador e digite o comando:
     
    ssh -l <username> <hostname>
    onde o marcador <hostname> deve ser substituído pelo hostname do equipamento escolhido acima e o marcador <username> deve ser substituído pelo login da sua conta no IMECC (i.e., login da conta usada para acesso aos laboratórios de informática do IMECC).

    Se a conexão for bem sucedida, será solicitada a senha da sua conta. Ao autenticar-se, o sistema retornará uma mensagem de apresentação, seguida do prompt de comandos, como exibido na imagem abaixo.


     

 

Softwares Disponíveis

Estão disponíveis nos equipamentos do Laboratório Virtual os principais softwares utilizados nos laboratórios de informática do Instituto, tais como:

  • Matlab
  • Mathematica
  • R
  • Julia
  • Compiladores C, Fortran, etc., que acompanham a distribuição Debian Linux.

Softwares adicionais podem ser instalados sob demanda, desde que sejam de uso livre ou estejam devidamente licenciados. A solicitação de instalação deve ser feita por e-mail para informatica@ime.unicamp.br.

 

Trabalhando com arquivos

Os equipamentos do Laboratório Virtual utilizam um sistema de arquivos próprio para armazenar os arquivos dos usuários. Esse sistema deve ser utilizado apenas para o armazenamento temporário dos arquivos de entrada e saída dos programas e simulações e devem ser transferidos para outros locais e removidos do sistema assim que não forem mais necessários.

O diretório de trabalho (home) dos usuários é o mesmo em todos os equipamentos do cluster. Portanto, arquivos que são copiados para o seu diretório de trabalho em um equipamento, ou arquivos gerados pela execução de um programa em um equipamento, serão visíveis em todos os demais. Assim, ao rodar um mesmo programa ou simulação em mais de um equipamento, assegure-se de diferenciar os nomes dos arquivos de saída de cada instância.

Há várias maneiras de realizar a transferência de arquivos entre o seu equipamento local e os equipamentos do cluster, a começar pelos aplicativos scp e sftp que acompanham o software o software OpenSSH. Estão disponíveis também programas gráficos como o Filezilla (multiplataforma) e o WinSCP (Windows). Para sistemas Windows, sugerimos a utilização do aplicativo de transferência de arquivos que acompanha o software Bitvise SSH Client.

 

Mantendo uma Sessão Persistente

Uma sessão em um computador é aberta cada vez que o usuário faz o login no equipamento. Ao fazer o logout, ou no caso de ocorrer a perda da conexão com o computador remoto, a sessão é finalizada e todos os programas  iniciados nela que ainda estiverem rodando são interrompidos. Naturalmente, isso é muito inconveniente quando se deseja executar programas e simulações em um equipamento remoto por longos períodos de tempo.

Há várias maneiras de se manter um programa em execução mesmo após o término ou interrupção da sessão. O que recomendamos aqui é o uso de um programa "multiplexador de terminais" como o tmux ou o screen.

Esses programas criam uma "sessão virtual" (persistente), que é desacoplada da sessão real e que permanece operacional mesmo após o término desta. Portanto, todos os programas iniciados na sessão virtual continuarão rodando mesmo após o término da sessão real. Ao realizar um novo login, o usuário pode acoplar-se novamente à sessão virtual para verificar o andamento dos programas que deixou em execução, disparar novos programas, etc.

Nessas sessões virtuais, é possível criar um ou mais terminais virtuais, entre os quais o usuário pode alternar para a realização de diferentes tarefas, como, por exemplo, rodar um programa em um, editar uma fonte de dados em outro e editar o código fonte de um programa em um terceiro.

Por favor, consulte a documentação dos programas indicados acima para mais informações sobre como operá-los.

Rodando Programas

Python

Para rodar códigos em Python, utilize o comando:

python3 <nome.do.arquivo.py>

Se o programa que você pretende rodar utiliza módulos de terceiros, você precisará criar um ambiente virtual para rodá-lo.   Proceda da seguinte forma:

1. Execute o comando:

python3 -m venv ~/venv

Vai ser criada a pasta "venv" na sua área de trabalho, que será usada para armazenar os arquivos dos módulos externos que você vai necessitar. (Não há nada de especial com o nome "venv" que escolhemos:  você pode usar qualquer nome que desejar.)

Você precisa executar o comando acima apenas uma vez, para inicializar o ambiente.  Nas próximas vezes que entrar no sistema, a pasta venv vai continuar lá e portanto não precisa ser recriada.

2. Execute o comando:

source ~/venv/bin/activate

Com esse comando, você "entra" no ambiente virtual. Note que no início do prompt de comandos, vai aparecer o texto "(venv)" para indicar que o ambiente virtual está ativo. Você precisa executar esse  comando toda vez que iniciar uma nova sessão.

Se quiser desativar o ambiente virtual, execute o comando:

deactivate

Note que o texto "(venv)" vai desaparecer do início do prompt.  Use o comando "source" acima para reativá-lo novamente.

3. Para cada módulo que você precisar instalar para rodar o seu programa, execute o comando:

pip install <nome.do.módulo>

Dica: alguns projetos em python vêm acompanhados de um arquivo "requirements.txt" contendo todas as dependências do projeto.  Nesse caso, você pode executar simplesmente:

pip install -r requirements.txt

4. Depois de instalados todos os módulos necessários e com o ambiente virtual ativado, rode o seu programa normalmente, conforme indicado anteriormente, e.g.:

python3 <nome.do.arquivo.py>
Responsável pelas informações nesta página: