2015-05-12 2 views
0

Я использую кондор на вычислительном кластере в университете для управления большим количеством рабочих мест. Моя программа читается в двух больших (~ 1Gb) входных файлах и создает небольшой (~ 100kb) выходной файл. Все мои входные файлы расположены на том же сетевом диске, который читается со всех кондорных узлов (у нас около 150). Я заметил, что после того, как я отправляю большое количество заданий, они начинают работать намного медленнее, и я подозреваю, что это связано с задержкой ввода-вывода, поскольку голова диска должна перемещаться намного больше, чтобы одновременно считывать много файлов. Я хотел бы оптимизировать это, скопировав файлы в узлы перед запуском задания. Точнее, я хотел бы иметь только один файл, скопированный за раз, так что диск читается более последовательно. Я попытался использоватьСделать следующее задание кондора до тех пор, пока предыдущее не закончит копирование файлов ввода

should_transfer_files = YES 
when_to_transfer_output = ON_EXIT 
transfer_input_files = file1, file2 

ответ

0

Если вы хотите, чтобы работа B ожидала завершения работы A, вам необходимо связать их. Это может быть осуществлено с помощью групп DAG (см Дагман)

JOB FIRST a.submit 
JOB SECOND b.submit 
PARENT FIRST CHILD SECOND 

В приведенном выше примере ле задания определяется b.submit будет выполняться только тогда, когда работа закончена a.submit OK.