CN117834752A - 数据传输方法、装置、电子设备及存储介质 - Google Patents

数据传输方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117834752A
CN117834752A CN202410011596.9A CN202410011596A CN117834752A CN 117834752 A CN117834752 A CN 117834752A CN 202410011596 A CN202410011596 A CN 202410011596A CN 117834752 A CN117834752 A CN 117834752A
Authority
CN
China
Prior art keywords
data
channel
data packet
destination
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410011596.9A
Other languages
English (en)
Inventor
林宝洪
王军良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Original Assignee
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Telecom Technology Innovation Center, China Telecom Corp Ltd filed Critical China Telecom Technology Innovation Center
Priority to CN202410011596.9A priority Critical patent/CN117834752A/zh
Publication of CN117834752A publication Critical patent/CN117834752A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种数据传输方法、装置、电子设备及存储介质,涉及计算机技术领域。方法包括:根据至少一个源客户端发送的指令请求确定待发送数据;根据各个队列对QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;通过对应的QP通道向接收节点发送各个数据包。本公开能够有效减少QP通道的数量,并可以避免数据传输时头部阻塞、长尾时延大等问题,提高QP通道数据传输性能与RDMA网络性能,确保AI大模型训推效率。

Description

数据传输方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据传输方法、装置、电子设备及存储介质。
背景技术
面向AI(Artificial Intelligence,人工智能)大模型训推的智算中心采用基于RDMA(Remote Direct Memory Access,远程直接数据存取)网络,随着大模型的参数体量不断发展以及智算业务租户化发展,智算中心节点也呈现规模化扩张,这要求RDMA网络具备大规模组网能力。
在相关技术中,可以通过大规模的QP(Queue Pair,队列对)连接来实现大规模组网。但是,随着应用数和集群节点规模的不断增长,数据收发所需要建立的QP通道数量急剧增加,且会出现数据传输时头部阻塞、长尾时延大等问题,造成QP通道数据传输性能下降,进而导致RDMA网络性能下降,影响AI大模型训推效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种数据传输方法、装置、电子设备及存储介质,至少在一定程度上克服相关技术中数据传输时头部阻塞、长尾时延大,造成QP通道数据传输性能下降,进而导致RDMA网络性能下降,影响AI大模型训推效率的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供了一种数据传输方法,该方法由发送节点执行,包括:根据至少一个源客户端发送的指令请求确定待发送数据;根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;通过对应的QP通道向接收节点发送各个数据包。
在一些实施例中,根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,包括:根据该QP通道对应的数据块值,将待发送数据进行切分得到多个数据段;
根据数据段的长度进行数据段重组,得到各个数据包。
在一些实施例中,根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,包括:确定当前空闲QP通道的数量是否满足数据发送条件;若不满足该数据发送条件,则建立至少一个新的空闲QP通道;确定各个空闲QP通道对应的数据块值;根据各个空闲QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。
在一些实施例中,任一QP通道发送的数据包表示为数据包队列,任一数据包队列包括数据头与多个数据体;其中,该数据头包括头部标识、发送节点标识、接收节点标识和数据体数量中的至少一个;任一数据体对应一个进程,任一数据体包括进程标识符、线程标识、数据编号、数据长度和数据切分地址中的至少一个。
在一些实施例中,根据该QP通道对应的数据块值,将待发送数据进行切分得到多个数据段之后,本公开实施例提供的数据传输方法,还包括:对各个数据段对应的首地址进行存储。
根据本公开的另一个方面,还提供了一种数据传输方法,该方法由接收节点执行,包括:接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同;将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求;将各个目的数据包分别发送至对应的目的客户端。
在一些实施例中,将各个目的数据包分别发送至对应的目的客户端,包括:确定各个目的客户端是否接入该接收节点;当确定第一目的客户端接入该接收节点时,向该第一目的客户端发送通知信息,该通知信息用于指示该第一目的客户端向该接收节点获取对应的目的数据包,该第一目的客户端为任一目的客户端。
根据本公开的另一个方面,还提供了一种数据传输装置,该装置应用于发送节点,包括:待发送数据确定模块,用于根据至少一个源客户端发送的指令请求确定待发送数据;切分重组模块,用于根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;数据包发送模块,用于通过对应的QP通道向接收节点发送各个数据包。
在一些实施例中,该切分重组模块,用于根据该QP通道对应的数据块值,将待发送数据进行切分得到多个数据段;根据数据段的长度进行数据段重组,得到各个数据包。
在一些实施例中,该切分重组模块,用于确定当前空闲QP通道的数量是否满足数据发送条件;若不满足该数据发送条件,则建立至少一个新的空闲QP通道;确定各个空闲QP通道对应的数据块值;根据各个空闲QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。
在一些实施例中,任一QP通道发送的数据包表示为数据包队列,任一数据包队列包括数据头与多个数据体;其中,该数据头包括头部标识、发送节点标识、接收节点标识和数据体数量中的至少一个;任一数据体对应一个进程,任一数据体包括进程标识符、线程标识、数据编号、数据长度和数据切分地址中的至少一个。
在一些实施例中,本公开提供的数据传输装置,还包括:首地址存储模块,用于对各个数据段对应的首地址进行存储。
根据本公开的另一个方面,还提供了一种数据传输装置,该装置应用于接收节点,包括:数据包接收模块,用于接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同;目的数据包确定模块,用于将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求;目的数据包发送模块,用于将各个目的数据包分别发送至对应的目的客户端。
在一些实施例中,目的数据包发送模块,用于确定各个目的客户端是否接入该接收节点;当确定第一目的客户端接入该接收节点时,向该第一目的客户端发送通知信息,该通知信息用于指示该第一目的客户端向该接收节点获取对应的目的数据包,该第一目的客户端为任一目的客户端。
根据本公开的另一个方面,还提供了一种电子设备,该电子设备包括:处理器;以及存储器,用于存储该处理器的可执行指令;其中,该处理器配置为经由执行该可执行指令来执行上述任意一项的数据传输方法。
根据本公开的另一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一项的数据传输方法。
根据本公开的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本公开任一实施例中的各种可选方式中提供的数据传输方法。
本公开的实施例中提供的技术方案,可以通过根据各个队列对QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,从而通过对应的QP通道向接收节点发送各个数据包。因此,本公开实施例能够有效减少QP通道的数量,并可以避免数据传输时头部阻塞、长尾时延大等问题,提高QP通道数据传输性能与RDMA网络性能,确保AI大模型训推效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种系统结构的示意图;
图2示出本公开实施例中一种RDMA组网的通信方法的示意图
图3示出本公开实施例中一种数据传输方法流程图;
图4示出本公开实施例中一种数据传输的示意图;
图5示出本公开实施例中一种节点示意图;
图6示出本公开实施例中另一种数据传输的示意图;
图7示出本公开实施例中另一种数据传输的示意图;
图8示出本公开实施例中一种数据传输装置示意图;
图9示出本公开实施例中另一种数据传输装置示意图
图10示出本公开实施例中一种电子设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为便于理解,在介绍本公开实施例之前,首先对本公开实施例中涉及到的几个名词进行解释如下:
进程:是一个实体,一个进程中可以包含若干个线程。每一个进程都有对应的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stackregion)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
下面结合附图,对本公开实施例的具体实施方式进行详细说明。
图1示出了可以应用本公开实施例中数据传输方法的示例性应用系统架构示意图。如图1所示,该系统架构可以包括至少一个源客户端101、网络102和发送节点103。
其中,至少一个源客户端101可以向发送节点103发送指令请求。发送节点103可以根据至少一个源客户端发送的指令请求确定待发送数据,并根据各个队列对QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小。最后,发送节点103可以通过对应的QP通道向接收节点发送各个数据包。
网络102用以在源客户端101和发送节点103之间提供通信链路的介质,可以是有线网络,也可以是无线网络。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、互联网安全协议(InternetProtocol Security,IPSec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
源客户端101可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、智能音箱、智能手表、可穿戴设备、增强现实设备、虚拟现实设备等。
可选地,不同的源客户端101中安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端等。
发送节点103可以是提供各种服务的服务器,例如对用户利用源客户端101所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
可选地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本领域技术人员可以知晓,图1中的源客户端、网络和发送节点的数量仅仅是示意性的,根据实际需要,可以具有任意数目的客户端、网络和发送节点。本公开实施例对此不作限定。
示例性地,图2示出了一种相关技术的提供的RDMA组网的通信方法的示意图。其中,节点1中包括进程A、进程B。节点2中包括进程C、进程D。各个进程均可以包括多个线程,任一线程可以通过一至多个QP通道来进行数据的收发。需要说明是的,由于RDMA组网的异步非阻塞特性,单个进程里可能出现多条线程并发使用同一条QP通道来传递数据,因而存在不同数据包混合的情况,容易出现队头大包阻塞小包而导致的数据处理延迟问题。另外,不同节点的不同进程,在调用相关进程对外通信时,发送端和接收端都需要创建QP队列,以提供发送和接收数据的通道。可以看出,当集群的规模变大时,每个节点所需要建立的QP连接数就会急剧增加。
图3示出本公开实施例中一种数据传输方法流程图,如图3所示,本公开实施例中提供的数据传输方法可以由发送节点与接收节点通过交互的方式来实现,该数据传输方法包括如下步骤S302至S312。
S302,发送节点根据至少一个源客户端发送的指令请求确定待发送数据。
本公开实施例不对源客户端进行限制,例如任一源客户端可以对应一个与发送节点相连接的终端,任一源服务器中可以包括至少一个进程。源客户端可以调用不同的进程向发送节点发送指令请求,其中,任一进程中可以包括消息数据(Message Data)与大数据量数据(Huge Data)中的至少一个。另外,发送节点可以为一个服务器。
在一些实施例中,指令请求可以用于描述待发送数据。指令请求中包括预先定义的数据结构及发送队列,该发送队列中包括待发送数据的数据类型、数据地址、数据大小、发送优先级中的至少一个。
在一些实施例中,发送节点与各个源客户端可以为RPC(Remote Procedure CallProtocol,远程过程调用协议)的三层框架的C/S(Client/Server,客户侧/服务侧)结构。各个源客户端即为客户侧,发送节点即为服务侧。源客户端可通过接口调用,按照内部的标准或自定义的函数,发送指令请求并获得函数返回的数据进行处理,该过程类似于API(Application Program Interface,应用程序接口)调用。
示例性地,源客户端发送的指令请求可以包括发送、接收和状态获取三种类型。其中,源客户端在发送指令请求时需要指定数据的来源,该数据的来源例如可以包括缓存、文件和远程传递等。
需要说明是的,发送类型的指令请求中包括预先定义的数据结构及发送队列。接收类型的指令请求可以用于获取服务侧下发的接收数据类型、数据大小、数据缓冲区或文件存放地址等。而状态获取类型的指令请求可以用于获取C/S后返回的信息,例如发送接收是否完成、异常信息等。
在示例性实施例中,某一进程可以指定发送某个文件,此时需要告知发送节点文件的目录位置,在执行发送时,发送节点可以根据该目录位置对对应的文件进行读取,从而实现边读取边发送。或者,某一进程指定发送缓存中的某段数据段,在该种情况下,由于服务侧不能直接读取进程的缓存,因此发送节点在接收源客户端的指令请求后需要预先建立一块缓存空间以进行待发送数据的存储。
S304,发送节点根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小。
在一些实施例中,根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,包括:根据该QP通道对应的数据块值,将待发送数据进行切分得到多个数据段;根据数据段的长度进行数据段重组,得到各个数据包。
在示例性实施例中,发送节点中包括的各个QP通道可以用于发送不同大小的数据包。因此,在本公开实施例中,可以根据QP通道对应的数据块值的大小对待发送数据进行切分,切分后大小相同的数据段会共用一个的QP通道进行传输。示例性地,在切分后,可以基于切分后的大小相同的数据段共用一个的QP通道的规则对数据段进行组合,从而得到数据包大小不同的多个地址队列组。
需要说明的是,对于网络侧而言越小的数据块越不容易造成拥塞,因此数据块值越小的QP通道可以用于传递优先级别更大的数据。
在一些实施例中,在根据该QP通道对应的数据块值,将待发送数据进行切分得到多个数据段之后,本公开实施例提供的数据传输方法,还可以包括:对各个数据段对应的首地址进行存储。
在示例性实施例中,在切分过程中为避免产生过多的数据副本,在可以对切分后每个数据段的首地址进行存储,本公开实施例通过仅存储数据段的首地址达到了节省存储空间并提升处理效率的效果。
在一些实施例中,根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,包括:确定当前空闲QP通道的数量是否满足数据发送条件;若不满足该数据发送条件,则建立至少一个新的空闲QP通道;确定各个空闲QP通道对应的数据块值;根据各个空闲QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。
在一些实施例中,任一QP通道发送的数据包表示为数据包队列,任一数据包队列包括数据头与多个数据体;其中,该数据头包括头部标识、发送节点标识、接收节点标识和数据体数量中的至少一个;任一数据体对应一个进程,任一数据体包括进程标识符、线程标识、数据编号、数据长度和数据切分地址中的至少一个。
示例性地,任一进程中可以包括消息数据与大数据量数据时,可以各个进程中的消息数据进行切分重组,得到小数据包队列。并可以将各个大数据量数据进行切分重组,得到大数据包队列。其中,小数据包队列中的数据头用于指示该小数据包中包括的是消息数据,任一数据体对应一个进程的消息数据。大数据包队列中的数据头用于指示该大数据包中包括的是大数据量数据,任一数据体对应一个进程的大数据量数据。
在一些实施例中,本公开实施例提供的数据传输方法,还可以包括:确定当前空闲QP通道是否满足数据发送条件;若不满足该数据发送条件,则建立至少一个新的空闲QP通道,并确定至少一个新的空闲QP通道对应的数据块值。
示例性地,该数据发送条件可以基于数据包的数量进行确定。若当前空闲QP通道的数量不小于数据包的数量,则满足数据发送条件。反之,则不满足,此时则需要建立新的空闲QP通道以使空闲QP通道的数量满足数据发送条件。
在一种可能的实施方式中,在动态建立QP通道时,可以按照交换设备及当前拥塞状态预先定好切分模块的大小,当拥塞严重时会重新调整或建立新的QP通道。另外,本公开实施例还可以对QP通道的传输窗口大小进行调节,该传输窗口大小需要不小于对应数据包的大小。另外,在建立新的空闲QP通道时,接收节点需要建立相应的队列进行数据包的接收,以响应发送节点的QP连接。
S306,发送节点通过对应的QP通道向接收节点发送各个数据包。
其中,不同大小的数据包通过不同的QP通道进行传输。
本公开实施例可以汇聚各进程的并发数据、切分并按照数据的特性及大小进行混合,能够避免数据并发传输时大包阻塞小包所导致的队头阻塞。并且,将这些数据在不同的QP连接通道上进行传输,能够有效节省QP通道的数量,增加QP通道的使用率。
S308,接收节点接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同。
示例性地,由于接收到的是经过切分重组后的数据包,无法直接传送到目的客户端,因此,可以先对各个数据包进行缓存,待各个数据包均接收完成后再进行重组。
S310,接收节点将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求。
在示例性实施例中,该将各个数据包进行重组得到各个目的数据包的过程,与S304中对该待发送数据进行切分重组处理的操作相反。示例性地,以进程中包括消息数据与大数据量数据为例,通过S304可以得到小数据包队列与大数据包队列。在并可以将各个大数据量数据进行切分重组,得到大数据包队列。其中,小数据包队列中的数据头用于指示该小数据包中包括的是消息数据,任一数据体对应一个进程的消息数据。大数据包队列中的数据头用于指示该大数据包中包括的是大数据量数据,任一数据体对应一个进程的大数据量数据。
示例性地,接收节点与各个目的客户端可以为RPC的三层框架的C/S结构。其中,各个目的客户端即为客户侧,接收节点即为服务侧。
S312,接收节点将各个目的数据包分别发送至对应的目的客户端。
在一些实施例中,将各个目的数据包分别发送至对应的目的客户端,包括:确定各个目的客户端是否接入该接收节点;当确定第一目的客户端接入该接收节点时,向该第一目的客户端发送通知信息,该通知信息用于指示该第一目的客户端向该接收节点获取对应的目的数据包,该第一目的客户端为任一目的客户端。
示例性地,由于RPC的异步特性,需要在目的客户端接入接收节点后才能进行数据传输。
将源客户端的各个进程数据请求由发送节点进行统一管控,并进行数据的切分重组和传输,到达接收节点再进行重组并分发到相应的目的客户端,因此本公开能够有效减少队头阻塞所导致的数据处理延迟。另外,发送节点与源客户端可以基于RPC的C/S方式进行通信,由源客户端负责指令分发,发送节点负责数据的读取传输,能够有效解决进程中不同线程并发请求时,共享锁所导致的性能开销以及安全性等问题。进一步地,通过对不同源客户端的数据进行切分重组后,在不同的QP通道上进行传输,能够避免进程侧对QP通道的单独占用,增加QP的使用率。
综上,本公开实施例提供的方法,可以通过根据各个队列对QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,从而通过对应的QP通道向接收节点发送各个数据包。因此,本公开实施例能够有效减少QP通道的数量,并可以避免数据传输时头部阻塞、长尾时延大等问题,提高QP通道数据传输性能与RDMA网络性能,确保AI大模型训推效率。
在一些实施例中,本公开实施例提供的一种数据传输的示意图可以如图4所示。该图4中可以包括节点1与节点2,需要说明是的,节点1、节点2中的服务侧均即可以作为发送节点,也可以作为接收节点。
以节点1中的服务侧为发送节点、节点2中的服务侧为接收节点为例。在该种情况下,节点1中包括的客户侧可以为源客户端,节点2中包括的客户侧可以为目的客户端。
示例性地,该节点1中的源客户端中可以包括进程A、进程B与进程C,并可以调用API以与发送节点基于RPC建立连接。发送节点可以通过QP通道实现与接收节点的连接以发送数据。接收节点可以将接收到的数据分发至各个目的客户端。
同理,该节点2中的目的客户端中可以包括进程D、进程E与进程F,并可以调用API以与接收节点基于RPC建立连接。接收节点可以通过QP通道实现与发送节点的连接以发送数据。发送节点可以将接收到的数据分发至各个源客户端。
在一些实施例中,本公开实施例提供的一种节点示意图可以如图5所示。需要说明的是,该图5示出的服务侧可以为发送节点,也可以为接收节点。其中,该节点可以包括多个客户侧与一个服务侧。任一客户侧中可以包括至少一个进程。客户侧可以基于Lib(Library,一种数据库)或API向RPC域发送请求、事件、响应等数据。RPC域可以用于与服务侧通信。服务侧可以包括一个RPC工作负载以与各个客户侧通信。RPC工作负载为API的代理实现,跨进程间的通信协议。RPC工作负载用于收集各个客户侧的指令请求到服务侧,以进行统一管理处理,客户侧在发出指令请求后立刻返回,不阻塞业务逻辑,RPC工作负载接收数据以异步通知的方式回发到对应的客户侧。业务侧RPC请求为线程安全,可以支持Thread并发调用。
示例性地,该请求汇聚和分隔器可以为RCAP(Request Coalescer AndPartition,请求汇聚和分隔器)可以用于将客户侧的指令请求汇聚,进行分类编号,将待发送数据基于QP通道的数据块值进行切分,并将待发送数据对应的地址和长度等信息记录在传输缓存器(Transmission Buffer)中。该传输缓存器可以用于存储数据传输时的相关信息,例如该数据传输时的相关信息包括数据切分地址、切分长度、数据编号、进程ID(Identity,标识)、线程标识(Flag)以及数据副本中的至少一个。另外,请求汇聚和分隔器可以用于对各个数据段对应的首地址进行存储。
示例性地,请求调度器(Request Scheduler)可以连接传输缓存器和QP通道管理模块,以从传输缓存器中获取到对应的待发送数据的数据段,并按照数据切分的数据包队列,调用QP通道管理模块建立QP通道。在请求汇聚和分隔器完成待发送数据的切分后可以通知QP通道管理模块,之后该QP通道管理模块可以进行QP通道的创建,并通过队列发送数据。该QP通道管理模块对接QP侧的控制面,通过调度VerBS接口来管控QP通道,并可以记录QP通道的上下文句柄、有效存活期、优先级别、执行状态、事件回调中的至少一个。VerBS接口用于QP通道进行数据包的发送与接收。
在VerBS接口接收到数据包时,可以将该数据包发送至接收缓存器。该接收缓存器用于存储接收的数据包。由于客户侧对服务侧的接入是通过RPC异步接入的方式,因此可能存在数据到达时对端客户侧还没接入的情况,此时即可以先将数据缓存在接收缓存器。
示例性地,该响应重排和调度器可以为RRAD(Response Reorder AndDispatcher,响应重排和调度器)。该响应重排和调度器可以从接收缓存器中获取接收的数据包,并进行解包重组成完整的数据,再通过RPC域发送至对应客户侧的进程中。
在一些实施例中,本公开实施例提供的一种数据传输的示意图可以如图6所示。
在该图6中,以有两个进程为例,该发送节点可以通过请求汇聚和分隔器接收进程A与进程B对应的指令请求并基于指令请求获取待发送数据。之后,即可以根据各个QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。如图6所示,传输通道中可以包括小数据包连接与大数据包连接,该小数据包连接与大数据包连接均为数据包队列,其中,该小数据包连接中的M1为进程A对应的消息数据,M2为进程B对应的消息数据。大数据包连接中的H1可以为进程A对应的大数据量数据,H2可以为进程B对应的大数据量数据。该小数据包连接与大数据包连接可以通过不同的QP通道进行数据传输。
示例性地,接收节点的接收缓存器可以用于接收发送节点发送的数据包。响应重排和调度器可以对接收的数据包进行重组得到目的数据包。之后即可以将进程A对应的目的数据包、进程B对应的目的数据包分别发送至进程A、进程B对应的目的客户端。
示例性地,本公开实施例提供的一种数据传输的示意图可以如图7所示。
在该图7中,客户侧可以包括多个进程,各个进程可以通过对应的RPC域发送对应的指令信息,发送节点可以通过RPC工作负载接收指令信息以确定对应的待发送数据。
需要说明的是,RDMA组网的VerBS接口为异步非阻塞通信接口,便于多线程间的并发处理。但要实现线程间链接的共享,需要解决共享访问锁的同步问题。然而锁之间的同步竞争,又极大影响了并发的连续性。而本公开实施例提供的数据传输方法,客户侧与服务侧可以通过RPC进行交互,从而解决了VerBS接口的并发调度及数据共享的安全性和系统资源开销问题。客户端调度VerBS接口抽象层封装的API,能够更好地兼容硬件侧以及驱动层的迭代更新。
服务侧可以进行进程数据处理,即根据各个QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。
需要说明是的,本公开实施例通过服务侧接收客户侧的指令请求,可以实现客户侧的数据读写与传输,并将数据按照大小切分重组在不同QP通道传递以减少队头阻塞所导致的数据延迟。
最后,本公开实施例可以通过QP通道管理模块进行数据传输。需要说明的是,服务侧对不同客户侧处理的数据进行切分混合重组后,按照所切分的数据包队列建立QP通道,能够有效减少QP通道的数量,从而提升QP通道的使用效率。
需要注意的是,本公开技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定,本公开实施例中获取的个人、客户和人群等相关的个人身份数据、操作数据、行为数据等多种类型的数据,均已获得授权。
基于同一发明构思,本公开实施例中还提供了一种数据传输装置,如下面的实施例所述。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图8示出本公开实施例中一种数据传输装置示意图,如图8所示,该装置应用于发送节点,装置包括:
待发送数据确定模块801,用于根据至少一个源客户端发送的指令请求确定待发送数据;
切分重组模块802,用于根据各个QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;
数据包发送模块803,用于通过对应的QP通道向接收节点发送各个数据包。
在一些实施例中,该切分重组模块802,用于根据QP通道对应的数据块值,将待发送数据进行切分得到多个数据段;根据数据段的长度进行数据段重组,得到各个数据包。
在一些实施例中,该切分重组模块802,用于确定当前空闲QP通道的数量是否满足数据发送条件;若不满足数据发送条件,则建立至少一个新的空闲QP通道;确定各个空闲QP通道对应的数据块值;根据各个空闲QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。
在一些实施例中,任一QP通道发送的数据包表示为数据包队列,任一数据包队列包括数据头与多个数据体;其中,数据头包括头部标识、发送节点标识、接收节点标识和数据体数量中的至少一个;任一数据体对应一个进程,任一数据体包括进程标识符、线程标识、数据编号、数据长度和数据切分地址中的至少一个。
在一些实施例中,本公开提供的数据传输装置,还包括:
首地址存储模块,用于对各个数据段对应的首地址进行存储。
本公开实施例提供的装置,可以通过根据各个队列对QP通道对应的数据块值对待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,从而通过对应的QP通道向接收节点发送各个数据包。因此,本公开实施例能够有效减少QP通道的数量,并可以避免数据传输时头部阻塞、长尾时延大等问题,提高QP通道数据传输性能与RDMA网络性能,确保AI大模型训推效率。
图9示出本公开实施例中另一种数据传输装置示意图,如图9所示,该装置应用于发送节点,该装置应用于接收节点,装置包括:
数据包接收模块901,用于接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同;
目的数据包确定模块902,用于将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求;
目的数据包发送模块903,用于将各个目的数据包分别发送至对应的目的客户端。
在一些实施例中,目的数据包发送模块903,用于确定各个目的客户端是否接入接收节点;当确定第一目的客户端接入接收节点时,向第一目的客户端发送通知信息,通知信息用于指示第一目的客户端向接收节点获取对应的目的数据包,第一目的客户端为任一目的客户端。
此处需要说明的是,上述待发送数据确定模块801、切分重组模块802、数据包发送模块803对应于方法实施例中的S302~S306,数据包接收模块901、目的数据包确定模块902、目的数据包发送模块903对应于方法实施例中的S308~S312,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述方法实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开实施例提供了一种电子设备,示例性地,该电子设备包括:处理器与存储器。该存储器可以用于存储处理器的可执行指令。其中,处理器配置为经由执行所述可执行指令来本公开实施例提供的体检数据分析方法。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030。
其中,该存储单元存储有程序代码,该程序代码可以被该处理单元1010执行,使得该处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,该处理单元1010可以执行上述方法实施例的如下步骤:根据至少一个源客户端发送的指令请求确定待发送数据;根据各个QP通道对应的数据块值对该待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;通过对应的QP通道向接收节点发送各个数据包。
或者,可以执行上述方法实施例的如下步骤:接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同;将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求;将各个目的数据包分别发送至对应的目的客户端。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1040(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机程序产品,该计算机程序产品包括:计算机程序,该计算机程序被处理器执行时实现上述数据传输方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现本公开实施例提供的体检数据分析方法。该计算机可读存储介质可以是可读信号介质或者可读存储介质。计算机可读存储介质上存储有能够实现本公开上述方法的程序产品。
在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当该程序产品在终端设备上运行时,该程序代码用于使该终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,该程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围由所附的权利要求指出。

Claims (11)

1.一种数据传输方法,其特征在于,由发送节点执行,包括:
根据至少一个源客户端发送的指令请求确定待发送数据;
根据各个队列对QP通道对应的数据块值对所述待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;
通过对应的QP通道向接收节点发送各个数据包。
2.根据权利要求1所述的数据传输方法,其特征在于,所述根据各个QP通道对应的数据块值对所述待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,包括:
根据所述QP通道对应的数据块值,将待发送数据进行切分得到多个数据段;
根据数据段的长度进行数据段重组,得到各个数据包。
3.根据权利要求1或2所述的数据传输方法,其特征在于,所述根据各个QP通道对应的数据块值对所述待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,包括:
确定当前空闲QP通道的数量是否满足数据发送条件;
若不满足所述数据发送条件,则建立至少一个新的空闲QP通道;
确定各个空闲QP通道对应的数据块值;
根据各个空闲QP通道对应的数据块值对所述待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包。
4.根据权利要求1或2所述的数据传输方法,其特征在于,任一QP通道发送的数据包表示为数据包队列,任一数据包队列包括数据头与多个数据体;
其中,所述数据头包括头部标识、发送节点标识、接收节点标识和数据体数量中的至少一个;任一数据体对应一个进程,任一数据体包括进程标识符、线程标识、数据编号、数据长度和数据切分地址中的至少一个。
5.根据权利要求2所述的数据传输方法,其特征在于,所述根据所述QP通道对应的数据块值,将待发送数据进行切分得到多个数据段之后,还包括:
对各个数据段对应的首地址进行存储。
6.一种数据传输方法,其特征在于,由接收节点执行,包括:
接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同;
将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求;
将各个目的数据包分别发送至对应的目的客户端。
7.根据权利要求6所述的数据传输方法,其特征在于,所述将各个目的数据包分别发送至对应的目的客户端,包括:
确定各个目的客户端是否接入所述接收节点;
当确定第一目的客户端接入所述接收节点时,向所述第一目的客户端发送通知信息,所述通知信息用于指示所述第一目的客户端向所述接收节点获取对应的目的数据包,所述第一目的客户端为任一目的客户端。
8.一种数据传输装置,其特征在于,应用于发送节点,包括:
待发送数据确定模块,用于根据至少一个源客户端发送的指令请求确定待发送数据;
切分重组模块,用于根据各个QP通道对应的数据块值对所述待发送数据进行切分重组处理,得到与各个QP通道对应的数据块值对应的数据包,任一QP通道对应的数据块值描述QP通道用于传输的数据的大小;
数据包发送模块,用于通过对应的QP通道向接收节点发送各个数据包。
9.一种数据传输装置,其特征在于,应用于接收节点,包括:
数据包接收模块,用于接收发送节点通过各个QP通道发送的各个数据包,其中,各个QP通道对应的数据块值不同;
目的数据包确定模块,用于将各个数据包进行重组得到各个目的数据包,其中任一目的数据包对应一个指令请求;
目的数据包发送模块,用于将各个目的数据包分别发送至对应的目的客户端。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述的数据传输方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7任意一项所述的数据传输方法。
CN202410011596.9A 2024-01-03 2024-01-03 数据传输方法、装置、电子设备及存储介质 Pending CN117834752A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410011596.9A CN117834752A (zh) 2024-01-03 2024-01-03 数据传输方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410011596.9A CN117834752A (zh) 2024-01-03 2024-01-03 数据传输方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117834752A true CN117834752A (zh) 2024-04-05

Family

ID=90517125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410011596.9A Pending CN117834752A (zh) 2024-01-03 2024-01-03 数据传输方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117834752A (zh)

Similar Documents

Publication Publication Date Title
US8756329B2 (en) System and method for parallel multiplexing between servers in a cluster
CN111966446B (zh) 一种容器环境下rdma虚拟化方法
US10178163B2 (en) Server-processor hybrid system for processing data
WO2023077952A1 (zh) 数据处理方法、系统、相关设备、存储介质及产品
CN1625179B (zh) 按可定制的、基于标签协议中的引用发送
US8266630B2 (en) High-performance XML processing in a common event infrastructure
CN114124929A (zh) 跨网络的数据处理方法和装置
CN115297164A (zh) 网络代理方法、装置、电子设备及计算机可读存储介质
CN113626208B (zh) 一种基于nio异步线程模型的服务器通信方法
Lu et al. Impact of hpc cloud networking technologies on accelerating hadoop rpc and hbase
CN113965628A (zh) 消息调度方法、服务器和存储介质
US11153399B2 (en) Facilitating inter-proxy communication via an existing protocol
CN117834752A (zh) 数据传输方法、装置、电子设备及存储介质
CN113810264B (zh) 信息传输方法、装置、电子设备和存储介质
CN108076111B (zh) 一种在大数据平台中分发数据的系统及方法
CN112702415B (zh) 一种将Kafka长连接消费转换成服务的方法
WO2023202241A1 (zh) 一种通信方法及相关产品
CN108737525A (zh) 一种基于REST架构的Web服务系统
EP2051484A2 (en) Satellite Data Network Acceleration
CN116910108A (zh) 端侧数据的处理方法、装置、设备和计算机可读存储介质
CN117806866A (zh) Rdma缺页异常处理方法、装置、电子设备及存储介质
CN117076378A (zh) 数据传输方法、装置、相关设备及fpga芯片
CN115695468A (zh) 一种车联网通信数据记录的处理方法及系统、设备、介质
CN113242232A (zh) 消息处理系统和方法
CN116886627A (zh) 智算网络流量控制方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination