计算机通信连接方法及系统的制作方法

文档序号:6340437阅读:130来源:国知局
专利名称:计算机通信连接方法及系统的制作方法
技术领域
本发明涉及通信技术领域,更具体地,特别涉及一种计算机通信连接方法及系统。
背景技术
IBdnfinite Bandwidth,无限带宽)是一个统一的互联宽带,它可以将磁盘阵列、服务器和集群服务器进行互联,也可以连接外部网络比如WAN、VPN、互联网。IB主要用于企业数据中心,可以在相对短的距离内提供高带宽、低延迟的传输。IB中的通信是基于队列模型的,发送和接收必须要事先建立QP(Queue Pair,队列对)。IB中支持4种传输模式RC(Reliable Connection,可靠连接)、RD(Reliable Datagram,可靠数据报)、 UC (Unreliable Connection,不可靠连接)、UD (Unreliable Datagram,不可靠数据报)。由于UD和UC是不可靠的连接,不提供消息保序、状态应答等保证,在并行通信系统中一般做为辅助通信,即通常不采用UD和UC进行数据传输通信;RD模式在通信前需要建立类似RC 的连接,并且目前的IB硬件绝大多数都不支持RD通信模式,因此目前计算机通信进程之间都采用RC模式进行通信。计算机通信进程之间建立连接时,通信进程之间必须事先建立连接专用的QP。建立QP的基本流程是首先要创建QP所需要的SQ (Sending Queue,发送队列)、RQ (Receiving Queue,接收队列)以及CQ (Complete Queue,完成队列),然后通信进程之间通过其他方式, 例如UD或TCP的方式,交互各自的端口号、QP信息,同时将QP的状态设为就绪,连接被建立。然而,创建QP的同时还需要创建SQ、RQ以及CQ,因此创建QP时需要较大内存开销,即创建连接时需要较大的内存。IB为了减少内存的使用,提供了 SRQ(Sharing Receive Queue,共享接收队列),其原理是将每个QP单独使用一个RQ的方式改为若干个QP共用一个SRQ,通过将RQ共享的方式将接收队列中的资源动态分配,可以在一定程度上减少内存的使用量。但是当QP的数量增大到一定程度的时候即使使用SRQ其内存开销仍然是非常大的,因此能够通信的进程数量受到限制,即限制了通信连接的可扩展性。

发明内容
有鉴于此,本发明的目的在于提供一种计算机通信连接方法及系统,以解决现有技术方案中由于内存的限制导致通信连接的可扩展性受到限制的问题。为实现上述目的,本发明提供的一种计算机通信连接方法的技术方案如下—种计算机通信连接方法,包括确定每个通信进程连接的最大通信进程数量;获取所有通信进程的总数量,并依据所述每个通信进程连接的最大通信进程数量,将通信进程划分为至少两组进程组;进程组内的各个通信进程与同进程组内的其他通信进程建立连接;不同进程组内部分通信进程之间建立连接。
优选地,所述不同进程组内部分通信进程之间建立连接包括对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ;不同进程组内编号相同的通信进程之间建立连接。优选地,所述不同进程组内部分通信进程之间建立连接包括对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ;编号各个进程组,所述进程组编号为0 m-1 ;编号相邻的进程组之间,编号相同的通信进程之间建立连接。优选地,所述编号相同的通信进程之间建立连接具体包括一个或者所有编号相同的通信进程之间建立连接。优选地,所述确定每个通信进程连接的最大通信进程数量是依据该通信进程所分配的内存空间确定的。 优选地,所述进程组内的各个通信进程与同进程组内的其他通信进程建立连接包括需要建立连接的两个通信进程各自创建发送队列、接收队列以及完成队列;建立与发送队列、接收队列以及完成队列相对应的队列对;交换各自的端口号和队列对信息;依据端口号和队列对信息建立连接。优选地,在所述不同进程组内部分通信进程之间建立连接之后还包括当不同组内未建立连接的任意两个通信进程通信时,选取中转连接进行通信,所述中转连接是从已经建立的连接中选取。优选地,所述中转连接为所选取的最短中转连接。优选地,所述连接采用可靠连接模式。本发明还提供一种计算机通信连接系统,包括通信进程数量确定装置,用于确定每个通信进程连接的最大通信进程数量;与通信进程数量确定装置相连的通信进程划分装置,用于获取所有通信进程的总数量,并依据所述通信进程数量确定装置确定的通信进程数量,将通信进程划分为至少两组进程组;与通信进程划分装置相连的同组连接建立装置,用于建立进程组内的各个通信进程与同进程组内的其他通信进程的连接;与通信进程划分装置相连的不同组连接建立装置,用于建立不同进程组内部分通信进程之间的连接。优选地,所述不同组连接建立装置包括编号单元,用于对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ;连接建立单元,用于建立不同进程组内编号相同的通信进程之间的连接。优选地,所述不同组连接建立装置包括编号单元,用于对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1,以及编号各个进程组,所述进程组编号为0 m-1 ;连接建立单元,用于建立编号相邻的进程组之间,编号相同的通信进程之间的连接。
优选地,所述通信进程数量确定装置确定通信进程数量是依据该通信进程所分配的内存空间确定的。优选地,还包括与同组连接建立装置和不同组连接建立装置相连的中转连接选取装置,用于当不同进程组内未建立连接的任意两个通信进程通信时,选取中转连接进行通信,所述中转连接从同组连接建立装置和不同组连接建立装置建立的连接中选取。应用上述技术方案,同进程组内的任意两个通信进程之间建立连接,而不同进程组内的部分通信进程之间建立连接。因此,在通信进程之间进行通信时,同组内的通信进程通过已经建立的连接通信,而不同组内的通信进程通信时,若通信进程之间建立了连接则利用已经建立的连接通信,若通信进程之间未建立连接,则利用已经建立的与之相连的其他连接作为中转连接以完成通信。相对于现有技术来说,本技术方案在保证全部进程通信的同时,采用分组以及不同进程组内部分通信进程建立连接,降低每个通信进程所需QP的数量,减少内存需求量,进而提高了通信连接的可扩展性。


为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的计算机通信连接方法的流程图;图2为通信进程建立连接的一种示意图;图3为通信进程建立连接的另一种示意图;图4为通信进程建立连接的再一种示意图;图5为本发明实施例提供的计算机通信系统的结构示意图;图6为本发明实施例提供的计算机通信系统的另一种结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。申请人:经研究发现,现有的计算机通信时,每个通信进程需要与其他通信进程建立连接,计算机需要为建立的每个连接分配内存空间,以保存建立连接所需的SQ、RQ、CQ以及QP。由于计算机的内存空间有限,当建立连接的数量增加到一定数量时,计算机无法为所有的连接分配内存空间,所以无法建立所有的连接。基于上述陈述可知,由于计算机内存空间有限导致通信连接的可扩展性受到限制。为了解决上述问题,本发明实施例提供一种计算机通信连接方法,该方法首先将所有的通信进程划分为至少两组进程组,同进程组内的任意两个通信进程之间建立连接, 而不同进程组内的部分通信进程之间建立连接。同组内的通信进程通过已经建立的连接通信,而不同组内的通信进程通信时,若通信进程之间建立了连接则利用已经建立的连接通信,若通信进程之间未建立连接,则利用已经建立的与之相连的其他连接作为中转连接以完成通信。在保证全部通信进程通信的同时,采用分组以及不同进程组内部分通信进程建立连接,降低每个通信进程所需QP的数量,减少内存需求量,进而提高了通信连接的可扩展性。本发明实施例提供的一种计算机通信连接方法的流程图如图1所示,该方法包括SlOl 确定每个通信进程所连接的最大通信进程数量;众所周知,通信进程与其他通信进程建立连接时,计算机需要为建立的每个连接分配内存空间,以保存建立连接所需的SQ、RQ、CQ以及QP。因此,当通信进程所分配的内存空间确定时,该通信进程所能连接的最大通信进程数量则可确定。综上,确定每个通信进程所连接的最大通信进程数的因素为通信进程所分配的内存空间。例如假设某高性能计算机最大可并发运行65536个通信进程,每个通信进程所分配的内存空间为100M,则其所能连接的最大通信进程数量为4096。S102 获取所有通信进程的总数量,并依据所述每个通信进程所连接的最大通信进程数量,将通信进程划分为至少两组进程组;如步骤SlOl所述的某高性能计算机最大可并发运行65536个通信进程,每个通信进程所能连接的最大通信进程数量为4096。因此,计算机的通信进程被划分为16组进程组。S103 进程组内的各个通信进程与同进程组内的其他通信进程建立连接;其中, 步骤S103的具体实施过程与现有技术中任意两个通信进程之间建立连接的具体实施过程是相同,对此本发明只进行简单阐述,具体过程不再加以说明。步骤S103包括S1031 需要建立连接的两个通信进程各自创建SQ、RQ以及CQ ;S1032 建立与SQ、RQ以及CQ相对应的QP ;此时,QP处于无法使用状态;S1033 通过TCP或者UD交换各自的端口号和队列对QP信息;S1034 依据端口号和QP信息建立连接。经过步骤S103同组内通信进程完成全连接,即同组内任意两个通信进程之间建立连接,可以直接通信。S104 不同进程组内部分通信进程之间建立连接;本步骤S104的具体实施方式
为对各个进程组内的通信进程进行编号,所述进程编号为0 n-1 ;不同进程组内编号相同的通信进程之间建立连接,即每个进程组上的第i号通信进程之间建立连接,比如所有进程组上的第O号通信进程间建立连接,第1号通信进程间建立连接。如图2所示,图 2为通信进程建立连接的示意图。该连接结构可以作为基本的网络结构,基于该连接方式可以实现多种网络通信功能,比如同步、广播、规约等。当然,本发明不同进程组内部分通信进程建立连接还可以采用其他方式。例如对各个进程组编号,进程组编号为0 m-1。各个编号相邻进程组,编号相同的通信进程之间建立连接,进一步地,各个编号相邻进程组之间只有一个编号相同的通信进程建立连接。采用上述两种连接方式的示意图分别如图3和图4所示。图3是各个编号相邻进程组,编号相同之间的通信进程建立连接的示意图。图4是各个编号相邻进程组之间只有一个编号相同的进程建立连接的示意图。
需要注意的是图2和图3中只给出了编号为0和n-1之间的连接建立,实际网络中,编号为1,2,……,n-2之间也建立了连接,在图2和图3中未给出。之所以只给出编号为0和n-1之间的连接建立是为了更好的体现两者之间的不同。不同进程组内的通信进程通信时,当通信进程之间建立了连接则利用已经建立的连接通信,当不同进程组内未建立连接的任意两个通信进程通信时,则可以选取中转连接进行通信,所述中转连接是从已经建立的连接中选取。如图2所示,假设进程组0中的0进程(0,0)和进程组1中的1进程(1,1)需要通信,进程(0,0)和进程(1,1)之间没有建立连接,但是可以通过(0,0)-> (0,1)-> (1,1)或者(0,0)-> (1,0)" > (1,1)或者(0, 0)-> (0,n-l)-> (m-l,n-l)-> (m_l,l)-> (1,1)中转连接进行通信;或者使用中转连接交互双方的端口号和QP信息,实现动态建立直接的连接,进而通过动态建立的直接连接进行通信。进程组0中的0进程(0,0)和进程组1中的1进程(1,1)之间的中转连接除了上述的3种情况,还存在其他中转连接。在选取中转连接时优选最短中转连接,例如上述的 (0,0)-> (0,1)-> (1,1)或者(0,0)-> (1,0)-> (1,1),以提高通信的性能,节约时间。本发明实施例提供的计算机通信连接方法中连接以及动态建立的连接全部采用 RC模式。应用上述技术方案,首先将所有的通信进程划分为至少两组进程,进程组内的任意两个通信进程建立连接,而不同进程组内的部分通信进程之间建立连接。同进程组内之间的通信进程通过已经建立的连接通信,而不同组内的通信进程通信时,若通信进程之间建立了连接则利用已经建立的连接通信,若通信进程之间未建立连接,则利用已经建立的与之相连的其他连接作为中转连接以完成通信。相对于现有技术来说,本技术方案在保证全部进程通信的同时,采用分组以及不同进程组内部分通信进程建立连接,降低每个通信进程所需QP的数量,减少内存需求量,进而提高了通信连接的可扩展性。与之相对应的,本发明实施例还提供一种计算机通信连接系统,其结构示意图如图5所示,包括通信进程数量确定装置51、通信进程划分装置52、同组连接建立装置53和不同组连接建立装置M。其中通信进程数量确定装置51,用于确定每个通信进程所连接的最大通信进程数量; 其确定通信进程数量是依据该通信进程所分配的内存空间确定的。通信进程划分装置52,用于获取所有通信进程的总数量,并依据所述通信进程数量确定装置确定的通信进程数量,将通信进程划分为至少两组进程组;同组连接建立装置53,用于建立进程组内的各个通信进程与同进程组内的其他通信进程之间的连接;不同组连接建立装置M,用于建立不同进程组内部分通信进程之间的连接。该不同组连接建立装置M包括编号单元和连接建立单元,其中编号单元,用于对不同进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ;连接建立单元,用于建立不同进程组内编号相同的通信进程之间连接,连接示意图如图2所示。当然,编号单元还可以在对各个进程组内的通信进程进行编号的同时,编号各个进程组,所述进程组编号为0 m-1 ;连接建立单元,还可以用于建立编号相邻的进程组之间,编号相同的通信进程之间的连接,如图3所示,进一步地,建立各个编号相邻进程组之间只有一个编号相同的通信进程的连接,参见图4所示。通信进程通信时已经建立连接的通信进程可以通过建立的连接通信,而未建立连接的通信进程通信时则需要选取中转连接通信,因此本发明实施例提供的计算机通信连接系统还包括中转连接选取装置55,如图6所示。图6是计算机通信连接系统的又一种结构示意图,图6中通信进程数量确定装置51、通信进程划分装置52、同组连接建立装置53和不同组连接建立装置M的功能与图5中的相对应的装置的功能相同。中转连接选取装置55,用于当不同组内未建立连接的任意两个通信进程通信时, 选取中转连接进行通信,所述中转连接从同组连接建立装置53和不同组连接建立装置M 建立的连接中选取。优选选择最短中转连接,以图3为例。若进程组0中的0进程(0,0) 和进程组1中的1进程(1,1)需要通信,通信进程之间没有建立连接,但是可以通过(0, 0)-> (0,1)- > (1,1)或者(0,0)-> (1,0)-> (1,1)或者(0,0)-> (0,n-l)- > (m_l, n-l)-> (m-l,l)-> (1,1)中转连接进行通信;或者通过中转连接交互双方的端口号和 QP,实现动态建立直接的连接,进而通过动态建立的直接连接进行通信。其中最短中转连接为(0,0)-> (0,1)- > (1,1)或者(0,0)-> (1,0)- > (1,1)。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
9
权利要求
1.一种计算机通信连接方法,其特征在于,包括 确定每个通信进程连接的最大通信进程数量;获取所有通信进程的总数量,并依据所述每个通信进程连接的最大通信进程数量,将通信进程划分为至少两组进程组;进程组内的各个通信进程与同进程组内的其他通信进程建立连接; 不同进程组内部分通信进程之间建立连接。
2.根据权利要求1所述的计算机通信连接方法,其特征在于,所述不同进程组内部分通信进程之间建立连接包括对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ; 不同进程组内编号相同的通信进程之间建立连接。
3.根据权利要求1所述的计算机通信连接方法,其特征在于,所述不同进程组内部分通信进程之间建立连接包括对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ; 编号各个进程组,所述进程组编号为0 m-1 ; 编号相邻的进程组之间,编号相同的通信进程之间建立连接。
4.根据权利要求3所述的计算机通信连接方法,其特征在于,所述编号相同的通信进程之间建立连接具体包括一个或者所有编号相同的通信进程之间建立连接。
5.根据权利要求1所述的计算机通信连接方法,其特征在于,所述确定每个通信进程连接的最大通信进程数量是依据该通信进程所分配的内存空间确定的。
6.根据权利要求1-5任意一项所述的计算机通信连接方法,其特征在于,所述进程组内的各个通信进程与同进程组内的其他通信进程建立连接包括需要建立连接的两个通信进程各自创建发送队列、接收队列以及完成队列; 建立与发送队列、接收队列以及完成队列相对应的队列对; 交换各自的端口号和队列对信息; 依据端口号和队列对信息建立连接。
7.根据权利要求1所述的计算机通信连接方法,其特征在于,在所述不同进程组内部分通信进程之间建立连接之后还包括当不同组内未建立连接的任意两个通信进程通信时,选取中转连接进行通信,所述中转连接是从已经建立的连接中选取。
8.根据权利要求7所述的计算机通信连接方法,其特征在于,所述中转连接为所选取的最短中转连接。
9.根据权利要求1_5、7和8任意一项所述的计算机通信连接方法,其特征在于,所述连接采用可靠连接模式。
10.一种计算机通信连接系统,其特征在于,包括通信进程数量确定装置,用于确定每个通信进程连接的最大通信进程数量; 与通信进程数量确定装置相连的通信进程划分装置,用于获取所有通信进程的总数量,并依据所述通信进程数量确定装置确定的通信进程数量,将通信进程划分为至少两组进程组;与通信进程划分装置相连的同组连接建立装置,用于建立进程组内的各个通信进程与同进程组内的其他通信进程的连接;与通信进程划分装置相连的不同组连接建立装置,用于建立不同进程组内部分通信进程之间的连接。
11.根据权利要求10所述的系统,其特征在于,所述不同组连接建立装置包括 编号单元,用于对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1 ; 连接建立单元,用于建立不同进程组内编号相同的通信进程之间的连接。
12.根据权利要求10所述的系统,其特征在于,所述不同组连接建立装置包括 编号单元,用于对各个进程组内的通信进程进行编号,所述通信进程编号为0 n-1,以及编号各个进程组,所述进程组编号为0 m-1 ;连接建立单元,用于建立编号相邻的进程组之间,编号相同的通信进程之间的连接。
13.根据权利要求10所述的系统,其特征在于,所述通信进程数量确定装置确定通信进程数量是依据该通信进程所分配的内存空间确定的。
14.根据权利要求10所述的系统,其特征在于,还包括与同组连接建立装置和不同组连接建立装置相连的中转连接选取装置,用于当不同进程组内未建立连接的任意两个通信进程通信时,选取中转连接进行通信,所述中转连接从同组连接建立装置和不同组连接建立装置建立的连接中选取。
全文摘要
本发明公开了一种计算机通信连接方法及系统。一种计算机通信连接方法,包括确定每个通信进程连接的最大通信进程数量;获取所有通信进程的总数量,并依据所述每个通信进程连接的最大通信进程数量,将通信进程划分为至少两组进程组;进程组内的各个通信进程与同进程组内的其他通信进程建立连接;不同进程组内部分通信进程之间建立连接。应用上述技术方案,所有通信进程之间不需要全部建立连接,相对于现有技术来说,本技术方案在保证全部进程通信的同时,采用分组以及不同进程组内部分通信进程建立连接,降低每个通信进程所需QP的数量,减少内存需求量,进而提高了通信连接的可扩展性。
文档编号G06F9/54GK102567123SQ20101061261
公开日2012年7月11日 申请日期2010年12月29日 优先权日2010年12月29日
发明者卞卫峰, 唐大国, 姜小成, 孙俊, 尤洪涛, 张立博, 漆锋滨 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1