一种面向分布式计算应用的光多播请求调度方法技术

技术编号:19102113 阅读:36 留言:0更新日期:2018-10-03 03:57
本发明专利技术公开了一种面向分布式计算应用的光多播请求调度方法,属于计算机通信领域。首先构建面向分布式计算应用的光多播请求调度平台,收集数据信息并进行分组;若某个分组达到触发条件,则信息组发送到调度触发模块;然后计算该组的宽度提交给光资源分配与多播请求计算调度模块,并按照宽度为每个该组进行实际分配,将分配结果分别提交给多播请求分配模块、拓扑调整模块与剩余光资源填充模块。多播请求分配模块与拓扑调整模块通过专用控制信道,建立OCS连接,启动传输相应的多播请求。最后剩余光资源填充模块优先从宽度较小的多播请求组中选择可用的多播请求。本发明专利技术大幅度提升了分布式计算应用的性能,网络性能好,提高了分布式计算应用的性能。

【技术实现步骤摘要】
一种面向分布式计算应用的光多播请求调度方法
本专利技术属于计算机通信领域,具体是一种面向分布式计算应用的光多播请求调度方法。
技术介绍
现今的数据中心网络中往往运行着大量分布式计算应用,这些分布式计算应用运行在数据中心的多台服务器或虚拟机中,往往被网络带宽制约,即计算性能受制于物理机之间的网络通信。如何解决数据中心中的网络通信,从而提升分布式计算应用的性能,是现在学术界一个非常重视的问题。所述的分布式计算应用有一个共同的特点:往往包含大量的一对多流量。比如在MapReduce过程中reducer向HDFS写存储数据时以及在一些分布式机器学习算法同步参数时,使用的网络流量往往数据量比较大,存在时间比较长,因此这一类网络流量是分布式计算应用的网络需求的重要组成部分,对分布式计算应用的性能影响很大。现有的分布式计算架构往往将数据中心网络看作一个黑盒子,通过上层应用的对网络的封装来传输类似的流量。比如Hadoop使用自己定义的分布式存储系统HDFS来进行数据的备份,使用管道流量的传输方式进行这种一对多流量的传输;Spark使用类似BT的P2P方式来处理这样的一对多流量。但是这种实现方法是低效的,有待改进。现有比较好的方法就是使用基于光纤耦合器的光交换系统来处理一对多的流量传输问题。因为光耦合器可以支持对光信号的复制,所以非常适合传输一对多的多播流量。如图1所示,该设备是以一个大型的光交换矩阵为基础,光交换矩阵上的一些光端口连接到数据中心的ToR交换机(TopofRackSwitch,即机顶交换机)上,另一些端口连接到了一些光耦合器上。通过对光口的重配置,该多播设备可以将数据中心内的任意ToR传输出来的多播流量传输到光耦合器上进行复制,然后再传输到其对应的目的地ToR上,从而完成一对多的网络流量传输。由于光传输的大容量,大带宽,低时延和低能耗等优点,使用这种方式在支持数据中心中的一对多的多播请求时很有优势。值得注意的是,除了这个设备之外,基于光耦合器的光交换系统都是可以支持多播的。只要将相应的多播数据输入到耦合器的源端,然后将耦合器的输出端连接到相应多播的目的地即可。但是,在这种光交换系统中,其网络传输的方式与电路交换不同,它的传输方式是基于光路电路交换(OCS)的,因此在这种系统中的光多播请求的控制与调度存在着光资源分配的问题。比如,如果数据中心中每一个ToR上只有一个光收发射机,在建立了一个源ToR与数个目的ToR的OCS连接后,这个源ToR就不能给没有建立OCS连接的其他ToR发送光多播数据了。但是在电网络中,由于所有的数据都是通过电交换机进行交换的,就不会存在这样的光资源约束。因此,只有通过适当的OCS连接的重构,以及将光多播请求进行合理调度,才能最大程度上发挥光多播系统的优势,从而提高分布式计算应用的性能。基于这个光多播设备来解决数据中心的网络问题,已有现有研究在国际会议或期刊中发表过文章,但是现有的多播请求调度方法都是只考虑网络性能,或者只考虑到多播请求本身。并没有考虑到分布式应用的实际需求,这就导致了虽然这些技术可以让数据中心中的多播请求的完成速度有一定的提升,或者让数据中心网络性能有些许提升,但是最终分布式计算应用的性能却没有达到很好的效果。分布式计算应用的本质需求应该是任务的完成时间,即从应用的使用者角度来看,并不关心这个系统内的网络状况,只要这个应用完成的速度快,则这个应用效果就是好的。为了探究分布式计算应用真正的网络需求与网络特性,文献1:一种集群应用的网络抽象;MosharafChowdhury,IonStoica;2012年10月提出了一种关联流的思想;该文章指出,数据中心中的一个任务的完成时间是由该任务所产生的所有流中最慢传输完成的一个流决定的。也就是说,在考虑分布式计算应用的网络需求时,应该同时考虑来自于同一个应用的所有流。想要让分布式计算应用的性能好,就需要让所有来自同一个应用的流都尽快完成,而不是单独考虑网络中每一个流的完成时间。由于分布式计算应用会产生大量的网络流量请求,而这些网络流量请求往往包含大量一对多的流传输;提高分布式计算应用的关键点就在于如何协同调度这些来自同一个应用的所有一对多的流,使他们都能尽快传输完成。但是现在所有的光多播设备调度方法都没有考虑到这个因素。比如,文献2:为数据中心网络设计的光多播系统;PaymanSamadi,VarunGupta,JunjieXu,HowardWang,GilZussman,andKerenBergman;2015年提出了光多播系统opticalmulticastsystem(OMS),其中使用优先传输数据量最大的多播请求的方法;文献[3]:通过光多播加速高性能数据分析应用;YitingXia,T.S.EugeneNg,XiaoyeStevenSun;2015年提出的Blast中采用的方法是:先求得对每个多播请求来说每个光接收机需要接收的数据量,然后优先传输光接收机需要接收的数据量较多的多播请求;文献4:为加速高性能数据中心应用设计的混合光电多播;JinzhenBao,BaokangZhao,DezunDong,ZhenghuGong;2017年8月提出的HERO则采用FIFO的方式优先传输先到的多播请求。这些系统中的调度算法都是仅仅考虑到了单个多播的性能或者整个网络的性能,而并没有考虑到分布式计算应用的性能。虽然文献5:为光数据中心交换设计的基于可调性约束的多播调度;KamranKeykhosravi,HoumanRastegarfar,ErikAgrell;2017年3月提出了专门针对这一类光多播系统的调度方法,但该文献也仅仅考虑到时延和吞吐量性能。归根结底,这些方法都没有切实地考虑到应用本身的需求,而只是从数据中心网络的角度考虑的。因此,在实际的分布式计算应用中,虽然以上的方法可以很好地提高网络的性能,以及一定程度上提高分布式计算应用的性能,但并没有从本质上考虑到应用的需求,也没有考虑到数据中心中多播请求的关联性,所以这些方法难以使分布式计算应用达到很优的性能。但是,如果直接使用文献1中的思想来调度该系统中的多播请求,也难以适用。因为该文献中提出的调度策略是针对于传统的电交换网络的,文献中的网络模型是假设整个网络是一个大型的电交换机,在此基础之上提出的调度策略。这种策略没有考虑到光交换网络中光资源的限制的问题,因此并不适用。
技术实现思路
本专利技术针对上述问题,提出了一种面向分布式计算应用的光多播请求调度方法;同时考虑到了分布式计算应用的网络需求,以及光交换网络的资源限制。针对基于光耦合器的光交换系统,通过对到来的多播请求进行分组,以及对每个分组定义与计算新的指标,然后进行调度。该调度方法可以解决上述现有方法中的不足,从而很大程度上减少分布式计算应用的完成时间,从而提高数据中心中分布式计算应用的性能。所述的面向分布式计算应用的光多播请求调度方法,具体步骤如下:步骤一、首先构建面向分布式计算应用的光多播请求调度平台;所述的光多播请求调度平台部署在服务器上或者有计算功能的专用网络控制单元上;包括多播请求信息收集与分组模块、调度触发模块、多播请求组宽度计算模块、光资源分配与多播请求计算调度模块、多播请求分配模块、拓扑调整模本文档来自技高网
...

【技术保护点】
1.一种面向分布式计算应用的光多播请求调度方法,其特征在于,具体步骤如下:步骤一、首先构建面向分布式计算应用的光多播请求调度平台;所述的光多播请求调度平台部署在服务器上或者有计算功能的专用网络控制单元上;包括多播请求信息收集与分组模块、调度触发模块、多播请求组宽度计算模块、光资源分配与多播请求计算调度模块、多播请求分配模块、拓扑调整模块以及剩余光资源填充模块;为了防止数据信道拥塞造成控制信息的延迟,该调度平台通过专用控制信道连接数据中心中的交换设备和服务器;同时通过专用控制信道连接光交换系统;步骤二、多播请求信息收集与分组模块通过专用控制信道收集数据中心中ToR上的收发机端口数目的信息,以及来自分布式计算应用的多播请求信息,并进行分组;步骤三、针对各个分组,判断某个分组中多播请求的个数是否达到触发条件,如果是,多播请求信息收集与分组模块将完整的该多播请求信息组发送到调度触发模块,进入步骤四;否则,继续等待新到达的多播请求;步骤四、调度触发模块发出指令给多播请求组宽度计算模块,计算该多播请求组的宽度提交给光资源分配与多播请求计算调度模块;计算宽度的具体步骤如下:步骤401、针对完整的多播请求组m,获取该组m的所有源ToR节点与所有目的ToR节点;源ToR节点名称为:S1,S2…Sn;目的ToR节点名称为:D1,D2…Dn;步骤402、对某一个源节点S/目的节点D,找到该节点需要发送/接收的属于多播请求组m的所有多播请求,并分别记录大小;多播请求为:q1,q2…qn,对应的大小为s1,s2…sn;步骤403、在该源节点S/目的节点D中,将该节点上所有多播请求从大到小逐一虚拟分配到没有请求的光发射机/接收机中,并记录每个发射机/接收机中所需要传输的流量;假设该源节点S/目的节点D中有k个光发射机/接收机,记为t1,t2…tk/r1,r1…rk;发射机/接收机需要传输的流量,记为T1,T2…Tk/R1,R2…Rk;当源节点S/目的节点D上所有多播请求数量小于光发射机/接收机数量时,没有分配的光发射机/接收机所需要传输的流量记录为0;步骤404、将发射机/接收机按需要传输的流量从小到大排序;并判断是否还有剩余的多播请求,如果有,将剩下的多播请求按顺序逐个虚拟分配到排序后的发射机/接收机中,并更新要传输的流量T/R,直到该组的所有多播请求都被分配完毕;否则,直接更新要传输的流量T/R;步骤405、根据更新后该源节点S/目的节点D最大的流量T/R,计算所需发送的最小时间Q;...

【技术特征摘要】
1.一种面向分布式计算应用的光多播请求调度方法,其特征在于,具体步骤如下:步骤一、首先构建面向分布式计算应用的光多播请求调度平台;所述的光多播请求调度平台部署在服务器上或者有计算功能的专用网络控制单元上;包括多播请求信息收集与分组模块、调度触发模块、多播请求组宽度计算模块、光资源分配与多播请求计算调度模块、多播请求分配模块、拓扑调整模块以及剩余光资源填充模块;为了防止数据信道拥塞造成控制信息的延迟,该调度平台通过专用控制信道连接数据中心中的交换设备和服务器;同时通过专用控制信道连接光交换系统;步骤二、多播请求信息收集与分组模块通过专用控制信道收集数据中心中ToR上的收发机端口数目的信息,以及来自分布式计算应用的多播请求信息,并进行分组;步骤三、针对各个分组,判断某个分组中多播请求的个数是否达到触发条件,如果是,多播请求信息收集与分组模块将完整的该多播请求信息组发送到调度触发模块,进入步骤四;否则,继续等待新到达的多播请求;步骤四、调度触发模块发出指令给多播请求组宽度计算模块,计算该多播请求组的宽度提交给光资源分配与多播请求计算调度模块;计算宽度的具体步骤如下:步骤401、针对完整的多播请求组m,获取该组m的所有源ToR节点与所有目的ToR节点;源ToR节点名称为:S1,S2…Sn;目的ToR节点名称为:D1,D2…Dn;步骤402、对某一个源节点S/目的节点D,找到该节点需要发送/接收的属于多播请求组m的所有多播请求,并分别记录大小;多播请求为:q1,q2…qn,对应的大小为s1,s2…sn;步骤403、在该源节点S/目的节点D中,将该节点上所有多播请求从大到小逐一虚拟分配到没有请求的光发射机/接收机中,并记录每个发射机/接收机中所需要传输的流量;假设该源节点S/目的节点D中有k个光发射机/接收机,记为t1,t2…tk/r1,r1…rk;发射机/接收机需要传输的流量,记为T1,T2…Tk/R1,R2…Rk;当源节点S/目的节点D上所有多播请求数量小于光发射机/接收机数量时,没有分配的光发射机/接收机所需要传输的流量记录为0;步骤404、将发射机/接收机按需要传输的流量从小到大排序;并判断是否还有剩余的多播请求,如果有,将剩下的多播请求按顺序逐个虚拟分配到排序后的发射机/接收机中,并更新要传输的流量T/R,直到该组的所有多播请求都被分配完毕;否则,直接更新要传输的流量T/R;步骤405、根据更新后该源节点S/目的节点D最大的流量T/R,计算所需发送的最小时间Q;步骤406、对该多播请求组m所有ToR源节点和目的节点,分别求出每个节点的最小时间Q值;步骤407、选择所有Q值的最大值作为该多播请求组m的宽度W;步骤五、重复上述步骤,在触发时刻计算系统中所有没完成传输的多播请求组m1,m2….mn对应的宽度W1,W2…Wn进行后续实际分配;步骤六、光资源分配与多播请求计算调度模块按照宽度为每个多播请求组进行实际分配,并将分配结果分别提交给多播请求...

【专利技术属性】
技术研发人员:郭宏翔唐轶男洪小斌伍剑
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1