【问题标题】:R Parallel Processing with Xeon Phi, minimal code changes?R 并行处理与 Xeon Phi,最小的代码更改?
【发布时间】:2016-02-25 18:12:18
【问题描述】:

打算购买几台 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 来获得 foreach 在 Phi 上的好处吗?

似乎其中一些将在编译 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

【问题讨论】:

  • 你有关于 Zachary 的最新进展吗?我已经在带有 Xeon Phi 协处理器(R 已正确安装)的集群上分配了项目时间,但我正在努力弄清楚如何继续。我也一直在使用forecastforeach 来循环数千个时间序列,并为一系列方法执行滚动原点预测。我不确定是使用原生模式还是卸载,内部循环中的单个计算并不是特别繁重,所以我不知道我是否可以正确并行化 200 多个线程:R 可以在每个线程中运行吗?
  • 嗨,马特。没有解决方案,获取硬件的内部延迟。我确实尝试联系foreach 的作者之一 Rich Calaway,他没有尝试过,但通过适当地设置 MKL 环境变量,让 blas 和 lapack 自动卸载,传达了另一个人的想法。在本机模式下,我想知道将所有信息传输到 Phi 的开销以及如果它们是特别大的数据集可能的内存限制。如果有机会,请告诉我事情的进展情况。
  • 在这里挣扎@Zachary 这不是我的盒子,所以系统管理员已经安装了 R(按照 Intel 的指示),但是在编译过程中将 forecast 包安装到带有 install.packages 的本地库失败。我很想在带有 RRO 的 AWS 盒子上尝试一下!让我知道你的进展情况。

标签: r foreach parallel-processing xeon-phi


【解决方案1】:

如果您只需要矩阵运算,您可以在此处使用 MKL 库对其进行编译:[在支持英特尔® 至强融核™ 协处理器的情况下运行 R][1],这需要英特尔编译器。 Microsoft R 预编译了 MKL,但我无法使用自动卸载,我必须使用英特尔编译器编译 R 才能正常工作。

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

如果你想通过设置集群来使用foreach包之类的东西,因为每个节点都是一台linux计算机,恐怕你不走运。在 [R-Admin][1] 的第 3 页上说

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

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

最后一种利用 Phi 的方法是重写代码以直接调用它。 Rcpp 为 C 和 C++ 例程提供了一个简单的接口。如果您发现在 xeon 上运行良好的 C 例程,您可以调用代码中的节点。我已经用 CUDA 做到了这一点,并且 Rcpp 是一个薄层,并且有很好的例子来说明如何使用它,如果你将它与调用 phi 卡节点的例子结合起来,你可能可以用更少的开销实现你的目标。

但是,如果您只需要矩阵运算,那么没有比一个好的双精度 nvidea 卡和在 R 启动期间预加载 nvBlas 更快的超级计算途径了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多