Выходные файлы 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
Этот документ, в общем, очень полезен для начинающих.