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