Présentation des filtres d’activation et de soumission
Cette rubrique fournit une vue d’ensemble des types de filtres de travaux personnalisés qu’un administrateur peut ajouter au cluster et la façon dont le service du planificateur de travaux HPC traite les travaux en fonction des valeurs de retour de ces filtres.
Les filtres d’envoi de travaux et d’activation des travaux sont des applications personnalisées qui fournissent des contrôles et des contrôles supplémentaires pour les travaux sur votre cluster. Par exemple, les filtres de soumission peuvent vérifier les propriétés du travail par rapport aux informations de votre choix ou modifier les valeurs des propriétés du travail. Les filtres d’activation peuvent rechercher des facteurs tels que la disponibilité des licences avant que les ressources ne soient allouées à un travail. Selon la valeur de retour de votre filtre, le service HPC Job Scheduler effectue l’action appropriée sur le travail. Pour déterminer si les stratégies de planification que vous souhaitez appliquer nécessitent des filtres personnalisés, consultez Quand utiliser les filtres d’envoi de travaux ou d’activation de travaux dans Windows HPC Server.
Cette rubrique décrit les filtres d’activation et de soumission, ainsi que la façon dont les valeurs de retour des filtres sont interprétées par le service HPC Job Scheduler. Pour plus d’informations sur l’installation et la configuration des filtres, consultez Installer les filtres d’envoi et d’activation dans Microsoft HPC Pack.
Dans cette rubrique :
Quand des filtres personnalisés s’exécutent
Le service HPC Job Scheduler peut exécuter des filtres personnalisés lorsque des travaux sont soumis au cluster (filtres d’envoi) ou lorsque les travaux sont sur le point d’obtenir des ressources de cluster (filtres d’activation).
Les filtres de soumission s’exécutent dès qu’un travail est envoyé, avant la vérification du travail sur le modèle de travail (les filtres de soumission peuvent modifier les propriétés du travail, y compris le modèle de travail affecté). Si le travail transmet le filtre de soumission, les informations d’identification de l’utilisateur sont vérifiées, puis les contraintes par défaut et de valeur du modèle de travail sont appliquées. Pour plus d’informations, consultez Présentation des filtres d’activation et de soumission [lien d’aide ?].
Les filtres d’activation s’exécutent lorsque les ressources candidates sont allouées à un travail mis en file d’attente ou en cours d’exécution (les ressources candidates d’un travail sont basées sur les propriétés du travail et des tâches et sur les stratégies de planification). Le filtre d’activation peut déterminer si le travail doit être démarré ou non sur ces ressources, ou si les ressources doivent être conservées pour le travail ou publiées. Étant donné que les filtres d’activation s’exécutent chaque fois que les ressources sont allouées à un travail, le filtre d’activation peut s’exécuter plusieurs fois pour le même travail. Par exemple, le filtre d’activation peut s’exécuter lorsque le travail est sur le point d’être démarré, puis réexécuter à mesure que de nouvelles ressources sont sur le point d’être ajoutées au travail (croissance dynamique).
Filtres spécifiques au modèle de travail et à l’échelle du cluster
Les filtres personnalisés peuvent être définis au niveau du cluster et s’exécutent sur chaque travail. Les filtres à l’échelle du cluster sont implémentés en tant qu’applications exécutables ou en tant que scripts. À compter de Service Pack 2 de HPC Pack 2008 R2, des filtres personnalisés peuvent également être définis au niveau du modèle de travail. Ces filtres s’exécutent uniquement sur les travaux soumis avec le modèle de travail associé. Les filtres au niveau du modèle vous permettent d’exécuter des filtres spécifiques sur des types de travaux spécifiques, et vous permettent également d’exécuter une série de filtres, si vous le souhaitez.
Note
Les filtres au niveau du modèle de travail doivent être définis en tant que DLL et implémenter la IActivationFilter
ou l’interface ISubmissionFilter
.
Vous pouvez ajouter des filtres de niveau modèle de cluster et de travail au cluster. Lorsqu’un travail est envoyé ou prêt pour l’activation, tous les filtres de modèle de travail s’exécutent avant le filtre à l’échelle du cluster.
Filtres d’envoi de travaux et leurs valeurs de retour
Le service HPC Job Scheduler peut exécuter un filtre d’envoi de travaux chaque fois qu’un travail est envoyé. Le filtre peut vérifier les propriétés du travail pour déterminer si le travail doit être ajouté à la file d’attente.
Le filtre de soumission analyse le code XML de description du travail (qui spécifie les termes du travail) pour rechercher les options que vous souhaitez interdire ou limiter, ou pour ne pas inclure d’option requise. Un filtre de soumission peut également apporter des modifications aux valeurs de propriété de travail en modifiant le fichier XML du travail. Les valeurs de propriété de tâche ne peuvent pas être modifiées.
En fonction de la valeur de retour du filtre d’envoi de travaux, le service hpC Job Scheduler traite le travail comme décrit dans le tableau suivant.
Code de sortie | Action du planificateur de travaux |
---|---|
0 | Le travail est ajouté à la file d’attente as-is. |
1 | Le filtre a modifié une ou plusieurs propriétés de travail et le travail est ajouté à la file d’attente. |
Tout autre code de sortie | Le travail est marqué comme échec avec un message d’erreur indiquant que le filtre de soumission a échoué. |
délai d’expiration du filtre | Le travail est marqué comme échec avec un message d’erreur indiquant que le filtre de soumission a expiré. Le délai d’expiration par défaut est de 15 secondes. Le paramètre peut être modifié dans la boîte de dialogue Configuration du planificateur de travaux. |
filtre introuvable | Le travail est marqué comme échec avec un message d’erreur indiquant que le filtre est introuvable. |
Note
Si vous avez spécifié une chaîne de filtres de soumission, un travail s’exécute via chaque filtre dans l’ordre répertorié jusqu’à ce qu’il ait réussi à passer tous les filtres. Avec un code de sortie de 0, le travail est passé au filtre suivant. Avec un code de sortie de 1, le travail modifié est passé au filtre suivant. Si le travail échoue à un moment quelconque de la chaîne, tous les filtres d’envoi qui ont déjà été exécutés sur le travail sont appelés à nouveau dans l’ordre inverse pour permettre aux filtres de rétablir les actions, si nécessaire.
Filtres d’activation des travaux et leurs valeurs de retour
Le service HPC Job Scheduler peut exécuter un filtre d’activation lorsque les ressources candidates sont sur le point d’être allouées à un travail en file d’attente ou en cours d’exécution. Le filtre d’activation du travail peut vérifier le travail pour connaître les facteurs qui entraîneraient l’échec du travail en cas d’activation, par exemple l’indisponibilité des licences ou le temps d’utilisation dépassé pour l’utilisateur soumis.
Le filtre d’activation analyse le code XML de description du travail (qui spécifie les termes du travail) et peut vérifier les propriétés du travail et d’autres sources de données pour déterminer si le travail sera en mesure d’utiliser les ressources. Des paramètres supplémentaires sont transmis au filtre pour fournir des informations telles que le nombre de ressources candidates disponibles pendant la passe de planification actuelle, la position du travail dans la file d’attente et si le remplissage est activé ou non sur le cluster. Vérifiez IActivationFilter
public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount)
d’interface pour ces paramètres. Le développeur qui crée le filtre peut utiliser ces paramètres pour affiner le comportement du filtre.
En fonction de la valeur de retour du filtre d’activation, le service du planificateur de travaux HPC démarre le travail, bloque la file d’attente jusqu’à ce que le travail puisse démarrer, réserver des ressources pour le travail sans bloquer la file d’attente ou mettre le travail en attente. La durée de conservation d’un travail spécifique peut être définie avec la propriété Hold Until job. Si un travail est mis en attente et qu’aucune conservation jusqu’à valeur n’est spécifiée pour ce travail, le travail est conservé pendant la durée de conservation par défaut paramètre de cluster. Les valeurs valides pour durée de conservation par défaut sont de 60 à 604800 (entre une minute et une semaine). La valeur par défaut est 900 secondes (15 minutes).
Important
Une fois qu’un travail est exécuté, la propriété Hold Until est effacée.
Note
Filtres d’activation et remplissage : un travail ne peut s’exécuter que dans une fenêtre de remplissage avec une valeur de retour de filtre d’activation de 0.
En fonction de la valeur de retour (code de sortie) du filtre d’activation du travail, le service HPC Job Scheduler traite le travail comme décrit dans le tableau suivant.
Code de sortie | Travaux mis en file d’attente | Exécution de travaux |
---|---|---|
0 | Démarrez le travail. Le travail est démarré sur les ressources candidates. |
Augmentez le travail. Les ressources candidates sont ajoutées au travail en cours d’exécution. |
1 | Ne démarrez pas le travail, bloquez la file d’attente. Le travail n’est pas démarré et reste dans la file d’attente. Aucun autre travail ou priorité égale ou inférieure n’est démarré jusqu’à ce que le travail passe ou soit annulé. Le filtre réévalue régulièrement le travail jusqu’à ce que le travail passe, soit jusqu’à ce que le travail soit annulé. |
N’augmentez pas le travail. Les ressources candidates ne sont pas ajoutées au travail en cours d’exécution. La file d’attente n’est pas bloquée et les ressources peuvent être utilisées pour d’autres travaux. |
2 | Ne démarrez pas le travail, conservez les ressources et continuez à planifier d’autres travaux. Le travail n’est pas démarré, mais les ressources candidates sont réservées en fonction du mode de planification : en file d’attente, jusqu’aux ressources maximales du travail sont réservées ; en équilibre, les ressources minimales sont réservées. D’autres travaux peuvent être démarrés sur d’autres ressources. Le filtre réévalue régulièrement le travail jusqu’à ce que le travail passe. |
Indéfini. Le filtre ne doit pas retourner ce code de sortie pour les travaux en cours d’exécution. |
3 | Maintenez le travail, relâchez les ressources et continuez à planifier d’autres travaux. Le travail est mis en attente jusqu’à la date et l’heure spécifiées par la propriété Hold Until job. Après la période d’attente, le travail est réévalué par le programme de filtre. Si le filtre retourne avec le code de sortie 3 et qu’aucune valeur de de conservation jusqu’à est spécifiée pour ce travail, le travail est conservé pendant la durée spécifiée par le paramètre durée de conservation par défaut paramètre de cluster. |
Indéfini. Le filtre ne doit pas retourner ce code de sortie pour les travaux en cours d’exécution. |
4 | Échec du travail. Le travail est marqué comme échec avec un message d’erreur indiquant que le travail a échoué par le filtre d’activation. |
Indéfini. Le filtre ne doit pas retourner ce code de sortie pour les travaux en cours d’exécution. |
Tout autre code de sortie | Indéfini. Mais traité de la même façon qu’une valeur de 2. | Indéfini. Le filtre ne doit pas retourner ce code de sortie pour les travaux en cours d’exécution. |
délai d’expiration du filtre | Identique au code de sortie 2. Le délai d’expiration par défaut est de 15 secondes. Le paramètre peut être modifié dans la boîte de dialogue Configuration du planificateur de travaux. |
Indéfini. |
filtre introuvable | Identique au code de sortie 2. | Indéfini. |
Note
Si vous avez spécifié une chaîne de filtres d’activation, un travail est évalué par chaque filtre dans l’ordre répertorié tant qu’il passe avec un code de sortie de 0. Si un filtre retourne un code de sortie différent de zéro, cette valeur est transmise au planificateur de travaux HPC, et tous les filtres d’activation qui ont déjà été exécutés sur le travail sont appelés à nouveau dans l’ordre inverse pour permettre aux filtres de rétablir les actions, si nécessaire. Par exemple, un filtre d’activation qui vérifie les licences disponibles peut inclure du code pour libérer les licences si la fonction de restauration est appelée.