Compartir a través de


Descripción de los filtros de activación y envío

En este tema se proporciona información general sobre los tipos de filtros de trabajo personalizados que un administrador puede agregar al clúster y cómo el servicio programador de trabajos de HPC procesa los trabajos en función de los valores devueltos de estos filtros.

Los filtros de envío de trabajos y activación de trabajos son aplicaciones personalizadas que proporcionan comprobaciones y controles adicionales para trabajos en el clúster. Por ejemplo, los filtros de envío pueden comprobar las propiedades del trabajo con información de su elección o pueden cambiar los valores de propiedad del trabajo. Los filtros de activación pueden comprobar si hay factores como la disponibilidad de licencias antes de que los recursos se asignen a un trabajo. Según el valor devuelto del filtro, el servicio programador de trabajos de HPC realiza la acción adecuada en el trabajo. Para ayudar a determinar si las directivas de programación que desea aplicar requieren filtros personalizados, consulte Cuándo usar filtros de activación de trabajos o envío de trabajos en Windows HPC Server.

En este tema se describen los filtros de activación y envío, y cómo el servicio programador de trabajos de HPC interpreta los valores devueltos de los filtros. Para obtener información sobre cómo instalar y configurar los filtros, vea Instalar filtros de envío y activación en Microsoft HPC Pack.

En este tema:

Cuando se ejecutan filtros personalizados

El servicio programador de trabajos de HPC puede ejecutar filtros personalizados cuando los trabajos se envían al clúster (filtros de envío) o cuando los trabajos están a punto de obtener recursos de clúster (filtros de activación).

Los filtros de envío se ejecutan tan pronto como se envía un trabajo, antes de comprobarlo con la plantilla de trabajo (los filtros de envío pueden cambiar las propiedades del trabajo, incluida la plantilla de trabajo asignada). Si el trabajo pasa el filtro de envío, se comprueban las credenciales de usuario y, a continuación, se aplican los valores predeterminados de la plantilla de trabajo y las restricciones de valor. Para obtener más información, vea Descripción de los filtros de activación y envío [vínculo de ayuda?].

Los filtros de activación se ejecutan cuando los recursos candidatos se asignan a un trabajo en cola o en ejecución (los recursos candidatos para un trabajo se basan en las propiedades de trabajo y tarea y en las directivas de programación). El filtro de activación puede determinar si el trabajo debe iniciarse o no en esos recursos, o si los recursos se deben mantener para el trabajo o liberarlos. Dado que los filtros de activación se ejecutan cada vez que los recursos se asignan a un trabajo, el filtro de activación puede ejecutarse varias veces para el mismo trabajo. Por ejemplo, el filtro de activación se puede ejecutar cuando el trabajo está a punto de iniciarse y, a continuación, volver a ejecutarse a medida que se agreguen nuevos recursos al trabajo (crecimiento dinámico).

Filtros específicos de plantilla de trabajo y en todo el clúster

Los filtros personalizados se pueden definir en el nivel de todo el clúster y se ejecutarán en cada trabajo. Los filtros de todo el clúster se implementan como aplicaciones ejecutables o como scripts. A partir de Service Pack 2 de HPC Pack 2008 R2, también se pueden definir filtros personalizados en el nivel de plantilla de trabajo. Estos filtros solo se ejecutarán en los trabajos que se envían con la plantilla de trabajo asociada. Los filtros de nivel de plantilla permiten ejecutar filtros específicos en tipos específicos de trabajos y también le permiten ejecutar una serie de filtros, si lo desea.

Nota

Los filtros de nivel de plantilla de trabajo deben definirse como archivos DLL e implementar el IActivationFilter o la interfaz de ISubmissionFilter.

Puede agregar filtros de nivel de plantilla de trabajo y de todo el clúster al clúster. Cuando un trabajo se envía o está listo para la activación, los filtros de plantilla de trabajo se ejecutarán antes del filtro de todo el clúster.

Filtros de envío de trabajos y sus valores devueltos

El servicio programador de trabajos de HPC puede ejecutar un filtro de envío de trabajos cada vez que se envía un trabajo. El filtro puede comprobar las propiedades del trabajo para determinar si el trabajo se debe agregar a la cola.

El filtro de envío analiza el XML de descripción del trabajo (que especifica los términos del trabajo) para comprobar si hay opciones que desea denegar o limitar, o si no se incluye una opción necesaria. Un filtro de envío también puede realizar cambios en los valores de propiedad del trabajo modificando el archivo XML del trabajo. No se pueden cambiar los valores de propiedad de tarea.

En función del valor devuelto del filtro de envío de trabajos, el servicio programador de trabajos de HPC procesará el trabajo como se describe en la tabla siguiente.

Código de salida Acción del programador de trabajos
0 El trabajo se agrega a la cola as-is.
1 El filtro modificó una o varias propiedades de trabajo y el trabajo se agrega a la cola.
cualquier otro código de salida El trabajo se marca como Error con un mensaje de error que indica que el filtro de envío produjo un error en el trabajo.
de tiempo de espera de filtro de El trabajo se marca como Error con un mensaje de error que agota el tiempo de espera del filtro de envío.

El tiempo de espera predeterminado es de 15 segundos. La configuración se puede modificar en el cuadro de diálogo Configuración del programador de trabajos.
filtro no encontrado El trabajo se marca como Error con un mensaje de error que indica que no se encontró el filtro.

Nota

Si ha especificado una cadena de filtros de envío, un trabajo se ejecutará a través de cada filtro en el orden indicado hasta que haya pasado correctamente todos los filtros. Con un código de salida de 0, el trabajo se pasa al siguiente filtro. Con un código de salida de 1, el trabajo modificado se pasa al siguiente filtro. Si se produce un error en el trabajo en cualquier punto de la cadena, todos los filtros de envío que ya se ejecutaron en el trabajo se vuelven a llamar en orden inverso para permitir que los filtros reviertan las acciones, si es necesario.

Filtros de activación de trabajos y sus valores devueltos

El servicio programador de trabajos de HPC puede ejecutar un filtro de activación cuando los recursos candidatos están a punto de asignarse a un trabajo en cola o en ejecución. El filtro de activación del trabajo puede comprobar los factores que provocarían un error en el trabajo si se activa, como la falta de disponibilidad de licencias o el tiempo de uso superado para el usuario que envía.

El filtro de activación analiza el XML de descripción del trabajo (que especifica los términos del trabajo) y puede comprobar las propiedades del trabajo y otros orígenes de datos para determinar si el trabajo podrá usar los recursos. Los parámetros adicionales se pasan al filtro para proporcionar información como el número de recursos candidatos disponibles durante el pase de programación actual, la posición del trabajo en la cola y si el reposición está habilitado o no en el clúster. Compruebe IActivationFilter interfaz public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount) para estos parámetros. El desarrollador que crea el filtro puede usar estos parámetros para ayudar a ajustar el comportamiento del filtro.

En función del valor devuelto del filtro del filtro de activación, el servicio programador de trabajos de HPC iniciará el trabajo, bloqueará la cola hasta que el trabajo pueda iniciarse, reservar recursos para el trabajo sin bloquear la cola o poner el trabajo en espera. La cantidad de tiempo para contener un trabajo específico se puede establecer con la propiedad de trabajo Hold Until . Si se mantiene en espera un trabajo y no se especifica ningún valor De suspensión hasta para ese trabajo, el trabajo se mantiene durante la cantidad de segundos especificado por la configuración del clúster Duración de suspensión predeterminada. Los valores válidos para duración de suspensión predeterminada son de 60 a 604800 (entre un minuto y una semana). El valor predeterminado es 900 segundos (15 minutos).

Importante

Una vez que se haya ejecutado un trabajo, se borra la propiedad Hold Until.

Nota

Filtros de activación y reposición: un trabajo solo se puede ejecutar en una ventana de reposición con un valor devuelto de filtro de activación de 0.

En función del valor devuelto (código de salida) del filtro de activación del trabajo, el servicio programador de trabajos de HPC procesará el trabajo como se describe en la tabla siguiente.

Código de salida Trabajos en cola Ejecución de trabajos
0 Iniciar trabajo.

El trabajo se inicia en los recursos candidatos.
Haz crecer el trabajo.

Los recursos candidatos se agregan al trabajo en ejecución.
1 No inicie el trabajo, bloquee la cola.

El trabajo no se inicia y permanece en la cola. No se inicia ningún otro trabajo o prioridad igual o inferior hasta que el trabajo pase o se cancele. El filtro vuelve a evaluar el trabajo periódicamente hasta que se pasa el trabajo o hasta que se cancela el trabajo.
No crezca el trabajo.

Los recursos candidatos no se agregan al trabajo en ejecución. La cola no está bloqueada y los recursos se pueden usar para otros trabajos.
2 No inicie el trabajo, mantenga los recursos y continúe programando otros trabajos.

El trabajo no se inicia, pero los recursos candidatos están reservados para él en función del modo de programación: en cola, hasta los recursos máximos del trabajo están reservados; en Equilibrado, se reservan los recursos mínimos. Otros trabajos se pueden iniciar en otros recursos. El filtro vuelve a evaluar el trabajo periódicamente hasta que se pasa el trabajo.
Indefinido.

El filtro no debe devolver este código de salida para trabajos en ejecución.
3 Mantenga el trabajo, libere los recursos y continúe programando otros trabajos.

El trabajo se mantiene en espera hasta la fecha y hora especificada por la propiedad de trabajo Hold Until. Después del período de suspensión, el programa de filtro vuelve a evaluar el trabajo.

Si el filtro devuelve con el código de salida 3 y no se especifica ningún valor hold Until para ese trabajo, el trabajo se mantiene durante el período de tiempo especificado por la configuración del clúster Duración de suspensión predeterminada.
Indefinido.

El filtro no debe devolver este código de salida para trabajos en ejecución.
4 Error en el trabajo.

El trabajo se marca como Error con un mensaje de error que indica que el filtro de activación produjo un error en el trabajo.
Indefinido.

El filtro no debe devolver este código de salida para trabajos en ejecución.
cualquier otro código de salida Indefinido. Pero se trata igual que un valor de 2. Indefinido.

El filtro no debe devolver este código de salida para trabajos en ejecución.
de tiempo de espera de filtro de Igual que el código de salida 2.

El tiempo de espera predeterminado es de 15 segundos. La configuración se puede modificar en el cuadro de diálogo Configuración del programador de trabajos.
Indefinido.
filtro no encontrado Igual que el código de salida 2. Indefinido.

Nota

Si ha especificado una cadena de filtros de activación, cada filtro evaluará un trabajo en el orden indicado siempre que pase con un código de salida de 0. Si un filtro devuelve un código de salida distinto de cero, ese valor se pasa al programador de trabajos de HPC, y los filtros de activación que ya se han ejecutado en el trabajo se vuelven a llamar en orden inverso para permitir que los filtros reviertan las acciones, si es necesario. Por ejemplo, un filtro de activación que comprueba si hay licencias disponibles podría incluir código para liberar las licencias si se llama a la función revert.

Referencias adicionales