【问题标题】:Calling MPI from R to run C code从 R 调用 MPI 以运行 C 代码
【发布时间】:2012-05-28 08:08:01
【问题描述】:

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

有没有人有这方面的经验?我猜 R MPI 库对我的目的毫无意义,因为所有工作都在 C 代码的深处完成。这最终将在 HPC 集群上运行,如果这有什么不同吗?

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

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

【问题讨论】:

    标签: c r mpi hpc


    【解决方案1】:

    你似乎很困惑。

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

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

    【讨论】:

    • 也许我是(公平地说,这种情况经常发生)。我想避免使用 Rmpi​​,因为我认为它没有安装在集群上。在我看来,我希望 R 可以串行执行,并生成使用 MPI 的 C 代码。然而,无论如何,这似乎是一种更好的方法(我可能完全错过了我最初的思路)。
    • 我发现必须在每个节点上安装所需的一切部分是最大的障碍。在实践中,它有助于让所有节点通过从 NFS 挂载的公共 /usr/local/ 目录共享 R 包。除此之外,您“只需”处理权限(ssh 帮助)和一般 MPI 配置(主机名)。没什么大不了的,所有的事情都告诉了。
    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 2016-10-09
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2015-04-14
    相关资源
    最近更新 更多