一种基于RDMA通信机制的IB‑RTI方法与流程

文档序号:11234833阅读:546来源:国知局
一种基于RDMA通信机制的IB‑RTI方法与流程

本发明涉及rdma通信领域,尤其涉及一种基于rdma通信机制的ib-rti方法。



背景技术:

随着高性能并行计算技术和高速的网络技术的迅猛地发展,高性能的计算机已经成为高层体系结构的新的硬件环境,因此,高性能的高层体系结构也成为了仿真技术的研究焦点。高性能计算机多核的特性,再加上各个高性能计算机节点间的高速通信网络,成为高层体系结构仿真提供多种的通信的硬件环境和通信方式。如在一个计算的节点内可以采用共享式内存的方式、计算节点间通过ib网络来连接。

目前,在单个计算节点内,采用rti的底层的通信机制大多基于共享内存机制;对于多核间的通信方式,计算节点之间的通信,如何能够减少数据传输过程中的数据复制的时间,有效缩短仿真运行时间是当前丞待解决的技术问题。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种基于rdma通信机制的ib-rti方法,服务器端通信方法包括:

创建rdma协议连接端口;

注册服务器端rdma操作缓存;

当客户端基于rdma协议申请连接时,接受客户端连接请求,并回复连接成功指令;

交换qp信息,修改客户端的qp信息状态级;

接收已建立连接客户端发送的数据信息以及向已建立连接的客户端发送数据信息。

优选地,当服务器端与所述客户端完成数据通信后,关闭与所述客户端的连接端口;

释放服务器端的rdma操作缓存;

释放rdma协议连接端口。

优选地,步骤注册rdma操作缓存之后还包括:

监测连接端口状态,等待客户端申请连接。

优选地,客户端通信方法包括:

创建rdma协议客户端连接端口;

注册客户端rdma操作缓存;

向服务器端发送申请连接请求信息;

接收服务器端发送的连接成功指令,同时根据qp信息,修改qp信息状态级;

接收服务器端发送的数据信息以及向服务器端发送数据信息。

优选地,当服务器端与所述客户端完成数据通信后,关闭与服务器端的连接端口;

释放客户端rdma操作缓存;

释放客户端连接端口。

优选地,步骤修改qp信息状态级包括:

客户端创建qp信息,修改状态级reset到init,修改init到rtr;

发送到服务器端,服务器端创建qp信息,修改状态级init到rtr,发送到客户端;

客户端修改状态机由rtr到rts,发送到服务器端;

服务器端修改状态机由rtr到rts,创建qp信息成功。

优选地,步骤监测连接端口状态,等待客户端申请连接包括:

获取使用rdma传输的客户端数据;

根据ibv_get_device_list结构中的dev_name找到目标客户端。

优选地,步骤交换qp信息,修改客户端的qp信息状态级之前还包括:

获取客户端的句柄;

获取客户端的属性;

查询客户端端口属性,交换qp信息。

从以上技术方案可以看出,本发明具有以下优点:

基于rdma通信机制的ib-rti方法定义了传输数据的结构;优化了certi的通信部分,完成了ib-certi软件原型开发;提高了仿真数据的传输效率。

附图说明

为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明方法中服务器端的通信流程图;

图2为本发明方法中服务器端的通信实施例流程图;

图3为本发明方法中客户端的通信流程图;

图4为本发明方法中客户端的通信实施例流程图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

本实施例提供一种基于rdma通信机制的ib-rti方法,本发明将服务器端与客户端之间的通信方式分开说明,如图1所示,服务器端通信方法包括:

s1、创建rdma协议连接端口;

s2、注册服务器端rdma操作缓存;

s3、当客户端基于rdma协议申请连接时,接受客户端连接请求,并回复连接成功指令;

s4、交换qp信息,修改客户端的qp信息状态级;

s5、接收已建立连接客户端发送的数据信息以及向已建立连接的客户端发送数据信息。

如图1所示,服务器端通信方法还包括:

s11、创建rdma协议连接端口;

s12、注册服务器端rdma操作缓存;

监测连接端口状态,等待客户端申请连接。

具体的,获取使用rdma传输的客户端数据;

根据ibv_get_device_list结构中的dev_name找到目标客户端。

s13、当客户端基于rdma协议申请连接时,接受客户端连接请求,并回复连接成功指令;

s14、交换qp信息,修改客户端的qp信息状态级;

具体的,获取客户端的句柄;获取客户端的属性;查询客户端端口属性,交换qp信息。

s15、接收已建立连接客户端发送的数据信息以及向已建立连接的客户端发送数据信息。

s16、当服务器端与所述客户端完成数据通信后,关闭与所述客户端的连接端口;

s17、释放服务器端的rdma操作缓存;

s18、释放rdma协议连接端口。

本发明中,客户端的基于rdma通信机制的ib-rti方法包括:如图3所示,

s21、创建rdma协议客户端连接端口;

s22、注册客户端rdma操作缓存;

s23、向服务器端发送申请连接请求信息;

s24、接收服务器端发送的连接成功指令,同时根据qp信息,修改qp信息状态级;

s25、接收服务器端发送的数据信息以及向服务器端发送数据信息。

如图4所示,客户端通信方法还包括:

s21、创建rdma协议客户端连接端口;

s22、注册客户端rdma操作缓存;

s23、向服务器端发送申请连接请求信息;

s24、接收服务器端发送的连接成功指令,同时根据qp信息,修改qp信息状态级;

具体的,客户端创建qp信息,修改状态级reset到init,修改init到rtr;

发送到服务器端,服务器端创建qp信息,修改状态级init到rtr,发送到客户端;

客户端修改状态机由rtr到rts,发送到服务器端;

服务器端修改状态机由rtr到rts,创建qp信息成功。

s25、接收服务器端发送的数据信息以及向服务器端发送数据信息。

s26、当服务器端与所述客户端完成数据通信后,关闭与服务器端的连接端口;

s27、释放客户端rdma操作缓存;

s28、释放客户端连接端口。

本发明中,基于rdma通信机制的ib-rti方法需对certi结构和接口进行获取,获取certi通信底层的运行的机制和各模块包含的关系梳理清楚。其网络通信本质上是调用libcerti中的sockettcp和socketudp两个功能函数,完成网络通信的整个操作。在进行网络通信时,负责读取文件,并进行连接的创建,同时,监听每个连接所发送的消息,进行相应的处理和分发。

在本方法中ib-rti网络优化,包括数据结构和消息格式的定义,保证不修改其他个程序模块,使消息能够通过rdma协议进行传输。具体的就是消息的部分就是定义了数据发送的地址,这包括主机的ip地址和端口号,准备接受/发送的数据缓存以及数据的长度;资源的设置的定义跟rdma相关的资源的标识的内容。所有参与网络通信的数据,最终都是要封装成上述的消息的格式。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1