繁体   English   中英

HTCondor 输出文件:获取创建的目录

[英]HTCondor output files: obtain created directory

我正在使用 HTcondor 生成一些数据(txt、png)。 通过运行我的程序,它会在 .sub 文件旁边创建一个名为 datasets 的目录,其中存储了数据集。 不幸的是,神鹰完成后并没有将这些创建的数据还给我。 换句话说,我的目标是在 .sub 文件旁边的“Datasets”子文件夹中获取创建的数据。

我尝试过:1)不要将数据放在 datasets 子文件夹下,我按照想法获得了它们。 然而,这不是一个顺利的解决方案,因为我生成了 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 文件中,但由于我必须运行数百个作业,因此我不想在之后解压缩所有这些文件。

我希望有人想出一个关于如何解决这个问题的好主意。

仅供参考: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

总的来说,这份文件对初学者来说非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM