如何加速拉丁超立方体(LHS)设计的生成

时间:2017-03-24 16:38:59

标签: r matlab performance

我正在尝试在R中生成一个优化的LHS(拉丁超立方采样)设计,样本大小为N = 400和d = 7个变量,但这需要永远。我的电脑是HP Z820工作站,有12个核心,32 Mb RAM,Windows 7 64位,我正在运行Microsoft R Open,它是R的多核版本。代码已运行半小时,但我仍然不喜欢看不到任何结果:

library(lhs)
lhs_design <- optimumLHS(n = 400, k = 7, verbose = TRUE)

看起来有点奇怪。有什么办法可以加快速度吗?我听说并行计算可能有助于R,但我不知道如何使用它,我不知道它是否只加速我自己编写的代码,或者它是否可以加速现有的包函数,如{ {1}}。我不一定必须使用optimumLHS包 - 我唯一的要求是我想生成一个LHS设计,该设计在S-最优性标准,最大值度量或其他类似的最优性标准方面进行了优化(因此,不仅仅是一个香草LHS)。如果情况变得更糟,我甚至可以在与R不同的环境中接受解决方案,但它必须是MATLAB或开源环境。

1 个答案:

答案 0 :(得分:1)

只需要一点代码来检查效果。

library(lhs)
library(ggplot2)
performance<-c()

for(i in 1:100){

   ptm<-proc.time()
   invisible(optimumLHS(n = i, k = 7, verbose = FALSE))
   time<-print(proc.time()-ptm)[[3]]

   performance<-rbind(performance,data.frame(time=time, n=i))
  }

ggplot(performance,aes(x=n,y=time))+
  geom_point()

Performance

看起来不太好。在我看来,你可能会在很长一段时间内等待。基于该算法,我认为没有办法通过并行处理加快速度,因为要优化采样点之间的分离,您需要知道所有采样点的位置。我认为,加快这一过程的唯一选择是采用较小的样本或获取(访问)更快的计算机。令我感到震惊的是,由于这只是必须要做的一次,是否有资源可以让您获得已经计算出的正确采样和优化分布?

final computation time

所以看起来我的机器大约需要650小时才能与你的机器相媲美,计算n = 400。