c++ - fv2 - Windows Azure A8 노드를 InfiniBand와 함께 사용하면 하나에서 N 바이트를 보내고 다른 노드에서 수신하는 방법을 지원합니까?




azure vm size (2)

나는 40Gbit / s 네트워크에 대한 InfiniBand의 약속을 좋아합니다. 내 요구는 하나의 핵심 노드 + 노예가있는 MPI 모델로 매핑되지 않으며 가능한 경우 MPI를 전혀 사용하지 않는 것을 선호합니다. 간단한 연결 / 보내기 / 받기 / 닫기 (또는 해당 비동기 버전) API가 필요합니다. 그러나 MS Azure 문서를 읽거나 Microsoft HPC Pack docs에서 C / C ++ 또는 .Net 용 API를 찾지 못하면 응용 프로그램의 전송 용으로 InfiniBand를 사용할 수 있습니다. 그래서 내 질문은 InfiniBand를 사용하여 다른 노드에 연결하고 데이터 패킷을 보내고 다른 노드에서 수신하는 간단한 방법입니다. (일부 소켓 API 또는 그와 유사한)

Azure의 ND-SPI 또는 Azure 연결 / 전송 / 수신 / 닫기 자습서의 DAPL-ND 는 내가 찾고있는 것입니다.


... C / C ++ 또는 .Net 용 API를 찾지 못하면 내 응용 프로그램의 전송 용으로 InfiniBand를 사용할 수 있습니다. 그래서 내 질문은 InfiniBand를 사용하여 다른 노드에 연결하고 데이터 패킷을 보내고 다른 노드에서 수신하는 간단한 방법입니다.

InfiniBand에 직접 액세스하기위한 C API는 '동사'라고합니다.

이 주제를 소개 할 수있는 수많은 온라인 자료 중에서 비교적 http://blog.zhaw.ch/icclab/infiniband-an-introduction-simple-ib-verbs-program-with-rdma-write/ 을 발견했습니다.

InfiniBand 소프트웨어의 궁극적 인 권한은 OpenFabrics입니다. OFED 웹 사이트 는 문서와 다운로드를 링크합니다.

"Windows 용 OFS"에서 NDKPI (Network Direct Kernel Provider Interface) 개요에 대한 링크가 필요하다는 것을 알았지 만 Windows를 사용하지 않았기 때문에 사용한 적이 없습니다.


저는 Hristo의 의견에 "기본"IB 라이브러리보다는 MPI가 제공하는 고급 API를 사용하는 것이 훨씬 쉽다는 점에 동의합니다.
MPI는 마스터 슬레이브를 부과하지 않습니다. 모든 프로세스가 가동되고 커뮤니케이터가 생기면 전 세계에서 모든 유연성을 갖추게됩니다. 누구든지 누구에게나 데이터를 보낼 수 있습니다. 또한 MPI 2.0을 사용하면 일방적 인 의사 소통이 가능합니다. 한 명의 작업자가 본질적으로 다른 사람의 메모리에 접근 할 수 있습니다.