Código para enviar trabalho no cluster

2

Eu não sei se este é o lugar certo para postar esta pergunta, se não for gentilmente, deixe-me saber onde posso perguntar.

Minha dúvida: eu uso o seguinte código para enviar um trabalho em um cluster, mas não sei o que esse código significa. Alguém pode me explicar o que o código a seguir significa, se possível, linha por linha.

#!/bin/bash
#PBS -N NAME_OF_JOB
#PBS -l nodes=1:ppn=20
#PBS -l matlab_user=1
#PBS -l matlab_lic=20
#PBS -l min_walltime=1:00
#PBS -q small
#PBS -S /bin/bash
##PBS -V
##PBS -m abe
#PBS -j oe
#
cd $PBS_O_WORKDIR
cat $PBS_NODEFILE
export PATH=/opt/software/matlabr2014a/mdcs/bin:$PATH
matlab -nodisplay -r "code1" -logfile code1.log

Obrigado

    
por pkj 11.04.2015 / 09:26

2 respostas

0

Esses comandos são para um agendador de tarefas. Existem vários diferentes, mas isso parece o formato de torque, que eu estou muito familiarizado.

Torque - link

Aqui está a documentação do torque 5. Você pode estar executando 2.x, 4.x ou 5.x link

#PBS -N NAME_OF_JOB => Sets a name that can be identified in 'qstat' or 'checkjob'
#PBS -l nodes=1:ppn=20 => Requests 20 tasks, (1 node with 20 processors, 2 nodes with 10 processors ect...)
#PBS -l matlab_user=1 
#PBS -l matlab_lic=20 
#PBS -l min_walltime=1:00 => The job should run for at least 1 minute
#PBS -q small => => queue or class you administrator has configured
#PBS -S /bin/bash => Shell to use
##PBS -V => Commented out, exports environment variables to batch job
##PBS -m abe => Commented out, specifies when mail should be sent (abort, begin, end)
#PBS -j oe => Combine stdout and stderror into one directory

cd $PBS_O_WORKDIR => Environment variable of where the job runs
cat $PBS_NODEFILE => prints out the output of the spool. 
    
por 11.04.2015 / 17:47
1

Can some one explain me what the following code means if possible line-by-line.

Os comandos que começam com "#PBS" são diretivas para o gerenciador de recursos de conclusão de tarefas em lote. Seu cluster deve ter um administrador que possa apontá-lo na documentação do PBS. Ou então, algumas informações que encontrei na internet: link

As outras linhas são:

cd $PBS_O_WORKDIR

Mude para o diretório definido na variável de ambiente $ PBS_O_WORKDIR

cat $PBS_NODEFILE

imprime o arquivo cujo nome está definido na variável de ambiente $ PSB_NODEFILE para a tela

export PATH=/opt/software/matlabr2014a/mdcs/bin:$PATH

Atualize a variável $ PATH (onde o sistema procura executáveis) para incluir o diretório / opt / software / matlabr2014a / mdcs / bin (provavelmente onde o executável matlab está localizado)

matlab -nodisplay -r "code1" -logfile code1.log

execute o MATLAB para executar a função ou sub-rotina "code1" e envie a saída para o arquivo de log "code1.log"

    
por 11.04.2015 / 12:20