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