我有一些由Infiniband网络连接的多核计算机.我希望在共享内存池上进行一些低延迟计算,并进行远程原子操作.我知道RDMA是要走的路.在每个节点上,我将注册一个内存区域(和保护域)以进行数据共享.
在线RDMA示例通常关注单线程服务器和单线程客户端之间的单个连接.现在,我希望在每个Infiniband节点上都有一个多线程进程.我对以下内容感到非常困惑......
对于n个节点和m个线程的集群,我应该在每个节点上准备多少个队列对?更具体地说,同一节点上的多个线程可以共享同一个队列对吗?
我应该在每个节点上准备多少个完成队列?我将在每个节点上有多个线程发出远程读/写/ cas操作.如果他们要共享一个公共完成队列,则完成事件将被混淆.如果线程有自己独立的完成队列,那么它们确实会有很多.
你建议我有任何现有的库而不是编写这个软件吗?(嗯,或者我应该写一个并开源吗?:-)
谢谢你的善意建议.