【问题标题】:how to run a MPI in DLL(dynamic link library)如何在 DLL(动态链接库)中运行 MPI
【发布时间】:2018-01-24 00:51:08
【问题描述】:

我有一个编译和运行良好的 MPI 代码。我想将代码包装到 DLL 并使用 LabVIEW 软件来调用 DLL。但我不知道如何在 DLL 中运行 MPI。你能给我一些建议或替代方法吗?谢谢!

【问题讨论】:

  • MPI 作业通常使用mpirun 命令启动,这将反过来远程执行一些代理,这些代理最终将分叉并执行MPI 任务。您是否尝试将 mpirun 包装到 DLL 中?还是 LabVIEW 已经是一个 MPI 应用程序,应该以某种方式在 DLL 中运行您的 MPI 代码?
  • 我只想将我编写的 MPI 包装到一个 DLL 中并使用 LabVIEW 来调用它。就像您说的那样,MPI 必须以“mpirun”或其他命令开头。所以当我通过VS软件将MPI代码包装到DLL中时,我无法用命令启动并行代码。而LabVIEW只是一个商业软件。它可以调用 DLL 嵌入到他的代码中。但LabVIEW不支持并行处理。为了提高我的代码的计算速度,我想利用 MPI 来实现。谢谢!

标签: c++ dll mpi


【解决方案1】:

这里有几个选项

  • 制作一个 DLL 来 fork 和执行 mpirun 命令
  • 创建一个 DLL,用于MPI_Comm_spawn() 更多任务,进行并行计算,然后将结果提供给 LabVIEW
  • 使用客户端/服务器架构:DLL 向第三方服务器发出请求,该服务器mpirun 计算作业并将结果发送回 DLL
  • 如果您只在一个节点上运行,请考虑使用其他并行范例(例如 OpenMP)而不是 MPI,这样包装到 DLL 中会很简单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2015-08-24
    • 2011-01-24
    • 1970-01-01
    相关资源
    最近更新 更多