CN101127677A - 一种基于胖树拓扑的屏障操作网络***、装置及方法 - Google Patents
一种基于胖树拓扑的屏障操作网络***、装置及方法 Download PDFInfo
- Publication number
- CN101127677A CN101127677A CNA2007101207540A CN200710120754A CN101127677A CN 101127677 A CN101127677 A CN 101127677A CN A2007101207540 A CNA2007101207540 A CN A2007101207540A CN 200710120754 A CN200710120754 A CN 200710120754A CN 101127677 A CN101127677 A CN 101127677A
- Authority
- CN
- China
- Prior art keywords
- barrier
- module
- reduction
- bag
- node
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了基于胖树拓扑的屏障(Barrier)操作网络***、装置及方法。该***包括在多处理机***的数据互联网络中,使用交换机节点作为屏障树的根,处理机节点作为屏障树的叶子。交换机节点包括屏障模块,用于归约和分发的过程中。保证屏障操作的可靠性方面,对接收屏障归约包采用应答方式,对接收屏障分发包,采用催促方式。通过单比特标识的方式,对多次屏障操作进行区分。通过出错率统计,获取当前交换机的链路出错率,自动对超时重传参数进行调整。其保证了网络传输的可靠性,提高了网络传输的效率即低延迟性,达到功能和性能的双重保证。
Description
技术领域
本发明涉及多处理机技术领域,特别是涉及一种基于胖树拓扑的屏障(Barrier)操作网络***、装置及方法。
背景技术
多处理机***是并行处理计算机***(Parallel Computer System,PCS)中的一种,由多台能够独立执行自己的程序的独立的计算机组成,多台计算机的处理器之间互连,实现程序之间的数据交换和同步。
多处理机***是多指令多数据(Multiple Instruction Multiple Data,MIMD)处理机***,每个处理器分配并行程序的一部分,各程序段并发执行处理。
但是,在多处理机***中,各程序段的执行过程中,在程序段之间,在某些情况下,如程序段之间发生数据相关时,仍需要一定的保序(order)关系,为了维护这种保序关系,就需要进行处理机之间的同步操作。
其中,被广泛应用于多处理机***中的屏障(Barrier)操作是同步操作中的一种。屏障操作是并行程序的同步点,并行程序要等待所有参与其中的处理器都到达这个同步点后,才执行后续操作。
屏障操作分为两个过程,一个是屏障到达通知,另一个是屏障完成通知。
屏障到达通知是处理器通知***,本处理器到达屏障同步点的过程。在树形屏障算法中,这一过程具有逐级归约的特征,也被称为归约(Reduce)过程;
屏障完成通知是***通知处理机,***已到达屏障同步点的过程。在树形屏障算法中,这一过程具有逐级分发的特征,也被称为分发(Distribute)过程。
屏障到达通知过程的时间依赖于最晚到达同步点的处理机,而屏障完成通知过程则依赖于具体的屏障实现。
屏障操作是并行程序中的串行部分,如果能够缩减屏障操作过程,则可以达到优化屏障操作和并行程序性能的目的。
由于同步处理操作涉及多个处理机,因此,屏障操作也涉及到处理机间的互联问题。现有技术中,有两种实现技术,一种是使用处理机间的数据互联网络,另一种是使用屏障专用互联网络。
美国专利US006216174B1公开了一种快速屏障电路实现的***和方法,其在处理器中设置一个屏障(barrier)位,并引出两根信号线,一根用于屏障(Barrier)到达通知,一根用于屏障(Barrier)完成通知。其通过专用硬件实现全局Barrier位的与操作,从而完成屏障操作过程。
但由于为屏障操作设置一套专用互联网络需要额外的网络部件,并需单独布线,成本较高,因此,得不到很好的应用。而采用处理机间的数据互联网络实现的屏障操作,在数据网络部件中增加对屏障的支持,是一种性价比较高的实现技术。
美国专利US005365228A公开了一种多级网络中屏障操作实现,其通过改造数据互联网络,实现屏障操作,通过优先级设置,每次只有优先级最高的屏障操作得以在网络中执行。
但是通过数据互联网络实现屏障操作,一旦屏障(Barrier)数据包出错轻则影响屏障操作的性能,重则导致程序运行的崩溃,因此需要保障其可靠性。
同时,屏障操作在任何环境下都需要保持较高的执行效率,因此通过数据互联网络实现屏障操作,也需要保障其效率,即低延迟性。
而现有技术在保证其可靠性的同时,无法实现效率即低延迟性的最优化,也就无法达到功能和性能的双重保证。
发明内容
本发明的目的在于提供一种基于胖树拓扑的屏障(Barrier)操作网络***、装置及方法。其保证了网络传输的可靠性,提高了网络传输的效率即低延迟性,达到功能和性能的双重保证。
为实现本发明目的而提供的一种基于胖树拓扑的屏障操作网络***,其包括在多处理机***的数据互联网络中,使用交换机节点作为屏障树的根,处理机节点作为屏障树的叶子。
所述交换机节点包括屏障模块,用于在归约和分发的过程中。在可靠性保障方面,对收取屏障归约包过程采用应答方式,对收取屏障分发包过程采用催促方式。
所述屏障模块还用于通过单比特标识的方式,区分多次屏障操作。
所述屏障模块还用于通过出错率统计,获取当前交换机的链路出错率,自动对超时重传参数进行调整。
所述屏障模块包括组配置模块,屏障状态机,屏障包分组模块,超时计数模块,其中:
所述组配置模块包括叶子配置寄存器和父端口配置寄存器,用于确定屏障组中节点间的互联关系;
所述屏障包分组模块用于将包按照屏障组号进行分类,以及将每个组的屏障包翻译为各类事件;
所述屏障状态机包括多个组状态机,以及调度状态机;
所述超时计数模块,用于控制重传及催促事件的产生。
所述组状态机对属于本组的屏障数据包进行处理,各组产生的屏障数据包经过调度状态机调度后发至下一级节点;
所述组状态机包括屏障归约状态寄存器,该归约状态寄存器用来记录屏障操作过程中的各种状态信息;
该组状态机还包括屏障完成状态位,该状态位记录了屏障分发操作的完成状态。
所述屏障模块还包括链路状态监测模块,用于动态获取链路状态信息,并根据链路状态信息,动态设置重传及催促超时阈值,供超时计数模块使用。
为实现本发明目的还提供一种交换机,用于在归约和分发的过程中。在可靠性保障方面,对收取屏障归约包过程采用应答方式,对收取屏障分发包过程采用催促方式。
所述屏障模块还用于通过单比特标识的方式,区分多次屏障操作。
所述屏障模块还用于通过出错率统计,获取当前交换机的链路出错率,自动对超时重传参数进行调整。
所述屏障模块包括组配置模块,屏障状态机,屏障包分组模块,超时计数模块,其中:
所述组配置模块包括叶子配置寄存器和父端口配置寄存器,用于确定屏障组中节点间的互联关系;
所述屏障包分组模块用于将包按照屏障组号进行分类,以及将每个组的屏障包翻译为各类事件,这些事件包括规约、分发、规约应答和分发催促;
所述屏障状态机包括多个组状态机,以及调度状态机;
所述超时计数模块,用于控制重传及催促事件的产生。
所述屏障模块还包括链路状态监测模块,用于动态获取链路状态信息,并根据链路状态信息,动态设置重传及催促超时阈值,供超时计数模块使用。
为实现本发明目的还进一步提供一种基于胖树拓扑的屏障操作方法,包括下列步骤:
步骤A,根据胖结拓扑结构对屏障操作***的屏障树中的交换机节点进行配置;
步骤B,当交换机节点处于空闲状态时,则响应与当前序号不同的催促包,等待与当前序号相同的屏障归约包;
步骤C,在交换机节点接收到与当前屏障序号相同的屏障归约包后,响应与当前序号相同的屏障归约包,以超时重传的方式,对所有屏障归约包返回响应包,进行屏障归约;
步骤D,当归约过程完成时,则响应与当前序号相同的屏障分发包,接收屏障分发包的过程采用超时催促的方式,对接收到的屏障分发包进行组播分发,然后转到步骤B,进入空闲状态。
所述步骤D中,进行屏障分发,还包括下列步骤:
对屏障完成状态位取反。
所述步骤C中,响应与当前序号相同的屏障归约包,以超时重传的方式,对所有屏障归约包返回响应包,进行屏障归约,包括下列步骤:
步骤C1,当收到屏障归约包后,检查屏障归约包中的屏障序号;若与当前序号一致,则复位相应归约状态寄存器的状态位,转至步骤C2;否则丢弃;同时,对所有的屏障归约包,回复应答包,应答包中的序号采用屏障归约包中的序号;
步骤C2,归约状态寄存器为全0时,屏障模块发出屏障归约包,并控制超时计数模块启动应答超时计数,转到步骤S330′;否则转至步骤S320′;
步骤C3,当收到应答包,且应答序号与当前序号一致后,则复位应答超时计数,完成此次超时动作,转至步骤SC4;如果应答超时计数达到阈值,则重发屏障归约包;
步骤C4,等待屏障分发包。
所述阈值由链路状态监测模块设置。
所述链路状态监测模块包括链路状态测试和超时阈值设置,链路状态监测模块中设置两个计数器,一个记录出现CRC错误包的个数,初始化为1,另一个记录所有数据包的个数,两个计数器的比值即出错率:
r=Cerror/Ctotal;
其中,Cerror值不为0。
超时阈值Ack Thres=K/r,其中K为常数。
所述步骤C还包括下列步骤:
步骤C1′,在操作过程中,当端口收到屏障归约包,就将归约状态寄存器中对应端口的状态位复位,当归约状态寄存器的值为全0时,引发该节点归约完成事件,将屏障归约包发送至父端口;
步骤C2′,通过归约状态寄存器中的序号位,区分连续两次屏障操作,只有与当前序号位相同的屏障归约包才对归约状态寄存器进行修改。
所述步骤D中,响应与当前序号相同的屏障分发包,对屏障完成状态位取反,采用超时催促的方式,进行屏障分发的过程,包括下列步骤:
步骤D1,完成归约过程的交换机节点,在启动应答超时计数的同时,启动屏障分发包超时催促计数;在催促计数达到阈值后,若还未收到屏障分发包,则向父端口发出分发催促包,催促父节点进行屏障分发包的发送;
步骤D2,如果是根节点,则在完成屏障归约过程后,节点的屏障模块使用当前屏障序号位填充屏障分发包, 转至步骤D3;如果不是根节点,则在收到屏障分发包,且分发包中序号与当前序号位相同时,转至步骤D3;
步骤D3,节点的屏障模块向叶子配置寄存器中的有效端口发送屏障分发包,并置位屏障完成状态位为1,转至步骤D4;
步骤D4,如果收到屏障催促包,若屏障完成状态位为1,且催促包的序号位与当前屏障序号不同,则节点的屏障模块重发屏障分发包,用屏障序号位取反后的值填充重发的屏障分发包。
所述阈值由链路状态监测模块设置。
链路状态监测模块的功能包括链路状态测试和催促阈值设置,链路状态监测模块中设置两个计数器,一个记录出现CRC错误包的个数,初始化为1,另一个记录所有数据包的个数,两个计数器的比值即为出错率:
r=Cerror/Ctotal;
其中,Cerror值不为0。
其中,催促阈值Dun Thres=(K’×L)/r,其中K’为常数,L是节点在屏障树中的层数。
所述步骤D还包括下列步骤:
步骤D1′,判断如果为根节点,则当完成屏障归约过程时,向叶子配置寄存器中的有效端口发送屏障分发包,屏障分发包使用当前的屏障序号位标识,同时置位屏障完成状态位;
步骤D2′,如果不是根节点,则从父端口收到一个屏障分发包后,节点的屏障模块就置位屏障完成状态位,并向叶子端口转发该屏障分发包。
所述步骤A可以包括下列步骤:
步骤S110,通过配置交换机中组配置模块中的叶子配置寄存器和父端口配置寄存器,确定一个屏障组中节点间互联关系;
步骤S120,使用组配置模块中叶子配置寄存器的值,设置屏障状态寄存器的初始值;
步骤S130,在进行屏障操作前复位屏障完成状态位。
本发明的有效效果是:本发明基于胖树拓扑的屏障(Barrier)操作网络***、装置及方法应用于多处理机***中,与链路状态相关联,基于超时重传机制,高效可靠,无需干预。其中屏障操作网络***采用树形拓扑,屏障树的结构可配置,其实现与链路状态相关的高效可靠屏障操作网络***,与数据互联网络共享物理链路;缩短处理机节点与屏障树根节点之间的通讯路径,降低屏障包的传输延迟;其支持并发的多个屏障操作,不同操作对应不同的屏障树,其中树形结构信息,由设置在交换机和处理机中的寄存器存储,该信息可进行配置,实现树形结构的动态调整。并使其可靠性与链路状态相关,即根据当前交换机的链路出错率,自动对超时重传参数进行调整,减少超时重传包对网络的影响,提高出错恢复的效率。
附图说明
图1为本发明基于胖树拓扑的屏障(Barrier)操作网络***结构示意图;
图2为本发明交换机节点结构示意图;
图3为图2中屏障(Barrier)模块结构示意图;
图4A为叶子配置寄存器示意图;
图4B为父端口配置寄存器示意图;
图4C为屏障(Barrier)归约状态寄存器示意图;
图4D为屏障(Barrier)完成状态位示意图;
图5为本发明基于胖树拓扑的屏障(Barrier)操作方法过程流程图;
图6为屏障(Barrier)归约过程流程图;
图7为屏障(Barrier)分发过程流程图;
图8为屏障(Barrier)链路状态监测模块工作过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种基于胖树拓扑的屏障(Barrier)操作网络***、装置及方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明基于胖树拓扑的屏障操作网络***、装置及方法,核心是实现与链路状态相关的高效可靠屏障操作,其基于胖树(Fat-Tree)拓扑结构,采用树形结构,使用交换机作为屏障(Barrier)树的根,处理机节点12作为屏障树的叶子,并支持并发的多个屏障操作,不同操作对应不同的屏障树,其中树形结构信息,由设置在交换机和处理机中的寄存器存储,可进行配置。
胖树(Fat-Tree)结构是一种被广泛应用在多处理机***中的数据互联网络的拓扑结构。胖树(Fat-Tree)结构是一种树形结构。在胖树(Fat-Tree)结构中,处理机节点12位于树的叶子,树的根及中间节点由交换机组成。
一般地,屏障操作会面临两类可靠性问题:1)是屏障包丢失;2)是连续两次屏障操作混杂。
不同的可靠性方法会影响到屏障操作的性能,因此,对屏障操作而言,需要一种高效的可靠性方法来保证屏障操作。
通讯链路信号质量和热噪声导致第一类问题出现,对于这类问题,检错和纠错的时机非常关键,直接影响到操作的性能,如何选择检错和纠错的时机是迫切需要解决的问题。而且,由于第一类问题中错误的产生概率随着链路的不同而不同,不同信号质量的链路应配以不同的可靠性方法,而现有技术中可靠性实现与链路状态无关,无法达到性能的最大化。
本发明的屏障网络对第一类可靠性问题采用点对点的超时重传方法:
对于屏障归约过程,采用应答方式,即收到屏障(Barrier)归约包的节点,要回送屏障(Barrier)应答包,在设定时间内没有收到屏障应答包的节点,则重传屏障归约包;
对于屏障分发阶段,采用催促方式,即发出屏障归约包的节点,在设定时间内没有收到屏障(Barrier)分发包,则发出屏障(Barrier)催促包,催促屏障分发包的到来。
较佳地,屏障应答包和屏障催促包只存在于相邻两级节点之间。
对于第二类问题,是由于处理机完成屏障具有异步性,即连续两次屏障操作可能同时存在于***中,重传数据包的可靠性机制会激化这类问题的出现,对于该第二类问题,如何有效区分连续两次屏障操作也是迫切需要解决的问题。
本发明的屏障网络对第二类可靠性问题,采用单比特标识的方法识别。由于屏障的阻塞性语义,对于一个应用,最多有连续的两次屏障操作存在,因此采用单比特进行标识是较优的方法,能够有效地解决第二类问题。
更佳地,本发明的屏障网络的可靠性还与链路状态有关,其在交换机中增加出错率统计功能,根据当前交换机的链路出错率,自动对超时重传参数进行调整。
当链路状态好时,增大超时重传参数,减少超时重传包对网络的影响;反之减小超时重传参数,提高出错恢复的效率。
如图1所示,为本发明的基于胖树拓扑的屏障操作网络***示意图,该屏障操作网络***包含在多处理机***的数据互联网络中,使用胖树(Fat-Tree)拓扑结构,使用交换机节点11作为屏障树的根,处理机节点12作为屏障树的叶子,即交换机位于树的中间节点,处理机节点12为树的叶子。一棵屏障树即参与同一屏障操作的网络部件集合,一棵屏障树即一个屏障组。多个屏障组同时存在于屏障操作网络***中。
所述屏障树的结构信息,由设置在交换机和处理机中的寄存器存储,可进行配置。
如图2所示,为本发明基于胖树拓扑的屏障操作网络***中交换机结构示意图,交换机的输入输出端口由多个虚通道组成,虚通道包括数据虚通道(VCFIFO)23和屏障虚通道(Barrier FIFO)25。数据虚通道23中传输的数据包由数据交叉开关(未示出)负责交换调度;屏障(Barrier)虚通道25中的屏障(Barrier)数据包由屏障模块21处理。
所述屏障数据包,如图4E所示,其中,
VC:屏障虚通道号
Type:屏障包类型,3位,现有4种包类型,分别为:001-归约包;010-分发包;100-归约响应包;110-分发催促包。
Seq:屏障操作的序号,1bit,用以区分连续两次屏障操作,初始值为0。
Barrier ID:指示当前屏障操作所在的组(Barrier Group)。
BPCRC:屏障包的CRC校验码。
首先由端口接收模块22按照虚通道号进行包分类,屏障数据包被缓存入屏障(Barrier)输入缓冲区中,屏障模块21将屏障缓冲区的屏障数据包处理后,产生新的屏障数据包,新产生的屏障数据包被缓存到屏障输出缓冲区中。对于各个输出缓冲区中的数据,端口发送模块24负责调度,屏障输出缓冲区具有最高的调度优先级。
本发明的屏障模块21,用于在归约和分发的过程中,对收到的屏障归约包采用应答方式,对发出的屏障归约包,采用催促方式,保证屏障操作的可靠性。
较佳地,所述屏障模块21还用于通过单比特标识的方式,区分不同的屏障操作。
更佳地,所述屏障模块21还用于通过出错率统计,根据当前交换机的链路出错率,自动对超时重传参数进行调整。
图2中屏障模块21的详细结构如图3所示,包括组配置模块31,屏障状态机32,屏障包分组模块33,超时计数模块34,以及链路状态监测模块35。
所述组配置模块31包括叶子配置寄存器和父端口配置寄存器,用于确定屏障组中节点间的互联关系。
交换机的每个端口在组配置模块31中的叶子配置寄存器中有一比特的映射,当叶子配置寄存器高电平时有效,低电压时无效。如图4A所示,叶子配置寄存器的值代表着0-2号端口是1号屏障组节点的叶子端口。
组配置模块31中的父端口配置寄存器,用端口号标识父端口。
父端口寄存器中设置根(Root)位,用于标识当前节点是否是整个屏障组的根;复位(Reset)位,用于复位屏障操作。
如图4B所示,为父端口配置寄存器表示端口3是0号屏障组中该节点的父端口,且该节点不是整个屏障组的根。
屏障包分组模块33用于将包按照屏障组号进行分类,以及将每个组的屏障包翻译为各类事件,包括归约事件、分发事件、重传事件和催促事件。
屏障状态机32包括第一组状态机321,第二组状态机321,......,第N-1组状态机321,以及调度状态机322。
组状态机321对属于本组的屏障数据包进行处理。各组产生的屏障数据包经过调度状态机322调度后发至下一级节点。
所述组状态机321包括屏障归约状态寄存器,该归约状态寄存器用来记录屏障操作过程中的各种状态信息。
如图4C所示,为屏障(Barrier)归约状态寄存器,其每一位代表着各叶子端口的屏障归约状态。该屏障归约状态寄存器中还包括一个序号位(Seq),用于区分连续两次屏障操作。
该组状态机321还包括屏障(Barrier)完成状态位,如图4D所示,该状态位记录了屏障分发操作的完成状态。
超时计数模块34,用于控制重传及催促事件的产生。
链路状态监测模块35,用于动态获取链路状态信息,并根据链路状态信息,动态设置重传及催促超时阈值,供超时计数模块34使用。
进行屏障操作之前,先由组配置模块31建立屏障树形结构,供后续操作使用。
操作进行时,屏障包分组模块33从屏障输入缓冲区中读取屏障数据包,将这些包按照组号分离,并翻译为各类事件,包括归约事件、分发事件、重传事件和催促事件,供屏障组状态机321使用。
针对获取的各类事件,屏障组状态机321产生不同的屏障数据包进行响应。
各组产生的屏障数据包通过调度状态机322送往相应的屏障输出缓冲区。其中屏障组状态机321涉及基于重传可靠性机制的实现,由超时计数模块34和链路状态监测模块35的配合,以达到保证可靠性机制最佳性能的目的。
本发明的基于胖树拓扑的屏障操作网络***,实现了处理机节点12位于树的叶子,树的根及中间节点由交换机组成,本发明由于胖树(Fat-Tree)拓扑结构下,所有的处理机通过交换机互连,因此,交换机处于处理机通讯路径中的中间位置,选择交换机可以获得最短的通讯路径,克服了现有选择处理机节点12作为屏障树的根,导致通讯延迟增加的缺陷。
本发明通过基于以太网的管理网络实现了管理配置功能,简化了屏障协议。克服了现有的基于胖树(Fat-Tree)拓扑的互联网络,选用交换机作为屏障树的根,需要让交换机实现更多的屏障协议,增加复杂的管理配置功能,大大增加了交换机的实现复杂度的缺陷。
下面详细说明本发明的基于胖树拓扑的屏障(Barrier)操作方法,如图5所示,包括下列步骤:
步骤S100,配置过程。本发明中,首先根据胖结拓扑结构对屏障操作***的屏障树中的交换机节点11进行配置;
步骤S110,通过配置交换机中组配置模块31中的叶子配置寄存器和父端口配置寄存器,确定一个屏障组中节点间互联关系。
交换机的每个端口在组配置模块31中的叶子配置寄存器中有一比特的映射,叶子配置寄存器高电平时有效,低电平时无效。如图4A所示,叶子配置寄存器的值代表着0~2号端口是1号屏障组节点的叶子端口。
组配置模块31中的父端口配置寄存器,用端口号标识父端口。
父端口寄存器中设置根(Root)位,用于标识当前节点是否为整个屏障组的根;复位(Reset)位,用于复位屏障操作。
如图4B所示,父端口配置寄存器表示端口3是0号屏障组中该节点的父端口,且该节点不是整个屏障组的根。
步骤S120,使用组配置模块31中叶子配置寄存器的值,设置屏障状态寄存器的初始值;
步骤S130,在进行屏障操作前复位屏障完成状态位=0。
步骤S200,当交换机节点11处于空闲状态时,则交换机节点11的屏障模块21响应与当前序号不同的催促包,等待与当前序号相同的屏障归约包,并丢弃其它包;
步骤S300,在交换机节点11接收到与当前屏障序号相同的屏障归约包后,响应与当前序号不同的催促包,并响应与当前序号相同的屏障归约包,丢弃其它包,以超时重传的方式,对所有屏障归约包返回响应包,进行屏障归约;
步骤S400,当屏障模块21中的屏障归约状态寄存器中的值为全0,即归约过程完成时,则节点的屏障模块21响应与当前序号相同的屏障分发包,对屏障完成状态位取反,采用超时催促的方式,进行屏障分发,然后转到步骤S200,进入空闲状态。
如图6所示,下面详细说明本发明的步骤S300中,响应与当前序号相同的屏障归约包,以超时重传的方式,对所有屏障归约包返回响应包,进行屏障归约的过程。
本发明实施例中,只对一个交换机节点11内部,并针对一个屏障组进行说明,但其同样可以适用于整个屏障操作网络。
归约过程中出现可靠性问题:
1)收到出错的屏障归约包;
2)发送的屏障归约包出错;
3)收到上一次屏障操作的屏障归约包。
本发明通过可配置的出错重传机制,以及序号位标识方法,对上述错误进行处理,保证屏障操作的正确进行,如图5B所示,具体说明如下:
在操作过程中,当端口0收到一个屏障归约包,就将归约状态寄存器中对应0号端口的状态位复位,当归约状态寄存器的值为全0时,引发该节点归约完成事件,将屏障归约包发送至父端口。
归约状态寄存器中的序号位,区分连续两次屏障操作,只有与当前序号位相同的屏障归约包才对归约状态寄存器进行修改。
在归约过程中,还包括如下步骤,保证归约的可靠性:
步骤S310′,当收到屏障归约包后,屏障模块21检查屏障归约包中的屏障序号;若与当前序号一致,则复位相应归约状态寄存器的状态位,转至步骤S320′;否则丢弃;同时,对所有的屏障归约包,屏障模块21都回复应答(ACK)包,应答(ACK)包中的序号采用屏障归约包中的序号;
步骤S320′,归约状态寄存器为全0时,屏障模块21发出屏障归约包,并控制超时计数模块34启动应答(ACK)超时计数,转到步骤S330′;否则转至步骤S320′;
步骤S330′,当收到应答(ACK)包,且应答(ACK)序号与当前序号一致后,则屏障模块21复位应答(ACK)超时计数,完成此次超时动作,转至步骤S340′;如果应答(ACK)超时计数达到阈值,则重发屏障归约包;
较佳地,在步骤S330′中,设置超时重传的阈值时,该阈值由链路状态监测模块35设置。如图8所示,链路状态监测模块35的功能包括链路状态测试和超时阈值设置,链路状态监测模块35中设置两个计数器,一个记录出现CRC错误包的个数,初始化为1,另一个记录所有数据包的个数,两个计数器的比值即出错率:
r=Cerror/Ctotal;
其中,Cerror值不为0。
超时阈值Ack Thres=K/r,其中K为常数。
因此,出错率r越高,阈值越小,重传越频繁;反之出错率r越低,阈值越大,重传越少。
对于出错率高的链路,及时重传会提高***的效率,但过于频繁,重传包会干扰正常的数据传输和屏障操作;对于出错率低的链路,尽量减少重传,最大限度减少重传干扰,但超时过长,又会降低出错时的屏障执行效率。
根据超时阈值的动态设置,确定重传发生的最佳时机,才能达到出错恢复的最佳性能。
为了达到及时重传和减少重传干扰两方面的平衡,较佳地,根据经验值,设置K=2×RTT,其中,RRT为往返时延(Round-Trip Time)。
步骤S340′,等待屏障分发包。
如图7所示,下面进一步详细描述步骤S400中,节点的屏障模块21响应与当前序号相同的屏障分发包,对屏障完成状态位取反,采用超时催促的方式,进行屏障分发的过程。
本发明实施例中,分发过程的也只对一个节点内部进行说明,但其同样适用于整个屏障网络。
步骤S410,判断如果为根节点(Root),即Root位=1,则当完成屏障归约过程时,根节点的屏障模块21向叶子配置寄存器中的有效端口发送屏障分发包,屏障分发包使用当前的屏障序号位标识,同时置位屏障完成状态位;
步骤S420,如果不是根节点(Root),则从父端口收到一个屏障分发包后,节点的屏障模块21就置位屏障完成状态位,并向叶子端口转发该屏障分发包。
在分发过程中,还包括如下步骤,保证分发的可靠性:
步骤S410′,完成归约过程的交换机节点11,在启动应答(ACK)超时计数的同时,交换机节点11的屏障模块21中的超时计数模块34启动屏障分发包超时催促计数,催促计数使用与归约过程中应答(ACK)超时不同的超时催促阈值;
在催促计数达到阈值后,若还未收到屏障分发包,则向父端口发出分发催促包,催促父节点进行屏障分发包的发送;
较佳地,在步骤S410′中,需要设置超时催促阈值,该阈值由链路状态监测模块35设置,如图8所示,链路状态监测模块35的功能包括链路状态测试和催促阈值设置,链路状态监测模块35中设置两个计数器,一个记录出现CRC错误包的个数,初始化为1,另一个记录所有数据包的个数,两个计数器的比值即为出错率:
r=Cerror/Ctotal;
其中,Cerror值不为0。
其中,催促阈值Dun Thres=(K’×L)/r,其中K’为常数,L是节点在屏障树中的层数。出错率r越高,阈值越小,催促越频繁;反之出错率r越低,阈值越大,催促越稀疏;随着树形结构,自底向上,催促频率逐渐增大。
对于出错率高的链路,及时催促会提高***的效率,但过于频繁,催促包会干扰正常的数据传输和屏障操作。因此,对于出错率低的链路,尽量减少催促,最大限度减少催促干扰,但超时过长,又会降低出错时的屏障执行效率。
根据超时阈值的动态设置,确定催促发生的最佳时机,才能达到出错恢复的最佳性能。
为了达到及时催促和减少催促干扰两方面的平衡,较佳地,根据经验值,设置K’=4×RTT。
步骤S420′,如果是根节点(Root),则在完成屏障归约过程后,节点的屏障模块21使用当前屏障序号位填充屏障分发包,转至步骤S430′;如果不是根节点,则在收到屏障分发包,且分发包中序号与当前序号位相同时,转至步骤S430′;
步骤S430′,节点的屏障模块21向叶子配置寄存器中的有效端口发送屏障分发包,并置位屏障完成状态位为1,转至步骤S440′;
步骤S440′,如果收到屏障催促包,若屏障完成状态位为1,且催促包的序号位与当前屏障序号不同,则节点的屏障模块21重发屏障分发包,用屏障序号位取反后的值填充重发的屏障分发包。
在本发明中,综合归约和分发两个过程,实现屏障操作,使用三个状态即可实现本发明,大大简化了逻辑设计。
本发明可采用硬件描述语言(Hardware Description Language HDL)编写、综合、仿真、调试后下载到现场可编程门阵列(Field Programmable Gate Array,FPGA)器件或者专用集成电路内,即可实现所需的片上***芯片。或者各功能模块也可用专用集成电路(Application Specific Intergrated Circuits,ASIC)来实现。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
Claims (23)
1.一种基于胖树拓扑的屏障操作网络***,其包括在多处理机***的数据互联网络中,其特征在于,使用交换机节点作为屏障树的根,处理机节点作为屏障树的叶子。
2.根据权利要求1所述的屏障操作网络***,其特征在于,所述交换机节点包括屏障模块,用于在归约和分发的过程中,对收取屏障归约包过程采用应答方式,对收取屏障分发包过程采用催促方式,保证屏障操作的可靠性。
3.根据权利要求2所述的屏障操作网络***,其特征在于,所述屏障模块还用于通过单比特标识的方式,区分多次屏障操作。
4.根据权利要求2或3所述的屏障操作网络***,其特征在于,所述屏障模块还用于通过出错率统计,获取当前交换机的链路出错率,自动对超时重传参数进行调整。
5.根据权利要求2或3所述的屏障操作网络***,其特征在于,所述屏障模块包括组配置模块,屏障状态机,屏障包分组模块,超时计数模块,其中:
所述组配置模块包括叶子配置寄存器和父端口配置寄存器,用于确定屏障组中节点间的互联关系;
所述屏障包分组模块用于将包按照屏障组号进行分类,以及将每个组的屏障包翻译为各类事件;
所述屏障状态机包括多个组状态机,以及调度状态机;
所述超时计数模块,用于控制重传及催促事件的产生。
6.根据权利要求5所述的屏障操作网络***,其特征在于,所述组状态机对属于本组的屏障数据包进行处理,各组产生的屏障数据包经过调度状态机调度后发至下一级节点;
所述组状态机包括屏障归约状态寄存器,该归约状态寄存器用来记录屏障操作过程中的各种状态信息;
该组状态机还包括屏障完成状态位,该状态位记录了屏障分发操作的完成状态。
7.根据权利要求5所述的屏障操作网络***,其特征在于,所述屏障模块还包括链路状态监测模块,用于动态获取链路状态信息,并根据链路状态信息,动态设置重传及催促超时阈值,供超时计数模块使用。
8.一种交换机,其特征在于,包括屏障模块,用于在归约和分发的过程中,在可靠性保障方面,对收取屏障归约包过程采用应答方式,对收取屏障分发包过程采用催促方式。
9.根据权利要求8所述的交换机,其特征在于,所述屏障模块还用于通过单比特标识的方式,区分多次屏障操作。
10.根据权利要求9所述的交换机,其特征在于,所述屏障模块还用于通过出错率统计,获取当前交换机的链路出错率,自动对超时重传参数进行调整。
11.根据权利要求8或9所述的交换机,其特征在于,所述屏障模块包括组配置模块,屏障状态机,屏障包分组模块,超时计数模块,其中:
所述组配置模块包括叶子配置寄存器和父端口配置寄存器,用于确定屏障组中节点间的互联关系;
所述屏障包分组模块用于将包按照屏障组号进行分类,以及将每个组的屏障包翻译为各类事件;所述事件包括归约、分发、归约应答和分发催促事件;
所述屏障状态机包括多个组状态机,以及调度状态机;
所述超时计数模块,用于控制重传及催促事件的产生。
12.根据权利要求11所述的交换机,所述屏障模块还包括链路状态监测模块,用于动态获取链路状态信息,并根据链路状态信息,动态设置重传及催促超时阈值,供超时计数模块使用。
13.一种基于胖树拓扑的屏障操作方法,其特征在于,包括下列步骤:
步骤A,根据胖结拓扑结构对屏障操作***的屏障树中的交换机节点进行配置;
步骤B,当交换机节点处于空闲状态时,则响应与当前序号不同的催促包,等待与当前序号相同的屏障归约包;
步骤C,在交换机节点接收到与当前屏障序号相同的屏障归约包后,响应与当前序号相同的屏障归约包,以超时重传的方式,对所有屏障归约包返回响应包,进行屏障归约;
步骤D,当归约过程完成时,则响应与当前序号相同的屏障分发包,接收屏障分发包的过程采用超时催促的方式,对接收到的屏障分发包进行组播分发,然后转到步骤B,进入空闲状态。
14.根据权利要求13所述的基于胖树拓扑的屏障操作方法,其特征在于,所述步骤D中,进行屏障分发,还包括下列步骤:
对屏障完成状态位取反。
15.根据权利要求13或14所述的基于胖树拓扑的屏障操作方法,其特征在于,所述步骤C中,响应与当前序号相同的屏障归约包,以超时重传的方式,对所有屏障归约包返回响应包,进行屏障归约,包括下列步骤:
步骤C1,当收到屏障归约包后,检查屏障归约包中的屏障序号;若与当前序号一致,则复位相应归约状态寄存器的状态位,转至步骤C2;否则丢弃;同时,对所有的屏障归约包,回复应答包,应答包中的序号采用屏障归约包中的序号;
步骤C2,归约状态寄存器为全0时,屏障模块发出屏障归约包,并控制超时计数模块启动应答超时计数,转到步骤S330′;否则转至步骤S320′;
步骤C3,当收到应答包,且应答序号与当前序号一致后,则复位应答超时计数,完成此次超时动作,转至步骤SC4;如果应答超时计数达到阈值,则重发屏障归约包;
步骤C4,等待屏障分发包。
16.根据权利要求15所述的基于胖树拓扑的屏障操作方法,其特征在于,所述阈值由链路状态监测模块设置。
17.根据权利要求16所述的基于胖树拓扑的屏障操作方法,其特征在于,所述链路状态监测模块包括链路状态测试和超时阈值设置,链路状态监测模块中设置两个计数器,一个记录出现CRC错误包的个数,初始化为1,另一个记录所有数据包的个数,两个计数器的比值即出错率:
r=Cerror/Ctotal;
其中,Cerror值不为0。
超时阈值Ack_Thres=K/r,其中K为常数。
18.根据权利要求15所述的基于胖树拓扑的屏障操作方法,其特征在于,所述步骤C还包括下列步骤:
步骤C1′,在操作过程中,当端口收到屏障归约包,就将归约状态寄存器中对应端口的状态位复位,当归约状态寄存器的值为全0时,引发该节点归约完成事件,将屏障归约包发送至父端口;
步骤C2′,通过归约状态寄存器中的序号位,区分连续两次屏障操作,只有与当前序号位相同的屏障归约包才对归约状态寄存器进行修改。
19.根据权利要求14所述的基于胖树拓扑的屏障操作方法,其特征在于,所述步骤D中,响应与当前序号相同的屏障分发包,对屏障完成状态位取反,采用超时催促的方式,进行屏障分发的过程,包括下列步骤:
步骤D1,完成归约过程的交换机节点,在启动应答超时计数的同时,启动屏障分发包超时催促计数;在催促计数达到阈值后,若还未收到屏障分发包,则向父端口发出分发催促包,催促父节点进行屏障分发包的发送;
步骤D2,如果是根节点,则在完成屏障归约过程后,节点的屏障模块使用当前屏障序号位填充屏障分发包, 转至步骤D3;如果不是根节点,则在收到屏障分发包,且分发包中序号与当前序号位相同时,转至步骤D3;
步骤D3,节点的屏障模块向叶子配置寄存器中的有效端口发送屏障分发包,并置位屏障完成状态位为1,转至步骤D4;
步骤D4,如果收到屏障催促包,若屏障完成状态位为1,且催促包的序号位与当前屏障序号不同,则节点的屏障模块重发屏障分发包,用屏障序号位取反后的值填充重发的屏障分发包。
20.根据权利要求19所述的基于胖树拓扑的屏障操作方法,其特征在于,所述阈值由链路状态监测模块设置。
21.根据权利要求20所述的基于胖树拓扑的屏障操作方法,其特征在于,所述链路状态监测模块的功能包括链路状态测试和催促阈值设置,链路状态监测模块中设置两个计数器,一个记录出现CRC错误包的个数,初始化为1,另一个记录所有数据包的个数,两个计数器的比值即为出错率:
r=Cerror/Ctotal;
其中,Cerror值不为0。
其中,催促阈值Dun_Thres=(K’×L)/r,其中K’为常数,L是节点在屏障树中的层数。
22.根据权利要求19所述的基于胖树拓扑的屏障操作方法,其特征在于,所述步骤D还包括下列步骤:
步骤D1′,判断如果为根节点,则当完成屏障归约过程时,向叶子配置寄存器中的有效端口发送屏障分发包,屏障分发包使用当前的屏障序号位标识,同时置位屏障完成状态位;
步骤D2′,如果不是根节点,则从父端口收到一个屏障分发包后,节点的屏障模块就置位屏障完成状态位,并向叶子端口转发该屏障分发包。
23.根据权利要求13或14所述的基于胖树拓扑的屏障操作方法,其特征在于,所述步骤A包括下列步骤:
步骤S110,通过配置交换机中组配置模块中的叶子配置寄存器和父端口配置寄存器,确定一个屏障组中节点间互联关系;
步骤S120,使用组配置模块中叶子配置寄存器的值,设置屏障状态寄存器的初始值;
步骤S130,在进行屏障操作前复位屏障完成状态位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101207540A CN100571183C (zh) | 2007-08-24 | 2007-08-24 | 一种基于胖树拓扑的屏障操作网络***、装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101207540A CN100571183C (zh) | 2007-08-24 | 2007-08-24 | 一种基于胖树拓扑的屏障操作网络***、装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101127677A true CN101127677A (zh) | 2008-02-20 |
CN100571183C CN100571183C (zh) | 2009-12-16 |
Family
ID=39095607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101207540A Active CN100571183C (zh) | 2007-08-24 | 2007-08-24 | 一种基于胖树拓扑的屏障操作网络***、装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100571183C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101945050A (zh) * | 2010-09-25 | 2011-01-12 | 中国科学院计算技术研究所 | 一种基于胖树结构的动态容错方法和*** |
CN103227876A (zh) * | 2011-12-08 | 2013-07-31 | 夏普株式会社 | 图像形成装置 |
CN107066417A (zh) * | 2017-02-28 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种链路参数在线调整的方法与装置 |
CN109246030A (zh) * | 2018-08-28 | 2019-01-18 | 烽火通信科技股份有限公司 | 一种配置编辑过程中状态机的实现方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5365228A (en) * | 1991-03-29 | 1994-11-15 | International Business Machines Corporation | SYNC-NET- a barrier synchronization apparatus for multi-stage networks |
JP2552784B2 (ja) * | 1991-11-28 | 1996-11-13 | 富士通株式会社 | 並列データ処理制御方式 |
US6216174B1 (en) * | 1998-09-29 | 2001-04-10 | Silicon Graphics, Inc. | System and method for fast barrier synchronization |
CN100474822C (zh) * | 2002-12-31 | 2009-04-01 | 浪潮电子信息产业股份有限公司 | 一种多分支胖树网络*** |
-
2007
- 2007-08-24 CN CNB2007101207540A patent/CN100571183C/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101945050A (zh) * | 2010-09-25 | 2011-01-12 | 中国科学院计算技术研究所 | 一种基于胖树结构的动态容错方法和*** |
CN103227876A (zh) * | 2011-12-08 | 2013-07-31 | 夏普株式会社 | 图像形成装置 |
CN107066417A (zh) * | 2017-02-28 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种链路参数在线调整的方法与装置 |
CN109246030A (zh) * | 2018-08-28 | 2019-01-18 | 烽火通信科技股份有限公司 | 一种配置编辑过程中状态机的实现方法及*** |
CN109246030B (zh) * | 2018-08-28 | 2021-06-15 | 烽火通信科技股份有限公司 | 一种配置编辑过程中状态机的实现方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN100571183C (zh) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3649580B2 (ja) | 分散コンピュータ・システムのエラーを報告するシステム | |
US5459725A (en) | Reliable multicasting over spanning trees in packet communications networks | |
US9313115B2 (en) | Traffic generator with priority flow control | |
US8958419B2 (en) | Switch fabric primitives | |
CN103973482A (zh) | 具有全局通信事务管理能力的容错片上网络***及方法 | |
CN101102305A (zh) | 管理网络信息处理的***和方法 | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN102868604B (zh) | 一种应用于片上网络的二维Mesh双缓冲容错路由单元 | |
JP2001306506A (ja) | トランザクション実行のためのプロトコル | |
CN110971542B (zh) | 基于fpga的srio数据传输*** | |
CN110519374B (zh) | ZigBee网络化工业控制***的边缘计算方法及其边缘节点 | |
US20140108878A1 (en) | Method, Apparatus, and System for Retransmitting Data Packet in Quick Path Interconnect System | |
CN100571183C (zh) | 一种基于胖树拓扑的屏障操作网络***、装置及方法 | |
CN103141050A (zh) | 快速通道互联***中数据包重传方法、节点 | |
CN106453156A (zh) | 一种虚拟设备间的通信方法及装置 | |
CN112350897A (zh) | 基于动态连接端到端可靠传输协议的网络测试装置 | |
US6999411B1 (en) | System and method for router arbiter protection switching | |
CN110505168B (zh) | 一种ni接口控制器及数据传输方法 | |
JPH10326260A (ja) | 分散コンピュータ・システムのハードウェア要素によりエラーを報告する方法 | |
US20060133376A1 (en) | Multicast transmission protocol for fabric services | |
CN111682966B (zh) | 带故障主动报告功能的网络通信装置,***及其方法 | |
CN117640511B (zh) | 一种有线通信***及其通信芯片、通信方法及介质 | |
CN101330341B (zh) | 一种栅障同步方法及*** | |
CN117812027B (zh) | Rdma加速组播方法、装置、设备及存储介质 | |
CN109347760A (zh) | 一种数据发送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |