【发布时间】:2015-08-20 09:51:21
【问题描述】:
我正在使用并行来并行处理某些非常繁重的脚本。在command1...等中,我基本上是在调用一个 R 文件。
test1.sh:
parallel ::: 'command1 > output1.txt' 'command2 > output2.txt' ...etc
test2.sh:
parallel ::: 'command7 > output7.txt' 'command8 > output8.txt' ...etc
.
.
.
test10
我正在使用 qsub 运行 multiple-nodes.sh,我正在执行这 10 个文件,以便它们在 CPU 上的不同节点(和内核)上运行。需要几个小时才能完成。但是,在multiple-nodes.sh 完成执行后,我没有看到它出现在qstat 中,但是当我检查Linux 中的top 进程时,我仍然看到R 脚本正在运行(command1...等) .
我认为这可能是因为 linux(或者它是并行的)仅在脚本执行完成后才写入文件。但这似乎真的很慢,因为从执行开始到现在已经 15 个小时了,并且进程已经在 qsub 中完成,但是命令仍在顶级进程中运行,并且输出文件正在缓慢写入。文件大小每隔几分钟就会增加一次。
我遇到了Processing a big file using more cores 和GNU Parallel 的--files 标签。
所以基本上我有两个问题:
- 来自 GNU Parallel 的 Processing a big file using more cores 会比使用
qsub在 cpu 上的不同节点(和内核)中运行进程更好吗? -
--files会比 Linux 中的>运算符更好(更快)写入输出文件吗?
如果提供任何支持代码将非常有帮助。即使它只是对其中一个问题的回答。提前致谢。
【问题讨论】:
标签: linux file-io parallel-processing qsub gnu-parallel