从 R 调用 MPI 以运行 C 代码

标签 c r mpi hpc

我有一个 R 函数,它本质上充当一组 C 函数的包装器 - R 代码通过 .C("...") 调用 C 代码。 这个 C 代码可以使用一些 MPI 实现进行并行化和编译。但是,由于以前从未使用过 MPI,我不知道这样的 MPI 代码是否可以从 R 中以一种让 MPI 工作的方式调用?

有没有人有过这种事情的经验?我猜 R MPI 库对我的目的毫无意义,因为所有工作都在 C 代码的深处完成。这最终将在 HPC 集群上运行,这是否有任何不同?

您可以使用 mpicc 创建一个共享对象吗?如果从 R 调用这样的共享对象,并行实现会运行,还是您只获取串行版本(或者实际上,正如我怀疑的那样,它会崩溃吗) ?

我可能缺少理解问题所需的信息,因此会进行相应更新。

最佳答案

你看起来很困惑。

您可以只使用现有的 Rmpi包来并行执行多个 R 实例(在您的不同节点上),并且每个实例都可以使用您的 .C() 调用的代码。

也许您想通过一些简单的示例来更好地了解可以做什么或不能做什么?

关于从 R 调用 MPI 以运行 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691779/

相关文章:

r - 通过过滤加速 data.table 笛卡尔积

c++ - MPI收集字符串数组

c - C 中未定义的 struct timeval 声明

c++ - 是否存在 difftime 计算闰秒的实际系统?

C 代码仅在 ^Z 之后打印

r - 根据 R 中的交叉验证(训练)数据绘制 ROC 曲线

c++ - MPI 发送/接收错误

c - 未打印正确的字符数组 C

c++ - DWMEnableBlurBehind 使我的界面控件半透明

r - plot3d - 如何更改框颜色并删除轴刻度