Общие сведения о фильтрах активации и отправки
В этом разделе представлен обзор типов настраиваемых фильтров заданий, которые администратор может добавить в кластер, и как служба планировщика заданий HPC обрабатывает задания на основе возвращаемых значений из этих фильтров.
Фильтры отправки заданий и активации заданий — это пользовательские приложения, которые предоставляют дополнительные проверки и элементы управления для заданий в кластере. Например, фильтры отправки могут проверять свойства задания на наличие сведений о выборе или изменять значения свойств задания. Фильтры активации могут проверять наличие таких факторов, как доступность лицензий перед выделением ресурсов для задания. В зависимости от возвращаемого значения из фильтра служба планировщика заданий HPC принимает соответствующее действие для задания. Чтобы определить, требуются ли политики планирования, которые требуется применить пользовательские фильтры, см. , когда следует использовать фильтры отправки заданий или активации заданий в Windows HPC Server.
В этом разделе описываются фильтры активации и отправки, а также способы интерпретации возвращаемых значений из фильтров службой планировщика заданий HPC. Сведения об установке и настройке фильтров см. в фильтрах отправки и активации в пакете MICROSOFT HPC.
В этом разделе:
фильтры отправки заданий и их возвращаемые значения
При запуске пользовательских фильтров
Служба планировщика заданий HPC может запускать пользовательские фильтры при отправке заданий в кластер (фильтры отправки) или при получении ресурсов кластера (фильтров активации).
Фильтры отправки выполняются сразу после отправки задания, прежде чем задание проверяется на шаблон задания (фильтры отправки могут изменять свойства задания, включая назначенный шаблон задания). Если задание передает фильтр отправки, учетные данные пользователя проверяются, а затем применяются ограничения шаблона задания по умолчанию и значению. Дополнительные сведения см. в разделе Основные сведения о активации и отправке фильтров [справка?].
Фильтры активации выполняются при выделении ресурсов кандидатов в очередь или выполнении задания (ресурсы-кандидаты для задания основаны на свойствах задания и задачах и политиках планирования). Фильтр активации может определить, следует ли запускать задание на этих ресурсах или следует ли хранить ресурсы для задания или выпуска. Так как фильтры активации выполняются каждый раз, когда ресурсы выделены для задания, фильтр активации может выполняться несколько раз для одного задания. Например, фильтр активации может выполняться при запуске задания, а затем снова запуститься, так как новые ресурсы будут добавлены в задание (динамический рост).
Фильтры по всему кластеру и шаблону заданий
Пользовательские фильтры можно определить на уровне кластера и выполняться на каждом задании. Фильтры на уровне кластера реализуются как исполняемые приложения или как скрипты. Начиная с пакета обновления 2 пакета HPC 2008 R2 настраиваемые фильтры также можно определить на уровне шаблона задания. Эти фильтры будут выполняться только в заданиях, отправленных с соответствующим шаблоном задания. Фильтры на уровне шаблона позволяют запускать определенные фильтры для определенных типов заданий, а также выполнять ряд фильтров при необходимости.
Заметка
Фильтры уровня шаблона задания должны быть определены как библиотеки DLL и реализовать IActivationFilter
или интерфейс ISubmissionFilter
.
В кластер можно добавить фильтры на уровне шаблона кластера и шаблона задания. При отправке или готовности задания к активации все фильтры шаблонов заданий будут выполняться перед фильтром на уровне кластера.
Фильтры отправки заданий и их возвращаемые значения
Служба планировщика заданий HPC может запускать фильтр отправки заданий каждый раз при отправке задания. Фильтр может проверить свойства задания, чтобы определить, следует ли добавить задание в очередь.
Фильтр отправки анализирует XML-код описания задания (который указывает условия задания), чтобы проверить параметры, которые требуется запретить или ограничить, или для сбоя включения требуемого параметра. Фильтр отправки также может вносить изменения в значения свойств задания, изменив XML-файл задания. Нельзя изменить значения свойств задачи.
В зависимости от возвращаемого значения из фильтра отправки заданий служба планировщика заданий HPC будет обрабатывать задание, как описано в следующей таблице.
Код выхода | Действие планировщика заданий |
---|---|
0 | Задание добавляется в очередь as-is. |
1 | Фильтр изменил одно или несколько свойств задания, а задание добавляется в очередь. |
Любой другой код выхода | Задание помечается как сбой с сообщением об ошибке, что фильтр отправки завершился сбоем задания. |
времени ожидания фильтра |
Задание помечается как сбой с сообщением об ошибке о истечении времени ожидания фильтра отправки. Время ожидания по умолчанию — 15 секунд. Этот параметр можно изменить в диалоговом окне "Настройка планировщика заданий". |
Фильтр не найден | Задание помечается как сбой с сообщением об ошибке, которое не удалось найти фильтру. |
Заметка
Если вы указали цепочку фильтров отправки, задание будет выполняться через каждый фильтр в указанном порядке, пока он не прошел через все фильтры. С кодом выхода 0 задание передается следующему фильтру. С кодом выхода 1 измененное задание передается следующему фильтру. Если задание завершается ошибкой в любой момент в цепочке, все фильтры отправки, которые уже запущены в задании, вызываются повторно, чтобы фильтры могли вернуть действия при необходимости.
Фильтры активации задания и их возвращаемые значения
Служба планировщика заданий HPC может запускать фильтр активации, когда кандидаты ресурсы будут выделены в очередь или выполняющееся задание. Фильтр активации задания может проверить задание на наличие факторов, которые привели бы к сбою задания при активации, например недоступности лицензий или превышении времени использования для отправляющего пользователя.
Фильтр активации анализирует XML-код описания задания (который указывает условия задания) и может проверить свойства задания и другие источники данных, чтобы определить, сможет ли задание использовать ресурсы. Дополнительные параметры передаются фильтру для предоставления сведений, таких как количество ресурсов кандидатов, доступных во время текущего прохода планирования, положение задания в очереди и включение обратной заполнения в кластере. Проверьте IActivationFilter
интерфейсе public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount)
для этих параметров. Разработчик, создающий фильтр, может использовать эти параметры для точной настройки поведения фильтра.
На основе возвращаемого значения фильтра из фильтра активации служба планировщика заданий HPC запустит задание, блокирует очередь, пока задание не сможет запустить, зарезервировать ресурсы для задания без блокировки очереди или поместить задание в удержание. Время хранения определенного задания можно задать с помощью свойства задания Удержание до задания. Если задание помещается на удержание и не удержание до значения для этого задания, задание проводится в течение нескольких секунд, указанных параметром длительность хранения по умолчанию кластером. Допустимые значения для длительность хранения по умолчанию — 60–604800 (от одной минуты до одной недели). Значение по умолчанию — 900 секунд (15 минут).
Важный
После запуска задания свойство Удержание до очистки свойства.
Заметка
Фильтры активации и обратная заполнение: задание может выполняться только в окне обратной заполнения с возвращаемым значением фильтра активации 0.
В зависимости от возвращаемого значения (кода выхода) из фильтра активации задания HPC служба планировщика заданий будет обрабатывать задание, как описано в следующей таблице.
Код выхода | Задания в очереди | Выполнение заданий |
---|---|---|
0 | Запуск задания. Задание запускается в ресурсах кандидатов. |
Увеличение задания. Ресурсы-кандидаты добавляются в выполняемую работу. |
1 | Не запускайте задание, блокируйте очередь. Задание не запущено и остается в очереди. Другие задания или равные или более низкие приоритеты не запускаются до тех пор, пока задание не пройдет или не будет отменено. Фильтр периодически вычисляет задание до тех пор, пока задание не пройдет или пока задание не будет отменено. |
Не растут задания. Ресурсы кандидата не добавляются в выполняемую работу. Очередь не заблокирована, а ресурсы можно использовать для других заданий. |
2 | Не запускайте задание, удерживайте ресурсы и продолжайте планирование других заданий. Задание не запущено, но ресурсы кандидатов зарезервированы для него в зависимости от режима планирования: в очереди максимальные ресурсы задания зарезервированы; В балансе минимальные ресурсы зарезервированы. Другие задания можно запустить на других ресурсах. Фильтр периодически вычисляет задание до тех пор, пока задание не пройдет. |
Неопределенный. Фильтр не должен возвращать этот код выхода для выполняющихся заданий. |
3 | Хранение заданий, ресурсов выпуска и продолжение планирования других заданий. Задание помещается на удержание до даты и времени, указанного свойством задания Удержание до задания. После периода удержания задание переоценится программой фильтра. Если фильтр возвращается с кодом выхода 3 и не удержание до значения для этого задания, задание проводится в течение периода времени, указанного параметром длительность хранения по умолчанию кластере. |
Неопределенный. Фильтр не должен возвращать этот код выхода для выполняющихся заданий. |
4 | Сбой задания. Задание помечается как сбой с сообщением об ошибке, что задание завершилось ошибкой фильтра активации. |
Неопределенный. Фильтр не должен возвращать этот код выхода для выполняющихся заданий. |
Любой другой код выхода | Неопределенный. Но обрабатывается так же, как и значение 2. | Неопределенный. Фильтр не должен возвращать этот код выхода для выполняющихся заданий. |
времени ожидания фильтра |
То же, что и код выхода 2. Время ожидания по умолчанию — 15 секунд. Этот параметр можно изменить в диалоговом окне "Настройка планировщика заданий". |
Неопределенный. |
Фильтр не найден | То же, что и код выхода 2. | Неопределенный. |
Заметка
Если вы указали цепочку фильтров активации, задание будет оцениваться каждым фильтром в указанном порядке, если он проходит с кодом выхода 0. Если фильтр возвращает код выхода без нуля, это значение передается планировщику заданий HPC, а все фильтры активации, которые уже запущены в задании, вызываются снова в обратном порядке, чтобы разрешить фильтрам возвращать действия при необходимости. Например, фильтр активации, который проверяет наличие доступных лицензий, может включать код для освобождения лицензий при вызове функции восстановления.
Дополнительные ссылки
Добавление или удаление фильтров отправк и и активации Cluster-Wide
Добавление или удаление фильтров на уровне шаблона задания или фильтров активации
управление очереди заданий