Escolar Documentos
Profissional Documentos
Cultura Documentos
São Paulo - SP
Janeiro de 2021
Sumário
Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Login na Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Comandos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Diretório . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Edição de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Fila de Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 Submissão de Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1 Login na Gauss
O acesso à Gauss é feito por meio de usuário e senha, se você não possui entre no link
https://forms.gle/E2UZfiJFvhzMGBMH6 e solicite sua conta. Caso não receba resposta
entre em contato com o suporte da Gauss (gausshpc@usp.br) para fazer o cadastro. Tendo
as informações de login e senha, entre no terminal do seu computador, use o comando abaixo
para entrar na Gauss, substituindo usuario pelo seu nome de usuário (username). Saiba que o
sı́mbolo $ representa o prompt do seu terminal e não faz parte do comando.
$ ssh usuario@gauss . if . usp . br
Se estiver no windows e retornar um erro afirmando que ssh não é reconhecido, você precisa
habilitar o ssh, siga as instruções do link https://pureinfotech.com/install-openssh-c
lient-windows-10/. Sendo seu primeiro acesso a Gauss, a mensagem mostrada na figura 1
aparecerá ou uma parecida.
Responda com “yes” e o seu terminal estará parecido com a figura 2, com isso você está
logado na Gauss. Repare que a senha não aparece ao seu digitada, nem qualquer outro sinal.
2 Comandos Básicos
2.1 Diretório
Assim que entrar na Gauss, você estará na sua pasta ou diretório home do servidor principal
(head-node) que tem 2Tb de disponibilidade para todos os usuário, no diretório /home/users/usuario.
Para verificar o diretório em que você está use o comando:
$ pwd
Também existe uma outra pasta para armazenar os arquivos no diretário /home1/users/usuario
que tem 51Tb de disponibilidade para todos os usuário. Então após executar alguns programas
copie seus arquivos/diretórios para seu diretório no disco /home1. Assim, não corre o risco de
lotar o disco /home e bloquear o head-node. Sempre que analizar seus dados comprima seus
diretórios para econimizar o espaço em disco.
Como os programas geram muitos arquivos, é interessante que você crie pastas, para manter
tudo organizado, a partir do comando:
$ mkdir nome_da_pasta
O comando cd pode ser utilizado para ir a qualquer pasta desde que você tenha o caminho
(path) dela. Por exemplo, se você estiver na sua pasta na home, e você queira ir para a pasta
”/home/users/usuario/Dice/Sim/Resultados”, basta usar:
$ cd / home / users / usuario / Dice / Sim / Resultados
ou
$ cd ∼/ Dice / Sim / Resultados
Perceba que ∼ representa a sua pasta na home, logo, para retornar para ela de qualquer
outra pasta, basta usar:
$ cd ∼
Assim como ∼ representa sua pasta na home, ”.” representa a sua pasta atual e ”..” a pasta
na qual ”.” está contida.
Mais informações sobre os comandos:
• cd no link https://linuxize.com/post/linux-cd-command/
2
2.2 Arquivos
Para listar os arquivos em um diretório use:
$ ls
ou
$ cp nome_do_arquivo n o m e _ d o _ a r q u i v o _ c o p i a d o
Por exemplo:
$ cp text . txt text_backup . txt
Criará o text backup.txt que é uma cópia do arquivo text.txt no mesmo diretório. Já:
$ cp text . txt / home
Criará uma cópia de text.txt na pasta /home. Para ler os arquivos de texto diretamente
do terminal use o comando more:
$ more nome_do_arquivo
Ele inicialmente apresentará algumas linhas do arquivo, mas ao usar a tecla Enter ele mos-
trará mais linhas. Caso você queira parar de ler o arquivo você precisa cancelar o comando com
Ctrl + C (Win/Liux) ou Cmd + C (Mac). Caso você queira somente uma quantidade de linhas
do arquivo use:
$ head -n [ numero_de_linhas ] nome_do_arquivo
Por exemplo:
$ head - n2 resultados . out
Irá retornar as duas primeiras linhas do arquivo resultados.out. Se você quiser as linhas
do final substitua head por tail. Se você rodar a opção -n[numero de linhas], os comandos
head e tail mostrarão 10 linhas como padrão.
Se você precisar verificar se há alguma palavra especı́fica em um arquivo use:
$ grep palavra arquivo
Além disso, para enviar arquivos para a Gauss, usa-se o comando scp:
$ scp arquivos usuario@gauss . if . usp . br : di re to ri o_ na_ Ga us s
3
Lembre-se de colocar o path completo dos arquivos que for copiar da Gauss para o seu
computador. Além disso, é possı́vel copiar ou enviar pastas inteiras com o comando scp:
$ scp -r diretorio usuario@gauss . if . usp . br : di re to ri o_ na_ Ga us s
Ademais, o comando scp vai sempre pedir a sua senha de acesso da Gauss. Mais informações
sobre os comandos:
• ls no link https://linuxize.com/post/how-to-list-files-in-linux-using-the-l
s-command/
• mv no link https://linuxize.com/post/how-to-move-files-in-linux-with-mv-com
mand/
• cp no link https://linuxize.com/post/cp-command-in-linux/
• https://www.howtoforge.com/vim-basics
• https://opensource.com/article/19/3/getting-started-vim
3 Fila de Jobs
A Gauss possui 5 filas – biomol, inct, schwinger, biomolgpu, atmol – possivelmente você não
terá acesso a todas, em dúvida contate o suporte. Para rodar os programas, a Gauss usa um
sistema de jobs onde você pede uma quantidade de processadores e de memória e o job entra
em uma das filas, se houverem processadores e memória o job começa a rodar, se não, fica na
espera até haver.
Para saber como estão os jobs que estão rodando na Gauss use:
$ qstat
4
Que retornará como mostrado na figura 3.
O Job id é o número associado ao job, o Name é uma variável que você define quando
submete o job, User é o usuário que submeteu, Time é o tempo que está rodando no formato
hhhh:mm, S é a situação que o job está: R significa running (rodando), Q queueing (em espera)
e E elapsed (terminou), e Queue é a fila que o job está.
A Gauss é um cluster de vários computadores, chamamos os computadores individuais de
nodes, a lista dos nodes disponı́veis está no link https://portal.if.usp.br/gausshpc/node.
Os jobs rodam em único node e para saber em qual o job está rodando use:
$ qstat -n
O node aparecerá junto com o Job id. Além disso, para verificar apenas os seus jobs, pode
usar:
$ qstat - na -u usuario
Como o job roda no node, normalmente os arquivos relativos ao job não estão acessı́veis
diretamente, para acessá-los você precisa entrar no node, usando:
$ ssh nome_do_node
Muitas vezes é interessante saber se algum node está livre ou quantos processadores ele tem
disponı́vel, isso pode ser obtido utilizando:
$ pbsnodes nome_do_node
Resultará nas informações mostradas na figura 4, vemos que o node22 possui 32 processadores
sendo que 26 estão em uso, além disso que ele tem pouco mais de 60GB de memória e que 8GB
estão em uso. Com isso, sabemos que podemos submeter um job diretamente ao node22 com 6
processadores.
5
Figura 4 – Informações do node22.
4 Submissão de Jobs
A submissão de um job na Gauss é feita através de um arquivo script em bash e usando o
comando qsub, como mostrado a seguir:
$ qsub script . sh
6
Quando você usar o qstat ele adiciona ao número ”.gauss” ao número, lembre-se que não
precisa adicioná-lo para o comando qdel.
Todos os scripts possuem uma parte de configuração com o seguinte formato:
#!/ bin / bash
# PBS -S / bin / bash
# PBS -l nodes =1: ppn =12
# PBS -l walltime =300:00:00
# PBS -l mem =16 GB
# PBS -N nome_do_job
# PBS -q biomol
Já ppn é relativo a quantidade de processadores, walltime é o tempo máximo que o job vai rodar,
se esse tempo for atingido tudo que estiver rodando relativo ao job será parado e finalizado, nesse
caso os programas normalmente possuem um comando de continuação; mem é a quantidade de
memória requerida. A penúltima linha define o nome do job e a última a fila que o job será
submetido, se ele for posto numa fila que você não tem autorização, ele não irá rodar.
Importante: Se você deletar um job ou se acontecer algum erro que impeça a finalização
normal do job, garanta que a pasta de execução no node com os arquivos seja apagada para não
lotar os discos locais dos notes e impedir que outros usuários executem.
Importante: Se você submeter um job e ele ficar com status E (elapsed), avise o suporte.
Enquanto isso verifique outro node disponı́vel e altere o script de submissão especificando o
node, para que ele vá para outro node quando for submetido, uma vez que se você cancelar
o job e submetê-lo de novo, provavelmente ele irá para o mesmo node e apresentará o mesmo
problema.