我使用snakemake将作业从AFS文件系统提交到HTCondor队列。提交一开始就很好。作业提交并成功完成。但在某个时间点之后,提交会崩溃,并显示以下错误:
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存储卷影目录的位置。元数据是否有类似的功能?
我将非常感谢您对此的任何意见。我的提交命令是
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```发布于 2020-05-23 04:16:46
我从未使用过AFS,但它的工作原理似乎与slurm相似。我猜这些元数据文件就是作业的stdout和stderr。您应该能够根据此man page使用-o和-e重定向存储标准输出和标准错误的位置。
所以像这样的代码应该会让snakemake (实际上是AFS)不会生成任何这些文件:
snakemake ... --cluster "condor_qsub -o /dev/null -e /dev/null ..."编辑:
所以元数据是,而不是来自condor的stdout和stderr,我的错。我真的想不出一个“真正的”解决方案,但这里有两个你可以尝试的选项:
snakemake --cleanup-metadata清理元数据即可。如果你幸运的话,有很多以前运行的东西可以删除并解决这个问题!https://stackoverflow.com/questions/61914313
复制相似问题