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

Я использую HTcondor для генерации некоторых данных (txt, png). Запустив мою программу, она создает каталог рядом с файлом .sub с именем наборы данных, в котором хранятся наборы данных. К сожалению, condor не возвращает мне эти созданные данные после завершения. Другими словами, моя цель — получить созданные данные в подпапке «Наборы данных» рядом с файлом .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) Еще вариант - запаковать все в зип, но так как приходится запускать сотни заданий, распаковывать потом все эти файлы не хочется.

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


person mrks    schedule 23.02.2017    source источник
comment
Имя папки — наборы данных или наборы данных?   -  person Carlochess    schedule 21.05.2017
comment
Разве вам не нужен слэш после имени папки?   -  person gota    schedule 22.02.2018


Ответы (1)


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

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

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

executable    = run.exe

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

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

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

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

также, осмотритесь стр. 65 из: https://indico.cern.ch/event/611296/contributions/2604376/attachments/1471164/2276521/TannenbaumT_UserTutorial.pdf

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

person talismanbrandi    schedule 06.03.2019