我正在R中运行一些资源密集型计算。我用于循环、引导程序模拟等。我已经将英特尔®;数学内核库Linux*版与R集成在一起,这似乎大大缩短了计算时间。我现在正在考虑集成英特尔®;并行工作室XE 2013 Linux*版和R版。这意味着将随附的不同编译器传递给R:
(1) 英特尔®;并行工作室XE 2013 Linux*版和R版的集成会显著提高性能吗?
(2) 你能举几个例子吗?在哪些情况下我会受益?
谢谢!
非常粗略的数量级:
-
并行/多核BLAS,如MKL,将在核数上按次线性扩展,但仅适用于实际BLAS调用的操作部分,即不适用于基本的"for loops,bootstrap simulation等"
-
字节编译你的R代码可能会给你两倍,也许三倍的
-
之后,你可能需要更重的武器,例如Rcpp,它可以在涉及"for loops,bootstrap simulation等等"的代码上提供50、70、90倍的加速,这就是为什么它在MCMC人群中如此受欢迎的原因
-
同样,英特尔TBB和其他并行技巧也需要重写代码。
没有免费的午餐。