首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用snakemake为群集作业移动元数据存储

使用snakemake为群集作业移动元数据存储
EN

Stack Overflow用户
提问于 2020-05-20 21:28:45
回答 1查看 78关注 0票数 1

我使用snakemake将作业从AFS文件系统提交到HTCondor队列。提交一开始就很好。作业提交并成功完成。但在某个时间点之后,提交会崩溃,并显示以下错误:

代码语言:javascript
复制
OSError: [Errno 27] File too large: '/afs/cern.ch/work/a/avenkate/private/MyKstTauTau/.snakemake/metadata/cm9vdDovL2Vvc2xoY2IuY2Vybi5jaC8vZW9zL2xoY2IvdXNlci9hL2F2ZW5rYXRlL0tzdFRhdVRhdS9Cc0JrZ01DL1ByZXNlbC8yMDE2X01VLzIwMjBfMDQvMzY1OTMyLzM2NTkzMjE4Ny9udHVwbGVfVE0ucm9vdA=='

当我查看这个错误时,我从https://sites.google.com/a/stanford.edu/rcpedia/how-do-i/why-do-i-keep-getting-errno-27-file-too-large了解到它与AFS有关,而不是snakemake。这似乎是对AFS中目录中文件数量的限制(错误消息本身是误导性的。元数据文件的文件大小以字节为单位。但是文件名很长)。

我在命令行选项中看到,我们可以指定--shadow-prefix来告诉snakemake存储卷影目录的位置。元数据是否有类似的功能?

我将非常感谢您对此的任何意见。我的提交命令是

代码语言:javascript
复制
snakemake     --cluster 'condor_qsub -V -l procs={threads}' --forceall    --latency-wait 30     --rerun-incomplete     --max-jobs-per-second 100     --printshellcmds     --restart-times 0     --local-cores 8     --keep-going     -j 100     -s Snakefile_Data   --shadow-prefix $TMPDIR/MyKstTauTau.snakemake```
EN

回答 1

Stack Overflow用户

发布于 2020-05-23 04:16:46

我从未使用过AFS,但它的工作原理似乎与slurm相似。我猜这些元数据文件就是作业的stdout和stderr。您应该能够根据此man page使用-o和-e重定向存储标准输出和标准错误的位置。

所以像这样的代码应该会让snakemake (实际上是AFS)不会生成任何这些文件:

代码语言:javascript
复制
snakemake ... --cluster "condor_qsub -o /dev/null -e /dev/null ..."

编辑:

所以元数据是,而不是来自condor的stdout和stderr,我的错。我真的想不出一个“真正的”解决方案,但这里有两个你可以尝试的选项:

  1. 只需使用snakemake --cleanup-metadata清理元数据即可。如果你幸运的话,有很多以前运行的东西可以删除并解决这个问题!
  2. 使用更少的并行作业。尽管100个不是很多,但对于每个作业,都会跟踪一些元数据。因此,运行更少的作业将意味着更少的元数据文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61914313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档