运行相同脚本的两台不同机器之间的R性能差异

时间:2012-10-01 20:40:53

标签: r

我在unix(它的集群)和windows(intel core duo,2Gb RAM)上运行相同的代码。我可以看到运行时间有显着差异。我可以在unix中看到,它只使用一个核心,但在Windows上,它可能使用两个核心(我不确定)。我关注的是:

Windows:
   user  system elapsed
207.12 8.82  472.04
Unix
 user  system elapsed
327.765 2.493 330.819

我不明白,为什么cpu处理时间和窗口的运行时间差别太大。我将代码分成几段,这只发生在读写部分(I / O)上,其余的计算与unix相比非常快,并且在“用户”和“已用时间”没有任何区别

user  system elapsed
48.765 0.00 52.69

我没有做任何特别的事情,但我正在阅读非常大的文件300mb

indata <- read.csv(mutFile, sep="\t", header = TRUE)

如何避免这种差异以提高整体表现?

2 个答案:

答案 0 :(得分:2)

300 MB远非“非常大”。您可以按照read.csv中的建议,特别是“内存使用”一节,提高?read.csv的速度。这应该会使两个系统的运行时间缩短。

至于系统之间的区别,我怀疑Unix机箱有更快的硬盘和/或更快的内存。

答案 1 :(得分:0)

为了在读取数据集时获得高性能,我建议购买固态硬盘(SSD)。但是,您的其他硬件(主要是您的SATA控制器)可能是瓶颈。此外,就Gb /单位资金而言,SSD并不便宜。一般来说,性能上的差异可以通过硬件的差异来解释(“正常”硬盘与笔记本电脑硬盘相比)。解决方案是花钱购买更快的机器。或者,就像@JoshuaUlrich所说,花一些时间优化文本文件的读取,以便通过当前的硬件获得良好的性能提升。