RAM使用率增加-Ubuntu中的R

时间:2019-04-07 01:37:33

标签: r ram

我当前正在运行代码。我的CPU是100%,但我的RAM只有20%。有人告诉我,拥有更多的RAM可以加快处理速度。但是如何使系统使用更多的RAM?

1 个答案:

答案 0 :(得分:1)

正如评论中指出的那样,RAM的最佳数量和计算能力取决于您要解决的问题。

作为一个例子,让我们考虑迭代式减脂(燕麦CPU)和矩阵运算(加载RAM)。作为参考,当我的R会话不运行时,其消耗CPU:〜0%,RAM:〜54 Mb(Sony Yoga 260,Windows 10,但是相同的原则适用于Ubuntu): enter image description here

然后,我们生成一千万个正态分布的随机数(使用while循环一对一):

i <- 0
while(i < 1e7) {
  rnorm(1) 
  i <- i + 1
}

它消耗适度的RAM,但是将处理器加载到满负荷(我的CPU是多核,因此没有100%,但是〜30%)。 enter image description here

如果您运行一些内存要求很高的算法(例如大型矩阵乘法),那么内存量至关重要,就好像您没有足够的RAM时您需要访问HDD一样,它的速度要慢一些。参见下面的笛卡尔积示例-向量元素的所有组合-具有10000个元素的两个向量:

z <- expand.grid(seq(1e4), seq(1e4))

cross product

要更有效地使用CPU和RAM,您需要:

1)使用向量化的计算(将for循环更改为apply-family函数,并从标量迁移到向量)。 R在向量\矩阵处理中非常有效。

2)使用parallel computations来利用您所有的处理器内核。