使用GNU并行时输出到文件的最快方法

时间:2015-08-20 09:51:21

标签: linux file-io parallel-processing qsub gnu-parallel

我正在使用并行来并行处理某些非常繁重的脚本。在command1 ...等我基本上调用一个R文件。

test1.sh:

parallel ::: 'command1 > output1.txt' 'command2 > output2.txt' ...etc

test2.sh:

parallel ::: 'command7 > output7.txt' 'command8 > output8.txt' ...etc




test10

我使用multiple-nodes.sh运行qsub我正在执行10个文件,以便它们在CPU上的不同节点(和核心)上运行。完成需要几个小时。但是,在multiple-nodes.sh完成执行后,我看不到它出现在qstat中,但我仍然看到正在运行R脚本(command1 ...等)我检查linux中的top进程。

我认为这可能是因为linux(或者它是并行的)只有在脚本执行完成后才会写入文件。但这似乎真的很慢,因为自执行开始已经过去了15个小时,并且该过程已在qsub中完成,但命令仍然在顶级进程中运行,输出文件正在缓慢写入。文件大小每隔几分钟就会增加。

我遇到GNU Parallel的{​​{3}}和 - 文件标记。

基本上我有两个问题:

  1. 来自GNU Parallel的Processing a big file using more cores会比使用qsub在cpu上的不同节点(和核心)中运行进程更好吗?
  2. --files比linux中的>运算符更好(更快)的选项写入输出文件?
  3. 如果提供任何支持代码,那将非常有用。即使它只是其中一个问题的答案。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我可以回答2:速度是一样的。使用--files / - 结果的好处是您不必编写文件名。