R在进行矢量化计算时是否利用SIMD?

时间:2016-05-13 14:45:40

标签: r vectorization simd

在R中给出这样的数据框:

+---+---+
| X | Y |
+---+---+
| 1 | 2 |
| 2 | 4 |
| 4 | 5 |
+---+---+

如果对此数据帧执行矢量化操作,请执行以下操作:

data$Z <- data$X * data$Y

这会利用处理器的单指令多数据(SIMD)功能来优化性能吗?这似乎是一个完美的案例,但我找不到任何证实我预感的事情。

1 个答案:

答案 0 :(得分:5)

嗯,微软(艺术家,以前称革命 R )的分布鲜有 R ,可以找到here

它带有英特尔MKL库,它也使用多线程和矢量操作(你必须运行英特尔CPU),它确实有助于矩阵,如SVD等等

除非您愿意使用Rcpp或类似接口编写带有SIMD内在函数的C / C ++代码,否则Microsoft R 是您使用SIMD的最佳选择

下载并试用