CN110990140A - 一种光电交换网络中分布式机器学习流的调度方法 - Google Patents
一种光电交换网络中分布式机器学习流的调度方法 Download PDFInfo
- Publication number
- CN110990140A CN110990140A CN201911257668.3A CN201911257668A CN110990140A CN 110990140 A CN110990140 A CN 110990140A CN 201911257668 A CN201911257668 A CN 201911257668A CN 110990140 A CN110990140 A CN 110990140A
- Authority
- CN
- China
- Prior art keywords
- flow
- time
- task
- job
- port
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种光电交换网络中分布式机器学习流的调度方法,先利用HLF算法计算每一个任务中流的调度顺序及该任务单次迭代的通信时间,然后再根据SWRTF算法调度多个DML任务;其中,对于多个DML任务,首先根据SWRTF算法中的优先级定义计算出每个任务的优先级,然后选择具有最高优先级的任务,并使用HLF算法得到的流调度顺序调度这个任务的流,当这个任务完成通信阶段,转入计算阶段后,又重新选择可调度的、具有最高优先级的任务,直到所有任务都完成。
Description
技术领域
本发明属于通信技术领域,更为具体地讲,涉及一种光电交换网络中分布式机器学习流的调度方法。
背景技术
随着大数据时代的到来,分布式机器学习应运而生,其中数据并行是一种广泛使用的分布式机器学习方法,其基本思想是通过将数据集分为多个数据块,每个数据块使用不同的计算节点Worker并行训练,Worker间需要进行模型参数的同步,然后再开始下一次迭代,有些训练任务需要多达几十万次迭代才能达到理想收敛精度。在每次迭代中,计算节点之间的参数同步过程会产生大量数据。随着GPU等加速硬件的使用,单位时间内迭代次数增加,网络需要传输更多的数据,因此,DML对网络的吞吐要求越来越高,其性能瓶颈已经从计算转移到网络通信。
虽然已经有研究者从不同角度去加速DML应用,如通信压缩、编码、资源分配、任务调度等,但这些方法获得的性能提升始终受限于底层的物理拓扑。与此同时,也有学者研究了物理拓扑对DML性能的影响。为了从根本上加快DML训练,一种重要手段是从网络拓扑层面,通过增加物理网络带宽、提高网络吞吐,以提升DML性能。近些年,越来越多的学者提出把光路交换机OCS(Optical Circuit Switch)引入到网络中,构成可重构的网络拓扑。与传统分组交换机相比,OCS的高速率、低功耗、高可靠性等优点使其在集群网络中得到越来越广泛的应用。
图1是使用PS通信架构的DML在传统网络和OCS网络中的性能对比,假设传统网络中的带宽为10Gbps,OCS的带宽为20Gbps,OCS的线路切换时延为0.01秒。图1(a)、(b)分别展示了两个任务job1和job2在两种网络中的部署情况,其中,job1/2的worker数量、PS数量、模型大小分别为6/4、1/1、1/1Gb,并且假设两个job的权重weight都为1,且所需迭代次数也为1。表1展示了两种网络中的不同调度算法得到的WJCT。在这个例子中,OCS的带宽仅为20Gbps,此时,基于OCS网络得到的WJCT比SJF都少43.3%,而实际的OCS带宽高达100Gbps,更高的带宽更有利于加快DML。因此,高速率的OCS可大大提升DML性能。
表1是不同调度方案的WJCT对比;
表1
但是,每次OCS重新配置都具有线路切换时延(几十微秒~几十毫秒),不合理的OCS线路调度可能会带来多次切换时延,从而影响上层应用。因此,在引入OCS的集群里需要合理地调度OCS线路以提升上层应用的性能,而目前还没有专门针对DML集群的OCS线路调度方案。
现有的OCS调度方案可分为两类:一是基于流的调度方案。在同步模式下,worker节点之间需要通过中心式节点参数服务器或去中心化的MPI AllReduce模式进行参数同步,只当所有的worker都进更新了模型参数时,才可以执行下一轮迭代。每次迭代产生的流是相关的,迭代时间取决于传输最慢的流。因此,DML中不能按照流调度,而应该把每次迭代产生的所有流看作是一个coflow(具有相同目标的一组流)。另一类是基于coflow的调度。传统的coflow调度策略(比如最小coflow最先或者coflow剩余时间最小最先),虽然能优化coflow的完成时间,但并不能很好适用于机器学习这样迭代的任务,因为DML训练的迭代性使得某些任务甚至需要经过几百万次迭代才能达到理想精度。每次迭代都会生成coflow(所有流为一组coflow),在任务的生命周期内,会有一系列的coflow到达和离开,即一个DML任务包含多个有依赖关系coflow,而最小化coflow的完成时间并不等价于最小化任务的完成时间。因此,现有的OCS调度方案都不适合DML应用。
然而,基于流的OCS调度方案中没有coflow的概念,流之间是相互独立的,目标一般是最小所有流传输时间或最大化线路利用率。如Solstice通过改进BvN算法最小化流的完成时间。此外,网络中同时可能有多个DML任务,若按照上述方案调度不同DML任务的流,并不能最小化DML任务的完成时间。只有当每个DML任务的每次迭代产生的流都完成传输时,才能开始下一次迭代。每次迭代产生的流是息息相关的,应该把它们看作一个coflow。因此,基于流的OCS线路调度方案并不适用于DML。
而基于coflow的OCS调度方案,如Sunflow的主要思想是当已知coflow信息时,coflow之间使用抢占式调度,coflow内部使用非抢占式调度;OMCO是一种在线算法,根据当前coflow的优先级调度coflow,coflow内部则采用改进的BvN算法。如果把DML每次迭代产生的flow看作一个coflow,DML的每次迭代都包含计算阶段和coflow传输阶段,而DML就是由多次这种迭代组成。传统的基于coflow的调度方案可以优化coflow的完成时间,但对于具有迭代性的DML来说,这些方案并不能优化DML的任务完成时间。因为对于像DML这种具有多级(multi-stage)的任务,最小化coflow完成时间(CCT)和最小化任务完成时间(JCT)并不是相同的。因此,基于coflow的调度方案同样不适合DML。
发明内容
本发明的目的在于克服现有技术的不足,提供一种光电交换网络中分布式机器学习流的调度方法,在OCS网络中快速实现多DML任务的调度,从而最小化加权分布式机器学习任务的完成时间。
为实现上述发明目的,本发明一种光电交换网络中分布式机器学习流的调度方法,其特征在于,包括以下步骤:
(1)、获取光电交换网络中所有的调度任务Jobs,其中,每个Job包括任务Id、计算时间、每次迭代产生的流集合flows和剩余迭代次数;进一步的,流集合flows又包括流的Id、流的大小、流的入端口和流的出端口;
(2)、利用HLF算法计算每个Job进行一次迭代所需的通信时间以及流的调度顺序flowsort;
(2.1)、随机输入一个Job,并初始化当前时刻为切换时延currentTime=δ、当前剩余未调度流currentFlows=flows、端口空闲标志isportavaiable=0、端口最近空闲时间等于currentTime、流完成时间cct=0、流的调度顺序flowsort=φ;
(2.2)、判断当前剩余未调度流currentFlows是否为空集,如果currentFlows≠φ,则进入步骤(2.3);否则,跳转至步骤(2.8);
(2.3)、判断端口最近空闲时间是否小于等于currentTime,如果满足,则设置isportavaiable=1,再进入步骤(2.4);否则,设置currentTime为所有端口中的最近空闲时间+δ,再重复步骤(2.3);
(2.4)、找出具有最大负载的端口,记为S,然后判断端口S是入端口还是出端口,如果端口S是入端口,则进入步骤(2.5);否则,跳转至步骤(2.6);
(2.5)、找出从端口S出发的所有未调度的流对应的出端口,再选出具有最大负载的出端口,记为D;然后在flowsort中增加流S->D的Id,再从currentFlows中移除流S->D;然后再跳转至步骤(2.7);
(2.6)、找出出端口为S的所有未调度的流对应的入端口,再选出具有最大负载的入端口,记为D;然后在flowsort中增加流D->S的Id,再从currentFlows中移除流D->S;然后再跳转至步骤(2.7);
(2.7)、更新端口S/D的下次空闲时间为:currentTime+流大小/链路带宽,再返回步骤(2.2);
(2.8)、更新cct为端口的最近空闲时间的最大值,输出流的调度顺序flowsort和通信时间cct*2;
(2.9)、重复步骤(2.1)-(2.8),从而计算每个Job进行一次完整调度所需的通信时间以及流的调度顺序flowsort;
(3)、初始化每个任务的可调度时间为其计算时间;可调度任务集availablejobs=φ;设置currentT为最小的任务的可调度时间;设置任务加权完成时间T=0;
(4)、判断Jobs是否为空,若Jobs不为空,则从Jobs中找出当前可调度时间小于等于currentT的任务,存在可调度任务集availablejobs中,然后进入步骤(5),否则,跳转至步骤(12);
(5)、判断availablejobs是否为空,如果availablejobs≠φ,则进入步骤(6);否则,跳转至步骤(11);
(6)、找出具有最高优先级的任务Job,再根据该Job中流的调度顺序调度所有流;
(7)、更新currentT为该Job的通信时间+currentT,并将该Job的剩余迭代次数自减1;
(8)、判断该Job的剩余迭代次数是否为0,若为0,则进入步骤(9);否则,跳转至步骤(10);
(9)、更新该Job的完成时间为currentT,并把该Job从Jobs中删除,并计算该Job的加权完成时间之和T,T=T+W*currentT,W为该Job的权重,然后再返回步骤(4),进行下一个Job的调度;
(10)、更新该Job的可调度时间为currentT+通信时间+计算时间;更新currentT为currentT+通信时间,再返回至步骤(5);
(11)、从Jobs中找出最早可调度的任务,记为earliestjob,并设置currentT=earliestjob的可调度时间,然后返回至步骤(5);
(12)、计算所有任务的加权完成时间之和并输出。
本发明的发明目的是这样实现的:
本发明一种光电交换网络中分布式机器学习流的调度方法,先利用HLF算法计算每一个任务中流的调度顺序及该任务单次迭代的通信时间,然后再根据SWRTF算法调度多个DML任务;其中,对于多个DML任务,首先根据SWRTF算法中的优先级定义计算出每个任务的优先级,然后选择具有最高优先级的任务,并使用HLF算法得到的流调度顺序调度这个任务的流,当这个任务完成通信阶段,转入计算阶段后,又重新选择可调度的、具有最高优先级的任务,直到所有任务都完成。
同时,本发明一种光电交换网络中分布式机器学习流的调度方法还具有以下有益效果:
(1)、对于任务内调度,HLF算法优先调度负载重的端口上的流,可提高opticalcircuit的利用率,有助于减小单次迭代时间。具体来说,首先找到当前空闲的、负载最重的入/出端口S,然后根据未完成flows来找到对应的负载最重的端口出/入端口D,接着传输flow(S→D)或flow(D→S)。
(2)、对于多任务之间的调度,SWRTF算法中任务的优先级的定义为任务的权重与剩余完成时间之比,充分考虑了实际生产过程中每个DML任务具有不同权重的特点,同时结合了DML任务剩余完成时间可预测的特点,有利于减小多任务的加权完成时间。
(3)、当正在被调度的任务完成通信阶段时,SWRTF使用空闲线路去传输其它任务的数据,不仅有效利用了DML的计算和通信相互交错的特点、无需已知任务的离开或到达时间,而且可提高optical circuit利用率,从而减小了多任务加权完成时间。
附图说明
图1是DML任务在传统网络和OCS网络中的部署示意图;
图2是本发明一种光电交换网络中分布式机器学习流的调度方法流程图;
图3是HLF算法下单任务的调度流程图;
图4是Sunflow算法和HLF算法下单任务的调度;
图5是SWRTF算法下多个DML任务的调度。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
为了方便描述,先对具体实施方式中出现的相关专业术语进行说明:
OCS(Optical Circuit Switch):光电交换机;
PS(Parameter Server):参数服务器;
DML(Distributed Machine Learning):分布式机器学习;
HLF(Heaviest Load First):最重负载优先;
SWRTF(Shorted Weighted Remaining Time First):最小加权剩余时间优先;
WJCT(Weighted Job Completion Time):加权任务完成时间;
CCT(Coflow Completion Time):coflow完成时间
RCT(Remaining Completion TIme):剩余完成时间;
GPU(Graphics Processing Unit):图形处理器;
图2是本发明一种光电交换网络中分布式机器学习流的调度方法流程图。
在本实施例中,我们把整个网络抽像成一个具有N*N个端口的OCS。这个模型简单实用,因为在工业中常用的拓扑如Fat-Tree,可以构成一个完全对分带宽网络。OCS的端口连接ToR交换机,每个ToR交换机可连接多个OCS端口。每个ToR交换机连接了一组服务器。另外,在我们的网络模型中,我们假设服务器的带宽不会成为性能瓶颈。
Optical switch有两种模型,all-stop和not-all-stop,前者表示当有重新配置线路时,所有的线路上的传输都必需停止,后者表示只有需要重新配置的那些线路上的传输才会停止,其它线路上的传输不受影响。由于not-all-stop具有更高的线路利用率,因此,本实施例中采用了not-all-stop模型。
如图2所示,本发明一种光电交换网络中分布式机器学习流的调度方法,包括以下步骤:
S1、获取光电交换网络中所有的调度任务Jobs,其中,每个Job包括任务Id、计算时间、每次迭代产生的流集合flows和剩余迭代次数;进一步的,流集合flows又包括流的Id、流的大小、流的入端口和流的出端口;
在本实施例中,由于在网络中同时有多个DML任务,因此我们的算法包含针对一个DML任务内部的HLF算法和针对多个DML任务间的SWRTF算法。首先,利用HLF算法计算每一个任务中流的调度顺序及该任务单次迭代的通信时间(即流的完成时间);然后再根据SWRTF算法调度多个DML任务。具体过程如下:
S2、如图3所示,利用HLF算法计算每个Job进行一次迭代所需的通信时间以及流的调度顺序flowsort;
S2.1、随机输入一个Job,并初始化当前时刻为切换时延currentTime=δ、当前剩余未调度流currentFlows=flows、端口空闲标志isportavaiable=0、端口最近空闲时间等于currentTime、流完成时间cct=0、流的调度顺序flowsort=φ,其中,δ为常数;
S2.2、判断当前剩余未调度流currentFlows是否为空集,如果currentFlows≠φ,则进入步骤S2.3;否则,跳转至步骤S2.8;
S2.3、判断端口最近空闲时间是否小于等于currentTime,如果满足,则设置isportavaiable=1,再进入步骤S2.4;否则,设置currentTime为所有端口中的最近空闲时间+δ,再重复步骤S2.3;
S2.4、找出具有最大负载的端口,记为S,然后判断端口S是入端口还是出端口,如果端口S是入端口,则进入步骤S2.5;否则,跳转至步骤S2.6;
S2.5、找出从端口S出发的所有未调度的流对应的出端口,再选出具有最大负载的出端口,记为D;然后在flowsort中增加流S->D的Id,再从currentFlows中移除流S->D;然后再跳转至步骤S2.7;
S2.6、找出出端口为S的所有未调度的流对应的入端口,再选出具有最大负载的入端口,记为D;然后在flowsort中增加流D->S的Id,再从currentFlows中移除流D->S;然后再跳转至步骤S2.7;
S2.7、更新端口S/D的下次空闲时间为:currentTime+流大小/链路带宽,再返回步骤S2.2;
S2.8、更新cct为端口的最近空闲时间的最大值,输出流的调度顺序flowsort和通信时间cct*2;由于一次通信过程包括push和pull过程,这两个过程所需时间可以看作相同的,因此,一次迭代的通信时间为cct*2。
S2.9、重复步骤S2.1-S2.8,从而计算每个Job进行一次完整调度所需的通信时间以及流的调度顺序flowsort;
在本实施例中,HLF算法优先调度负载重的OCS端口上的流,可增加circuit的利用率,有利于减小单次迭代时间。下面通过一个例子来展示HLF算法的调度过程。表2表示一个coflow的所有流对应的OCS出入端口及数据包大小,图4展示了两种调度算法的调度过程。其中,图4(a)中的Sunflow算法,图4(b)中的HLF算法。其中,HLF算法的调度过程为:首先当前空闲的端口中,具有最大负载的是出端口7,其对应的流的入端口包含1、2、3,而这3个端口中具有最大负载的入端口为3,因此,首先要调度的是flow(3→7),同时设置端口3和7的下次空闲时间为25(flow(2→7)的传输时间)加上切换时延;接着以同样的方式选择调度其它流。最终根据HLF算法得到的流的调度顺序为3→7、1→6、2→8、2→7、3→8、4→6、1→7;若使用随机方式得到的流的调度顺序为3→7、4→6、2→8、2→7、3→8、1→7、1→6。通过图4对比可知,两种算法得到的单次迭代时间分别为82.4、57.3,HLF算法可得到更低的单次迭代时间。HLF算法中优先调度负载重的端口对应的流,有助于减小单次迭代时间。
端口 | Out.6 | Out.7 | Out.8 |
In.1 | 25 | 12 | 0 |
In.2 | 0 | 20 | 15 |
In.3 | 0 | 25 | 20 |
In.4 | 12 | 0 | 0 |
表2
S3、初始化每个任务的可调度时间为其计算时间;可调度任务集availablejobs=φ;设置currentT为最小的任务的可调度时间;设置任务加权完成时间T=0;其中,任务的可调度时间是指任务完成计算阶段的时间,这些任务正在等待通信、随时可以通信。
S4、判断Jobs是否为空,若Jobs不为空,则从Jobs中找出当前可调度时间小于等于currentT的任务,这些任务指已经完成计算阶段,等待通信的那些任务,再存在可调度任务集availablejobs中,然后进入步骤S5,否则,跳转至步骤S12;
S5、判断availablejobs是否为空,如果availablejobs≠φ,则进入步骤S6;否则,跳转至步骤S11;
S6、找出具有最高优先级的任务Job,再根据该Job中流的调度顺序调度所有流;
任务Job的优先级定义为:
其中,W表示任务Job的权重,RCT表示任务Job的剩余完成时间,具体计算为:RCT=通信时间*剩余迭代次数+计算时间*(剩余迭代次数-1)。
通过上述公式,我们可以计算出所有任务Job的优先级P,然后选取maxP作为最高优先级的任务Job。
S7、更新currentT为该Job的通信时间+currentT,并将该Job的剩余迭代次数自减1;
S8、判断该Job的剩余迭代次数是否为0,若为0,则进入步骤S9;否则,跳转至步骤S10;
S9、更新该Job的完成时间为currentT,并把该Job从Jobs中删除,并计算该Job的加权完成时间之和T,T=T+W*currentT,W为该Job的权重,然后再返回步骤S4,进行下一个Job的调度;
S10、更新该Job的可调度时间为currentT+通信时间+计算时间;更新currentT为currentT+通信时间,再返回至步骤S5;
S11、从Jobs中找出最早可调度的任务,记为earliestjob,并设置currentT=earliestjob的可调度时间,然后返回至步骤S5;
S12、计算所有任务的加权完成时间之和并输出。
在SWRTF算法中,当任务处于计算阶段时,使用空闲线路idle circuit去传输其它任务的数据,不仅有效利用了DML的计算和通信相互交错,而且无需已知任务的离开或到达时间。下面通过一个例子举例说明SWRTF的调度过程。表3列出了4个DML任务的相关信息,在SWRTF算法下多个DML任务的调度过程如图5所示。
表3
由图5可知,在SWRTF算法中,optical circuit一直都处于数据传输状态,具有较高的线路利用率。若使用传统的调度算法,如最小任务优先算法,当正在调度的任务进入计算阶段时,线路就处于空闲状态,因此线路的利用率较低,DML任务的计算时间越长,线路的利用率就越低。但在SWRTF算法中,当一个任务进入计算阶段时,就选择调度其它优先级最高的任务,从而提高了线路的利用率,进而有助于减小任务完成时间。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种光电交换网络中分布式机器学习流的调度方法,其特征在于,包括以下步骤:
(1)、获取光电交换网络中所有的调度任务Jobs,其中,每个Job包括任务Id、计算时间、每次迭代产生的流集合flows和剩余迭代次数;进一步的,流集合flows又包括流的Id、流的大小、流的入端口和流的出端口;
(2)、利用HLF算法计算每个Job进行一次迭代所需的通信时间以及流的调度顺序flowsort;
(2.1)、随机输入一个Job,并初始化当前时刻为切换时延currentTime=δ、当前剩余未调度流currentFlows=flows、端口空闲标志isportavaiable=0、端口最近空闲时间等于currentTime、流完成时间cct=0、流的调度顺序flowsort=φ;
(2.2)、判断当前剩余未调度流currentFlows是否为空集,如果currentFlows≠φ,则进入步骤(2.3);否则,跳转至步骤(2.8);
(2.3)、判断端口最近空闲时间是否小于等于currentTime,如果满足,则设置isportavaiable=1,再进入步骤(2.4);否则,设置currentTime为所有端口中的最近空闲时间+δ,再重复步骤(2.3);
(2.4)、找出具有最大负载的端口,记为S,然后判断端口S是入端口还是出端口,如果端口S是入端口,则进入步骤(2.5);否则,跳转至步骤(2.6);
(2.5)、找出从端口S出发的所有未调度的流对应的出端口端口,再选出具有最大负载的出端口,记为D;然后在flowsort中增加流S->D的Id,再从currentFlows中移除流S->D;然后再跳转至步骤(2.7);
(2.6)、找出出端口为S的所有未调度的流对应的入端口,再选出具有最大负载的入端口,记为D;然后在flowsort中增加流D->S的Id,再从currentFlows中移除流D->S;然后再跳转至步骤(2.7);
(2.7)、更新端口S/D的下次空闲时间为:currentTime+流大小/链路带宽,再返回步骤(2.2);
(2.8)、更新cct为端口的最近空闲时间的最大值,输出流的调度顺序flowsort和通信时间cct*2;
(2.9)、重复步骤(2.1)-(2.8),从而计算每个Job进行一次完整调度所需的通信时间以及流的调度顺序flowsort;
(3)、初始化每个任务的可调度时间为其计算时间;可调度任务集availablejobs=φ;设置currentT为最小的任务的可调度时间;设置任务加权完成时间T=0;
(4)、判断Jobs是否为空,若Jobs不为空,则从Jobs中找出当前可调度时间小于等于currentT的任务,存在可调度任务集availablejobs中,然后进入步骤(5),否则,跳转至步骤(12);
(5)、判断availablejobs是否为空,如果availablejobs≠φ,则进入步骤(6);否则,跳转至步骤(11);
(6)、找出具有最高优先级的任务Job,再根据该Job中流的调度顺序调度所有流;
(7)、更新currentT为该Job的通信时间+currentT,并将该Job的剩余迭代次数自减1;
(8)、判断该Job的剩余迭代次数是否为0,若为0,则进入步骤(9);否则,跳转至步骤(10);
(9)、更新该Job的完成时间为currentT,并把该Job从Jobs中删除,并计算该Job的加权完成时间之和T,T=T+W*currentT,然后再返回步骤(4),进行下一个Job的调度;
(10)、更新该Job的可调度时间为currentT+通信时间+计算时间;更新currentT为currentT+通信时间,再返回至步骤(5);
(11)、从Jobs中找出最早可调度的任务,记为earliestjob,并设置currentT=earliestjob的可调度时间,然后返回至步骤(5);
(12)、计算所有任务的加权完成时间之和并输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911257668.3A CN110990140B (zh) | 2019-12-10 | 2019-12-10 | 一种光电交换网络中分布式机器学习流的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911257668.3A CN110990140B (zh) | 2019-12-10 | 2019-12-10 | 一种光电交换网络中分布式机器学习流的调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990140A true CN110990140A (zh) | 2020-04-10 |
CN110990140B CN110990140B (zh) | 2023-03-14 |
Family
ID=70091886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911257668.3A Active CN110990140B (zh) | 2019-12-10 | 2019-12-10 | 一种光电交换网络中分布式机器学习流的调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990140B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585904A (zh) * | 2020-04-30 | 2020-08-25 | 南京汉德数字孪生技术研究院有限公司 | 基于预测并发连接数的双向coflow调度方法 |
CN113301073A (zh) * | 2020-04-16 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 分布式机器学习系统中服务器节点之间的通信方法和装置 |
CN114205313A (zh) * | 2021-12-13 | 2022-03-18 | 广东工业大学 | 一种光电路交换下组播请求传输的调度优化方法 |
CN115378818A (zh) * | 2022-10-26 | 2022-11-22 | 西南民族大学 | 一种适用于大规模分布式机器学习的新型拓扑设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055379A (zh) * | 2015-04-09 | 2016-10-26 | 国际商业机器公司 | 用于调度计算任务的方法和系统 |
CN106302221A (zh) * | 2016-09-12 | 2017-01-04 | 中国联合网络通信集团有限公司 | 基于端局云化的流量调度方法和系统 |
US20180293493A1 (en) * | 2017-04-10 | 2018-10-11 | Intel Corporation | Abstraction layers for scalable distributed machine learning |
US20190114537A1 (en) * | 2017-10-16 | 2019-04-18 | Facebook, Inc. | Distributed training and prediction using elastic resources |
CN110086650A (zh) * | 2019-03-20 | 2019-08-02 | 武汉大学 | 面向分布式机器学习任务的云资源在线调度方法及装置 |
-
2019
- 2019-12-10 CN CN201911257668.3A patent/CN110990140B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055379A (zh) * | 2015-04-09 | 2016-10-26 | 国际商业机器公司 | 用于调度计算任务的方法和系统 |
CN106302221A (zh) * | 2016-09-12 | 2017-01-04 | 中国联合网络通信集团有限公司 | 基于端局云化的流量调度方法和系统 |
US20180293493A1 (en) * | 2017-04-10 | 2018-10-11 | Intel Corporation | Abstraction layers for scalable distributed machine learning |
US20190114537A1 (en) * | 2017-10-16 | 2019-04-18 | Facebook, Inc. | Distributed training and prediction using elastic resources |
CN110086650A (zh) * | 2019-03-20 | 2019-08-02 | 武汉大学 | 面向分布式机器学习任务的云资源在线调度方法及装置 |
Non-Patent Citations (3)
Title |
---|
ERIC P.XING;QIRONG HO;PENGTAO XIE;WEI DAI;: "大数据的分布式机器学习的策略与原则" * |
MOHAMMAD MOHAMMADI AMIRI ET AL: "Computation Scheduling for Distributed Machine Learning With Straggling Workers" * |
陈明: "未来通信网络中基于机器学习的自适应资源调度算法设计与实现" * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301073A (zh) * | 2020-04-16 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 分布式机器学习系统中服务器节点之间的通信方法和装置 |
CN111585904A (zh) * | 2020-04-30 | 2020-08-25 | 南京汉德数字孪生技术研究院有限公司 | 基于预测并发连接数的双向coflow调度方法 |
CN111585904B (zh) * | 2020-04-30 | 2022-07-08 | 南京汉德数字孪生技术研究院有限公司 | 基于预测并发连接数的双向coflow调度系统 |
CN114205313A (zh) * | 2021-12-13 | 2022-03-18 | 广东工业大学 | 一种光电路交换下组播请求传输的调度优化方法 |
CN114205313B (zh) * | 2021-12-13 | 2023-06-09 | 广东工业大学 | 一种光电路交换下组播请求传输的调度优化方法 |
CN115378818A (zh) * | 2022-10-26 | 2022-11-22 | 西南民族大学 | 一种适用于大规模分布式机器学习的新型拓扑设计方法 |
CN115378818B (zh) * | 2022-10-26 | 2023-02-24 | 西南民族大学 | 一种适用于大规模分布式机器学习的新型拓扑设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110990140B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990140B (zh) | 一种光电交换网络中分布式机器学习流的调度方法 | |
CN111030835B (zh) | 一种ttfc网络的任务调度模型及消息调度表生成方法 | |
US10243885B2 (en) | Method for complex coloring based parallel scheduling for switching network | |
Zhang et al. | Task-and network-level schedule co-synthesis of Ethernet-based time-triggered systems | |
CN103412794A (zh) | 一种面向流计算的动态调度分配方法 | |
CN109286528B (zh) | 一种基于时延的sdn网络多控制器部署方法 | |
CN103036792A (zh) | 一种最大化最小公平多数据流传输调度方法 | |
CN104461748A (zh) | 一种基于MapReduce的最优本地化任务调度方法 | |
CN111049667B (zh) | 一种时间触发以太网通信任务离线调度优化方法 | |
Fang et al. | GRID: Gradient routing with in-network aggregation for distributed training | |
CN111193971B (zh) | 一种面向机器学习的分布式计算互连网络系统及通信方法 | |
CN107483355B (zh) | 面向数据中心的在线场景低带宽开销流量调度方案 | |
CN107454009B (zh) | 面向数据中心的离线场景低带宽开销流量调度方案 | |
Liu et al. | Online job scheduling for distributed machine learning in optical circuit switch networks | |
CN113946455A (zh) | 一种基于瓶颈感知的多级反馈队列Coflow调度方法 | |
Zhang et al. | Reco: Efficient regularization-based coflow scheduling in optical circuit switches | |
US7912068B2 (en) | Low-latency scheduling in large switches | |
WO2023109445A1 (zh) | 一种基于时间触发以太网的业务调度方法 | |
Wei et al. | Drl-deploy: adaptive service function chains deployment with deep reinforcement learning | |
Li et al. | Progressive forwarding disaster backup among cloud datacenters | |
CN113128668B (zh) | 数据中心网络中一种兼顾高吞吐和公平性的链路调度方法 | |
CN101964747A (zh) | 基于前置反馈的两级交换结构工作方法 | |
Fang et al. | Accelerating Distributed Training With Collaborative In-Network Aggregation | |
Zhang et al. | Towards stable flow scheduling in data centers | |
Goel et al. | Scheduling data transfers in a network and the set scheduling problem |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |