Having windows Azure A8 nodes with InfiniBand support how to send N bytes from one and receive on another?
Asked Answered
P

2

34

I like InfiniBand promise of 40Gbit/s network. My needs do not map onto the MPI model with one core node + slaves, and if possible I would prefer not to use MPI at all. I need simple connect/send/receive/close (or its async versions) API. Yet reading MS Azure docs nor in Microsoft HPC Pack docs I cant find any API for C/C++ or .Net that would allow to use InfiniBand as transport for my application. So my question is simple how to use InfiniBand to connect to other nodes and send data packets to them and receive on other end? (Alike some Socket API or anything like that)

ND-SPI on Azure or DAPL-ND on Azure connect/send/receive/close tutorial is what I am looking for.

Potassium answered 26/4, 2015 at 15:48 Comment(5)
Does this answer your question: #16411828?Hollandia
@kliteyn: I hoped for more WinOF uDAPL approach (which is a bit more modern for Windows server 12) like one here demonstrated here but windows tested. Yet I'll look into cyber.sibsutis.ru , thank you! =)Potassium
@kliteyn: seems like their FTP server and its http mirror can not stream project files=( Any git mirrors?Potassium
And one can not simply install MS HPC API (even on WS2012R2 on Azure for HPC, preinstalled one does not provide any samples=(Potassium
And that's exactly why MPI was developed, so that the intricate details of programming various underlying network equipments are hidden behind a well-defined and relatively simple API. Anyway, do you really need the very low latency of InfiniBand and the top bandwidth? If not, then you could probably go with IP-over-InfiniBand (IPoIB). With multiple streams, it usually achieves 80+% of the bandwidth possible with the low-level protocol at the expense of higher latency.Ph
U
1

I agree with Hristo's comment that it'll be MUCH easier to use a higher level API's that MPI provide, rather than a "native" IB library.
And just to clarify, MPI does not impose Master-Slave. Once all the processes are up and have a communicator, you have all the flexibility in the world. Anybody can send data to anybody. And with MPI 2.0 you have one-sided communication, where one worker can essentially reach into another's memory.

Unawares answered 12/6, 2015 at 19:11 Comment(0)
D
0

...I cant find any API for C/C++ or .Net that would allow to use InfiniBand as transport for my application. So my question is simple how to use InfiniBand to connect to other nodes and send data packets to them and receive on other end?

The C API for direct access to InfiniBand is known as 'verbs'.

Among the numerous resources online to introduce this topic, I found http://blog.zhaw.ch/icclab/infiniband-an-introduction-simple-ib-verbs-program-with-rdma-write/ to be relatively approachable.

The ultimate authority on InfiniBand software is OpenFabrics. The OFED website links docs and downloads.

I noticed under "OFS for Windows" that there is a link to Overview of Network Direct Kernel Provider Interface (NDKPI), which might meet your needs, but I have never used it because I do not use Windows.

Defend answered 12/6, 2015 at 20:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.