在并行处理中更改$TMPDIR

问题描述 投票:0回答:3

我在高性能计算系统上运行批处理作业来对对齐的读取进行排序,并使用 GNU 并行来加速我的工作,但我的工作失败了,原因如下:

并行:错误:输出不完整。无法追加到缓冲区文件中 $TMPDIR。磁盘已满吗?并行:错误:将 $TMPDIR 更改为 --tmpdir 或使用 --compress。

我的工作脚本如下所示:

module load samtools/1.2

export TMPDIR=/scratch/$SLURM_JOBID

cd /data
ls *sam* | parallel "samtools sort –T /scratch/$SLURM_JOBID/{.} -O bam -o {}.bam {}"

有谁知道如何解决这个问题吗?

hpc gnu-parallel slurm
3个回答
4
投票

我收到相同的消息“parallel: Error: Change $TMPDIR with --tmpdir or use --compress”

我尝试将“--tmpdir /home/mydirectory”添加到脚本中,但是当我看到文件“/home/mydirectory/”没有创建任何内容时,我看到默认目录“/tmp/”和临时文件(如 /tmp/pAh6uWuQCg、/tmp/opjhZCzAX4 等)仍然在该目录中创建。对我来说,这意味着脚本中的参数“--tmpdir /home/mydirectory”不起作用。

在我的例子中,我运行隔离的应用程序的脚本并检查日志,并意识到我的应用程序有错误,因为日志显示错误消息,并且它填充了文件“/tmp/”

也许我的经验会对你有帮助


3
投票

您尝试过 GNU Parallel 的建议吗?

parallel: Error: Change $TMPDIR with --tmpdir or use --compress.

0
投票

如果还有人对答案感兴趣,

export TMPDIR=/scratch/$SLURM_JOBID
应该可以。唯一的问题可能是新的 TMPDIR 也很小,而且磁盘已经满了。尝试不同的目录。这对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.