CN107257272A - 数据发送方法、发送终端及接收终端 - Google Patents
数据发送方法、发送终端及接收终端 Download PDFInfo
- Publication number
- CN107257272A CN107257272A CN201710547561.7A CN201710547561A CN107257272A CN 107257272 A CN107257272 A CN 107257272A CN 201710547561 A CN201710547561 A CN 201710547561A CN 107257272 A CN107257272 A CN 107257272A
- Authority
- CN
- China
- Prior art keywords
- context
- node
- data
- transmission
- reception
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1854—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种数据发送方法、发送终端及接收终端,其中所述方法包括:获取数据发送请求信息,并检测空闲发送上下文的数量;若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。本发明所提供的数据发送方法、发送终端及接收终端避免了数据带宽的浪费,隐藏了建立连接延迟,缩短了数据通信时间,获得更高的通信性能。
Description
技术领域
本发明涉及通信领域,特别涉及一种数据发送方法、发送终端及接收终端。
背景技术
并行计算机系统通常是由多个计算结点(简记为结点)和互连网络组成,结点由处理器、网络接口和内存组成,结点通过网络接口进行数据的发送和接收,结点间通过互连网络进行通信。并行计算机系统中,一种基本的通信模式是在两个结点(记为发送结点和接收结点)间的内存中进行数据拷贝,也就是发送结点将本结点内存区域中的数据写入到接收结点的内存区域中。单边通信(One-side Communication)和双边通信(Two-sideCommunication)是实现上述通信模式的两种常用通信机制。单边通信是发送结点在发送数据时已经知道接收缓冲区的内存地址,能通过网络将数据直接写入接收结点对应的内存区域中,这种通信机制通常也称为远程直接内存访问(Remote Direct Memory Access,RDMA)。双边通信是发送结点在发送数据时不知道接收缓冲区的内存地址,在通过网络将数据发送给接收结点之后,再由接收结点将数据写入对应的内存区域中。
单边通信和双边通信都需要依赖并行计算机的互连网络完成,一般来说,一次数据通信的数据量可能很大,在互连网络上进行数据传输时,需要将一次数据传输拆分成多个报文,各个报文独立地由发送结点传输到接收结点。
大规模并行计算机系统中,互连网络的规模通常很大,在实现上,难以保证互连网络的可靠性,例如,网络中的某条通路可能会出现偶发错误或短暂断开。不可靠的互连网络造成的结果是发送结点向接收结点传输的报文,不一定能够最终到达接收结点。随着并行计算机系统规模的不断扩大,系统互连网络规模也随之增加,平均无故障时间(Mean TimeTo Failure,MTTF)不断缩小,单纯依靠链路级数据重传机制已无法保证互连网络的可靠性,一般需要端到端数据重传机制来进一步提高互连网络的可靠性。为了提高重传性能和减少处理器的占用率,端到端数据重传机制一般都在网络接口中由硬件实现。
其中,端到端数据重传机制一般有两种硬件实现方法。第一种实现方法是静态连接机制,每条通信连接都有固定的发送上下文和接收上下文,在通信连接创建时分配,且在整个数据通信期间不再改变,直到通信连接断开才释放对应的发送和接收上下文。由于系统需要为每条通信连接都分配固定的发送和接收上下文,对于大规模并行计算机系统,随着通信连接数的增多,所需的上下文数量也会急剧增加。例如,系统有N个结点,每个结点上有M个进程,如果所有进程进行AlltoAll通信,那么每个结点所需要分配的发送上下文和接收上下文的数量都为M*M*N。由于网络接口硬件资源有限,无法存放的上下文将不得不存储在结点的内存中,这不仅会大量消耗结点内存资源,影响系统可扩展性,而且上下文在网络接口和结点内存之间的频繁来回传输也会影响通信性能。第二种实现方法是动态连接机制,通信连接是在数据通信时动态创建的,系统为每条临时创建的通信连接分配临时的发送上下文和接收上下文,当临时创建的通信连接的数据传输任务完成后,对应的临时分配的上下文立即被释放,被释放的上下文可供其它通信连接使用。由于发送上下文和接收上下文是在数据通信过程中按需分配的,因此每个结点所需的上下文数量将大幅减少且与系统规模无关,这使得系统具有较好的可扩展性。另外,上下文资源能完全存储在网络接口中,不用占用结点内存,也消除了结点内存与网络接口之间的上下文传输,从而有利于提高通信性能。
动态连接机制的通信连接是在有数据发送需求时临时创建的,建立连接时发送结点需要分配发送上下文并向接收结点发送建立连接请求,接收结点在收到建立连接请求后需要分配接收上下文,并向发送结点返回建立连接成功响应。
发明内容
本发明提供了一种数据发送方法、发送终端及接收终端,其目的是为了解决数据传送时数据通信时间过长或浪费数据带宽的问题。
为了达到上述目的,本发明的实施例提供了一种数据发送方法,适用于并行计算机系统的发送结点,所述方法包括:
获取数据发送请求信息,并检测空闲发送上下文的数量;
若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;
根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;
向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。
其中,所述方法还包括:
向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量等于零,则待接收到建立连接成功响应信息后,再向所述接收结点发送数据。
其中,所述方法还包括:
在发送所述发送数据的过程中,接收所述发送数据的数据响应信息。
其中,所述方法还包括:
待收到最后一个数据响应信息后,向所述接收结点发送连接断开请求,切断与所述接收结点的连接。
本发明的实施例还提供了一种数据发送方法,适用于并行计算机系统的接收结点,所述方法包括:
接收发送结点发送的建立连接请求,并检测空闲接收上下文的数量;
若所述空闲接收上下文数量大于零,则将所述空闲接收上下文分配为用于存储所述发送数据的临时状态信息的接收上下文;
向所述发送结点反馈建立连接成功响应信息,接收所述发送数据。
其中,所述方法还包括:
若所述空闲接收上下文数量等于零,则向所述发送结点反馈建立连接拒绝响应信息。
其中,所述方法还包括:
在接收所述发送数据的过程中,向所述发送结点反馈所述发送数据发送成功的响应信息。
其中,所述方法还包括:
接收所述发送结点发送的连接断开请求,切断与所述发送结点的连接。
本发明的实施例还提供了一种发送终端,包括:
第一检测模块,用于获取数据发送请求信息,并检测空闲发送上下文的数量;
第一分配模块,用于若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;
获取模块,用于根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;
第一发送模块,用于向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。
本发明的实施例还提供了一种接收终端,包括:
第二检测模块,用于接收发送结点发送的建立连接请求,并检测空闲接收上下文的数量;
第二分配模块,用于若所述空闲接收上下文数量大于零,则将所述空闲接收上下文分配为用于接收发送数据的接收上下文;
第二接收模块,用于向所述发送结点反馈建立连接成功响应信息,接收所述发送数据。
本发明的上述方案有如下的有益效果:
本发明所提供的数据发送方法、发送终端及接收终端通过在发送结点增加上下文预测部件,使得发送结点可以动态跟踪远程接收结点的接收上下文数量,当预测远程结点无可用接收上下文时,数据必须等待接收到建立连接成功响应后才能发出,从而避免了数据带宽的浪费;当预测远程结点有可用接收上下文时,数据在建立连接请求发出后可以立即发送,从而隐藏了建立连接延迟,缩短了数据通信时间;本发明所提供的数据发送方法、发送终端及接收终端还可以通过在接收结点的上下文反馈部件中增加优先级表格,使得软件可以灵活配置发送结点可以以隐藏建立连接延迟的发送发式所能使用的接收上下文的最大数量,这使得优先级高的发送结点有更多的机会在发出建立连接请求后立即发送数据,从而获得更高的通信性能。
附图说明
图1为本发明的数据发送方法的发送端的流程示意图;
图2为本发明的数据发送方法的发送端的具体流程示意图;
图3为本发明的数据发送方法的接收端的流程示意图;
图4为本发明的数据发送方法的接收端的具体流程示意图;
图5为本发明的发送终端及接收终端的结构示意图;
图6为本发明的并行计算机系统的结构示意图;
图7为本发明的接收上下文预测表RCPT表项的结构示意图;
图8为本发明的上下文反馈部件中优先级表PT表项的结构示意图;
图9为本发明的发送结点与接收结点之间的交互流程示意图之一;
图10为本发明的发送结点与接收结点之间的交互流程示意图之二;
图11为本发明的发送结点与接收结点之间的交互流程示意图之三。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的数据传送时数据通信时间过长或浪费数据带宽的问题,提供了一种数据发送方法、发送终端及接收终端。
如图1所示,本发明的实施例提供了一种数据发送方法,适用于并行计算机系统的发送结点,所述方法包括:
步骤11,获取数据发送请求信息,并检测空闲发送上下文的数量;
步骤12,若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;
步骤13,根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;
步骤14,向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。
本发明的上述实施例所述的数据发送方法在发送结点的网络接口增加上下文预测部件,用于记录远程结点空闲接收上下文的数量;上下文预测部件主要由接收上下文预测表RCPT(Receive Context Predict Table)构成,RCPT可以组织为表格形式,表格中的每一项包含两个位域,即结点号NodeID和空闲接收上下文数量RCNUM。一般来说,如果并行计算机系统包含N个结点,则该表格就有N-1项,其中每一项对应一个远程结点。查询该表格时,以结点号为索引,即可获取对应结点的空闲接收上下文数量。初始化时,RCPT的所有RCNUM都设置为0。当N较大时,RCPT会占用较多的硬件资源,此时RCPT可以组织为Cache形式,将NodeID作为Cache的访问地址(即NodeID的低位为Cache的缓存标记索引Index,高位为Cache的缓存标记Tag),而RCNUM则作为Cache数据体中存储的内容。当Cache命中时,Cache将返回对应NodeID的RCNUM,而当Cache失效时,则假定对应NodeID的RCNUM为0;通过在发送结点增加上下文预测部件,使得发送结点可以动态跟踪远程接收结点的接收上下文数量。当预测远程结点无可用接收上下文时,数据必须等待接收到建立连接成功响应后才能发出,从而避免了数据带宽的浪费;当预测远程结点有可用接收上下文时,数据在建立连接请求发出后可以立即发送,从而隐藏了建立连接延迟,缩短了数据通信时间。
其中,Cache的替换策略可以采用LRU或Pseudo-LRU替换策略;响应报文增加位域RCNUM,用于携带接收结点返回的发送结点所能使用的空闲接收上下文数量。响应报文一般包括建立连接成功响应CnctAck、建立连接拒绝响应CnctNack、数据响应DataAck等等。
其中,所述方法还包括:
向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量等于零,则待接收到建立连接成功响应信息后,再向所述接收结点发送数据。
如图2所示,所述方法还包括:
步骤15,在发送所述发送数据的过程中,接收所述发送数据的数据响应信息。
其中,所述方法还包括:
步骤16,待收到最后一个数据响应信息后,向所述接收结点发送连接断开请求,切断与所述接收结点的连接。
本发明的上述实施例所述的数据发送方法在发送结点的具体执行步骤如下:
1)发送结点N收到去往接收结点M的数据发送请求;
2)发送结点检查是否有空闲的发送上下文,如果没有则停留在2)一直等待,直到有空闲的发送上下文可供使用;
3)发送结点分配发送上下文;
4)设置DataStart=False,DataStart指示数据传输是否已经启动,True表示数据传输已经启动,False表示数据传输还未开始;
5)在上下文预测部件的RCPT中查询M所对应的RCNUM,如果RCPT[M].RCNUM=0,则说明接收方无可用接收上下文,发出建立连接请求后必须等到收到建立连接成功响应后才能发送数据,跳转到8)执行;
6)RCPT[M].RCNUM>0说明接收方有可用接收上下文,发出建立连接请求后可以立即发送数据,而不必等待建立连接成功响应的到来,设置RCPT[M].RCNUM=RCPT[M].RCNUM-1,DataStart=True;
7)向接收结点M发送建立连接请求CnctReq,然后紧接着发送数据Data,跳转到9)执行;
8)向接收结点M发送建立连接请求CnctReq;
9)等待来自M的响应报文,如果收到建立连接成功响应报文CnctAck则跳转到10)执行,如果收到建立连接拒绝响应报文CnctNack则跳转到13)执行,如果收到数据响应报文DataAck则跳转到14)执行,否则一直停留在9)等待响应报文的到来;
10)更新RCPT[M].RCNUM=CnctAck.RCNUM;
11)判断数据传输是否已经启动,如果DataStart=True则跳转到9)执行;
12)向接收结点M发送数据Data,跳转到9)执行;
13)更新RCPT[M].RCNUM=CnctNack.RCNUM,跳转到4)执行;
14)更新RCPT[M].RCNUM=DataAck.RCNUM;
15)判断是否所有的数据响应都已经收齐,如果还未收齐则跳转到9)执行;
16)释放发送上下文并向接收结点M发送连接断开请求DiscnctReq。
如图3所示,本发明的实施例还提供了一种数据发送方法,适用于并行计算机系统的接收结点,所述方法包括:
步骤21,接收发送结点发送的建立连接请求,并检测空闲接收上下文的数量;
步骤22,若所述空闲接收上下文数量大于零,则将所述空闲接收上下文分配为用于存储所述发送数据的临时状态信息的接收上下文;
步骤23,向所述发送结点反馈建立连接成功响应信息,接收所述发送数据。
本发明的上述实施例所述的数据发送方法通过在所述接收结点的网络接口增加上下文反馈部件,用于向发送结点提供可以使用的本结点接收上下文数量;上下文反馈部件包含一个优先级表PT(Priority Table),用于限制发送结点可以以隐藏建立连接延迟的发送发式所能使用的接收上下文的最大数量。PT的每一项包含三个位域,即有效标志V、结点号NodeID和接收上下文数量上界UpperLimit。查询该表格时,以(V,NodeID)为索引,即可获取对应结点的UpperLimit。假定接收结点的空闲接收上下文数量为FreeRCNUM,最终接收结点向发送结点返回的空闲接收上下文数量为MIN{UpperLimit,FreeRCNUM}。PT的总项数应根据网络接口所能提供的硬件资源进行合理设置,其值可以小于并行计算机系统中的结点总数。如果某个NodeID在某个接收结点的PT中查询失败,则假定该NodeID对应的UpperLimit为缺省值DUL(Default UpperLimit)。如果DUL为0,这意味着该NodeID必须以显示建立通信连接的方式与该接收结点进行通信。PT表和DUL由管理软件配置,并且在通信过程中可以动态调整;通过在接收结点的上下文反馈部件中增加优先级表格,使得软件可以灵活配置发送结点可以以隐藏建立连接延迟的发送发式所能使用的接收上下文的最大数量,这使得优先级高的发送结点有更多的机会在发出建立连接请求后立即发送数据,从而获得更高的通信性能。
其中,所述方法还包括:
若所述空闲接收上下文数量等于零,则向所述发送结点反馈建立连接拒绝响应信息。
如图5所示,,所述方法还包括:
步骤24,在接收所述发送数据的过程中,向所述发送结点反馈所述发送数据发送成功的响应信息。
其中,所述方法还包括:
步骤25,接收所述发送结点发送的连接断开请求,切断与所述发送结点的连接。
本发明的上述实施例所述的数据发送方法在接收结点的具体执行步骤如下:
1)等待来自发送结点的请求报文,如果是来自发送结点N的建立连接请求报文CnctReq则跳转到2)执行,如果是来自发送结点N的数据报文Data则跳转到6)执行,如果是来自发送结点N的连接断开请求报文则跳转到8)执行,否则一直停留在1)等待请求报文的到来;
2)接收结点检查是否有空闲的接收上下文,如果没有则跳转到5)执行;
3)接收结点分配接收上下文;
4)接收结点向发送结点N返回建立连接成功响应CnctAck,并设置CnctAck.RCNUM=MIN{PT[N].UpperLimit,FreeRCNUM},然后跳转到1)执行;
5)接收结点向发送结点N返回建立连接拒绝响应CnctNack,并设置CnctNack.RCNUM=MIN{PT[N].UpperLimit,FreeRCNUM},然后跳转到1)执行;
6)如果对应的接收上下文不存在则跳转到7)执行,否则接收结点向发送结点N返回数据响应DataAck,设置DataAck.RCNUM=MIN{PT[N].UpperLimit,FreeRCNUM},然后跳转到1)执行;
7)丢弃Data报文,然后跳转到1)执行;
8)释放对应的接收上下文,然后跳转到1)执行。
其中,本发明的上述实施例所述的数据发送方法的具体执行步骤如下:
1)发送结点收到数据发送请求。
2)发送结点分配发送上下文。
3)发送结点根据上下文预测部件判断是否可以在发出建立连接请求后立即发送数据。如果不能立即发送数据则跳转到6)执行。
4)发送结点向接收结点发送建立连接请求后立即发送数据。
5)接收结点收到建立连接请求后分配接收上下文并返回建立连接成功响应,然后跳到9)执行。
6)发送结点向接收结点发送建立连接请求。
7)接收结点收到建立连接请求后分配接收上下文并返回建立连接成功响应。
8)发送结点收到建立连接成功响应后发送数据。
9)接收结点收到数据并返回数据响应。
10)发送结点收到最后一个数据响应后发出连接断开请求并释放发送上下文。
11)接收结点收到连接断开请求后释放接收上下文。
如图5所示,本发明的实施例还提供了一种发送终端,包括:
第一检测模块,用于获取数据发送请求信息,并检测空闲发送上下文的数量;
第一分配模块,用于若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;
获取模块,用于根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;
第一发送模块,用于向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。
其中,本发明的上述实施例所述的发送终端可以为上述的发送结点。
其中,所述第一发送模块还用于向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量等于零,则待接收到建立连接成功响应信息后,再向所述接收结点发送数据。
其中,所述发送终端还包括:
第一接收模块,用于在发送所述发送数据的过程中,接收所述发送数据的数据响应信息。
其中,所述发送终端还包括:
第二发送模块,用于待收到最后一个数据响应信息后,向所述接收结点发送连接断开请求,切断与所述接收结点的连接。
本发明的实施例还提供了一种接收终端,包括:
第二检测模块,用于接收发送结点发送的建立连接请求,并检测空闲接收上下文的数量;
第二分配模块,用于若所述空闲接收上下文数量大于零,则将所述空闲接收上下文分配为用于接收发送数据的接收上下文;
第二接收模块,用于向所述发送结点反馈建立连接成功响应信息,接收所述发送数据。
其中,本发明的上述实施例所述的接收终端可以为上述的接收结点。
其中,所述第二接收模块还用于若所述空闲接收上下文数量等于零,则向所述发送结点反馈建立连接拒绝响应信息。
其中,所述接收终端还包括:
第三发送模块,用于在接收所述发送数据的过程中,向所述发送结点反馈所述发送数据发送成功的响应信息。
其中,所述接收终端还包括:
第三接收模块,用于接收所述发送结点发送的连接断开请求,切断与所述发送结点的连接。
本发明的上述实施例所述的数据发送方法、发送终端及接收终端通过在发送结点增加上下文预测部件,使得发送结点可以动态跟踪远程接收结点的接收上下文数量。当预测远程结点无可用接收上下文时,数据必须等待接收到建立连接成功响应后才能发出,从而避免了数据带宽的浪费;当预测远程结点有可用接收上下文时,数据在建立连接请求发出后可以立即发送,从而隐藏了建立连接延迟,缩短了数据通信时间;通过在接收结点的上下文反馈部件中增加优先级表格,使得软件可以灵活配置发送结点可以以隐藏建立连接延迟的发送发式所能使用的接收上下文的最大数量,这使得优先级高的发送结点有更多的机会在发出建立连接请求后立即发送数据,从而获得更高的通信性能;本发明为了阐述方便将结点分为了发送结点和接收结点,但实际上每个结点既可以作为发送结点,也可以作为接收结点,即结点的网络接口既包含发送上下文和上下文预测部件,也包含接收上下文和上下文反馈部件。
如图6所示,并行计算机系统通常是由多个计算结点和互连网络组成,结点由处理器、网络接口和内存组成,结点通过网络接口进行数据的发送和接收,结点间通过互连网络进行通信。单边通信和双边通信是两种常用的通信机制,它将发送结点内存中的某个区域的数据传输到接收结点内存中的某个接收区域中。在面向动态连接机制的端到端数据可靠传输过程中,发送结点发出的请求必须得到接收结点的响应,以表明接收结点已正确收到了发送结点的请求报文。通过在发送结点的网络接口中增加上下文预测部件和在接收结点的网络接口中增加上下文反馈部件,发送结点可以动态跟踪接收结点的接收上下文数量,在预测接收结点有可用接收上下文的情形下,允许数据在建立连接请求发出之后立即发送,从而缩短数据通信时间。
如图7所示,本发明所述的接收上下文预测表RCPT是上下文预测部件的主要构成部分,表格中的每一项包含两个位域,即结点号NodeID和空闲接收上下文数量RCNUM。一般来说,如果并行计算机系统包含N个结点,则该表格就有N-1项,其中每一项对应一个远程结点。查询该表格时,以NodeID为索引,即可获取对应结点的空闲接收上下文数量RCNUM。
如图8所示,本发明所述的优先级表PT用于限制发送结点可以以隐藏建立连接延迟的发送发式所能使用的接收上下文的最大数量。PT的每一项包含三个位域,即有效标志V、结点号NodeID和接收上下文数量上界UpperLimit;查询该表格时,以(V,NodeID)为索引,即可获取对应结点的UpperLimit。
如图9所示,针对本发明所述的预测接收结点无可用接收上下文时的建立连接和数据传输的具体实施例,发送结点N接收到去往接收结点M的数据发送请求,结点N通过RCPT查询到结点M无可用接收上下文,因此结点N在发送完建立连接请求CnctReq后不立即发送数据Data。结点M收到来自结点N的CnctReq,由于存在空闲接收上下文(数量为256),因此结点M分配接收上下文,并向结点N返回建立连接成功响应CnctAck。当前结点M的空闲接收上下文数量为255(CnctReq已消耗了一个接收上下文),PT[N]=100,因此设置CnctAck的RCNUM=100。结点N收到来自结点M的CnctAck后开始发送数据Data,并更新RCPT[M]=100。结点M收到来自结点N的Data后返回数据响应DataAck。当前结点M的空闲接收上下文数量为80(来自除结点N之外的其它发送结点的建立连接请求消耗了接收上下文),PT[N]=100,因此设置DataAck的RCNUM=80。结点N收到来自结点M的DataAck后发出连接断开请求DiscnctReq,更新RCPT[M].RCNUM=80,并释放发送上下文。结点M收到来自结点N的DiscnctReq后释放接收上下文。
如图10所示,针对本发明所述的预测接收结点有可用接收上下文且预测成功时的建立连接和数据传输的具体实施例,发送结点N接收到去往接收结点M的数据发送请求,结点N通过RCPT查询到结点M有可用接收上下文,因此结点N在发送完建立连接请求CnctReq后立即发送数据Data。结点M收到来自结点N的CnctReq,由于存在空闲接收上下文(数量为256),因此结点M分配接收上下文,并向结点N返回建立连接成功响应CnctAck。当前结点M的空闲接收上下文数量为255(CnctReq已消耗了一个接收上下文),PT[N]=100,因此设置CnctAck的RCNUM=100。紧接着,结点M收到来自结点N的Data后返回数据响应DataAck。当前结点M的空闲接收上下文数量为255,PT[N]=100,因此设置DataAck的RCNUM=100。结点N收到来自结点M的CnctAck后发现数据传输已经启动,因此不再发送数据,并更新RCPT[M]=100。紧接着,结点N收到来自结点M的DataAck后发出连接断开请求DiscnctReq,更新RCPT[M].RCNUM=100,并释放发送上下文。结点M收到来自结点N的DiscnctReq后释放接收上下文。
如图11所示,针对本发明所述的预测接收结点有可用接收上下文且预测失败时的建立连接和数据传输的具体实施例,发送结点N接收到去往接收结点M的数据发送请求,结点N通过RCPT查询到结点M有可用接收上下文,因此结点N在发送完建立连接请求CnctReq后立即发送数据Data。结点M收到来自结点N的CnctReq,由于当前空闲接收上下文数量为0,因此结点M向结点N返回建立连接拒绝响应CnctNack。当前结点M的空闲接收上下文数量为0,PT[N]=100,因此设置CnctNack的RCNUM=0。后续到达的Data被结点M丢弃。结点N收到来自结点M的CnctNack后,更新RCPT[M].RCNUM=0,并重发CnctReq。由于此时RCPT[M].RCNUM=0,所以发送完CnctReq后不立即发送Data。结点M收到来自结点N的CnctReq,由于存在空闲接收上下文(数量为50,来自除结点N之外的其它发送结点陆续完成了发往结点M的数据传输任务,从而使得结点M的空闲接收上下文数量增加),因此结点M分配接收上下文,并向结点N返回建立连接成功响应CnctAck。当前结点M的空闲接收上下文数量为49(CnctReq已消耗了一个接收上下文),PT[N]=100,因此设置CnctAck的RCNUM=49。结点N收到来自结点M的CnctAck后开始发送数据Data,并更新RCPT[M]=49。结点M收到来自结点N的Data后返回数据响应DataAck。当前结点M的空闲接收上下文数量为200(来自除结点N之外的其它发送结点陆续完成了发往结点M的数据传输任务,从而使得结点M的空闲接收上下文数量增加),PT[N]=100,因此设置DataAck的RCNUM=100。结点N收到来自结点M的DataAck后发出连接断开请求DiscnctReq,更新RCPT[M].RCNUM=100,并释放发送上下文。结点M收到来自结点N的DiscnctReq后释放接收上下文。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据发送方法,适用于并行计算机系统的发送结点,其特征在于,所述方法包括:
获取数据发送请求信息,并检测空闲发送上下文的数量;
若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;
根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;
向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。
2.根据权利要求1所述的数据发送方法,其特征在于,所述方法还包括:
向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量等于零,则待接收到建立连接成功响应信息后,再向所述接收结点发送数据。
3.根据权利要求1所述的数据发送方法,其特征在于,所述方法还包括:
在发送所述发送数据的过程中,接收所述发送数据的数据响应信息。
4.根据权利要求3所述的数据发送方法,其特征在于,所述方法还包括:
待收到最后一个数据响应信息后,向所述接收结点发送连接断开请求,切断与所述接收结点的连接。
5.一种数据发送方法,适用于并行计算机系统的接收结点,其特征在于,所述方法包括:
接收发送结点发送的建立连接请求,并检测空闲接收上下文的数量;
若所述空闲接收上下文数量大于零,则将所述空闲接收上下文分配为用于存储所述发送数据的临时状态信息的接收上下文;
向所述发送结点反馈建立连接成功响应信息,接收所述发送数据。
6.根据权利要求5所述的数据发送方法,其特征在于,所述方法还包括:
若所述空闲接收上下文数量等于零,则向所述发送结点反馈建立连接拒绝响应信息。
7.根据权利要求5所述的数据发送方法,其特征在于,所述方法还包括:
在接收所述发送数据的过程中,向所述发送结点反馈所述发送数据发送成功的响应信息。
8.根据权利要求7所述的数据发送方法,其特征在于,所述方法还包括:
接收所述发送结点发送的连接断开请求,切断与所述发送结点的连接。
9.一种发送终端,其特征在于,包括:
第一检测模块,用于获取数据发送请求信息,并检测空闲发送上下文的数量;
第一分配模块,用于若所述空闲发送上下文的数量大于零,则将所述空闲发送上下文分配为用于存储所述发送数据的临时状态信息的发送上下文;
获取模块,用于根据所述数据发送请求信息获取接收结点号,并根据所述接收结点号获取上下文预测对应表中的与所述接收结点号相对应的空闲接收上下文数量;
第一发送模块,用于向所述接收结点号相对应的接收结点发送建立连接请求,若所述空闲接收上下文数量大于零,则同时向所述接收结点发送数据。
10.一种接收终端,其特征在于,包括:
第二检测模块,用于接收发送结点发送的建立连接请求,并检测空闲接收上下文的数量;
第二分配模块,用于若所述空闲接收上下文数量大于零,则将所述空闲接收上下文分配为用于接收发送数据的接收上下文;
第二接收模块,用于向所述发送结点反馈建立连接成功响应信息,接收所述发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547561.7A CN107257272B (zh) | 2017-07-06 | 2017-07-06 | 数据发送方法、发送终端及接收终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547561.7A CN107257272B (zh) | 2017-07-06 | 2017-07-06 | 数据发送方法、发送终端及接收终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107257272A true CN107257272A (zh) | 2017-10-17 |
CN107257272B CN107257272B (zh) | 2020-12-04 |
Family
ID=60025939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710547561.7A Active CN107257272B (zh) | 2017-07-06 | 2017-07-06 | 数据发送方法、发送终端及接收终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107257272B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710638A (zh) * | 2018-04-13 | 2018-10-26 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497433A (zh) * | 2002-10-04 | 2004-05-19 | 加林克半导体V.N.有限公司 | 上下文切换的方法与执行装置 |
CN101600192A (zh) * | 2008-06-06 | 2009-12-09 | 大唐移动通信设备有限公司 | 用户上下文同步方法、设备及系统 |
CN101610462A (zh) * | 2008-06-16 | 2009-12-23 | 华为技术有限公司 | 一种数据报文发送方法、装置及通信系统 |
CN101621787A (zh) * | 2008-06-30 | 2010-01-06 | 华为技术有限公司 | 一种上下文信息迁移的方法、系统和接入服务网络 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
-
2017
- 2017-07-06 CN CN201710547561.7A patent/CN107257272B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497433A (zh) * | 2002-10-04 | 2004-05-19 | 加林克半导体V.N.有限公司 | 上下文切换的方法与执行装置 |
CN101600192A (zh) * | 2008-06-06 | 2009-12-09 | 大唐移动通信设备有限公司 | 用户上下文同步方法、设备及系统 |
CN101610462A (zh) * | 2008-06-16 | 2009-12-23 | 华为技术有限公司 | 一种数据报文发送方法、装置及通信系统 |
CN101621787A (zh) * | 2008-06-30 | 2010-01-06 | 华为技术有限公司 | 一种上下文信息迁移的方法、系统和接入服务网络 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710638A (zh) * | 2018-04-13 | 2018-10-26 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
CN108710638B (zh) * | 2018-04-13 | 2020-06-12 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107257272B (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9832275B2 (en) | Message processing method, device and system for internet of things | |
CN101488928B (zh) | 一种互联企业群通信设备及互联企业群通信方法 | |
US20160381640A1 (en) | Managing contact status updates in a presence management system | |
CN104796337A (zh) | 一种转发报文的方法及装置 | |
CN101887388B (zh) | 基于内存数据库的数据备份系统和方法 | |
KR20090110291A (ko) | 병렬 컴퓨팅시스템을 위한 네트워크 인터페이스 카드 | |
CN101616083A (zh) | 一种报文转发方法和装置 | |
JP6598771B2 (ja) | データ・ネットワークにおける分散データ送信 | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
US7536468B2 (en) | Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol | |
CN109088829A (zh) | 一种数据调度方法、装置、存储介质及设备 | |
CN108363641A (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
US20140059152A1 (en) | Support server for redirecting task results to a wake-up server | |
CN109600302A (zh) | 一种有序通讯的方法、装置、存储介质及电子设备 | |
CN102769544A (zh) | 通信系统中设备业务适配层架构及业务适配层实现方法 | |
JP7046983B2 (ja) | パケット伝送方法及び装置 | |
CN101141482B (zh) | 网络资源管理系统及方法 | |
CN102916902A (zh) | 数据存储方法及装置 | |
CN114760202A (zh) | 一种网络切片场景下服务功能链可靠构建与部署方法 | |
CN107257272A (zh) | 数据发送方法、发送终端及接收终端 | |
CN102045234B (zh) | 路由地址映射信息的缓存及超时处理方法和隧道路由器 | |
CN104375967B (zh) | 一种应用于pci‑e的流量控制方法、设备及系统 | |
CN114584575B (zh) | 船舶管理体系中的船岸通信方法及系统 | |
CN104572315A (zh) | 实现子系统间通信的方法、通信实体及分布式通信系统 | |
JP6117345B2 (ja) | 処理性能低下を回避するメッセージシステム |
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 | ||
CB02 | Change of applicant information |
Address after: 410205 room 0910, 9 / F, building 3, Huachuang International Plaza, No.109, Section 1, Furong Middle Road, wujialing street, Kaifu District, Changsha City, Hunan Province Applicant after: Hunan Zhongyi Lihua Information Technology Co.,Ltd. Address before: 410000, 105 building, 9 factory building, Changsha Central Electric Power Software Park, No. 39, pointed mountain road, Gaoxin Development Zone, Hunan, Changsha Applicant before: HUNAN ZHONGYUN FEIHUA INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |