Параллельная обработка в кондоре

У меня есть Java-программа, которая будет обрабатывать 800 изображений.

Я решил использовать Condor в качестве платформы для распределенных вычислений, стремясь разделить эти изображения на доступные узлы -> обработать -> объединить результаты обратно ко мне.

Скажем, у меня есть 4 узла. Я хочу разделить обработку на 200 изображений на каждом узле и объединить конечный результат со мной.

Я попытался выполнить его в обычном режиме, представив его как Java-программу и указав требования = Machine == .. (с указанием всех узлов). Но это не похоже на работу.

Как я могу разделить обработку и выполнить ее параллельно?

1 ответ

HTCondor определенно может помочь вам, но вам, возможно, придется немного поработать самостоятельно:-)

На ум приходят два возможных подхода: массивы заданий и приложения DAG.

Массивы заданий: как видно из примера 5 в кратком руководстве HTCondor, вы можете использовать queue Команда подать более 1 задания. Например, queue 800 В нижней части вашего файла заданий будет отправлено 800 заданий в ваш пул HTCondor.

В этом случае люди организуют данные для обработки с использованием соглашения об имени файла и используют это соглашение в файле задания. Например, вы можете переименовать ваши изображения как img_0.jpg, img_1.jpg, ... img_799.jpg (возможно, используя символические ссылки, а не переименовывая фактические файлы), а затем используйте файл задания по следующим строкам:

Executable = /path/to/my/script
Arguments = /path/to/data/dir/img_$(Process)
Queue 800

Когда 800 рабочих мест, $(Process) автоматически присваивается значение соответствующего идентификатора процесса (т. е. целое число от 0 до 799). Это означает, что ваш код подберет правильное изображение для обработки.

DAG: Другой подход - организовать обработку в простой DAG. В этом случае у вас может быть сценарий предварительной обработки (SCRIPT PRE запись в файле DAG) организация входных данных (возможно, создание символических ссылок с соответствующим названием). Реальная работа была бы такой же, как в примере выше.

Другие вопросы по тегам