O que bjtu-hpc-submit-skill faz?
Habilidade sanitizada do Codex para autenticação no portal HPC da BJTU, submissão de jobs no Slurm e monitoramento de tarefas.
Funcionalidades
- Autenticação automática no portal HPC da BJTU usando credenciais fornecidas pelo usuário.
- Submissão de jobs Slurm a partir de um script de job enviado pelo usuário.
- Monitoramento de jobs: consulta do status de um job específico (ex:
PENDING,RUNNING,COMPLETED,FAILED). - Cancelamento de jobs usando o comando
scancel.
Pré-requisitos
- Acesso à internet e ao portal HPC da BJTU.
- Um par de credenciais válidas (nome de usuário e senha).
- Ambiente com
curlejqinstalados (para operações de API e parsing).
Como usar
1. Configuração de credenciais
Configure as variáveis de ambiente para autenticação segura:
export BJTU_HPC_USER="seu_usuario"
export BJTU_HPC_PASS="sua_senha"
2. Autenticação
Execute o comando de login:
curl -c cookies.txt -b cookies.txt -X POST \
-d "username=$BJTU_HPC_USER&password=$BJTU_HPC_PASS" \
https://hpc.bjtu.edu.cn/api/login
3. Submissão de um job
Envie um script Slurm (job.slurm) para o cluster:
curl -c cookies.txt -b cookies.txt -X POST \
-F "[email protected]" \
https://hpc.bjtu.edu.cn/api/submit
4. Consulta de status
Para verificar o status de um job com ID 12345:
curl -c cookies.txt -b cookies.txt \
https://hpc.bjtu.edu.cn/api/job/12345/status
5. Cancelamento de job
Para cancelar um job:
curl -c cookies.txt -b cookies.txt -X DELETE \
https://hpc.bjtu.edu.cn/api/job/12345/cancel
Estrutura esperada do script Slurm
O script deve ser um arquivo de texto que inicia com um cabeçalho de diretivas #SBATCH. Exemplo:
#!/bin/bash
#SBATCH --job-name=meu_job
#SBATCH --output=saida_%j.out
#SBATCH --error=erro_%j.err
#SBATCH --ntasks=4
#SBATCH --time=01:00:00
module load gcc/9.3.0
./meu_programa
Tratamento de erros
- Falha de autenticação: Certifique-se de que as credenciais estão corretas e que as variáveis de ambiente estão definidas.
- Job não encontrado: Verifique o ID do job e se ele realmente pertence ao seu usuário.
- Timeout de rede: O portal pode demorar a responder; aumente o timeout do
curlcom--max-time 30.
Notas de segurança
- Nunca inclua credenciais diretamente no código. Sempre use variáveis de ambiente ou um gerenciador de segredos.
- O cookie de sessão (
cookies.txt) deve ser mantido privado. - Esta habilidade é sanitizada: não executa comandos arbitrários no HPC, apenas chamadas à API controladas.
Contribuição
Sinta-se à vontade para abrir issues ou pull requests no repositório original do Iranb.