2012-08-15 67 views
0

我需要排序一个真正巨大的文件几百个Gb。幸运的是,我可以访问Linux MPI集群。有人知道一个好的但最重要的工作排序程序,它可以使用MPI在分布式环境中运行。 其实我想在该文件中计算独特的行,所以如果有人知道一个程序,甚至更好。否则,我可以在以后自己弄清楚怎么做。MPI排序实施

+0

有多少行?您是否可以通过用短哈希替换行来显着减小文件的大小? – 2012-08-16 04:47:38

+1

1,909,914,436行 – 2012-08-16 11:53:26

+0

更准确地说,文件大小是21Gb。我担心的是,即使我最终决定编写类似合并排序的代码,我也不得不担心RAM的可用性,这会使整个程序变得更加复杂。 – 2012-08-16 16:57:02

回答

1

因为没有提供任何答案,我虽然我只是分享我的结果。

我下载了nsort程序从ordinal.com(2004年获奖者sortbenchmark.org年度排序算法竞赛)。虽然不是以集群的方式,它排序非常快。我不记得它是什么了,但我使用nsort获得了巨大的时间改进。我谈论的速度比默认的linux排序快几十倍(大概在50左右)。

还有两件事要注意。

  • 它限于非商业分布的文本文件排序。
  • 它与linux排序实用程序具有完全相同的界面。