跨库的 MPI 消息

Posted

技术标签:

【中文标题】跨库的 MPI 消息【英文标题】:MPI messages across libraries 【发布时间】:2017-12-18 19:55:08 【问题描述】:

您可以跨两个库发送 MPI 消息吗?

示例 - 如果我在 Windows 机器上安装了 MS-MPI,然后在 linux 集群(同一网络)上安装了 Open-MPI,我能否在两个不同操作系统上运行的代码之间获取消息。

基本上是多程序多数据 MPMD,但使用 Windows 和 Linux 资源。

只需要知道这是否可行,如果可以,任何信息都会很好,但不需要。

【问题讨论】:

【参考方案1】:

不,这是不可能的。如果您尝试对一个实现的不同版本或配置进行此操作,您甚至会遇到很大的麻烦。

MPI 的目标是在 HPC 系统上进行同构安装。通信协议没有标准化,只有编程接口。

【讨论】:

谢谢。也可以找到将这些中的任何一个链接在一起的任何包。我正在尝试找到一些方法来至少在这些资源之间实现松散耦合。【参考方案2】:

一般:没有。这在 MPI 标准中没有指定,并且大多数实现不支持此类作业。我猜这是一个相当少见的用例。

但是,英特尔 MPI 确实提供跨操作系统启动作业,请参阅:

https://software.intel.com/en-us/mpi-developer-guide-linux-cross-os-launch-mode

一些细节: 英特尔 MPI 以及其他商业 MPI 实施均基于 MPICH 开源项目。不过,我不确定是否可以通过 MPICH 以某种方式实现跨操作系统启动。一项快速的谷歌研究只提供了负面但可能过时的结果,例如

https://lists.mcs.anl.gov/pipermail/mpich2-dev/2005-July/000085.html

【讨论】:

以上是关于跨库的 MPI 消息的主要内容,如果未能解决你的问题,请参考以下文章

MPI 消息可用性通知

boost mpi:字符串变量在 mpi 消息中传递是不是有最大长度?

用于未知消息大小的 MPI 非阻塞发送和接收以及 mpi_iprobe()

MPI消息传递MPI_Sendrecv的用法

MPI并行编程——多进程程序设计

`MPI_ERR_TRUNCATE:消息被截断`错误[关闭]