Повторяйте попытки HPC, пока ресурс не станет доступен (Windows HPC Server 2008 R2 SP3) - PullRequest
0 голосов
/ 25 июля 2011

Задача HPC либо завершается успешно, либо не выполняется, но как мне сообщить «попробуйте позже» обратно в планировщик, конечно, я могу использовать сбой и повторно отправить задачу, но мне нужен способ определить, произошел ли сбой из-за неисправности ( сдаться) или попробуйте еще раз в ближайшее время, потому что эта задача ожидает выполнения другой задачи (и продолжайте попытки до тех пор, пока мы либо не ошибемся, либо успешно завершим)

Есть ли способ добиться этого с помощью HPC API или аналогичного? Из того, что я слышал, что ненулевое значение - это неудача, а нулевое - это успех, вот и все, безусловно, должен быть хороший способ добиться такого поведения «попробуй позже».

Фон

Мы пытаемся запустить несколько задач HPC в одном задании, которые имеют сложные взаимозависимости между ними, поскольку в качестве первого задания выполняются другие задания, которые сидят и ждут, пока первое задание не обработает достаточно данных, чтобы они могли сделать начало (вроде каскадного выполнения, но не в каком-то простом порядке, поэтому мы не можем определить зависимости в HPC).

Первоначально я пытался распределить эти несколько задач по нескольким ядрам таким образом, чтобы они могли спать, ожидая, пока основная задача завершит интересующую их задачу. Подобно тому, как Windows будет выполнять процессы с разделением времени. Теперь ясно, что HPC (по замыслу!) Допускает одну задачу на ядро ​​, поэтому, если у вас восьмиядерный компьютер, вы можете запускать только восемь задач одновременно.

Решение, по-видимому, заключается в использовании командного файла или аналогичного для порождения нескольких процессов, однако прежде чем я пойду по этому пути, я хотел бы знать, выполним ли вышеуказанный вопрос.

1 Ответ

0 голосов
/ 26 июля 2011
  1. К сожалению, задача не может завершиться неудачей так, чтобы планировщик повторил ее.
  2. Как вы и подозревали, рекомендуемый способ сделать это состоит в том, чтобы каждая задача запускала пакетный файл или скрипт powershell, который запускает все процессы, которые вы хотите запустить.
  3. Если вы не хотите этого делать, планировщик HPC в пакете обновления 2 (SP2) теперь допускает переподписку на ядро ​​(более одной задачи на ядро), что может быть применимо для решения вашей проблемы. См. Здесь руководство по его настройке: Подсчет количества ядерных подписок на узлах кластера
...