Как заставить кондора отправить задание на все узлы в кластере?

У меня есть кластер кондора с несколькими активными узлами.

Но когда я отправляю задание, оно выполняется только на одном узле (то есть на главном узле). Я знаю, что Кондор автоматически распределяет задания в зависимости от доступных ресурсов.

Но что, если я хочу заставить кондор использовать все узлы? Просто ради оценки времени процесса при работе на нескольких узлах по сравнению с одним узлом?

Я попытался добавить требования = Machine == "hostname1" && Machine == "hostname2" в файл отправки, но не работает.


person mfmz    schedule 25.05.2014    source источник


Ответы (3)


В зависимости от того, что вы пытаетесь сделать, вы можете использовать параллельную вселенную, как описано здесь: http://research.cs.wisc.edu/htcondor/manual/current/2_9Parallel_Applications.html

При работе с параллельным юниверсом вы указываете количество компьютеров с помощью machine_count, и вам нужно поставить в очередь только одну задачу.

person Louis Marascio    schedule 25.12.2014

Боюсь, я не совсем понимаю, о чем вы спрашиваете. Посмотрим, смогу ли я как-то помочь. Я вижу несколько сценариев:

  1. Condor планирует выполнение ваших заданий только на главном узле, независимо от того, сколько компьютеров доступно.
  2. Condor планирует задания на всех доступных машинах. Однако то, что вы пытаетесь сделать, это получить конкретную работу, чтобы использовать более одной машины.

В случае 1. что-то подозрительное происходит либо с вашим файлом отправки, либо с настройкой вашего пула. Я предполагаю, что condor_status возвращает более одной машины и что настройка вашего пула в порядке. Типичная ошибка в этом случае следующая: если вы не укажете Requirement для своей работы, Condor вставит ее за вас. По умолчанию Condor запрашивает выполнение задания на машине с той же ОС и архитектурой, что и узел отправки. Этот несколько раз укусил меня за разнородные пулы ;-)

В случае 2 вам нужно убедиться, что ваш исполняемый файл может использовать несколько машин (например, посредством MPI) и вам нужно сообщить об этом Кондору. Один из способов сделать это — использовать вселенную Parallel. Другой способ — использовать классическую архитектуру главный/рабочий, в которой рабочие процессы являются постоянными заданиями Condor.

person fpierfed    schedule 02.09.2015

Кондор ограничен таким образом, что может выполнять только (system()) команду. Если ваша программа не создает много подзадач, вы не заметите увеличения скорости.

Пожалуйста, разместите краткий фрагмент описания вашей работы (файл).

person Markus    schedule 08.07.2014