R Script在vmware上运行速度非常慢

时间:2018-01-22 23:04:12

标签: r vmware

我们有一个测试R脚本在PC笔记本电脑上运行大约15秒,在9岁的Mac上运行相同。在运行Windows 2012 R2的多个vmware服务器上,完全相同的测试需要1到15秒到2分钟,具体取决于服务器。因此,为了尽可能多地删除变量,我们创建了一个具有Windows 2012 R2,16GB RAM,8个内核的VM,除了R(没有SQL等)之外没有任何其他内容,并且脚本需要1分40秒才能运行。

我们在每台机器上进行了精确测试。测试脚本从桌面读取CSV文件,然后执行蒙特卡罗模拟,然后将CSV写入桌面。没有网络读/写等。一切都包含在机器上。

有没有人见过这个?我们站起来的VM没有任何东西,但R应该尖叫,它有8个核心,笔记本电脑只有2个,VM有16 GB RAM而笔记本电脑只有8 GB

思想?

更新此示例代码在我的笔记本电脑上运行大约需要14秒(2个内核,12 GB内存),在具有8个内核和16 GB内存的VMWare服务器上运行1分3秒(慢4倍)否则在服务器上运行

注意我不是在问如何优化代码,而是在VM上运行速度慢的原因

# parameters
simulations <- 50000 # number of simulations
perimeter <- 1

# randomly generate a point and check if it is in circle
f_point_in_circle <- function(perimeter=1){
  x <- runif(n=1, min=-perimeter, max=perimeter)
  y <- runif(n=1, min=-perimeter, max=perimeter)
  return(list(x=x, 
              y=y,
              in_circle=x^2 + y^2 <= perimeter^2))
}

# Monte Carlo simulations
set.seed(123)
pi_df <- data.frame(x=rep(NA, simulations),
                    y=rep(NA, simulations),
                    in_circle=rep(NA, simulations))
for (i in seq(simulations)){
  my_simulation <- f_point_in_circle()
  pi_df$in_circle[i] <- my_simulation$in_circle
  pi_df$x[i] <- my_simulation$x
  pi_df$y[i] <- my_simulation$y
}

my_pi <- 4 * sum(pi_df$in_circle) / nrow(pi_df)

(来自https://blog.alookanalytics.com/2017/04/26/monte-carlo-method-in-r/的代码)

更新

我们在Hyper V VM上运行了精确的原始测试,它的运行速度与物理机一样快。所以它似乎与VMWare ?????

有关

0 个答案:

没有答案
相关问题