MyQueue: interface de linha de comando e Python para gerenciamento de jobs HPC
MyQueue envia e monitora trabalhos computacionais através de uma ferramenta de linha de comando e uma API Python, lidando com reinícios automáticos para timeouts e falhas de falta de memória. Criado por J. J. Mortensen e a equipe de desenvolvimento do MyQueue para ferramentas-utilitárias, a ferramenta unifica a interação com SLURM, PBS e LSF, rastreia trabalhos persistentemente com SQLite e suporta fluxos de trabalho baseados em pastas e ambientes virtuais Python. Ela é destinada a pesquisadores e engenheiros que executam muitos trabalhos em cluster ou locais e precisam de reenvios automáticos e rastreamento simples.
O que o MyQueue faz na prática?
MyQueue atua como um frontend para escalonadores HPC, aceitando envios através do comando mq submit ou uma API Python, sincronizando o rastreamento de tarefas locais com escalonadores remotos. Ele registra tarefas concluídas, falhadas e em execução em um armazenamento SQLite baseado em pastas, e pode operar em máquinas locais ou clusters remotos que utilizam SLURM, PBS ou LSF. A entrada é um script de trabalho ou uma tarefa Python; a saída é o estado da fila visível via mq list.
Quão confiável é a reenvio automático para trabalhos falhados?
O aplicativo reinicia automaticamente tarefas que falham devido a limites de tempo ou exaustão de memória, ajustando recursos na nova tentativa de acordo com a lógica fornecida. Esse comportamento reduz as tentativas manuais, aumentando os recursos solicitados após assinaturas específicas de falha. O rastreamento persistente preserva tentativas anteriores, permitindo que você inspecione o histórico de falhas antes de aceitar um reenvio. A lógica de reenvio visa erros relacionados a recursos em vez de falhas arbitrárias.
É seguro usar em clusters de produção?
MyQueue não requer um banco de dados separado ou privilégios de administrador e armazena o estado localmente com SQLite e pastas, o que mantém as operações transparentes. Ele interage com escalonadores usando seus comandos nativos, portanto, depende do modelo de permissão do escalonador para envio e cancelamento de trabalhos. O design da ferramenta evita a escrita de serviços de sistema ocultos; ela opera a partir de um ambiente de usuário e preserva registros de trabalhos na pasta de trabalho.
Preciso de conhecimento técnico para executá-lo?
A instalação requer um ambiente Python (Python 3.9 ou posterior) e uma instalação pip, e a operação utiliza comandos de linha de comando ou a API fornecida. Usuários casuais que não estão familiarizados com scripts de trabalho ou ambientes virtuais enfrentarão uma curva de aprendizado, pois o fluxo de trabalho espera descrições de trabalho do escalonador e ativação de ambiente. Pesquisadores e engenheiros de dados que já preparam scripts de trabalho e ambientes virtuais acharão que isso se alinha com práticas existentes.
Quem deve adotar MyQueue e por quê
MyQueue é adequado para pesquisadores e engenheiros que enviam muitos trabalhos em cluster ou locais e desejam reenvios automáticos para falhas relacionadas a recursos; ele reduz o trabalho manual de tentativas enquanto mantém o histórico de trabalhos em uma pasta local com suporte a SQLite. Espere um fluxo de trabalho de linha de comando ou script e alguma configuração inicial de Python e ambientes virtuais. Recomendado.





