Я хочу планировать и выполнять задачи параллельно в многоузловом кластере распределенной памяти.
У меня много разных задач, которые зависят от других задач, но я также хочу запускать одни и те же задачи параллельно с разными параметрами.
Например, скажем, у меня есть задача, у которой желаемый оптимальный параметр равен 10, но есть вероятность, что она может не сработать (из-за определенных сложностей в конкретной задаче, которые нельзя знать заранее). Чтобы избежать риска неудачи, я также хочу выполнить ту же задачу со следующим лучшим параметром. Чтобы продолжить хеджирование рисков, я хочу выполнить еще больше задач с уменьшением следующих лучших параметров.
Между задачами существует подразумеваемая иерархия, основанная на оптимальном параметре. Все задачи с меньшим оптимальным параметром можно считать хеджами для лучшего значения.
Мой главный вопрос:
Поскольку я выполняю одни и те же задачи параллельно с разными параметрами, и задачи, основанные на оптимальности параметра, имеют приоритет в том смысле, что, как только любой экземпляр этой задачи завершается успешно, я хочу уничтожить все последующие экземпляры. задачи, которые имеют более низкий приоритет (имеют худшие параметры) и удаляют их из очереди процесса.
Другими словами, я хочу убить процессы хеджирования, когда я знаю, что задача с лучшими параметрами успешно выполнена.
Есть ли Dague разрешить это? т.е. удаление задач из очереди? Если нет, может быть предложен другой планировщик C ++.
Задача ещё не решена.
Других решений пока нет …