首页 文章

使用Xeon Phi进行R并行处理,最少的代码更改?

提问于
浏览
5

看着购买一对Xeon Phi 5110P,但试图估计我需要改变多少代码或其他需要的软件 .

目前我通过使用 foreach 包在多核Windows机器(24核)上充分利用了 R ,并将其他包 forecastglmnet 等传递给我进行并行处理 .

有一个Xeon Phi,我理解我想编译 R https://software.intel.com/en-us/articles/running-r-with-support-for-intel-xeon-phi-coprocessors我明白这可以用一个版本的Parallel Studio XE来完成 .

那么我是否需要编辑R的Makeconf文件,添加C / C标志和Phi?在Parallel Studio上的跟踪到期之前编译所有需要的包?或者我是否不需要编辑Makeconf以获得Phi上 foreach 的好处?

看起来像其中一些将在编译R后自动处理,由数学内核库(MKL)完成卸载,但我不完全确定这一点 .

有点相关的问题:Is the Intel Xeon Phi usable without a costly Intel Compiler?

另外,revolutionanalytics.com似乎有一些相关的博客文章,但对我来说并不完全是决定性的:http://blog.revolutionanalytics.com/2015/05/behold-the-power-of-parallel.html

1 回答

  • 0

    如果您只需要矩阵运算,则可以使用MKL库进行编译:[运行R支持英特尔®至强融核™协处理器] [1],这需要英特尔编译器 . Microsoft R预先编译了MKL但我无法使用自动卸载,我不得不使用英特尔编译器编译R以使其正常工作 .

    您可以使用试用版编译器并在试用期间对其进行编译,以确定它是否符合您的目的 .

    如果你想通过设置一个集群来使用 foreach package之类的东西,因为每个节点都是linux计算机,所以我很幸运 . 在[R-Admin] [1]的第3页上说

    交叉构建是不可能的:安装R构建R的最小版本,然后运行许多R脚本来完成构建 .

    你必须使用intel编译器从xeon主机交叉编译xeon phi节点,这是不可行的 .

    使用Phi的最后一种方法是重写代码以直接调用它 . Rcpp为C和C例程提供了一个简单的接口 . 如果您发现在Xeon上运行良好的C例程,则可以调用代码中的节点 . 我用CUDA完成了这个,Rcpp是一个很薄的层,并且有很好的例子如何使用它,如果你加入调用phi卡节点的例子,你可以用更少的开销实现你的目标 .

    BUt,如果您只需要矩阵操作,那么在R启动期间没有比一个好的双精度nvidea卡和预加载nvBlas更快的超级计算路由 .

相关问题