LPBS (Sistema Municipal de Batch portátil) é uma ferramenta para emular PBS em uma estação de trabalho local.
PBS / Torque é um sistema de agendamento de tarefas que é usado em muitos clusters de computação de alto desempenho. O pacote LPBS fornece ferramentas para executar scripts de trabalho PBS em uma estação de trabalho local. Especificamente, LPBS fornece o comando lqsub que leva as mesmas opções que o comando PBS qsub e executa um script de trabalho localmente, em um ambiente praticamente idêntico a um que PBS / BINÁRIO proporcionaria. O trabalho será executado em segundo plano e ser atribuído um ID de trabalho. Ao contrário do sistema PBS, LPBS não irá executar qualquer programação, mas simplesmente executar a tarefa que lhe foi apresentado. LPBS oferece mais ferramentas para gerenciar trabalhos em execução.
Instalação
LPBS pode ser instalar a partir PyPI, usando
pip instalar LPBS
Em alternativa, o pacote pode ser instalado a partir da fonte com
python setup.py instalar
Configuração
LPBS armazena todos os seus dados de configuração e tempo de execução na pasta dados na variável de ambiente $ LPBS_HOME. Deve ser definida esta variável de ambiente. A configuração está no lpbs.cfg arquivo dentro $ LPBS_HOME. Se este arquivo não existir quando qualquer dos scripts LPBS são executados, um arquivo de configuração com os seguintes valores padrão serão criados:
[Servidor]
# Hostname completo da apresentação servidor (hostname.domain). Serão disponibilizados
# Para executar o trabalho através da PBS_SERVER variável de ambiente. IDs de Emprego vai acabar
# No hostname do servidor
hostname: localhost
domain: locais
[Nó]
# Hostname completo do nó de execução (hostname.domain). Serão disponibilizados
# Para executar o trabalho através da PBS_O_HOST variável de ambiente. Desde LPBS é
# Projetado para executar tarefas localmente, as definições aqui deverá em geral ser
# Idênticos aos da secção [Servidor]
hostname: localhost
domain: locais
[LPBS]
# Configuração para a execução do trabalho.
# Se 'username_in_jobid' estiver habilitado, as IDs de trabalho terá a forma
# 'Seqnr.user.hostname.domain "onde" usuário "é o nome do usuário
# Enviar a tarefa.
# O arquivo dado em 'sequence_file' é usado para manter o controle do 'seqnr'
# Aparecendo no ID trabalho.
# O arquivo dado em 'arquivo de log "é utilizado para registro de todos os eventos LPBS. Tanto
# 'Sequence_file "e" arquivo de log "são em relação ao $ LPBS_HOME.
username_in_jobid: 0
sequence_file: seqüência
logfile: lpbs.log
[Zero]
Configurações # para o espaço de rascunho desde a empregos. 'Scratch_root' define um
# Local onde os trabalhos devem escrever dados temporários. Se lhe for dada como um caminho relativo,
# Ele é relativo a $ LPBS_HOME. As variáveis de ambiente será ampliada no
# Momento da apresentação do trabalho.
# Se o valor de # 'create_jobid_folder' é definido como 1, uma pasta com o nome de
# ID do pleno emprego é criado dentro scratch_root. Esta pasta é automaticamente
# Excluídos quando o trabalho termina, a menos que 'keep_scratch' é definido como 1. Se o trabalho
# Falhou, o zero não serão excluídos, a menos que 'delete_failed_scratch' é definido
# 1.
scratch_root: $ SCRATCH_ROOT
create_jobid_folder: 0
keep_scratch: 0
delete_failed_scratch: 0
[Notificação]
Configurações # sobre como o usuário deve ser ser notificado sobre eventos, como o início
# E no final de um trabalho. Se sent_mail é definido como 1, e-mails serão enviados para
notificações # dependendo do valor da opção '-m' para lqsub. Se
# 'Send_growl' é definido como 1, Growl (http://growl.info) é usado para a notificação
# No MacOS X. Notificações via Growl não levam em conta as opções '-m'
# Durante o envio de trabalhos.
send_mail: 0
send_growl: 0
[Mail]
# configurações de SMTP para notificações por email. -Mails de notificação será enviada a partir de
# O endereço indicado pela opção 'de'. O servidor SMTP dada em 'smtp' é
# Usado para enviar os e-mails, se «autenticar» é definido como 1, a autenticação é
# Feito com o dado 'username' e 'password'. Se 'TLS' é 1, a criptografia TLS
# Será usado.
a partir de: nobody@example.org
smtp: smtp.example.com:587
Nome de usuário: usuário
password: segredo
autenticar: 0
TLS: 1
[Growl]
# Configurações de notificações Growl. As notificações são enviadas para qualquer
# Localhost ou um host remoto através do protocolo GNTP. A configuração 'hostname'
# Dá o endereço e porta do servidor Growl, o dado 'password' é
# Usado para autenticação (observe que se enviar para localhost, não
# Autenticação é necessária, e a senha deve estar vazia). Se
# "Pegajoso" é definido como 1, as notificações Growl vai ser pegajoso. Isto é
# Possível enviar notificações para mais de um host. Neste caso, tanto
# 'Hostname' e 'password' deve ser uma lista de valores separados por vírgula, com
# Cada item correspondente a um hospedeiro. Por exemplo
# Hostname: localhost, remotehost
# Password, segredo
hostname: localhost: 23053
password:
pegajoso: 0
[Log]
# 'Logfile "dá o nome do arquivo de log central, em relação a US $ LPBS_HOME.
logfile: lpbs.log
Note que se o arquivo de configuração padrão é usado, a variável de ambiente $ SCRATCH_ROOT deve ser definido e o diretório aponta para deve existir e ser gravável para todos os utilizadores que possam apresentar trabalhos.
Para uma instalação de todo o sistema, / var / lpbs é um local adequado para $ LPBS_HOME. A variável de ambiente pode ser definido no /etc/bash.bashrc para todos os usuários. Para uma instalação no espaço do usuário, é recomendável virtualenv.
Depois que o arquivo de configuração principal, o arquivo $ HOME / .lpbs.cfg também será lido. Um usuário pode usar isso para substituir as configurações na configuração do sistema. Finalmente, o comando qsub também tem uma opção --config que permite especificar um ficheiro de configuração ainda adicional a ser lido.
Uso
LPBS contém os scripts lqsub, lqstat e lqdel, que emular a PBS / BINÁRIO comandos qsub, qstat e lqdel, respectivamente. O comando lqsub é utilizado para enviar trabalhos, lqstat é utilizada para mostrar informações sobre o funcionamento de postos de trabalho, e lqdel é usado para interromper os trabalhos em execução. Por exemplo:
Goerz @ localhost: ~> lqsub job.pbs
3.localhost.local
Goerz @ localhost: ~> lqstat
Job id Nome de Usuário Walltime
-------------------- --------------- --------------- ---------------
3.localhost.local pbstest Goerz 00:00:22
Goerz @ localhost: ~> lqstat -f 3.localhost.local
Código da Vaga: 3.localhost.local
& Nbsp; JOB_NAME = pbstest
& Nbsp; Job_Owner = Goerz
& Nbsp; server = localhost.local
& Nbsp; exec_host = localhost.local
& Nbsp; PID = 14649
& Nbsp; Error_Path = STDERR
& Nbsp; Join_Path = True
& Nbsp; Mail_Points = n
& Nbsp; Output_Path = pbstest.out
& Nbsp; resources_used.walltime = 00:00:43
Goerz @ localhost: ~> lqdel 3.localhost.local
O comando qsub é projetado para entender todas as opções de linha de comando do comando qsub no torque versão 2.18, exceto que todas as opções relacionadas com a programação são silenciosamente ignorados. Por isso, todos os script trabalho PBS deve ser submittable sem alterações. Para mais detalhes, lqsub executar, lqstat e lqdel com a opção --help, e / ou olhar para o manual de torque.
Um Job Script Exemplo
O seguinte é um exemplo de um simples script de trabalho PBS que irá imprimir o ambiente completo que o trabalho vê. Você pode querer enviar esta tarefa tanto com LPBS e PBS / BINÁRIO para verificar que, com ajustes apropriados em lpbs.cfg, LPBS fornece um ambiente idêntico como LPBS.
#! / Bin / bash
#PBS -N Pbstest
#PBS -j Oe
#PBS -l Nodos = 1: ppn = 1
#PBS -l Walltime = 00: 00: 10
#PBS -l Mem = 10mb
#PBS -o Pbstest.out
echo "################################################ #### "
echo "Usuário: $ PBS_O_LOGNAME"
echo "Batch trabalho começou em $ PBS_O_HOST"
echo "PBS id trabalho: $ PBS_JOBID"
echo "PBS nome do trabalho: $ PBS_JOBNAME"
echo "diretório de trabalho PBS: $ PBS_O_WORKDIR"
echo "Job começou em" hostname` `` date`
echo "Diretório atual:" `pwd`
echo "ambiente PBS: $ PBS_ENVIRONMENT"
echo "################################################ #### "
echo "################################################ #### "
echo "Ambiente completa:"
printenv
echo "################################################ #### "
echo "O trabalho está sendo executado no nó seguinte:"
cat $ {} PBS_NODEFILE
echo "################################################ ########## "
echo "Job terminou:" `date`
exit 0
Requisitos :
- Python
Comentários não encontrado