Задача HPC либо завершается успешно, либо не выполняется, но как мне сообщить «попробуйте позже» обратно в планировщик, конечно, я могу использовать сбой и повторно отправить задачу, но мне нужен способ определить, произошел ли сбой из-за неисправности ( сдаться) или попробуйте еще раз в ближайшее время, потому что эта задача ожидает выполнения другой задачи (и продолжайте попытки до тех пор, пока мы либо не ошибемся, либо успешно завершим)
Есть ли способ добиться этого с помощью HPC API или аналогичного? Из того, что я слышал, что ненулевое значение - это неудача, а нулевое - это успех, вот и все, безусловно, должен быть хороший способ добиться такого поведения «попробуй позже».
Фон
Мы пытаемся запустить несколько задач HPC в одном задании, которые имеют сложные взаимозависимости между ними, поскольку в качестве первого задания выполняются другие задания, которые сидят и ждут, пока первое задание не обработает достаточно данных, чтобы они могли сделать начало (вроде каскадного выполнения, но не в каком-то простом порядке, поэтому мы не можем определить зависимости в HPC).
Первоначально я пытался распределить эти несколько задач по нескольким ядрам таким образом, чтобы они могли спать, ожидая, пока основная задача завершит интересующую их задачу. Подобно тому, как Windows будет выполнять процессы с разделением времени. Теперь ясно, что HPC (по замыслу!) Допускает одну задачу на ядро , поэтому, если у вас восьмиядерный компьютер, вы можете запускать только восемь задач одновременно.
Решение, по-видимому, заключается в использовании командного файла или аналогичного для порождения нескольких процессов, однако прежде чем я пойду по этому пути, я хотел бы знать, выполним ли вышеуказанный вопрос.