Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

quickstart.rst

Blame
    • Odair M.'s avatar
      2eca8205
      feat(Acesso): add how access and copy files doc · 2eca8205
      Odair M. authored
      build(Makefile,gitignore): Add struct of watch function on makefile, add 'nohup.out' on .gitignore
      
      feat(Html): Add favicon icon on html pages
      
      refactor(Access-page): Refactor the access page, rename sections and add some examples
      
      feat(Statics): Add static files, like favicon.svg, diagrams, and others
      
      feat(Overview-page): Add initial overview page
      
      feat(Quickstart-page): Add initial quickstart
      2eca8205
      History
      feat(Acesso): add how access and copy files doc
      Odair M. authored
      build(Makefile,gitignore): Add struct of watch function on makefile, add 'nohup.out' on .gitignore
      
      feat(Html): Add favicon icon on html pages
      
      refactor(Access-page): Refactor the access page, rename sections and add some examples
      
      feat(Statics): Add static files, like favicon.svg, diagrams, and others
      
      feat(Overview-page): Add initial overview page
      
      feat(Quickstart-page): Add initial quickstart
    quickstart.rst 5.88 KiB

    Guia rápido de submissão

    A submissão de jobs pode ser realizado por dois comandos do gerenciador do cluster: srun e sbatch. O comando srun executa na linha de comando e é bloqueante, equanto o comando sbatch executa um arquivo de configuração e não é bloqueante.

    Principais parametros de submissão:

    • -p|--partition nome Especifica o nome da partição que o job será executado.
    • -t|--time tempo Especifica um tempo limite para a execução do job. Caso o tempo limite especificado seja maior que o tempo da partição, o job ficará com o estado pendente (PENDING), possivelmente para sempre. Formatos de tempo aceitos: “minutos”, “minutos:segundos”, “horas:minutos:segundos”, “dias-horas”, “dias-horas:minutos” e “dias-horas:minutos:segundos”.
    • -c|--cpus-per-task Especifica a quantidade de core/threads o seu programa vai utilizar.
    • --mem tamano unidade Especifica quantidade de memória seu programa vai utilizar.
    • -n NUM_PROCESSOS Especifica o número de processos a serem iniciados.
    • -N NUM_NODOS Especifica que deverão ser alocados pelo menos NUM_NODOS nodos para a execução do job, ou seja, cada nodo vai executar NUM_PROCESSOS dividido por NUM_NODOS.
    • –job-name=NOME Especifica o nome do Job que será executado. Este nome irá aparecer juntamente com o id do job na listagem de jobs do sistema.
    • -e Especifica o redirecionamento do stderr. Exemplo:

    -e arquivoErros.txt

    • -o Especifica o redirecionamento do stdout. Caso -e não tenha sido especificado, stderr também será enviado para o arquivo especificado. Exemplo:

    -o arquivoSaida.txt ou --output arquivoSaida.txt

    Comando srun

    O comando srun submete um job para o escalanodador, por padrão esse comando é bloqueante. A sintaxe do comando é:
    srun executavel

    Exemplo: Execução simples do srun

    O exemplo submete o programa /cluster/tests/omp/omp para fila de execução do cluster e será executado quando tiver recursos disponíveis.

    testem@c3hpc:~$ srun /cluster/tests/omp/omp
    Missing arguments
    Usage: /cluster/tests/omp/omp [-n|--nprocs] <cpus> [-t|--time] <time>
    Examples:
      Example 1: short options: To Execute program with 4 threads during 10 seconds:
            /cluster/tests/omp/omp -n 4 -t 10
      Example 2: long options: To Execute program with 8 threads during 15 seconds:
            /cluster/tests/omp/omp --nprocs 8 --time 15
    srun: error: node4: task 0: Exited with exit code 2
    testem@c3hpc:~$ srun /cluster/tests/omp/omp --nprocs 4 -t 4
    Time 4 Nproc 4
    count: 258531857
    count: 260249707
    count: 262771821
    count: 262113384
    testem@c3hpc:~$
    Para especificar a quantidade de recurso que o job vai utilizar passe como argumentos antes do programa.
    srun <argumentos do srun> executavel

    Exemplo: Execução com argumentos srun

    No exemplo abaixo, o executável é um programa em openMP que lança 4 threads, mas o srun só disponibiliza duas threads para ser executado. Portanto para que as quatros threads tenham aceso a 4 nucleo de processamento é necessário passar o argumento --cpus-per-task 4.

    testem@c3hpc:~$ srun --cpus-per-task 2 --mem 16G --partition maratona /cluster/tests/omp/omp --nprocs 4 -t 60
    Time 60 Nproc 4
    count: 430357224
    count: -63444304
    count: -21866144
    count: -33171848
    testem@c3hpc:~$

    Comando sbatch

    O comando sbatch recebe como argumento um arquivo com as especificações do jobs que será executado. Sbatch é Uma opção mais comum é a utilização de um script, que contém as informações sobre o jobs que serão executados. No script, as opções de execução podem ser definidas utilizando-se o prefixo #SBATCH antes da opção.
    #SBATCH --time=1

    Abaixo, um exemplo de script que roda a aplicação “meuPrograma” que está dentro do diretório bin. A aplicação irá executar por no máximo 7 dias e é solicitado 1 nodo para a execução.

    Para submeter o script, salve-o como meuscript.sh, e execute-o utilizando o comando sbatch. Muitos dos parâmetros do comando srun também são válidos para o sbatch. Os parâmetros passados ao sbatch irão sobrescrever os parâmetros existentes dentro do script sendo executado. Exemplo do comando:
    sbatch -o saida.txt meuscript.sh

    Modelo de arquivo sbatch

    #!/bin/bash
    #SBATCH -t 1-10:00:00
    #SBATCH --cpus-per-task=NUM_CPUS_POR_PROCESSO
    #SBATCH -o ARQUIVO_DE_SAIDA
    #SBATCH --job-name=NOME_JOB
    #SBATCH -p PARTICAO_ONDE_SERA_EXECUTADO
    #SBATCH -n NUM_DE_PROCESSOS
    #SBATCH -N NUM_NODOS_NECESSARIOS
    srun $HOME/meuPrograma parametro1Programa parametro2Programa
    É possível sobrescrever os valores que estão no scripts pela linha de comando. Exemplo:
    sbatch -o saida.txt -t 5-00:00:00 meuscript.sh
    Note que o comando acima sobrescreve o parâmetro -t que já está presente no meuscript.sh. Isso fará com que o parâmetro no meuscript.sh seja ignorado, sendo assim, ao executar a linha acima, o tempo limite para a execução será de 5 dias. No entanto, recomenda-se que todos os parâmetros estejam dentro do script e que estes não sejam sobrecarregados pelo sbatch para facilitar a localização de erros e múltiplas execuções de um mesmo script.

    Cancelando jobs

    Para cancelar um job que está rodando ou que está na fila para execução, utilize o comando scancel. Modo de uso:
    scancel jobId

    Note

    O jobid pode ser obitido através do comando squeue