一种多通道通信传输数据的系统和装置与方法

文档序号:7665035阅读:159来源:国知局
专利名称:一种多通道通信传输数据的系统和装置与方法
技术领域
本发明涉及计算机通信领域,特别是涉及一种利用多层独立网络并行的多 通道通信传输数据的系统和装置与方法。
背景技术
随着CPU性能的提升和多核技术的发展,节点间通信逐渐成为高性能计算系统的性能瓶颈, 一个高带宽、低延迟的网络系统越来越成为人们迫切的需 求。应运而生的Myrinet、 Infiniband、 Quadrics等专用互连技术,在一定禾呈度 上缓解了网络通信的压力,它们的高性能为构造超级计算机提供了有力的支持。为进一步提高多处理器系统互连网络的带宽,提高互连网络的可靠性,一 方面,很多多处理器系统互连网络开始采用多个相同的网络来连接节点,如机 群系统采用两套Infmiband网络或其他商用网络互连等,这样的系统有多个网 络接口来连接互连网络,采用软件的方法实现不同网络间通信的同步。另一方面,为了弥补单链路环境下通信性能难以提高的不足, 一些多处理 器系统采用多链路来提高网络带宽,如CrayXT3, Infiniband网络等。这些多 链路仅限于两点之间,数据包在这些多链路上传输时在每个链路的端点都要先 同步后,再向下一段链路传送。结合了上述两个方法的优点,现有技术提供了多通道通信技术。多通道通信技术是一种并行利用多路网络链路通信,以提高通信性能,突 破单链路互连环境下的性能瓶颈的新技术。多通道通信技术通过增加节点之间 的网络链路数,直接成倍地增加了应用层可用的物理通信性能,将多网络接口 和多网络链路集成化以实现多通道通信,在提高性能的同时降低了成本,已经 成为当今通信技术的发展方向之一。但是,对于多网络接口,采用的是软件的方法实现不同网络间的同步,对
于多链路,则要在每个链路的端点先同歩再下传,这些都增加了网络同步处理 的时间,从而增加了网络延迟。发明内容本发明所要解决的问题在于提供一种多通道通信传输数据的系统和装置 与方法,其解决了现有技术中多通道多链路中因需要同歩而造成的延时增加问 题,减少了数据传输的延时,增加了网络带宽。为实现本发明目的而提供的一种多通道传输数据的系统,包括多个节点和 多个交换机,所述节点包括有多个网络接口,所述多个网络接口输出连接到所述多个交换机;所述多个交换机构成物理上独立的多层互连网络,组成从节点到节点间的 多个通道;所述节点用于通过多个交换机组成的具有多个通道的互连网络向目标地 址发送消息。所述节点还用于接收目标地址为自身的通过多个通道的互连网络发送来 的数据。所述节点包括消息拆分模块,分配模块,发送模块,其中 所述消息拆分模块,用于根据消息的目标地址和长度大小选择多个通道,并根据互连网络各层的交换机的缓存大小,将消息拆分为多个子任务消息;所述分配模块,用于将所述拆分模块拆分的多个子任务消息的数据包分别分配到多个通道;所述发送模块,用于将所述分配模块分配的所述多个子任务消息的数据包 利用具有多个通道的互连网络独立发送给目标地址节点。所述节点还包括接收模块、记录模块、判断处理模块,其中所述接收模块,用于接收目标地址为自身的从具有多个通道的互连网络发 送来的多个子任务消息的数据包;所述记录模块,用于通过接收消息记录表记录所述接收模块接收到的多个 子任务消息数据包;所述判断处理模块,用于根据所述记录模块记录的接收到的多个子任务消 息数据包,判断整个消息接收是否完成,并根据判断结果进行处理。
所述子任务数据包包含有消息头,所述消息头包含此包类型、此包所属消 息的唯一性标识、此段数据的目标地址和数据长度信息。 所述包类型为首包、尾包、中间包或者首尾包。所述子任务数据包中的尾包中还包含有尾信息,所述尾信息包括所属消息 在本通道传输的总子包数,消息总大小和指示信息。 所述消息为长消息。为实现本发明目的还提供一种多通道传输数据的节点,所述节点通过多个 交换机组成的具有多个通道的互连网络向目标地址发送消息;并接收目标地址 为自身的通过多个通道的互连网络发送来的数据。所述节点包括消息拆分模块,分配模块,发送模块,其中所述消息拆分模块,用于根据消息的目标地址和长度大小选择多个通道, 并根据互连网络各层的交换机的缓存大小,将消息拆分为多个子任务消息;所述分配模块,用于将所述拆分模块拆分的多个子任务消息的数据包分别 分配到多个通道;所述发送模块,用于将所述分配模块分配的所述多个子任务消息的数据包 利用具有多个通道的互连网络独立发送给目标地址节点。所述节点还包括接收模块、记录模块、判断处理模块,其中所述接收模块,用于接收目标地址为自身的从具有多个通道的互连网络发 送来的多个子任务消息的数据包;所述记录模块,用于通过接收消息记录表记录所述接收模块接收到的多个 子任务消息数据包,-所述判断处理模块,用于根据所述记录模块记录的接收到的多个子任务消 息数据包,判断整个消息接收是否完成,并根据判断结果进行处理。为实现本发明目的更进一步提供一种多通道传输数据的方法,在多个节点 和多个交换机构成物理上独立的多层互连网络,组成从节点到节点间的多个通 道中,包括如下步骤步骤A,发送端节点根据消息的目标地址和长度大小,选择一个或多个通 道,并根据互连网络各层的交换机的缓存大小,将消息拆分为多个子任务消息;步骤B,多个子任务消息的数据包分别分配到多个通道,利用多个通道的 多个物理层的多个交换机独立发送给目标地址节点。
所述的多通道传输数据的方法,还包括下列步骤步骤C,目标地址对应的接收端节点接收从具有多个通道的互连网络发送 来的多个子任务消息的数据包;步骤D,接收端节点通过接收消息记录表记录收到的多个子任务消息数据包;步骤E,判断整个消息接收是否完成,并根据判断结果进行处理。 所述步骤A包括下列步骤步骤Al ,发送端节点的网络接口接收到消息的发送请求; 步骤A2,根据消息长度选择使用的互连网络通道;步骤A3,将消息分拆成多个子任务消息。所述步骤D包括下列歩骤步骤D1,接收一个长消息从一通道来的第一个首包或者首尾包; 步骤D2,创建接收消息记录,上传数据包到接收端节点的内存; 步骤D3,接收该长消息从同一通道来的中间包或者从其它通道来的首包 或者中间包;歩骤D4,更改接收消息记录表记录,并上传数据包到接收端节点的内存; 步骤D5,接收从所有使用的通道到达的尾包;步骤D6,更改接收消息记录表的记录,上传数据包到接收端节点的内存, 标识通道接收结束,并检査是否丢包。 所述消息为长消息。本发明的有益效果是本发明的多通道通信传输数据的系统和装置与方 法,各通路中的数据包独立传输,不再需要等待和同步,更好地发挥多网络接 口和多网络链路的优势,减少网络通信间及在其上面传送数据包间的关联性, 而且数据操作全部由硬件完成,减少了数据传输的延时。另外,多路并行的独 立传输,增加了网络带宽。


图1是多通道通信传输数据的系统结构示意图;图2是本发明多通道通信传输数据的节点结构示意图3是本发明多通道通信传输数据方法中发送端节点对长消息发送请求 处理流程图;图4是长消息拆分成各子任务包分发至各通道的示意图;图5是子任务包的消息头中包含的内容示意图;图6是尾包类型子任务包中尾信息包含的内容示意图;图7是本发明实施例接收端节点接收一个完整长消息的流程图;图8是接收端节点消息接收记录表结构示意图;图9是本发明另一实施例接收端节点处理子任务包流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种多通道通信传输数据的系统和装置与方法进行进一步详 细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于 限定本发明。如图1所示,在本发明的多通道通信传输数据的系统中,包括多个节点2 和多个交换机l,在节点2中包括有多个网络接口 27,每个网络接口27通过 I/O总线连接到节点2内存。多个网络接口 27输出连接到多个交换机1,这些交换机1构成物理上独 立的多层互连网络,组成从节点到节点间的多个通道。如图2所示,所述节点2包括消息拆分模块21,分配模块22,发送模块23,用于通过多个交换机1组成的具有多个通道的互连网络向目标地址发送消自必o消息拆分模块21,用于根据消息的目标地址和长度大小选择多个通道, 并根据互连网络各层的交换机l的缓存大小,将消息拆分为多个子任务消息。分配模块22,用于将拆分模块拆分的多个子任务消息的数据包分别分配 到多个通道。发送模块23,用于将分配模块22分配的所述多个子任务消息的数据包利 用具有多个通道的互连网络独立发送给目标地址节点2。 同时,节点2中还包括接收模块24、记录模块25、判断处理模块26,用 于接收目标地址为自身的通过具有多个通道的互连网络发送来的消息数据。接收模块24,用于接收目标地址为自身的从具有多个通道的互连网络发 送来的多个子任务消息的数据包。记录模块25,用于通过接收消息记录表记录接收模块24接收到的多个子 任务消息数据包。判断处理模块26,用于根据记录模块25记录的接收到的多个子任务消息 数据包,判断整个消息接收是否完成,并根据判断结果进行处理。作为一种可实施方式,如图1所示,交换机Switch—A、 Switch—B、 Switch—C 和Switch—D为四个独立的交换机1,它们构成物理上独立的四层互连网络。 每一层交换网络由一级或者多级交换芯片构成,每层交换网络有多个接口 (图 例中为4个),分别连接多个节点2。每个节点0 3的网络接口27分为A、 B、 C、 D共四个通道,分别与四层 交换网络相连接,节点0和节点3之间可以通过4条链路进行独立通信。网络接口 27通过I/O总线从节点2的内存获得消息数据后,根据消息的 大小,把消息分解成数据包后,分散到多个交换机1构成的多层互连网络上传 输。互连网络上不同的物理层上数据包不需要在每个链路的端点同步后再向 下一段链路转发,而是独立传送,直至到达目标节点2的网络接口27。目标节点2的网络接口 27记录下已经写入内存中的数据包个数,当整个 消息的数据包全部接收完成后,向目标节点2的内存中写入接收消息完成事 件,通知一个消息数据的到达。下面详细说明本发明的多通道通信传输数据系统工作的过程,即本发明提 供的一种多通道通信传输数据的方法过程,包括下列步骤步骤SIOO,发送端节点2根据消息的目标地址和长度大小,选择多个通 道,并根据互连网络各层的交换机l的缓存大小,将消息拆分为多个子任务消 息。下面以一个长消息数据如何实现并行传输为例,说明本发明的多通道通信 传输数据的系统和装置与方法,但是,应当说明的是,其不是对本发明的限制, 本发明同样适用于短消息的并行传输过程。
如图3所示,是发送端节点2对长消息发送请求的处理流程,包括下列步骤步骤SllO,发送端节点2接收到长消息的发送请求; 步骤S120,根据消息长度选择使用的互连网络通道;在发送端节点2, 一个长消息通常包括消息头和一大段需要传送的数据 (数据可以是立即数,也可以是待取的内存中的一段数据)。根据目标地址和 需要传送数据的长度大小选择要走的通道;根据消息的目标地址和消息长度,可以选择一个、两个、三个、四个通道, 或者更多个通道,本发明实施例中,选择全部四个通道。步骤S130,将长消息分拆成多个子任务消息。受交换机1发送接收缓冲区的大小影响,长消息划分为一系列的子任务, 以利于将消息分段传送。如图4所示,是一个长消息数据拆分为子任务的示意图。根据交换机1发送接受缓冲区的大小确定子任务包的大小,将长消息顺序划分为一系列子任务消息,分别送往A、 B、 C、 D四个通道,即图2中依次 独立传送数据块l,数据块2,……,数据块N。在每个子任务包中都包含有明确的消息头,消息头中包含此包类型、此包 所属长消息的唯一性标识、此段数据的目标地址和数据长度等信息,如图5 所示。其中,包类型为首包、尾包、中间包或者首尾包。 所述首尾包指的是长消息在此通道中只有一个子包。所述尾包中还包含有尾信息,所述尾信息包括所属长消息在本通道传输的 总子包数,长消息总大小和指示信息等等,如图6所示,最后一个子任务独立通过直接存储器存取(Direct Memory Access, DMA) 方式从内存取出数据,构造数据包,发送到互连网络。步骤S200,多个子任务消息的数据包分别分配到多个通道,利用多个通 道的多个物理层的多个交换机1独立发送给目标地址节点2。多个子任务消息的数据包分别分配到多个通道,分配给每一个通道的第一 个子任务包标记为此通道的首包,最后一个标记为此通道的尾包。
各个子任务包在互连网络上独立传输,陆续到达接收端节点2的网络接口27。步骤S300,目标地址对应的接收端节点2从具有多个通道的互连网络发 送来的多个子任务消息的数据包;在目标节点2,互连网络上不同的物理层上数据根据其携带的目标地址, 直接由DMA写到内存中,不需要彼此等待和同步。步骤S400,接收端节点2通过接收消息记录表记录收到的多个子任务消 息数据包;如图7所示,是接收端节点2接受一个完整长消息的流程图。 步骤S400包括下列步骤步骤S410,接收一个长消息从一通道来的第一个首包或者首尾包;在网络链路不出现故障的情况下,在接收端首先从一个物理通道接收到一 个首包或者首尾包。本发明中,在接收端节点2中,维护一个接收消息记录表,如图8所示。 步骤S420,创建接收消息记录,上传数据包到接收端节点2的内存; 接收端节点2接收到首包或者首尾包后,因为这是一个长消息的第一个 包,所以耍在接收消息记录表中开辟新的记录,记录一个长消息的到来,并根 据长消息唯一性标识填写消息记录标识。并从该首包或者首尾包的消息头中可 以得知这个长消息要经过哪几个物理通道到来,然后在记录表中将相应通道有 效标志位设置为有效l,相应各通道接收计数清零。然后根据数据长度和目标地址上传数据包到接收端节点2的内存。 步骤S430,接收该长消息从同一通道来的中间包或者从其它通道来的首 包或者中间包;接下来可能接收到其它物理通道的首包,或者是同一物理通道的中间包或 者尾包。数据传输完毕后在接收消息记录表中将这个数据包所走的通道的接收计 数加1 。此时在接收消息记录表中已经含有同一长消息的记录,根据消息头中的数 据长度和目标地址将数据上传,在接收消息记录表中相应的记录的相应通道接 收计数增l,表明一个新的数据包的到来。步骤S440,更改接收消息记录表记录,并上传数据包到接收端节点2的 内存;步骤S450,接收从所有使用的通道到达的尾包;步骤S460,更改接收消息记录表的记录,上传数据包到接收端节点2的 内存,标识通道接收结束,并检査是否丢包。对于尾包,完成和中间包相同的操作后,将尾包信息中本通道子任务包个 数和接收消息记录表中的接收计数比对,如果有差别,表明有数据包丢失,进 行丢包处理。作为另一种可实施方式,接收端节点2接收到一个数据包后的处理流程更 详细的过程如图9所示。首先判断接收到数据包的类型,然后根据包的类型作 相应的处理,然后上传数据并同时维护接收消息记录表,最后判断完成长消息 接收完成,通知接收端节点2清除此消息的接收消息记录表。步骤S500,判断整个消息接收是否完成,并根据判断结果进行处理。 所用物理通道的所有尾包都到达后,表明一个长消息接收完毕,此时,根 据最后一个尾包的尾信息中的长消息指示信息,判断是否接收到全部子任务 包,根据判断结果选择是发送完成还是中断发送,清除此消息的接收消息记录本发明的多通道通信传输数据的系统和装置与方法,各通路中的数据包独 立传输,不再需要等待和同步,更好地发挥多网络接口和多网络链路的优势, 减少网络通信间及在其上面传送数据包间的关联性,而且数据操作全部由硬件 完成,减少了数据传输的延时。另外,多路并行的独立传输,增加了网络带宽。通过以上结合附图对本发明具体实施例的描述,本发明的其它方面及特征 对本领域的技术人员而言是显而易见的。以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1、一种多通道传输数据的系统,包括多个节点和多个交换机,其特征在于,所述节点包括有多个网络接口,所述多个网络接口输出连接到所述多个交换机;所述多个交换机构成物理上独立的多层互连网络,组成从节点到节点间的多个通道;所述节点用于通过多个交换机组成的具有多个通道的互连网络向目标地址发送消息。
2、 根据权利要求1所述的多通道传输数据的系统,其特征在于,所述节 点还用于接收目标地址为自身的通过多个通道的互连网络发送来的数据。
3、 根据权利要求1或2所述的多通道传输数据的系统,所述节点包括消 息拆分模块,分配模块,发送模块,其中.-所述消息拆分模块,用于根据消息的目标地址和长度大小选择多个通道, 并根据互连网络各层的交换机的缓存大小,将消息拆分为多个子任务消息;所述分配模块,用于将所述拆分模块拆分的多个子任务消息的数据包分别 分配到多个通道;所述发送模块,用于将所述分配模块分配的所述多个子任务消息的数据包 利用具有多个通道的互连网络独立发送给目标地址节点。
4、 根据权利要求3所述的多通道传输数据的系统,其特征在于,所述节 点还包括接收模块、记录模块、判断处理模块,其中所述接收模块,用于接收目标地址为自身的从具有多个通道的互连网络发 送来的多个子任务消息的数据包;所述记录模块,用于通过接收消息记录表记录所述接收模块接收到的多个 子任务消息数据包;所述判断处理模块,用于根据所述记录模块记录的接收到的多个子任务消 息数据包,判断整个消息接收是否完成,并根据判断结果进行处理。
5、 根据权利要求4所述的多通道传输数据的系统,其特征在于,所述子 任务数据包包含有消息头,所述消息头包含此包类型、此包所属消息的唯一性 标识、此段数据的目标地址和数据长度信息。
6、 根据权利要求5所述的多通道传输数据的系统,其特征在于,所述包 类型为首包、尾包、中间包或者首尾包。
7、 根据权利要求6所述的多通道传输数据的系统,其特征在于,所述子 任务数据包中的尾包中还包含有尾信息,所述尾信息包括所属消息在本通道传 输的总子包数,消息总大小和指示信息。
8、 根据权利要求4所述的多通道传输数据的系统,其特征在于,所述消息为长消息。
9、 一种多通道传输数据的节点,其特征在于,所述节点通过多个交换机 组成的具有多个通道的互连网络向目标地址发送消息;并接收目标地址为自身的通过多个通道的互连网络发送来的数据。
10、 根据权利要求9所述的多通道传输数据的节点,其特征在于,所述节点包括消息拆分模块,分配模块,发送模块,其中所述消息拆分模块,用于根据消息的目标地址和长度大小选择多个通道,并根据互连网络各层的交换机的缓存大小,将消息拆分为多个子任务消息;所述分配模块,用于将所述拆分模块拆分的多个子任务消息的数据包分别 分配到多个通道;所述发送模块,用于将所述分配模块分配的所述多个子任务消息的数据包 利用具有多个通道的互连网络独立发送给目标地址节点。
11、 根据权利要求IO所述的多通道传输数据的节点,其特征在于,所述 节点还包括接收模块、记录模块、判断处理模块,其中所述接收模块,用于接收目标地址为自身的从具有多个通道的互连网络发 送来的多个子任务消息的数据包;所述记录模块,用于通过接收消息记录表记录所述接收模块接收到的多个 子任务消息数据包;所述判断处理模块,用于根据所述记录模块记录的接收到的多个子任务消 息数据包,判断整个消息接收是否完成,并根据判断结果进行处理。
12、 一种多通道传输数据的方法,其特征在于,在多个节点和多个交换机 多个交换机构成物理上独立的多层互连网络,组成从节点到节点间的多个通道 中,包括如下步骤步骤A,发送端节点根据消息的目标地址和长度大小,选择多个通道,并根据互连网络各层的交换机的缓存大小,将消息拆分为多个子任务消息;步骤B,多个子任务消息的数据包分别分配到多个通道,利用多个通道的 多个物理层的多个交换机独立发送给目标地址节点。
13、 根据权利要求12所述的多通道传输数据的方法,其特征在于,还包 括下列步骤步骤C,目标地址对应的接收端节点从具有多个通道的互连网络发送来的 多个子任务消息的数据包;步骤D,接收端节点通过接收消息记录表记录收到的多个子任务消息数据包;步骤E,判断整个消息接收是否完成,并根据判断结果进行处理。
14、 根据权利要求12或13所述的多通道传输数据的方法,其特征在于, 所述步骤A包括下列步骤步骤Al ,发送端节点的网络接口接收到消息的发送请求; 步骤A2,根据消息长度选择使用的互连网络通道; 步骤A3,将消息分拆成多个子任务消息。
15、 根据权利要求13所述的多通道传输数据的方法,其特征在于,所述步骤D包括下列步骤步骤Dl ,接收一个消息从一通道来的第一个首包或者首尾包;步骤D2,创建接收消息记录,上传数据包到接收端节点的内存;步骤D3,接收该消息从同一通道来的中间包或者从其它通道来的首包或者中间包;步骤D4,更改接收消息记录表记录,并上传数据包到接收端节点的内存; 步骤D5,接收从所有使用的通道到达的尾包;步骤D6,更改接收消息记录表的记录,上传数据包到接收端节点的内存, 标识通道接收结束,并检査是否丢包。
16、 根据权利要求12或13所述的多通道传输数据的方法,其特征在于, 所述消息为长消息。
全文摘要
本发明公开了一种多通道通信传输数据的系统和装置与方法。该系统包括多个节点和多个交换机,节点包括有多个网络接口,多个网络接口输出连接到所述多个交换机;多个交换机构成物理上独立的多层互连网络,组成从节点到节点间的多个通道;节点用于通过多个交换机组成的具有多个通道的互连网络向目标地址发送消息;节点还用于接收目标地址为自身的通过多个通道的互连网络发送来的数据。其减少了数据传输的延时,增加了网络带宽。
文档编号H04L12/56GK101159687SQ200710176959
公开日2008年4月9日 申请日期2007年11月7日 优先权日2007年11月7日
发明者孙凝晖, 安学军, 李晓民, 越 田 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1