C++ 具有InfiniBand的windows Azure A8节点支持如何从一个节点发送N字节并在另一个节点上接收?

C++ 具有InfiniBand的windows Azure A8节点支持如何从一个节点发送N字节并在另一个节点上接收?,c++,azure,hpc,infiniband,azure-virtual-network,C++,Azure,Hpc,Infiniband,Azure Virtual Network,我喜欢InfiniBand承诺的40Gbit/s网络。我的需求不会映射到具有一个核心节点+从节点的MPI模型上,如果可能的话,我宁愿根本不使用MPI。我需要简单的connect/send/receive/close(或其异步版本)API。然而,无论是阅读微软Azure文档还是在文档中,我都找不到任何C/C++或.Net的API,它们允许使用InfiniBand作为我的应用程序的传输。所以我的问题很简单,如何使用InfiniBand连接到其他节点,向它们发送数据包并在另一端接收?(类似于某些套接字

我喜欢InfiniBand承诺的40Gbit/s网络。我的需求不会映射到具有一个核心节点+从节点的MPI模型上,如果可能的话,我宁愿根本不使用MPI。我需要简单的connect/send/receive/close(或其异步版本)API。然而,无论是阅读微软Azure文档还是在文档中,我都找不到任何C/C++或.Net的API,它们允许使用InfiniBand作为我的应用程序的传输。所以我的问题很简单,如何使用InfiniBand连接到其他节点,向它们发送数据包并在另一端接收?(类似于某些套接字API或类似的东西)


我正在寻找Azure或Azure connect/send/receive/close教程上的ND-SPI。

我同意Hristo的意见,即使用MPI提供的更高级别API比使用“本机”IB库更容易
只是想澄清一下,MPI并没有强加主从。一旦所有流程都启动并拥有一个通信器,您就拥有了世界上所有的灵活性。任何人都可以向任何人发送数据。使用MPI 2.0,您可以进行单边通信,其中一个工作人员基本上可以访问另一个工作人员的内存

…我找不到任何允许使用的C/C++或.Net API InfiniBand作为我的应用程序的传输。所以我的问题很简单 如何使用InfiniBand连接到其他节点并发送数据包 给他们,在另一端接收

直接访问InfiniBand的C API称为“动词”

在网上介绍这个话题的众多资源中,我觉得比较平易近人

InfiniBand软件的最终权威是OpenFabrics。链接文档和下载


我注意到在“OFS for Windows”下有一个链接,它可能会满足您的需求,但我从未使用过它,因为我不使用Windows。

这是否回答了您的问题:?@kliteyn:我希望有更多的uDAPL方法(对于Windows server 12来说更现代一些),就像这里演示的但经过Windows测试的方法一样。但我会调查cyber.sibsutis.ru,谢谢!=)@kliteyn:似乎他们的FTP服务器及其http镜像无法流式传输项目文件=(任何git镜像?并且不能简单地安装MS HPC API(即使在Azure for HPC上的WS2012R2上,预安装的一个也不提供任何示例)=(这正是MPI被开发的原因,因此各种底层网络设备的复杂编程细节隐藏在一个定义良好且相对简单的API后面。无论如何,你真的需要InfiniBand的极低延迟和最高带宽吗?如果不需要,那么你可能会选择InfiniBand上的IP(IPoIB)。对于多个流,它通常以较高的延迟为代价实现低级别协议可能的80%以上带宽。