Выходные файлы HTCondor: получить созданный каталог

Я использую HTcondor для генерации некоторых данных (txt, png). Запустив мою программу, она создает каталог рядом с файлом.sub с именем наборы данных, в котором хранятся наборы данных. К сожалению, Кондор не возвращает мне эти созданные данные, когда закончил. Другими словами, моя цель - получить созданные данные в подпапке "Наборы данных" рядом с файлом.sub.

Я попытался: 1) не помещать данные в подпапку наборов данных, и я получил их, как и думал. Однако это не является гладким решением, поскольку я генерирую около 100 файлов, которые теперь смешаны с файлом.sub и всеми остальными.

2) Также я попытался установить это в подфайл, что привело к этому:

notification = Always
should_transfer_files = YES
RunAsOwner = True
When_To_Transfer_Output = ON_EXIT_OR_EVICT
getenv = True

transfer_input_files = main.py
transfer_output_files = Datasets

universe      = vanilla
log           = log/test-$(Cluster).log
error         = log/test-$(Cluster)-$(Process).err
output        = log/test-$(Cluster)-$(Process).log
executable    = Simulation.bat

queue

На этот раз я получаю ошибку, что наборы данных не найдены. Правописание уже проверено.

3) Другой вариант - упаковать все в zip-архив, но, поскольку мне нужно выполнить сотни заданий, я не хочу распаковывать все эти файлы впоследствии.

Я надеюсь, что кто-то придумает хорошую идею, как решить эту проблему.

0 ответов

Просто для записи: HTCondor не передает созданные каталоги в конце прогона или его содержимое. Лучший способ вернуть содержимое - написать скрипт-обертку, который запустит ваш исполняемый файл, а затем сожмет созданный каталог в корне рабочего каталога. Этот файл будет передан со всеми другими файлами. Например, создайте run.exe:

./Simulation.bat
tar zcf Datasets.tar.gz Datasets

и в вашем сценарии представления кондора положить:

executable    = run.exe

Однако, если вы не хотите этого делать, и если HTCondor использует общее общее пространство, такое как AFS, вы можете просто скопировать весь каталог:

./Simulation.bat
cp -r Datasets <AFS location>

Другой альтернативой является определение initialdir, как описано в конце: https://research.cs.wisc.edu/htcondor/manual/quickstart.html

Но нужно создать структуру каталогов вручную.

Кроме того, посмотрите вокруг pg. 65 из: https://indico.cern.ch/event/611296/contributions/2604376/attachments/1471164/2276521/TannenbaumT_UserTutorial.pdf

Этот документ, в общем, очень полезен для начинающих.

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