在R中给出这样的数据框:
+---+---+
| X | Y |
+---+---+
| 1 | 2 |
| 2 | 4 |
| 4 | 5 |
+---+---+
如果对此数据帧执行矢量化操作,请执行以下操作:
data$Z <- data$X * data$Y
这会利用处理器的单指令多数据(SIMD)功能来优化性能吗?这似乎是一个完美的案例,但我找不到任何证实我预感的事情。
答案 0 :(得分:5)
嗯,微软(艺术家,以前称革命 R )的分布鲜有 R ,可以找到here
它带有英特尔MKL库,它也使用多线程和矢量操作(你必须运行英特尔CPU),它确实有助于矩阵,如SVD等等
除非您愿意使用Rcpp或类似接口编写带有SIMD内在函数的C / C ++代码,否则Microsoft R 是您使用SIMD的最佳选择
下载并试用