CN116506523B - 一种适用于多协议的统一通信方法 - Google Patents

一种适用于多协议的统一通信方法 Download PDF

Info

Publication number
CN116506523B
CN116506523B CN202310742070.3A CN202310742070A CN116506523B CN 116506523 B CN116506523 B CN 116506523B CN 202310742070 A CN202310742070 A CN 202310742070A CN 116506523 B CN116506523 B CN 116506523B
Authority
CN
China
Prior art keywords
communication
tag
interface
unified
memory
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.)
Active
Application number
CN202310742070.3A
Other languages
English (en)
Other versions
CN116506523A (zh
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310742070.3A priority Critical patent/CN116506523B/zh
Publication of CN116506523A publication Critical patent/CN116506523A/zh
Application granted granted Critical
Publication of CN116506523B publication Critical patent/CN116506523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本申请涉及一种适用于多协议的统一通信方法,包括定义包含通信接口类型的基础模块:构建包含应用程序接口层、通信接口层和传输层的基础架构;基于插件机制实现适用于多协议;基于标签匹配进行统一通信;基于多轨机制优化通信性能;设计统一内存管理接口。通过在消息中包含标签,发送端和接收端可以更加灵活和高效地进行消息匹配,满足各种不同的通信模式。相比现有方法,所述一种适用于多协议的统一通信方法可以大大减少应用开发难度,提高代码复用率和通信性能。

Description

一种适用于多协议的统一通信方法
技术领域
本申请涉及通信技术领域,特别是涉及一种适用于多协议的统一通信方法。
背景技术
高性能计算中的数据通信一直是一个重要而复杂的问题。不同的通信硬件技术,如无限带宽总线、以太网和英伟达高速互联等,在性能、成本和可扩展性方面各有优缺点。
许多高性能应用程序希望能在不同的通信技术之间进行切换,以达到最佳性能,但现有的通信库大多只支持某一种特定的通信技术。这使得应用程序开发者不得不维护多套通信接口的代码,以支持不同的通信技术,这大大增加了开发难度和代码复杂性。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高通信效率的适用于多协议的统一通信方法。
第一方面,本申请提供了一种适用于多协议的统一通信方法,所述适用于多协议的统一通信方法包括:
一种适用于多协议的统一通信方法,其特征在于,所述统一通信方法包括:
根据通信需求构建插件接口;
基于所述插件接口对进行通信的发送端和接收端进行标签配置,根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作;
对所述统一通信操作中的通信过程进行基于多轨机制的优化处理。
在其中一个实施例中,在所述根据通信需求构建插件接口前,所述统一通信方法,还包括:
定义通信过程中的通信接口以及对应所述通信的基础操作,构建包含应用程序接口层、通信接口层以及传输层在内的通信架构;
其中,所述应用程序接口层、所述通信接口层、所述传输层中均包括通用的应用程序编程接口。
在其中一个实施例中,所述根据通信需求构建插件接口,包括:
定义传输层组件接口,所述传输层组件接口的结构体定义了传输层组件的属性和操作;
定义通信接口类型,所述通信接口类型包括所述通信接口待实现的函数和数据结构;
定义端点接口类型,所述端点接口包括端点需要实现的函数和数据结构。
在其中一个实施例中,所述基于所述插件接口对进行通信的发送端和接收端进行标签配置,根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作,包括:
基于预设的标签配置,构建适用于待进行统一通信操作中发送端的带有标签消息的传输流程;
基于所述标签配置,构建适用于待进行统一通信操作中接收端的带有标签消息的接收流程;
根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作。
在其中一个实施例中,所述基于预设的标签配置,构建适用于待进行统一通信操作中发送端的带有标签消息的传输流程,包括:
从当前工作线程的请求池中获取一个请求对象用于创建了发送请求,对所述发送请求进行初始化操作;
将处理后的所述发送请求发送至接收端,接收所述接收端返回的请求对象。
在其中一个实施例中,所述基于所述标签配置,构建适用于待进行统一通信操作中接收端的带有标签消息的接收流程,包括:
从接收队列中获取请求,将所述请求和标签进行匹配;
如果匹配成功,则将消息传递给应用程序;
如果匹配失败,则将所述请求存储在队列中,等待后续的匹配。
在其中一个实施例中,所述根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作,包括:
构造标签匹配结构体;
将标签匹配规则添加到所述标签匹配结构体的规则列表中,当接收到指定标签的消息时,调用回调函数处理消息。
在其中一个实施例中,所述将标签匹配规则添加到所述标签匹配结构体的规则列表中,当接收到指定标签的消息时,调用回调函数处理消息,包括:
检查传入的所述标签匹配结构体是否已经初始化,如果没有初始化,则对所述标签匹配结构体的字段进行初始化操作;
检查传入的所述标签匹配规则是否已经存在于所述标签匹配结构体中,如果已经存在,则直接返回;
如果所述标签匹配规则不存在,将所述标签匹配规则添加到所述标签匹配结构体的规则列表中。
在其中一个实施例中,所述对所述统一通信操作中的通信过程进行基于多轨机制的优化处理,包括:
在数据传输时,将通信任务分配到不同的轨道;
根据轨道优先级和通信资源的使用情况来选择合适的轨道进行通信。
在其中一个实施例中,所述适用于多协议的统一通信方法,还包括:设计统一内存管理接口;
其中,所述设计统一内存管理接口,包括:
使用远程直接内存访问的内存分配函数来分配内存;
在内存访问结束后进行内存释放。
上述适用于多协议的统一通信方法,提供了统一的编程接口,使得应用程序可以在不同的通信层之间进行切换,从而实现更高效的通信。所述一种适用于多协议的统一通信方法的设计思路是将通信层与应用程序解耦,使得应用程序可以使用相同的接口来访问不同的通信层,从而提高了应用程序的可移植性和可扩展性。
附图说明
图1为一个实施例中适用于多协议的统一通信方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种适用于多协议的统一通信方法,包括以下步骤:
步骤S20,根据通信需求构建插件接口;
步骤S40,基于所述插件接口对进行通信的发送端和接收端进行标签配置,根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作;
步骤S60,对所述统一通信操作中的通信过程进行基于多轨机制的优化处理。
在实施中,本申请提出了一种适用于多协议的统一通信方法,通过提供统一的编程接口,使得应用程序可以在不同的通信层之间进行切换,从而实现更高效的通信。设计思路是将通信层与应用程序解耦,使得应用程序可以使用相同的接口来访问不同的通信层,提高了应用程序的可移植性和可扩展性。
具体来说,定义了一组通用的应用程序接口,包括通信接口类型、端点类型、消息传输接口等。这些接口与具体的通信技术相关的实现细节是解耦的。现有方法的接口是硬编码到特定通信技术的,难以在不同技术之间切换。
在其中一个实施例中,在所述根据通信需求构建插件接口前,所述统一通信方法,还包括:
S10,定义通信过程中的通信接口以及对应所述通信的基础操作,构建包含应用程序接口层、通信接口层以及传输层在内的通信架构;
其中,所述应用程序接口层、所述通信接口层、所述传输层中均包括通用的应用程序编程接口。
定义通信接口类型:通信接口类型对象代表了一个通信接口,该结构体定义通信接口的属性和操作。定义通信接口类型的结构体的字段:
1:表示该通信接口所属的传输层组件的成员变量。
2:表示该通信接口所支持的操作的成员变量。
3:表示该通信接口所属的工作线程的成员变量。
4:表示该通信接口所使用的内存域的成员变量。
5:表示该通信接口的地址的成员变量。
6:表示该通信接口的端点地址长度的成员变量。
7:表示该通信接口的地址长度的成员变量。
8:表示该通信接口所使用的设备地址长度的成员变量。
9:表示该通信接口的名称的成员变量。
10:表示该通信接口的属性的成员变量。
定义通信接口类型的结构体的操作:
1:获取通信接口的属性,例如地址长度、设备地址长度、名称等。
2:获取通信接口的地址,用于创建端点。
3:注册回调函数,用于处理接收到的消息。
4:发送消息,包括短消息和长消息。
5:等待消息到达。
6:查询和设置通信参数。
7:销毁通信接口。
具体的,所述步骤S20,包括:
S22,定义传输层组件接口,所述传输层组件接口的结构体定义了传输层组件的属性和操作;
S24,定义通信接口类型,所述通信接口类型包括所述通信接口待实现的函数和数据结构;
S26,定义端点接口类型,所述端点接口包括端点需要实现的函数和数据结构。
在实施中,整体系统的设计架构主要分为三个层次:
应用程序接口层、通信接口层和传输层。
应用程序接口层提供了一组通用的应用程序编程接口,使得应用程序可以使用相同的接口来访问不同的通信层。
通信接口层提供了一组通用的应用程序编程接口,使得通信接口层可以使用相同的接口来实现不同的传输层。
传输层是最底层的层次,它实现了具体的通信协议,如传输控制协议、远程直接内存访问等。
基于上述三层架构,需要进行如下基础操作:
初始化和销毁通信接口,包括定义初始化通信接口的方法及定义销毁通信接口的方法。初始化通信接口的方法用于打开通信接口。其中,初始化通信接口的方法所需输入的参数包括:用于指定传输层组件的参数、用于指定工作线程的参数、用于指定通信接口参数、用于指定通信接口的配置的参数、用于返回打开的通信接口的参数。定义销毁通信接口的方法用于关闭通信接口。
创建和销毁端点,包括定义创建端点的方法及定义销毁端点的方法。创建端点的方法用来创建与远程主机通信的端点。其中,输入参数包括用于指定通信接口的参数和用于返回创建的端点的参数。销毁端点的方法用来销毁与远程主机通信的端点。输入参数包括待销毁的端点的参数。
数据传输包括定义传输短消息的方法及定义传输长消息的方法。定义传输短消息中的输入参数包括用于指定端点的参数、用于指定消息类型的id参数、用于指定消息头的参数、用于指定消息体的参数及用于指定消息体的长度的参数。定义传输长消息中的输入参数包括用于指定端点的参数、用于指定消息类型的id参数、用于指定打包回调函数的参数、用于指定打包回调函数参数的参数及用于指定传输标志的参数。
具体的,所述步骤S40,包括:
步骤S42,基于预设的标签配置,构建适用于待进行统一通信操作中发送端的带有标签消息的传输流程;
步骤S44,基于所述标签配置,构建适用于待进行统一通信操作中接收端的带有标签消息的接收流程;
步骤S46,根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作。
在实施中,适用于多协议的整体实现方法是基于插件机制,提供了一组插件接口,使得不同的传输层可以通过实现这些接口来与系统进行集成。还提供了一组默认的插件,包括传输控制协议、远程直接内存访问等,使得用户可以直接使用这些插件来进行通信。用户也可以通过实现插件接口,将自己实现的插件注册到系统中,扩展系统的功能,以便使用这些插件。这样可以大大扩展系统的功能,提高代码的可维护性和可重用性。
在实施基于插件机制的多协议的统一通信方法前,需要进行如下操作:
定义插件接口。定义一组插件接口,包括传输层组件接口、通信接口、端点接口。所述接口定义插件需要实现的函数和数据结构。
定义传输层组件接口。传输层组件结构体定义了传输层组件的属性和操作,包括:传输层组件的名称、传输层组件的配置前缀、传输层组件的配置表、传输层组件的配置大小、传输层组件查询函数、传输层组件通信接口函数、传输层组件内存域函数、传输层组件传输层函数。
定义通信接口类型,该接口定义通信接口需要实现的函数和数据结构。通信接口类型的结构体所包含如下各字段:通信接口所属的传输层组件、通信接口支持的操作、通信接口所属的工作线程、通信接口所使用的内存域、通信接口的地址、通信接口的端点地址长度、通信接口的地址长度、通信接口所使用的设备地址长度、通信接口的名称、通信接口的属性。
定义端点接口类型。定义端点接口类型,该接口定义了端点需要实现的函数和数据结构。端点接口类型的结构体包含表示该端点所属的通信接口的字段。
在完成上述定义后,还需要实施基于实现插件扩展系统的功能,具体包括实现传输层组件接口、通信接口、端点接口。
实现传输层组件,定义一个传输层组件,目的用于实现了传输层组件接口中的所有函数和数据结构。通过宏的方式,将该传输层组件注册到系统中,使得用户可以使用该组件进行通信。通过实现这些函数和数据结构,插件可以向系统注册自己的传输层组件,并提供相应的通信接口和内存域。
实现通信接口,通过实现通信接口类型结构体中的各个字段,提供自己的实现,例如支持的操作、所属的工作线程、使用的内存域等。
实现端点接口,通过实现端点接口类型的结构体中的各个字段,端点接口可以提供自己的实现,例如所属的通信接口等。
本实施例中实现标签匹配的目的在于让发送端和接收端通过标签来匹配消息,从而实现更加灵活和高效的通信,可以满足各种不同的通信需求。
标签匹配的实现主要涉及两个部分:发送端和接收端。对应的,需要执行步骤S42、S44用于构建适用于待进行统一通信操作中发送端的带有标签消息的传输流程及构建适用于待进行统一通信操作中接收端的带有标签消息的接收流程;
具体的,步骤S42包括:
步骤S422,从当前工作线程的请求池中获取一个请求对象用于创建了发送请求,对所述发送请求进行初始化操作;
步骤S424,将处理后的所述发送请求发送至接收端,接收所述接收端返回的请求对象。
在实施中,本步骤的要点在于定义带有标签消息的发送端法。
发送端通过调用所述带有标签消息的发送端法来发送带有标签的消息,在发送端,所述带有标签消息的发送端法会将消息和标签打包成一个发送请求,并将请求发送给接收端。定义带有标签消息的发送端法:首先通过从当前工作线程的请求池中获取一个请求对象来创建了一个发送请求,并初始化请求的各个参数,包括通信端点、消息缓冲区、消息长度、消息数据类型、消息标签、消息发送完成后的回调函数。然后,发送请求。总的来说,带有标签消息的发送端法的实现过程主要包括创建发送请求、初始化请求参数、发送请求、返回请求对象步骤。通过这些步骤,实现带有标签的消息的发送功能。
具体的,步骤S44包括:
步骤S442,从接收队列中获取请求,将所述请求和标签进行匹配;
步骤S444,如果匹配成功,则将消息传递给应用程序;
步骤S446,如果匹配失败,则将所述请求存储在队列中,等待后续的匹配。
在实施中,本步骤的要点在于定义带有标签消息的接收端法。
接收端则通过调用所述带有标签消息的接收端法来接收带有标签的消息。在接收端,所述带有标签消息的接收端法会从接收队列中获取请求,并将请求和标签进行匹配,如果匹配成功,则将消息传递给应用程序。如果匹配失败,则将请求存储在一个队列中,等待后续的匹配。带有标签消息的接收端法的定义过程:首先创建了一个接收请求,并初始化了请求的各个参数,包括消息的内容、标签、回调函数等。然后,接收请求。
在分别构建对应发送端、接收端的处理流程后,即可实现标签匹配的功能。即步骤S46包括:
S462,构造标签匹配结构体;
S464,将标签匹配规则添加到所述标签匹配结构体的规则列表中,当接收到指定标签的消息时,调用回调函数处理消息。
在实施中,步骤S462,具体包括:
构造标签匹配结构体的规则列表模块。所述标签匹配结构体的立即匹配规则列表成员字段是一个数组,数组中的每个元素都是一个标签匹配项的结构体,所述标签匹配项的结构体用于存储一个标签匹配规则的信息。包含如下过程:
定义标签匹配项的结构体。所述标签匹配项的结构体用于存储一个标签匹配规则的信息。所述标签匹配项的结构体包含了一个标签匹配规则的所有信息,如标签、标签掩码、消息长度和回调函数,其中所述回调函数是用于处理匹配到的消息。
定义立即匹配规则列表的结构体。立即匹配规则列表的结构体包含一个规则列表的所有信息,如规则列表、规则数量和规则列表的最大长度。
定义标签匹配结构体。该标签匹配结构体包含立即匹配规则列表字段,用于存储立即匹配规则。
初始化标签匹配结构体的字段。将标签匹配结构体中的所有字段初始化为默认值。
步骤S464,具体包括:
将标签匹配规则添加到标签匹配结构体的规则列表中。将添加一个标签匹配规则,当接收到指定的标签的消息时,会调用回调函数处理消息。总的来说,将标签匹配规则添加到标签匹配结构体的规则列表中的实现过程比较简单,主要是将标签匹配规则添加到标签匹配结构体的规则列表中。需要注意的是,检查标签匹配结构体的规则列表是否已经满了,如果已经满了,则会扩展规则列表的大小。这样可以确保标签匹配结构体中始终有足够的空间来存储标签匹配规则。
其实现过程如下:
首先,检查传入的标签匹配结构体是否已经初始化,如果没有初始化,则初始化标签匹配结构体的字段。
然后,检查传入的标签匹配规则是否已经存在于标签匹配结构体中,如果已经存在,则直接返回。
如果标签匹配规则不存在,则会将标签匹配规则添加到标签匹配结构体的规则列表中。具体实现过程如下:
检查标签匹配结构体的规则列表是否已经满了,如果已经满了,则会扩展规则列表的大小。将标签匹配规则添加到规则列表的末尾。将标签匹配结构体中的规则数量加1。
添加标签匹配规则后,函数会返回成功。
在基于前述内容完成适用于多协议的统一通信方法后,为了提高已有通信方法的效率,还可以基于多轨机制优化通信性能。所述多轨机制是将通信任务分配到不同的轨道上,每个轨道都有自己的通信资源和优先级。根据通信任务的类型和优先级来选择合适的轨道进行通信。
具体的,步骤S60,包括:
S62,在数据传输时,将通信任务分配到不同的轨道;
S64,根据轨道优先级和通信资源的使用情况来选择合适的轨道进行通信。
在实施中,初始化工作线程结构体:创建工作线程结构体。在创建工作线程结构体时,会为每个轨道分配通信资源,包括发送和接收缓冲区、计数器等。同时,还会为每个轨道设置优先级,用于决定轨道的调度顺序。
建立连接:根据传输层的不同实现不同的连接建立方式。在建立成功后,将连接信息保存在端点接口类型的结构体中,以便后续的数据传输。每个端点接口类型的结构体都会关联一个轨道,用于处理该连接上的通信任务。
数据输:在数据传输时,将通信任务分配到不同的轨道上。根据通信任务的类型和优级来选择合适的轨道进行通信。在发送数据时,将数据封装成一个名为通信请求的结构体,该结构体包含了数据的地址、长度和标志等信息。在接收数据时,处理接收到的数据。
轨道调度:根据轨道优先级和通信资源的使用情况来选择合适的轨道进行通信。在数据传输时,遍历所有轨道,选择优先级最高的轨道进行通信。如果该轨道的通信资源已经用尽,则会选择优先级次高的轨道进行通信。如果所有轨道的通信资源都已经用尽,则会等待通信资源的释放,直到有轨道的通信资源可用为止。
进一步的,本申请实施例提供的适用于多协议的统一通信方法,还提供了统一内存管理接口,用于在分布式内存系统中进行通信。支持多种内存类型,包括主机内存、图形处理器内存和远程直接内存访问的内存等。这种设计使得可以在不同的内存系统中进行通信,从而提高了通信的性能和可扩性。
统一内存管理接口的实现过程如下:
内存类型的定义。定义内存类型的结构体。所述内存类型的结构体包含了内存类型、内存地址和内存大小成员字段。所述内存类型的结构体支持多种内存类型,包括主机内存、图形处理器内存和远程直接内存访问的内存等。每种内存类型都有一个对的内存分配器,用于分配和管理该类型的内存。
内存分配器的实现。所述内存分配器接受一个表示上下文环境的结构体作为参数。在内存分配器中,根据内存类型的不同,选择不同的分配策略。例如,对于主机内存,可以使用标准的malloc函数来分配内存;对于图形处理器内存,可以使用统一计算设备架构(CUDA)的内存分配函数来分配内存;对于远程直接内存访问的内存,可以使用远程直接内存访问的内存分配函数来分配内存。
内存访问的实现。所述内存访问是通过所述用于表示远程内存的访问权限结构体来实现的。在内存访问中,需要根据内存类型的不同,选择不同的访问策略。例如,对于主机内存,可以使用标准的memcpy函数来进行内存拷贝;对于图形处理器内存,可以使用统一计算设备架构(CUDA)的内存拷贝函数来进行内存拷贝;对于远程直接内存访问的内存,可以使用远程直接内存访问的内存拷贝函数来进行内存拷贝。
实现远程内存访问的过程如下:首先创建了一个表示上下文环境的结构体对象和一个工作线程结构体对象,然后创建了一个端点接口类型的结构体对象,用于与远程主机通信。接下来,获取了远程内存的访问权限,从远程内存中读取数据。最后,释放了所有的资源。需要注意的是,所述用于表示远程内存的访问权限结构体包含了内存类型、内存地址和内存大小成员字段。所述用于表示远程内存的访问权限结构体对象只能用于访问特定的远程内存,不能用于访问其他内存。因此,在使用远程内存的访问权限时,需要确保它所表示的远程内存仍然存在,并且没有被释放。
内存释放的实现。所述内存释放方法接受一个内存类型的结构体作为参数,用于表示要释放的内存。在内存释放中,根据内存类型的不同,选择不同的释放策略。例如,对于主机内存,可以使用标准的free函数来释放内存;对于图形处理器内存,可以使用统一计算设备架构(CUDA)的内存释放函数来释放内存;对于远程直接内存访问的内存,可以使用远程直接内存访问的内存释放函数来释放内存。
基于前述实施例可知,本申请提出的基于插件的机制,使得不同的通信技术可以通过实现所述一种适用于多协议的统一通信方法定义的接口来接入系统。这种插件机制使得所述一种适用于多协议的统一通信方法具有很好的扩展性,可以支持更多类型的通信技术。
所述一种适用于多协议的统一通信方法内置了常用的通信技术的插件,比如无限带宽总线、以太网和英伟达高速互联等。应用开发者可以选择使用这些插件,也可以实现自己的插件来扩展所述一种适用于多协议的统一通信方法。
此外,所述一种适用于多协议的统一通信方法实现了一种基于标签的高性能通信机制。通过在消息中包含标签,发送端和接收端可以更加灵活和高效地进行消息匹配,满足各种不同的通信模式。相比其他通信库,这种机制可以大大提高通信效率和灵活性。
所述一种适用于多协议的统一通信方法还利用多轨机制将通信任务分配到不同的通信轨道上,进一步提高了通信性能和可靠性。
总之,所述一种适用于多协议的统一通信方法提供了一个易于使用且高性能的通信解决方案。定义了统一的编程接口,可以支持多种通信技术,并具有良好的可扩展性和灵活性,是高性能计算领域一个非常有用的工具。相比现有方法,所述一种适用于多协议的统一通信方法可以大大减少应用开发难度,提高代码复用率和通信性能。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric RandomAccess Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (4)

1.一种适用于多协议的统一通信方法,其特征在于,所述统一通信方法包括:
根据通信需求构建插件接口;
基于所述插件接口对进行通信的发送端和接收端进行标签配置,根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作;
对所述统一通信操作中的通信过程进行基于多轨机制的优化处理;
所述根据通信需求构建插件接口,包括:
定义传输层组件接口,所述传输层组件接口的结构体定义了传输层组件的属性和操作;
定义通信接口类型,所述通信接口类型包括所述通信接口待实现的函数和数据结构;
定义端点接口类型,所述端点接口包括端点需要实现的函数和数据结构;
所述基于所述插件接口对进行通信的发送端和接收端进行标签配置,根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作,包括:
基于预设的标签配置,构建适用于待进行统一通信操作中发送端的带有标签消息的传输流程;
基于所述标签配置,构建适用于待进行统一通信操作中接收端的带有标签消息的接收流程;
根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作;
所述基于预设的标签配置,构建适用于待进行统一通信操作中发送端的带有标签消息的传输流程,包括:
从当前工作线程的请求池中获取一个请求对象用于创建发送请求,对所述发送请求进行初始化操作;
将处理后的所述发送请求发送至所述接收端,接收所述接收端返回的请求对象;
所述基于所述标签配置,构建适用于待进行统一通信操作中接收端的带有标签消息的接收流程,包括:
从接收队列中获取请求,将所述请求和标签进行匹配;
如果匹配成功,则将所述标签消息传递给应用程序;
如果匹配失败,则将所述请求存储在队列中,等待后续的匹配;
所述根据标签匹配机制控制配置后的所述发送端、所述接收端进行统一通信操作,包括:
构造标签匹配结构体;
将标签匹配规则添加到所述标签匹配结构体的规则列表中,当接收到指定标签的所述标签消息时,调用回调函数处理消息;
所述对所述统一通信操作中的通信过程进行基于多轨机制的优化处理,包括:
在数据传输时,将通信任务分配到不同的轨道;
根据轨道优先级和通信资源的使用情况来选择合适的轨道进行通信。
2.根据权利要求1所述的适用于多协议的统一通信方法,其特征在于,在所述根据通信需求构建插件接口前,所述统一通信方法,还包括:
定义通信过程中的通信接口以及对应所述通信的基础操作,构建包含应用程序接口层、通信接口层以及传输层在内的通信架构;
其中,所述应用程序接口层、所述通信接口层、所述传输层中均包括通用的应用程序编程接口。
3.根据权利要求1所述的适用于多协议的统一通信方法,其特征在于,所述将标签匹配规则添加到所述标签匹配结构体的规则列表中,当接收到指定标签的消息时,调用回调函数处理消息,包括:
检查传入的所述标签匹配结构体是否已经初始化,如果没有初始化,则对所述标签匹配结构体的字段进行初始化操作;
检查传入的所述标签匹配规则是否已经存在于所述标签匹配结构体中,如果已经存在,则直接返回;
如果所述标签匹配规则不存在,将所述标签匹配规则添加到所述标签匹配结构体的规则列表中。
4.根据权利要求1所述的适用于多协议的统一通信方法,其特征在于,所述适用于多协议的统一通信方法,还包括:设计统一内存管理接口;
其中,所述设计统一内存管理接口,包括:
使用远程直接内存访问的内存分配函数来分配内存;
在内存访问结束后进行内存释放。
CN202310742070.3A 2023-06-21 2023-06-21 一种适用于多协议的统一通信方法 Active CN116506523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310742070.3A CN116506523B (zh) 2023-06-21 2023-06-21 一种适用于多协议的统一通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310742070.3A CN116506523B (zh) 2023-06-21 2023-06-21 一种适用于多协议的统一通信方法

Publications (2)

Publication Number Publication Date
CN116506523A CN116506523A (zh) 2023-07-28
CN116506523B true CN116506523B (zh) 2023-09-19

Family

ID=87328613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310742070.3A Active CN116506523B (zh) 2023-06-21 2023-06-21 一种适用于多协议的统一通信方法

Country Status (1)

Country Link
CN (1) CN116506523B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866326A (zh) * 2010-05-24 2010-10-20 北京航空航天大学 一种消息传递接口支持总线通信框架
CN113467972A (zh) * 2021-06-30 2021-10-01 广州华多网络科技有限公司 通信接口构造方法、装置以及计算机设备、存储介质
CN113839902A (zh) * 2020-06-08 2021-12-24 腾讯科技(深圳)有限公司 通信协议适配方法、装置、计算机设备和存储介质
CN114637554A (zh) * 2022-03-18 2022-06-17 中国建设银行股份有限公司 接口调用方法、装置、设备及存储介质
CN114816792A (zh) * 2022-04-20 2022-07-29 北京计算机技术及应用研究所 一种基于专用通道的远程函数调用方法
CN115834375A (zh) * 2022-11-30 2023-03-21 重庆长安汽车股份有限公司 一种车端服务通信配置方法、系统、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107204908A (zh) * 2016-03-17 2017-09-26 阿里巴巴集团控股有限公司 一种基于通信接口框架的消息发送、接收方法及装置
US10498672B2 (en) * 2017-01-30 2019-12-03 Mellanox Technologies, Ltd. Mechanism for distributing MPI tag matching

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866326A (zh) * 2010-05-24 2010-10-20 北京航空航天大学 一种消息传递接口支持总线通信框架
CN113839902A (zh) * 2020-06-08 2021-12-24 腾讯科技(深圳)有限公司 通信协议适配方法、装置、计算机设备和存储介质
CN113467972A (zh) * 2021-06-30 2021-10-01 广州华多网络科技有限公司 通信接口构造方法、装置以及计算机设备、存储介质
CN114637554A (zh) * 2022-03-18 2022-06-17 中国建设银行股份有限公司 接口调用方法、装置、设备及存储介质
CN114816792A (zh) * 2022-04-20 2022-07-29 北京计算机技术及应用研究所 一种基于专用通道的远程函数调用方法
CN115834375A (zh) * 2022-11-30 2023-03-21 重庆长安汽车股份有限公司 一种车端服务通信配置方法、系统、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R. Housley ; Vigil Security ; .Using Pre-Shared Key (PSK) in the Cryptographic Message Syntax (CMS).IETF .2019,全文. *
面向对象的电力负荷监控通信规约插件;赵庆建;郜振华;陈森发;;东南大学学报(自然科学版)(02);全文 *

Also Published As

Publication number Publication date
CN116506523A (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
US10891305B2 (en) Synchronization of data between systems
US7757232B2 (en) Method and apparatus for implementing work request lists
US8281060B2 (en) Virtual heterogeneous channel for message passing
KR20190055721A (ko) KV-SSD를 사용하여 확장성있는 객체 스토리지를 구성하고 액세스하는 방법 및 KV-SSD, NVMe-SSD 및 기타 플래시 장치의 하이브리드(HUBBRID) 백엔드 스토리지 계층
US8813093B2 (en) Integration of disparate applications on a network
US5974420A (en) Information exchange operator for a tuplespace
US20210200690A1 (en) Fine grained memory and heap management for sharable entities across coordinating participants in database environment
CN105389120B (zh) 支持通过活动消息的rma api
CN103312624A (zh) 一种消息队列服务系统和方法
JP2005160075A (ja) カスタマイズ可能なタグベースのプロトコルにおける参照による送信
US8438303B2 (en) Audit logging and role based security using one way proxy architecture
CN116225578A (zh) 数据序列化方法、反序列化方法、进程间指令参数传递方法
CN116775522A (zh) 一种基于网络设备的数据处理方法及网络设备
CN116506523B (zh) 一种适用于多协议的统一通信方法
US10938960B2 (en) System and method for implementing augmented object members for remote procedure call
US20090240925A1 (en) Device, method, and computer program product that process message
CN114911421B (zh) 基于csi插件的数据存储方法、系统、装置及存储介质
US9418240B2 (en) Database hierarchical inheritance
US9990303B2 (en) Sharing data structures between processes by semi-invasive hybrid approach
US9058225B2 (en) Secure and reliable mechanism to provide a single object instance in a clustered system
WO2020221033A1 (zh) 管理设备对远端存储设备进行管理的方法
US20120311289A1 (en) Persistent data storage
CN110309191A (zh) 存储业务数据的方法、装置和系统
US9104637B2 (en) System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface
CN113190353A (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
GR01 Patent grant
GR01 Patent grant