我有几台由Infiniband网络连接的多核心计算机。我想通过远程原子操作对共享内存池进行一些低延迟计算。我知道RDMA是要走的路。在每个节点上,我将注册一个内存区域(和保护域)用于数据共享。RDMA内存共享
在线RDMA示例通常关注单线程服务器和单线程客户端之间的单个连接。现在我想在每个Infiniband节点上都有一个多线程的进程。我对下面很是不解......
我应该有多少的队列对准备在每个节点上,在总共n个节点和m个线程的集群?更具体地说,同一节点上的多个线程可以共享相同的队列对吗?
我应该在每个节点上准备多少个完成队列?我将有多个线程在每个节点上发出远程读/写/操作。如果他们要分享一个共同的完成队列,完成事件将被混淆。如果线程有他们自己分离的完成队列,那么会有很多这样的队列。
你是否建议我有任何现有的库而不是编写此软件? (嗯,或者我应该写一个开源的它:?)
谢谢你的建议。
并且队列对(QP),完成队列(CQ)和共享接收队列(SRQ)的源代码必须自行编写,或者我可以准备好它们的实现(作为最佳实践)并且它们可以在哪里采取? – Alex 2013-09-01 22:31:38