Я не знаю ответа, но вы должны задать этот вопрос в списке рассылки пользователей Condor. Люди, которые поддерживают функциональность DAG в Condor, следят за ней и ответят. См. эту страницу для получения информации о подписке. Это довольно низкий трафик.
Как правило, довольно сложно поддерживать две задачи вместе на одном хосте в Condor без предварительной привязки их к определенному хосту, DAG или без DAG. На самом деле я не могу придумать действительно жизнеспособный способ сделать это, чтобы позволить B начинать раньше C или C начинать раньше B. при запуске изменяет Требования часть ClassAd задания C, чтобы в ней была строка «Machine ==», где указано имя машины, на которую приземлился B. Это также потребует, чтобы задание C было отложено или не было отправлено вообще до тех пор, пока B не будет запущено, B также должен будет освободить его как часть своей работы по запуску.
Это довольно сложно ...
Так что у меня просто возникла мысль: вы можете использовать динамические функции startd / slots Condor и свернуть DAG для достижения того, чего хотите. В вашем DAG, где у вас в настоящее время есть два отдельных узла, B и C, вы бы свернули его в один узел B ', который будет запускать как B, так и C параллельно, когда он запускается на машине. В рамках требований к работе вы отмечаете, что на машине требуется 2 ЦП. Переключите свои startd на использование динамической конфигурации слотов, чтобы машины объявляли все свои ресурсы, а не только статически выделенные слоты. Теперь у вас есть B и C, работающие одновременно на одной машине. Есть некоторые проблемы с динамическими слотами, когда у вас есть несколько многопроцессорных задач в очереди с большим количеством однопроцессорных задач, но это, по крайней мере, более легко решаемая проблема.
Другой вариант - пометить B 'специальным атрибутом задания:
MultiCPUJob = True
И нацелите его только на слот 1 на машинах:
Requirements = Slot == 1 && ...your other requirements...
И иметь статическую политику startd слота, которая гласит: «Если задание с MultiCPUJob = True пытается выполнить на мне слот 1, вытесняйте любое задание, которое оказывается в слоте 2 на этом компьютере, потому что я знаю, что для этого задания потребуется 2 ядра / ЦП. ".
Это неэффективно, но может быть выполнено с любой версией Condor после 6.8.x. На самом деле я использую этот тип настройки в своих собственных статически разделенных фермах, поэтому, если для выполнения задания требуется отдельная машина для тестирования, это может происходить без перенастройки машин.
Если вам интересно узнать больше об этой опции вытеснения, дайте мне знать, и я могу указать вам на дополнительную информацию о конфигурации в архивах списков пользователей condor.
person
Ian C.
schedule
09.03.2010