Dépannage des tâches par lots

Marché

Dans ce guide, nous allons vous montrer quelques sources d'erreurs courantes rencontrées par les utilisateurs exécutant des tâches par lots sur la plateforme Rescale. Nous allons essayer de vous montrer comment diagnostiquer certaines de ces erreurs. Nous discuterons également des moyens de les éviter et de les corriger.

Page État de la tâche

  • Examiner la sortie sur le travail Statut page
    • Examiner l'historique des tâches sur le diagramme de Gantt

    • La commande transmet-elle correctement le validation étape (Validation de l'entrée) avec un chèque vert ?
      Statut du travail
      Y a-t-il des messages d'erreur présents dans le Journaux de travaux section?
    • Erreur de plateforme

      Y a-t-il des messages d'erreur présents dans le Journaux de travaux section?

      Erreur de plateforme

Page de résultats

Fichiers de la page de résultats

processus_output.log

La première étape que nous suggérerions toujours pour chaque travail, réussi ou non est de revoir le process_output.log déposer. Ce fichier enregistre la sortie standard de la méthode d'analyse logicielle que vous exécutez. Il enregistrera également tous les messages d'erreur potentiels.

  • Pour trouver le process_output.log fichier aller au Job Résultats page
  • Rechercher le fichier dans la barre de recherche
    • Habituellement log or process est un terme de recherche suffisant
  • Voir le process_output.log fichier à l'aide de l'icône d'écran dans le Action colonne
    • Visionneuse de journalSi le fichier est trop volumineux, vous devrez peut-être d'abord le télécharger avant de l'afficher dans un éditeur de texte.
  • Examinez attentivement ce fichier journal et recherchez les messages d'avertissement ou d'erreur.
    • La plupart du temps, l'erreur peut être identifiée ici Process_output.log

Codes de sortie

Un champ clé à rechercher est le « code de sortie » à la fin du process_output.log déposer. Si une méthode d'analyse fonctionne correctement et se termine proprement sans afficher de message d'erreur, elle devrait produire :

Sortir avec le code 0

Même si un travail peut se terminer avec code 0, cela signifie simplement que le processus s'est exécuté sans produire d'erreurs. Bien sûr, cela fait garantie pas que le travail s'est déroulé comme prévu. Lorsque le programme rencontre une erreur système explicite (c'est-à-dire manque de mémoire, core dump, espace disque insuffisant, etc), le processus produira un code de sortie non nul. Codes de sortie courants que vous pouvez rencontrer :

Code de sortieSens
1Fourre-tout pour les erreurs générales
2Utilisation abusive des éléments intégrés au shell
126La commande invoquée ne peut pas s'exécuter
127Commande non trouvée
128Argument invalide pour quitter
128 + nSignal d'erreur fatale « n »
130Script terminé par Ctrl-C
137Mode de sortie indéterminé, y compris l'arrêt explicite du processus ou une mémoire insuffisante
255 *Statut de sortie hors de portée

Bien entendu, ces codes d’erreur ne sont pas les plus instructifs, mais ils constituent un point de départ pour le débogage.

Étapes de débogage de base

Bien qu'il existe une grande variété de mécanismes de défaillance, certains des problèmes les plus courants ainsi que les étapes permettant de les diagnostiquer et de les éviter sont répertoriés ci-dessous.

Fichiers d'entrée manquants

  • Assurez-vous que tous les fichiers requis ont été inclus dans le travail, soit individuellement, soit dans un ensemble de fichiers d'entrée compressés (zip, tarball, etc.).

Chemins de fichiers incorrects

  • Assurez-vous que le paquet de fichiers d'entrée compressés se développera vers les chemins de répertoire appropriés.
  • Utiliser des chemins de fichiers relatifs dans les scripts, les fichiers d'entrée et autres définitions de tâches
  • Rescale exécutera le logiciel Command(s) indiqué(s) sur le Paramètres du logiciel page dans le même répertoire de travail où les fichiers compressés seront décompressés
    • La plateforme Rescale supposera que les fichiers d'entrée préparés sont regroupés au niveau du répertoire supérieur.
    • zip/tar/etc les fichiers d'entrée au niveau du répertoire où la commande sera exécutée
    • Ou, si un sous-répertoire case est utilisé (c'est-à-dire run01_configB), assurez-vous de faire précéder la commande du logiciel d'analyse avec le changement de répertoire approprié, tel que : cd run01_configB && run_analysis
      • Notez qu'il ne s'agit pas du workflow préféré sur la plateforme Rescale

Travaux multi-nœuds nécessitant l'accès à un système de fichiers commun

Pour la plupart des méthodes d'analyse dans lesquelles le processus principal gère les E/S des fichiers et la communication avec le processus de travail, Rescale place par défaut les fichiers d'entrée spécifiés par l'utilisateur dans ~/work. Toutefois, certaines méthodes lancent des processus de travail sur des nœuds qui nécessitent également l'accès à un système de fichiers partagé.

  • Sur la plateforme Rescale, le ~/work/shared le répertoire est monté NFS sur tous les nœuds de calcul de votre travail
    • Rescale a identifié la plupart de ces méthodes d'analyse et démarre par défaut les tâches dans le ~/work/shared annuaire
    • Cependant, il arrive parfois, en raison d'une personnalisation ou d'une option d'exécution, que les processus de travail exécutés sur les nœuds nécessitent l'accès aux fichiers d'entrée, le chargement des bibliothèques d'exécution ou l'écriture de fichiers de sortie.
  • Le Command sur le Paramètres du logiciel la page doit être précédée de Bougez et changer de répertoire commandes:
mv * a partagé la publication de
cd a partagé la publication de
<run_analysis>

Erreur lors de la lecture des fichiers d'entrée

  • Assurez-vous que les fichiers d'entrée sont correctement construits comme prévu par votre logiciel d'analyse
  • Assurez-vous que le logiciel approprié Version est sélectionné sur la page déroulante « Paramètres du logiciel »
  • Assurez-vous que les fichiers de saisie de texte sont au format approprié
    • Les nœuds de calcul par lots sont généralement des machines Linux. Selon le type d'éditeur de texte que vous utilisez, les caractères de fin de ligne/fin de fichier sont parfois codés différemment.
    • Souvent, les éditeurs de texte Windows génèrent des fichiers avec le ^M caractère de nouvelle ligne que Linux n'utilise pas
      • Pour remplacer cela à l'aide d'un éditeur de texte tel que VI/VIM, vous pouvez remplacer ces caractères par la commande suivante : :%s/^M$//
      • À noter: ^M est inscrit comme ctrl-V et ctrl-M

Examinez d'autres fichiers journaux de votre méthode d'analyse

  • Alors que la plateforme Rescale génère des messages de sortie standard vers process_output.log, certaines méthodes d'analyse imprimeront des informations critiques dans d'autres fichiers journaux

  • Ces fichiers de sortie auront généralement les extensions de fichier « log », « out », « live » ou « dat », mais peuvent varier en fonction de la méthode d'analyse. Veuillez vous référer à la documentation du fournisseur du logiciel

  • Journaux de tâches
  • Ces fichiers journaux seront également généralement des fichiers texte ASCII, vous pouvez donc les visualiser à l'aide de la petite icône d'écran dans la colonne de droite à côté du nom du fichier.

    • Comme avec la process_output.log fichier, s'il est trop volumineux, téléchargez-le sur votre site local poste de travail et visualisez-les à l'aide d'un éditeur de texte

Fichiers de bibliothèque manquants

  • Assurez-vous que le processus dispose de définitions d'accès et de chemin appropriées pour tous les fichiers de bibliothèque personnalisés utilisés dans le travail.
  • Le support Rescale devra peut-être installer des bibliothèques supplémentaires pour votre application.

Ressources système épuisées

  • Vérifiez que votre simulation le processus dispose de suffisamment de mémoire physique et de stockage pendant l'exécution
    • Certains codes changeront la taille de leur empreinte mémoire pendant l'exécution en fonction de l'analyse, donc une mémoire suffisante au démarrage peut ne pas persister
    • Certains codes généreront également une grande quantité de fichiers de données de travail qui pourraient gonfler l'empreinte de stockage au-delà de celle des fichiers de sortie finaux.
  • Reportez-vous à « Statut du cluster » au bas du Job Statut page pour les moniteurs de mémoire libre et d'espace disque
  • Réduisez la taille de votre maillage/simulation pour voir si le travail peut s'exécuter avec succès
  • Exécuter sur plus de cœurs et/ou de nœuds
  • Sélectionnez des types de cœurs spécialisés avec plus de mémoire physique ou de stockage

Accès approprié à la licence

  • Assurez-vous que vos paramètres de licence sur le Paramètres du logiciel la page est correctement définie. Généralement, ceux-ci sont au format port@hostname.
  • Assurez-vous que vous vérifiez les fonctionnalités de votre fichier de licence, comme le montre le process_output.log
    • Vérifiez si les bonnes options pour vérifier les fonctionnalités sont utilisées avec la commande que vous essayez d'exécuter.
      Statut de la licence
  • Si vous êtes la personne responsable de votre permis serveur:
    • Vérifiez que votre licence n'a pas expiré
    • Vérifiez que votre serveur de licences est opérationnel et dispose d'un accès au réseau
    • Veuillez vous référer à notre guide sur Tunnel SSH et Transfert IP pour plus de détails.

Débogage de votre flux de travail

  • Avant de vous lancer dans une exécution de taille production, configurez un petit scénario de test qui met en pratique votre flux de travail.
  • Vérifiez que vos étapes de pré- et post-traitement sont correctement intégrées dans votre Options d'analyse > Command
  • Exécuter une tâche de test de manière interactive
    • Remplacer l'existant Command au sleep 3600
    • ssh dans le calcul nœud une fois que ça commence
    • Accédez au répertoire approprié pour votre méthode d'analyse (~/work or ~/work/shared)
    • Tentative de lancement du travail de manière interactive
    • Enregistrez toutes les commandes qui produisent un résultat positif
    • Modifiez votre Command(s) en conséquence
      • Le Command la fenêtre de saisie acceptera les sauts de ligne, ; or && marques pour séparer les commandes
      • Remarque : commandes séparées par && ne s'exécutera que si le précédent se termine par un code 0, tandis que ceux qui suivent ; s'exécutera toujours après le précédent

Si ces étapes de débogage courantes ne résolvent toujours pas vos problèmes, veuillez contacter et partager votre travail avec Prise en charge du redimensionnement.