monitor

Par nvidia · skills

Surveille les jobs soumis (PTQ, évaluation, déploiement) sur les clusters SLURM. À utiliser lorsque l'utilisateur demande « vérifier le statut du job », « mon job est-il terminé », « surveille mon évaluation », « quel est le statut du PTQ », « vérifier le job <slurm_job_id> », ou après qu'un skill ait soumis un job de longue durée. Se déclenche également sur « nel status », « squeue », ou toute demande de suivi de la progression d'un job précédemment soumis.

npx skills add https://github.com/nvidia/skills --skill monitor

Job Monitor

Surveille les jobs soumis aux clusters SLURM — quantization PTQ, évaluation NEL, déploiement de modèle, ou jobs SLURM bruts.

Quand utiliser

  1. Auto-monitoring — une autre skill (PTQ, évaluation, déploiement) vient de soumettre un job. Enregistrez le job et mettez en place le monitoring immédiatement.
  2. Initié par l'utilisateur — l'utilisateur demande l'état d'un job, possiblement dans une nouvelle conversation. Vérifiez le registre, identifiez le job, et rapportez.

Job Registry

Tous les jobs actifs sont suivis dans .claude/active_jobs.json. Ce fichier est la source unique de vérité pour ce qui est en cours de monitoring.

[
  {
    "type": "nel",
    "id": "<invocation_id or slurm_job_id>",
    "host": "<cluster_hostname>",
    "user": "<ssh_user>",
    "submitted": "YYYY-MM-DD HH:MM",
    "description": "<what this job does>",
    "last_status": "<last known status>"
  }
]

type est l'un de : nel, slurm, launcher.


À la soumission d'un job

Chaque fois qu'un job est soumis (par n'importe quelle skill ou manuellement) :

  1. Ajoutez une entrée à .claude/active_jobs.json. Créez le fichier s'il n'existe pas.
  2. Configurez un cron récurrent durable (s'il n'en existe pas déjà un) qui interroge tous les jobs enregistrés toutes les 15 minutes. Le prompt cron doit : lire le registre, vérifier chaque job, signaler les changements d'état à l'utilisateur, supprimer les jobs complétés, et se supprimer lui-même quand le registre est vide.

Faites toujours les deux étapes. N'essayez pas de prédire la durée du job.


À l'exécution du cron / Vérification d'état

Qu'il soit déclenché par le cron ou par l'utilisateur demandant « check status » :

  1. Lisez le registre depuis .claude/active_jobs.json
  2. Vérifiez chaque job en utilisant la méthode appropriée (voir ci-dessous)
  3. Rapportez uniquement les changements d'état — comparez avec last_status dans le registre
  4. Mettez à jour last_status dans le registre
  5. Supprimez les jobs complétés — tout job dans un état terminal (COMPLETED, FAILED, CANCELLED, KILLED)
  6. Si le registre est vide — supprimez le cron récurrent

Comment vérifier chaque type de job

Jobs NEL (type: nel)

  • Vérifiez : nel status <id>
  • À la complétion : nel info <id> pour récupérer les résultats
  • En cas d'échec : nel info <id> --logs puis inspectez les logs serveur/client/SLURM via SSH

Jobs Launcher (type: launcher)

  • Vérifiez : Suivez le fichier de sortie en arrière-plan du launcher pour les événements clés
  • Événements clés : experiment ID, SLURM job ID, container import, calibration progress, export path, final status
  • En cas d'échec : Cherchez Traceback, Error, ou FAILED dans la sortie

Jobs SLURM bruts (type: slurm)

  • Vérifiez : ssh <host> "squeue -j <id> -h -o '%T %M %R'" — si vide, le job a quitté la queue
  • À la complétion : ssh <host> "sacct -j <id> --format=State,ExitCode,Elapsed -n"
  • En cas d'échec : Vérifiez le fichier log de sortie du job

Identification des jobs (initié par l'utilisateur, pas d'ID donné)

Quand l'utilisateur demande des informations sur un job sans spécifier un ID, vérifiez dans cet ordre :

  1. .claude/active_jobs.json — plus fiable, possède le contexte
  2. nel ls runs --since 1d — runs NEL récents
  3. ssh <host> "squeue -u <user>" — jobs SLURM actifs
  4. ls -lt tools/launcher/experiments/cicd/ | head -10 — expériences launcher récentes

Directives de rapport

  • Signalez les changements d'état de façon proactive — PENDING → RUNNING, ou job se termine
  • Agrégez plusieurs jobs — "2 of 4 completed (MMLU-Pro: 42.3%, GSM8K: 67.1%), 1 running, 1 pending"
  • Résumez, ne répétez pas — interprétez les événements (« Calibration complete, exporting checkpoint ») et non les logs bruts
  • En cas d'échec, diagnostiquez immédiatement — vérifiez les logs et rapportez la cause racine sans attendre la demande de l'utilisateur
  • Minimisez le bruit — ne signalez pas « toujours en cours d'exécution » à moins que l'utilisateur demande activement

Skills similaires