Informazioni sui filtri di attivazione e invio
In questo argomento viene fornita una panoramica dei tipi di filtri di processi personalizzati che un amministratore può aggiungere al cluster e il modo in cui il servizio Utilità di pianificazione processi HPC elabora i processi in base ai valori restituiti da questi filtri.
L'invio di processi e i filtri di attivazione dei processi sono applicazioni personalizzate che forniscono controlli e controlli aggiuntivi per i processi nel cluster. Ad esempio, i filtri di invio possono controllare le proprietà dei processi in base alle informazioni di propria scelta o possono modificare i valori delle proprietà del processo. I filtri di attivazione possono verificare la presenza di fattori come la disponibilità delle licenze prima che le risorse vengano allocate a un processo. A seconda del valore restituito dal filtro, il servizio utilità di pianificazione processi HPC esegue l'azione appropriata sul processo. Per determinare se i criteri di pianificazione da applicare richiedono filtri personalizzati, vedere Quando usare l'invio di processi o filtri di attivazione processi in Windows HPC Server.
Questo argomento descrive i filtri di attivazione e invio e il modo in cui i valori restituiti dai filtri vengono interpretati dal servizio utilità di pianificazione processi HPC. Per informazioni sull'installazione e la configurazione dei filtri, vedere Install Submission and Activation Filters in Microsoft HPC Pack.
In questo argomento:
filtri specifici del modello di processo e a livello di cluster
filtri per l'invio di processi e i relativi valori restituiti
filtri di attivazione dei processi e i relativi valori restituiti
Quando vengono eseguiti filtri personalizzati
Il servizio utilità di pianificazione processi HPC può eseguire filtri personalizzati quando i processi vengono inviati al cluster (filtri di invio) o quando i processi stanno per ottenere le risorse del cluster (filtri di attivazione).
I filtri di invio vengono eseguiti non appena viene inviato un processo, prima che il processo venga controllato rispetto al modello di processo (i filtri di invio possono modificare le proprietà del processo, incluso il modello di processo assegnato). Se il processo supera il filtro di invio, le credenziali utente vengono verificate e quindi vengono applicate le impostazioni predefinite del modello di processo e i vincoli di valore. Per altre informazioni, vedere Informazioni sui filtri di attivazione e invio [collegamento alla Guida?].
I filtri di attivazione vengono eseguiti quando le risorse candidate vengono allocate a un processo in coda o in esecuzione (le risorse candidate per un processo sono basate sulle proprietà del processo e delle attività e sui criteri di pianificazione). Il filtro di attivazione può determinare se il processo deve essere avviato su tali risorse o se le risorse devono essere mantenute per il processo o rilasciate. Poiché i filtri di attivazione vengono eseguiti ogni volta che le risorse vengono allocate a un processo, il filtro di attivazione potrebbe essere eseguito più volte per lo stesso processo. Ad esempio, il filtro di attivazione può essere eseguito quando il processo sta per essere avviato e quindi eseguito di nuovo quando le nuove risorse stanno per essere aggiunte al processo (crescita dinamica).
Filtri specifici per modelli di processi e a livello di cluster
I filtri personalizzati possono essere definiti a livello di cluster e verranno eseguiti in ogni processo. I filtri a livello di cluster vengono implementati come applicazioni eseguibili o come script. A partire da Service Pack 2 di HPC Pack 2008 R2, è anche possibile definire filtri personalizzati a livello di modello di processo. Questi filtri verranno eseguiti solo sui processi inviati con il modello di processo associato. I filtri a livello di modello consentono di eseguire filtri specifici su tipi specifici di processi e consentono anche di eseguire una serie di filtri, se necessario.
Nota
I filtri a livello di modello di processo devono essere definiti come DLL e implementare la IActivationFilter
o l'interfaccia ISubmissionFilter
.
È possibile aggiungere filtri a livello di modello di processo e a livello di cluster al cluster. Quando un processo viene inviato o pronto per l'attivazione, tutti i filtri modello di processo verranno eseguiti prima del filtro a livello di cluster.
Filtri per l'invio di processi e i relativi valori restituiti
Il servizio utilità di pianificazione processi HPC può eseguire un filtro per l'invio di processi ogni volta che viene inviato un processo. Il filtro può controllare le proprietà del processo per determinare se il processo deve essere aggiunto alla coda.
Il filtro per l'invio analizza il codice XML della descrizione del processo (che specifica i termini del processo) per verificare la presenza di opzioni che si desidera impedire o limitare o per non includere un'opzione obbligatoria. Un filtro di invio può anche apportare modifiche ai valori delle proprietà del processo modificando il file XML del processo. Non è possibile modificare i valori delle proprietà dell'attività.
In base al valore restituito dal filtro per l'invio di processi, il servizio utilità di pianificazione processi HPC elabora il processo come descritto nella tabella seguente.
Codice di uscita | Azione dell'utilità di pianificazione del processo |
---|---|
0 | Il processo viene aggiunto alla coda as-is. |
1 | Il filtro ha modificato una o più proprietà del processo e il processo viene aggiunto alla coda. |
Qualsiasi altro codice di uscita | Il processo è contrassegnato come Non riuscito con un messaggio di errore che indica che il filtro di invio non è riuscito a eseguire il processo. |
timeout del filtro | Il processo viene contrassegnato come Non riuscito con un messaggio di errore che indica il timeout del filtro di invio.The job is marked as Failed with an error message that the submission filter timeout. Il timeout predefinito è 15 secondi. L'impostazione può essere modificata nella finestra di dialogo Configurazione utilità di pianificazione processi. |
Filtro non trovato | Il processo è contrassegnato come Non riuscito con un messaggio di errore che indica che non è stato possibile trovare il filtro. |
Nota
Se è stata specificata una catena di filtri di invio, un processo verrà eseguito attraverso ogni filtro nell'ordine elencato fino a quando non viene passato correttamente attraverso tutti i filtri. Con un codice di uscita pari a 0, il processo viene passato al filtro successivo. Con un codice di uscita pari a 1, il processo modificato viene passato al filtro successivo. Se il processo ha esito negativo in qualsiasi punto della catena, tutti i filtri di invio già eseguiti sul processo vengono chiamati di nuovo in ordine inverso per consentire ai filtri di ripristinare le azioni, se necessario.
Filtri di attivazione dei processi e relativi valori restituiti
Il servizio utilità di pianificazione processi HPC può eseguire un filtro di attivazione quando le risorse candidate stanno per essere allocate a un processo in coda o in esecuzione. Il filtro di attivazione del processo può controllare il processo per individuare i fattori che causano l'esito negativo del processo, ad esempio l'indisponibilità delle licenze o il tempo di utilizzo superato per l'utente che invia.
Il filtro di attivazione analizza il codice XML della descrizione del processo (che specifica i termini del processo) e può controllare le proprietà del processo e altre origini dati per determinare se il processo sarà in grado di usare le risorse. I parametri aggiuntivi vengono passati al filtro per fornire informazioni quali il numero di risorse candidate disponibili durante il passaggio di pianificazione corrente, la posizione del processo nella coda e se il backfilling è abilitato o meno nel cluster. Controllare IActivationFilter
public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount)
dell'interfaccia per questi parametri. Lo sviluppatore che crea il filtro può usare questi parametri per ottimizzare il comportamento del filtro.
In base al valore restituito del filtro dal filtro di attivazione, il servizio utilità di pianificazione processi HPC avvierà il processo, blocca la coda fino a quando il processo non può iniziare, riservare le risorse per il processo senza bloccare la coda o mettere in attesa il processo. La quantità di tempo per contenere un processo specifico può essere impostata con la proprietà Hold Until processo. Se un processo viene sospeso e non viene specificato alcun valore Hold Until per tale processo, il processo viene mantenuto per la quantità di secondi specificata dall'impostazione Durata blocco predefinita cluster. I valori validi per Durata attesa predefinita sono compresi tra 60 e 604800 (tra un minuto e una settimana). Il valore predefinito è 900 secondi (15 minuti).
Importante
Dopo l'esecuzione di un processo, la proprietà Hold Until viene cancellata.
Nota
Filtri di attivazione e riempimento: un processo può essere eseguito solo in una finestra di backfill con un valore restituito del filtro di attivazione pari a 0.
In base al valore restituito (codice di uscita) dal filtro di attivazione del processo, il servizio utilità di pianificazione processi HPC elabora il processo come descritto nella tabella seguente.
Codice di uscita | Processi in coda | Esecuzione di processi |
---|---|---|
0 | Avviare il processo. Il processo viene avviato nelle risorse candidate. |
Crescere il lavoro. Le risorse candidate vengono aggiunte al processo in esecuzione. |
1 | Non avviare il processo, bloccare la coda. Il processo non viene avviato e rimane nella coda. Non vengono avviati altri processi o priorità uguale o inferiore fino al passaggio o all'annullamento del processo. Il filtro rivaluta periodicamente il processo fino al passaggio del processo o fino all'annullamento del processo. |
Non crescere lavoro. Le risorse candidate non vengono aggiunte al processo in esecuzione. La coda non è bloccata e le risorse possono essere usate per altri processi. |
2 | Non avviare il processo, conservare le risorse e continuare a pianificare altri processi. Il processo non viene avviato, ma le risorse candidate sono riservate a seconda della modalità di pianificazione: in coda, fino al massimo delle risorse del processo sono riservate; in Bilanciato, le risorse minime sono riservate. È possibile avviare altri processi in altre risorse. Il filtro rivaluta periodicamente il processo fino al passaggio del processo. |
Indefinito. Il filtro non deve restituire questo codice di uscita per i processi in esecuzione. |
3 | Conservare processi, rilasciare risorse e continuare a pianificare altri processi. Il processo viene sospeso fino alla data e all'ora specificate dalla proprietà del processo Hold Until. Dopo il periodo di attesa, il processo viene rivalutato dal programma di filtro. Se il filtro restituisce con codice di uscita 3 e non viene specificato alcun valore Hold Until per tale processo, il processo viene mantenuto per l'intervallo di tempo specificato dall'impostazione Durata blocco predefinita cluster. |
Indefinito. Il filtro non deve restituire questo codice di uscita per i processi in esecuzione. |
4 | Processo non riuscita. Il processo viene contrassegnato come Non riuscito con un messaggio di errore che indica che il processo non è riuscito dal filtro di attivazione. |
Indefinito. Il filtro non deve restituire questo codice di uscita per i processi in esecuzione. |
Qualsiasi altro codice di uscita | Indefinito. Ma considerato lo stesso valore di 2. | Indefinito. Il filtro non deve restituire questo codice di uscita per i processi in esecuzione. |
timeout del filtro | Uguale al codice di uscita 2. Il timeout predefinito è 15 secondi. L'impostazione può essere modificata nella finestra di dialogo Configurazione utilità di pianificazione processi. |
Indefinito. |
Filtro non trovato | Uguale al codice di uscita 2. | Indefinito. |
Nota
Se è stata specificata una catena di filtri di attivazione, un processo verrà valutato da ogni filtro nell'ordine elencato, purché passi con un codice di uscita pari a 0. Se un filtro restituisce un codice di uscita diverso da zero, tale valore viene passato all'utilità di pianificazione processi HPC e tutti i filtri di attivazione già eseguiti nel processo vengono chiamati di nuovo in ordine inverso per consentire ai filtri di ripristinare le azioni, se necessario. Ad esempio, un filtro di attivazione che verifica la disponibilità di licenze può includere il codice per rilasciare le licenze se viene chiamata la funzione di ripristino.