Table of Contents
Servidores de processamento
Existem diversos grupos de pesquisa que dispõem de recurso próprio para processamento. O objetivo deste artigo não é descrever completamente a infraestrutura de processamento do IME, mas descrever a infraestrutura de processamento disponível para toda a comunidade do IME.
Contamos com três servidores de processamento: brucutuiv, brucutuv e brucutuvi. Todos os servidores operam com o sistema Debian GNU/Linux na versão estável contando com diversos pacotes possibilitando a compilação de programas em C, bem como a execução de scripts em Python, R etc. O acesso a tais servidores é remoto se dá a partir do protocolo SSH. Lembrando que é necessário criar a conta na rede do IME para o acesso remoto.
Exemplo:
ssh usuario@brucutu.ime.usp.br
OBS: o acesso às brucutus V e VI se dá apenas a partir do ambiente interno. Então é preciso acessar remotamente a rede do IME e, de lá, fazer outro SSH.
Configuração
As configurações simplificadas de hardware dos computadores são as seguintes:
servidor | processador | núcleos | threads* | memória RAM | coprocessador |
---|---|---|---|---|---|
brucutuiv | 2x Intel Xeon E5-2650 v4 | 12 | 24 | 384GB | Nvidia Tesla K40 |
brucutu | 2x Intel Xeon Gold 6148 | 20 | 40 | 512GB | N/A |
brucutuvi | 2x Intel Xeon Gold 6148 | 20 | 40 | 512GB | Nvidia Tesla V100 |
* Com hyperthreading, a quantidade efetiva linhas de processamento é o dobro do número de núcleos.
Política de uso
- Não ocupar as duas GPUs. Se acontecer, poderemos matar o seu processo mais antigo;
- Não pode ocupar mais do que duas máquinas em CPU. Se acontecer, poderemos matar seus processos mais antigos;
- Se um processo passar de 168h (uma semana corrida), ele poderá ser morto para liberar recursos para outros usuários;
- Se um processo usar todo o recurso da GPU, ele poderá ser morto para liberar o recurso para outros usuários;
- A SI não se responsabilizará pelos processos mortos que não obedecerem esta política de uso.
Em essência: Brute force science should be avoided.
Pacotes
Costumamos instalar bibliotecas mais generalistas como o r-recommended
ou o build-essential
. Caso for necessário a instalação de algo mais específico, basta escrever para admin@ime.usp.br solicitando a instalação.
Atentamos que pode acontecer de não ser possível instalar a dependência por se tratar de uma versão conflitante com o que a versão estável do Debian tem a oferecer.
Boas práticas
- Utilizar o comando screen;
- Não usar a área de rede como origem ou destino de dados para seu programa. Usar
/var/tmp
ou/var/fasttmp
(com SSD); - Usar checkpoint. Caso ocorra uma queda de energia ou travamento do servidor, o seu processo poderá reiniciar e continuar o processamento de algum ponto próximo à queda;
- Por se tratarem de servidores compartilhados, limitamos o processamento e a memória disponível por usuário.
Sobre o GNU Screen
Para abrir uma sessão no screen
, basta rodar o comando screen
. Dentro da screen, basta rodar seu programa como o habitual.
Para sair de uma sessão da screen sem fechá-la, Ctrl+A
depois a tecla D
.
Para retomar uma sessão da screen, basta rodar o comando screen -r
. Se houver mais de uma screen aberta, será necessário identificá-la. Cada screen terá um número de processo associado a ela, basta especificá-lo.
Exemplo:
$ screen -r There are screens on: 31415.pts-9.amaterasu (26/02/2020 05:35:08) (Detached) 9793.pts-2.amaterasu (26/02/2020 03:08:46) (Detached) # seu processo é o 31415 $ screen -r 31415