09 ‐ FAQ - lncc-sered/manual-sdumont2nd GitHub Wiki

Table of Contents

Diretrizes do uso de senhas

As senhas são informações pessoais e intransferíveis. Os usuários dos serviços do ambiente tecnológico do LNCC, incluindo o SDumont, devem definir suas senhas de acordo com a política de senhas do LNCC. Clique aqui para maiores informações sobre as políticas e procedimentos do LNCC.

Boas práticas para criação de senhas fortes

Recomenda-se utilizar:

  • Quantidade mínima de caracteres numéricos: 1
    • Serão considerados caracteres numéricos: 0123456789
  • Quantidade mínima de caracteres especiais: 1
    • Serão considerados caracteres especiais (incluindo o espaço): ! #$%&*)(_+=-}{^`'~][/;?:><.,|"
  • Quantidade mínima de caracteres alfabéticos maiúsculos: 1
    • Serão considerados caracteres alfabéticos maiúsculos: ABCDEFGHIJKLMNOPQSTUVXYWZ
  • Quantidade mínima de caracteres alfabéticos minúsculos: 1
    • Serão considerados caracteres alfabéticos minúsculos: abcdefghijklmnopqrstuvxywz
  • Números aleatórios;
  • Substituir letras por números ou caracteres especiais;
  • Criar uma frase que auxilie na memorização da senha (ex: “Utilizar uma frase para memorizar a senha é mais seguro” pode gerar a senha "u1FpMaSe+s";
  • Criar padrões para formação da senha (#ftg9@AwS, #ftg9@GmAiL e etc.).
Evitar a utilização de:
  • Repetição de sequências de caracteres conhecidos ou sequências de teclas do teclado como: 123456, abcdef, asdfgh, qwerty e etc;
  • Uso de nomes, sobrenomes, nomes de membros da família e demais dados pessoais;
  • Uso de placas de carros;
  • Uso de palavras do dicionário;
  • Uso de nomes de times de futebol, filmes, músicas, personagens e etc.;
  • Repetição de senhas anteriores;
  • Anotar a senha em papel ou no próprio computador;
  • Uso da mesma senha em mais de uma conta.

Tamanho da senha para conta de usuário

O comprimento da senha deve ter um mínimo de 8 caracteres.

Validade da senha

As senhas devem ter um período de validade inferior a 06 (seis) meses.

Tentativas incorretas

A conta será bloqueada após 5 tentativas incorretas. As solicitações de desbloqueio deverão ser encaminhadas ao Helpdesk-SDumont, que seguirá o procedimento de validação das informações do usuário para efetuar o desbloqueio.

Redefinição de senhas

As solicitações de redefinição (reset) devem ser realizadas pelo próprio usuário através através do portal disponível no endereço: https://novasenhasdumont.lncc.br.

Acesse a interface, informe seu login de acesso ao SDumont2nd, resolva o captcha e clique no botão Enviar.

ATENÇÃO: Há um delay entre a alteração da senha, através do portal, e esta ser atualizada no ambiente que realiza a autenticação para a VPN e nos nós de login do SDumont. Dessa forma, solicitamos que, após a redefinição da senha, aguarde 5 minutos para tentar se autenticar no ambiente (VPN e Nós de Login).

Os usuários devem alterar suas senhas imediatamente ao se conectarem no SDumont2nd após uma redefinição de senha pela equipe do Helpdesk-SDumont.

*Lembre-se: No próximo acesso após a redefinição, caso tenha salvado a senha anterior no cliente VPN, será necessário ajustar essa configuração com a nova senha redefinida ao acessar o SDumont2nd.

Adequação à política

Essas diretrizes então em acordo com a Política de Segurança do LNCC. Para maiores informações.

Início


Erro de segmentação - segmentation fault

Caso ocorra erro parecido com o descrito abaixo:

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
APP.............. 0000000001409B95 Unknown Unknown Unknown
APP.............. 00000000014077B7 Unknown Unknown Unknown
APP.............. 00000000013B8E74 Unknown Unknown Unknown
APP.............. 00000000013B8C86 Unknown Unknown Unknown
APP.............. 0000000001357E76 Unknown Unknown Unknown
APP.............. 000000000135DF30 Unknown Unknown Unknown
....

Adicionar as linhas abaixo no script de submissão, antes de iniciar a execução da aplicação:

 ulimit -c unlimited
 ulimit -s unlimited

Início


Transferencia de dados

O sistema de VPN não suporta grandes taxas de transmissão de dados, prejudicando a transferência.

Estamos projetando a implementação de um servidor dedicado para poder realizar o upload/download dos dados de forma mais prática e eficiente, porém ainda sem data para entrar em produção.

A solução adotada por enquanto é a de realizar a cópia dos dados a partir do nó de login do SDumont2nd para algum host acessível através da Internet, utiliza comandos como o scp (enviar e receber dados) ou wget (receber dados). Dessa forma, a comunicação de saída não passa pela VPN, possibilitando alcançar melhores taxas de transferência.

Para realizar a movimentação de dados entre o SDumont e o SDumont2nd utilize o Data Transfer Node - DTN

Início


Envio de e-mail através do SLURM

É possível configurar o job para enviar uma notificação através do e-mail. Para utilizar essa funcionalidade, é necessário configurar as linhas abaixo no script de submissão:

#SBATCH --mail-type=TIPO
#SBATCH --mail-user=DESTINO
Onde TIPO é um dos possíveis valores:
  • NONE: Não envia notificação por e-mail.
  • BEGIN: Envia uma notificação por e-mail quando o job inicia.
  • END: Envia uma notificação por e-mail quando o job finaliza.
  • FAIL: Envia uma notificação por e-mail quando o job falha.
  • REQUEUE: Envia uma notificação por e-mail quando o job é reenfileirado.
  • ALL: Equivalente a BEGIN, END, FAIL e REQUEUE
  • TIME_LIMIT: Envia uma notificação por e-mail quando o job atinge seu limite de tempo.
  • TIME_LIMIT_90: Envia uma notificação por e-mail quando o job atinge 90% do seu limite de tempo.
  • TIME_LIMIT_80: Envia uma notificação por e-mail quando o job atinge 80% do seu limite de tempo.
  • TIME_LIMIT_50: Envia uma notificação por e-mail quando o job atinge 50% do seu limite de tempo.
  • ARRAY_TASKS: Envia uma notificação por e-mail para cada tarefa do JOB ARRAY.
DESTINO é o endereço de e-mail que receberá as notificações.

Múltiplos TIPOS podem ser especificados através de uma lista separada por vírgula.

Múltiplos DESTINOS também podem ser especificados através de uma lista separada por vírgula.

*ATENÇÃO: Ao configurar o envio de e-mail, verifique a caixa de Spam da sua conta se a notificação enviada pelo SLURM foi taxada como tal. Alguns servidores de E-Mail podem não identificar a notificação como um e-mail válido.

Início


Informações sobre Software Proprietário

O SDumont possui licenças de softwares proprietários disponíveis?

Não. O SDumont não possui licença para softwares proprietários. Sendo assim, esse softwares devem ser adquiridos pelo usuário.

Os nós de processamento conseguem alcançar servidores de licenças externos?

Sim. Todos os nós tem acesso a internet. Porém, o acesso é controlado. Havendo necessidade, é necessário entrar em contato com o Helpdesk e solicitar a liberação para o endereço de destino.

Quem pode realizar a instalação do software?

Os usuários podem realizar a instalação de softwares em sua área de dados. Os softwares que serão utilizados nos nós de processamento devem ser instalados em um subdiretório do /scratch/projeto. A equipe de suporte do SDumont também pode realizar a instalação dos softwares, mediante abertura de chamado.

Início


Utilização de containers (singularity)

A única solução homologada e permitida no SDumont é o Singularity. Conforme a documentação oficial, a aplicação oferece suporte aos containers Docker.

Mais detalhes sobre a utilização do Singularity e o suporte ao docker podem ser encontradas na documentação: User Guide.

Exemplos de jobs utilizando containers e executando através do singularity estão disponíveis aqui.

Início


Pacotes Python/R e Ambientes Virtuais

Para evitar problema de permissão e conflitos com outras versões instaladas no cluster SDumont, orientamos que os pacotes python e/ou pacotes R sejam instalados dentro da sua área de SCRATCH, utilizando o Anaconda.

Para configurar o seu ambiente conda, siga as instruções descritas abaixo:

Carregar um dos módulos do anaconda instalados no cluster (Por exemplo):

 module load anaconda3/2024.10

Criar o virtual env dentro da sua área de scratch. (Ajustar as versões, caso seja necessário ou deixar sem versão para que seja instalada a ultima versão disponível)

  • PYTHON: conda create --prefix $SCRATCH/conda-env python=3.8
  • R: conda create --prefix $SCRATCH/conda-env conda-forge::r-base
  • PYTHON+R: conda create --prefix $SCRATCH/conda-env conda-forge::r-base conda-forge::python
Ativar o virtual env:
 source activate $SCRATCH/conda-env

Instalar o pacote:

 pip3 install <NOME-DO-PACOTE> 

ou

 conda install <NOME-DO-PACOTE>

ou

 R
 > install.packages("remotes", dependencies = TRUE) (Por exemplo

Desativar o ambiente criado: (se necessário)

 conda deactivate

Dentro do script de submissão deve conter as seguintes linhas para a correta utilização:

 module load anaconda3/<VERSÃO>
 source activate $SCRATCH/conda-env

ATENÇÃO: O ambiente virtual CONDA NÃO deve estar carregado no momento da submissão do script. Basta de as linhas de configuração e ativação do ambiente estejam dentro do script de submissão. Você não deve executar a sequência de comando abaixo para a submissão do script:

 [meu.login@sdumontX ~]$ module load anaconda3/<VERSÃO>
 [meu.login@sdumontX ~]$ source activate $SCRATCH/conda-env
 [meu.login@sdumontX ~]$ sbatch SCRIPT-DE-SUBMISSAO.srm

Ambiente com CPU ARM64

ATENÇÃO: Como o ambiente da arquitetura GH200 possui processador ARM64, para utilizar o Anaconda correspondente, é necessário carregar, primeiro, o módulo arch_arm. A sequência é a seguinte (que só funcionará dentro de um nó com esse processador - GH200 ou Grace-Grace):

$ module load arch_arm
$ module load anaconda3/2024.10
$ conda create --prefix $SCRATCH/conda-env/arm python=3.8
$ source activate $SCRATCH/conda-env
$ pip3 install <NOME-DO-PACOTE> 
# ou
$ conda install <NOME-DO-PACOTE>

Início


Jobs com Python e MPI4PY

Após seguir as indicações de como criar um ambiente virtual Python, para executar uma aplicação em python, basta executar diretamente no script de submissão. Não é obrigatório a utilização do comando srun, ao utilizar apenas um nó de computação. Se for utilizar uma submissão executando múltiplas tarefas em um único job, aí será necessário utilizar o comando srun.

  • Exemplo de Script utilizando um único nó:
#!/bin/bash
#SBATCH --nodes=1           #Numero de Nós
#SBATCH --ntasks=1          #Numero total de tarefas MPI
#SBATCH -p lncc-cpu_amd_dev #Fila (partition) a ser utilizada
#SBATCH -J python_1_no      #Nome job

#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
nodeset -e $SLURM_JOB_NODELIST

cd $SLURM_SUBMIT_DIR

#Carrega o modulo do anaconda
module load anaconda3

#Ativar o virtual env
source activate $SCRATCH/conda-env

#executa o python
python meu_script.py
ATENÇÃO: O ambiente virtual CONDA NÃO deve estar carregado no momento da submissão do script. Basta de as linhas de configuração e ativação do ambiente estejam dentro do script de submissão. Você não deve executar a sequência de comando abaixo para a submissão do script:
 [meu.login@sdumontX ~]$ module load anaconda3/<VERSÃO>
 [meu.login@sdumontX ~]$ source activate $SCRATCH/conda-env
 [meu.login@sdumontX ~]$ sbatch SCRIPT-DE-SUBMISSAO.srm
  • Exemplo de Script utilizando um vários nós:
#!/bin/bash
#SBATCH --nodes=4            #Numero de Nós
#SBATCH --ntasks-per-node=1  #Numero de tarefas por Nó
#SBATCH --ntasks=4           #Numero total de tarefas MPI
#SBATCH -p lncc-cpu_amd_dev  #Fila (partition) a ser utilizada
#SBATCH -J python_4_no       #Nome job

#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
nodeset -e $SLURM_JOB_NODELIST

cd $SLURM_SUBMIT_DIR

#Carrega o modulo do anaconda
module load anaconda3

#Ativar o virtual env
source activate $SCRATCH/conda-env

#executa o python
srun --nodes 1 --ntasks=1 python meu_script_1.py > 1.out 2>&1 &
srun --nodes 1 --ntasks=1 python meu_script_2.py > 2.out 2>&1 &
srun --nodes 1 --ntasks=1 python meu_script_3.py > 3.out 2>&1 &
srun --nodes 1 --ntasks=1 python meu_script_4.py > 4.out 2>&1 &
wait
ATENÇÃO: O ambiente virtual CONDA NÃO deve estar carregado no momento da submissão do script. Basta de as linhas de configuração e ativação do ambiente estejam dentro do script de submissão. Você não deve executar a sequência de comando abaixo para a submissão do script:
 [meu.login@sdumontX ~]$ module load anaconda3/<VERSÃO>
 [meu.login@sdumontX ~]$ source activate $SCRATCH/conda-env
 [meu.login@sdumontX ~]$ sbatch SCRIPT-DE-SUBMISSAO.srm

Início


MPI4PY

Para instalar e executar corretamente o MPI4PY, é necessário carregar algum módulo MPI antes de executar o comando de instalação (pip install <PACOTE>). Abaixo descrevemos um processo de exemplo, usando o OpenMPI 4.1.4.

#Carregar um dos módulos do anaconda instalados no cluster
module load anaconda3

#Cria o ambiente virtual do python
conda create --prefix $SCRATCH/conda-env/mpi4py python=3.12.8

#Ativar o ambiente virtual do python
source activate $SCRATCH/conda-env/mpi4py

#Carregar o módulo do OpenMPI
module load openmpi/gnu/4.1.6.15.1

#Remover o executável 'ld' (linker de bibliotecas) instalado pelo ANACONDA e criar um link simbólico para a utilizada pelo Sistema Operacional. Esse passo é necessário, pois o ld instalado pelo anaconda gera confusões e erros ao procurar pelas bibliotecas corretas utilizadas pelo MPI.
rm $SCRATCH/conda-env/mpi4py/compiler_compat/ld
ln -s /usr/bin/ld $SCRATCH/conda-env/mpi4py/compiler_compat/ld

#Instalar o MPI4PY
pip install mpi4py

#A saída deve ser algo como (a depender da versão do MPI4PY. Neste exemplo, foi instalada a versão 4.0.1)
...
Building wheels for collected packages: mpi4py
  Building wheel for mpi4py (pyproject.toml) ... done
  Created wheel for mpi4py: filename=mpi4py-4.0.1-cp312-cp312-linux_x86_64.whl size=1017571 sha256=72912c40e44ece22431a24fd4f93d3581a03562e28912f297de58a9e30b77800
...
Successfully built mpi4py
Installing collected packages: mpi4py
Successfully installed mpi4py-4.0.1
  • Exemplo de script de submissão, usando 4 nós e 4 processos por nó, totalizando 16 processos, usando o script de demonstração demo/helloworld.py da própria distribuição do MPI4PY.
ATENÇÃO: O ambiente virtual CONDA NÃO deve estar carregado no momento da submissão do script. Basta de as linhas de configuração e ativação do ambiente estejam dentro do script de submissão. Você não deve executar a sequência de comando abaixo para a submissão do script:
 [meu.login@sdumontX ~]$ module load anaconda3/<VERSÃO>
 [meu.login@sdumontX ~]$ source activate $SCRATCH/conda-env/mpi4py
 [meu.login@sdumontX ~]$ sbatch SCRIPT-DE-SUBMISSAO.srm
#!/bin/bash
#SBATCH --nodes=4            #Numero de Nós
#SBATCH --ntasks-per-node=4  #Numero de tarefas por Nó
#SBATCH --ntasks=16          #Numero total de tarefas MPI
#SBATCH -p lncc-cpu_amd_dev  #Fila (partition) a ser utilizada
#SBATCH -J python_4_no       #Nome job

#Exibe os nós alocados para o Job
echo $SLURM_JOB_NODELIST
nodeset -e $SLURM_JOB_NODELIST

cd $SLURM_SUBMIT_DIR

#Carrega o modulo do anaconda
module load anaconda3

#Ativar o virtual env
source activate $SCRATCH/conda-env/mpi4py

#executa o python
srun python -m mpi4py.bench helloworld

A saída, gerada no arquivo de log do job (slurm-XXXXXXXX.out) deverá ser algo parecido com:

Hello, World! I am process  0 of 16 on sdumontXXXX.
...
Hello, World! I am process 15 of 16 on sdumontXXXW.
Início
⚠️ **GitHub.com Fallback** ⚠️