CN116760761B - 路径创建方法、数据处理系统、控制器、存储介质 - Google Patents
路径创建方法、数据处理系统、控制器、存储介质 Download PDFInfo
- Publication number
- CN116760761B CN116760761B CN202311034673.4A CN202311034673A CN116760761B CN 116760761 B CN116760761 B CN 116760761B CN 202311034673 A CN202311034673 A CN 202311034673A CN 116760761 B CN116760761 B CN 116760761B
- Authority
- CN
- China
- Prior art keywords
- path
- computing
- information
- alternative
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000004891 communication Methods 0.000 claims description 196
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 11
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及分布式计算领域,提供一种路径创建方法、数据处理系统、控制器、存储介质,所述方法应用于控制器,控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,该方法包括:接收来自任意计算节点的路径创建请求,确定使多个计算设备可通信且满足拓扑类型的至少一条备选路径;确定每一备选路径的拥塞程度;选择拥塞程度满足第一预设条件的备选路径作为目标路径,并创建目标路径;将目标路径的相关信息输出至计算节点。根据本公开实施例的路径创建方法,控制器基于全局的拓扑结构和已创建路径信息确定目标路径,既避免了多个分布式计算任务创建的路径相同,提高资源利用效率和任务执行效率,又提高了路径创建的准确度。
Description
技术领域
本公开涉及分布式计算领域,尤其涉及一种路径创建方法、数据处理系统、控制器、存储介质。
背景技术
分布式计算任务如分布式机器学习等,是一种使用多个独立的计算节点运行的计算任务。在计算过程中,各节点需要与集群内多个其他的节点进行数据通信。分布式计算任务所使用的通常是集群的一部分节点。典型的现有技术实现,如NVIDIA集体通信库(NVIDIAcollective communication library,NCCL)等,主要是在分布式计算任务开始时,使用通信库,在分布式计算任务的各执行节点上,收集节点之间的网络拓扑信息及节点内各计算设备之间的拓扑关系;根据收集到的信息,预先计算出各节点间的通信路径,确定通信路径上的计算设备以及各计算设备之间的通信链路的类型,并创建通信路径以供分布式计算任务执行时使用。通常优先选择带宽高、时延低的最优通信路径来创建。后续分布式计算任务运行过程中,计算设备之间使用之前计算好的通信路径进行数据通信。
为提高资源利用率,一些云计算或者网格计算场景下,在一个集群中会同时运行多个分布式计算任务。由于每个分布式计算任务独立计算创建最优通信路径,可能存在多个分布式计算任务创建的路径相同的情况。当多个分布式计算任务的通信数据都从相同的通信路径转发时,可能导致路径拥塞,出现数据丢失或时延增加等问题;而次优通信路径没有被创建,造成资源浪费。
发明内容
有鉴于此,本公开提出了一种路径创建方法、数据处理系统、控制器、存储介质,根据本公开实施例的路径创建方法,控制器基于全局的拓扑结构和已创建路径信息确定目标路径,既避免了多个分布式计算任务创建的路径相同,提高资源利用效率和任务执行效率,又提高了路径创建的准确度。
根据本公开的一方面,提供了一种路径创建方法,所述方法应用于控制器,所述控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,所述方法包括:接收来自任意计算节点的路径创建请求,所述路径创建请求包括执行分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件;根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径;根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度;选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,并创建所述目标路径;将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
在一种可能的实现方式中,所述方法还包括:接收来自任意计算节点的路径释放请求时,释放所述路径释放请求所指示的路径,包括从所述已创建路径信息中删除所述路径释放请求所指示的路径的相关信息。
在一种可能的实现方式中,所述方法还包括:接收来自任意计算节点的拓扑信息,所述拓扑信息包括与该计算节点可通信的每个计算节点的标识,以及该计算节点上每对可通信的计算设备的标识对和通信链路的信息;根据所述拓扑信息更新预先存储的所述拓扑结构。
在一种可能的实现方式中,所述第一预设条件为所述目标路径的拥塞程度最小,所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:根据所述已创建路径信息,确定当前时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示所述备选路径的拥塞程度的第一拥塞参数;所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:从所述备选路径中选择第一拥塞参数最大的备选路径作为所述目标路径。
在一种可能的实现方式中,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:第一拥塞参数最大的备选路径有多个时,从第一拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
在一种可能的实现方式中,所述第一预设条件为所述目标路径的拥塞程度最小,所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:根据所述已创建路径信息,确定预设时间段内每一时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示该时间点所述备选路径的拥塞程度的第一拥塞参数;根据所述备选路径在每一时间点的第一拥塞参数的最大值,确定指示所述备选路径的拥塞程度的第二拥塞参数;所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:从所述备选路径中选择第二拥塞参数最大的备选路径作为所述目标路径。
在一种可能的实现方式中,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:第二拥塞参数最大的备选路径有多个时,从第二拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
在一种可能的实现方式中,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息,所述创建所述目标路径包括:将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息加入所述已创建路径信息。
在一种可能的实现方式中,所述路径创建请求还包括分布式计算任务的预期执行时长,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息、该路径的预期创建时间和预期释放时间,所述创建所述目标路径包括:根据所述目标路径的第二拥塞参数对应的时间点,确定所述目标路径的预期创建时间;根据所述目标路径的预期创建时间和所述预期执行时长,确定所述目标路径的预期释放时间;将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息、所述目标路径的预期创建时间和预期释放时间加入所述已创建路径信息。
在一种可能的实现方式中,在到达所述目标路径的预期释放时间后、接收到指示所述目标路径的路径释放请求前的任意时间点时,所述方法还包括:查找所述已创建路径信息,确定是否存在预期创建时间与所述目标路径的预期释放时间相关联的已创建且未释放的路径;根据当前时间点修改所述已创建路径信息中的所述目标路径的预期释放时间;在查找到至少一条路径时,根据当前时间点修改所述至少一条路径的预期创建时间和预期释放时间,或者,在查找到至少一条路径时,释放查找到的路径,并根据该路径包括的多个计算设备的标识,重新执行根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径及之后的步骤。
在一种可能的实现方式中,所述通信链路包括点对点通信类型、无限带宽类型、基于融合以太网的远程直接数据存取类型、以太网类型中的一种或多种。
根据本公开的另一方面,提供了一种路径创建方法,所述方法应用于数据处理系统,所述数据处理系统包括控制器和多个计算节点,所述控制器与所述多个计算节点通信,每个计算节点上包括至少一个计算设备,所述方法包括:任意计算节点上的分布式计算任务被启动时,该计算节点发送路径创建请求到所述控制器,所述路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,所述多个计算设备是执行所述分布式计算任务使用到的计算设备;所述控制器执行所述路径创建方法,接收所述路径创建请求并创建目标路径,将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
在一种可能的实现方式中,所述方法还包括:任意计算节点接收到目标路径的相关信息时,该计算节点根据所述目标路径的相关信息执行所述分布式计算任务;在所述分布式计算任务执行结束后,该计算节点发送路径释放请求到所述控制器,所述路径释放请求指示所述目标路径。
根据本公开的另一方面,提供了一种控制器,所述控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,所述控制器包括:路径管理模块,用于接收来自任意计算节点的路径创建请求,所述路径创建请求包括执行分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件;拓扑计算模块,用于根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径;根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度;选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,并由所述路径管理模块创建所述目标路径;所述路径管理模块还用于将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
在一种可能的实现方式中,所述路径管理模块还用于:接收来自任意计算节点的路径释放请求时,释放所述路径释放请求所指示的路径,包括从所述已创建路径信息中删除所述路径释放请求所指示的路径的相关信息。
在一种可能的实现方式中,所述控制器还包括拓扑收集模块,所述拓扑收集模块用于:接收来自任意计算节点的拓扑信息,所述拓扑信息包括与该计算节点可通信的每个计算节点的标识,以及该计算节点上每对可通信的计算设备的标识对和通信链路的信息;根据所述拓扑信息更新预先存储的所述拓扑结构。
在一种可能的实现方式中,所述第一预设条件为所述目标路径的拥塞程度最小,所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:根据所述已创建路径信息,确定当前时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示所述备选路径的拥塞程度的第一拥塞参数;所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:从所述备选路径中选择第一拥塞参数最大的备选路径作为所述目标路径。
在一种可能的实现方式中,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:第一拥塞参数最大的备选路径有多个时,从第一拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
在一种可能的实现方式中,所述第一预设条件为所述目标路径的拥塞程度最小,所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:根据所述已创建路径信息,确定预设时间段内每一时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示该时间点所述备选路径的拥塞程度的第一拥塞参数;根据所述备选路径在每一时间点的第一拥塞参数的最大值,确定指示所述备选路径的拥塞程度的第二拥塞参数;所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:从所述备选路径中选择第二拥塞参数最大的备选路径作为所述目标路径。
在一种可能的实现方式中,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:第二拥塞参数最大的备选路径有多个时,从第二拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
在一种可能的实现方式中,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息,所述创建所述目标路径包括:将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息加入所述已创建路径信息。
在一种可能的实现方式中,所述路径创建请求还包括分布式计算任务的预期执行时长,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息、该路径的预期创建时间和预期释放时间,所述创建所述目标路径包括:根据所述目标路径的第二拥塞参数对应的时间点,确定所述目标路径的预期创建时间;根据所述目标路径的预期创建时间和所述预期执行时长,确定所述目标路径的预期释放时间;将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息、所述目标路径的预期创建时间和预期释放时间加入所述已创建路径信息。
在一种可能的实现方式中,在到达所述目标路径的预期释放时间后、接收到指示所述目标路径的路径释放请求前的任意时间点时,所述路径管理模块还用于:查找所述已创建路径信息,确定是否存在预期创建时间与所述目标路径的预期释放时间相关联的已创建且未释放的路径;根据当前时间点修改所述已创建路径信息中的所述目标路径的预期释放时间;在查找到至少一条路径时,根据当前时间点修改所述至少一条路径的预期创建时间和预期释放时间,或者,在查找到至少一条路径时,释放查找到的路径,并根据该路径包括的多个计算设备的标识,重新执行根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径及之后的步骤。
在一种可能的实现方式中,所述通信链路包括点对点通信类型、无限带宽类型、基于融合以太网的远程直接数据存取类型、以太网类型中的一种或多种。
根据本公开的另一方面,提供了一种数据处理系统,所述数据处理系统包括控制器和多个计算节点,所述控制器与所述多个计算节点通信,每个计算节点上包括至少一个计算设备,
任意计算节点上的分布式计算任务被启动时,该计算节点发送路径创建请求到所述控制器,所述路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,所述多个计算设备是执行所述分布式计算任务使用到的计算设备;
所述控制器执行所述路径创建方法,接收所述路径创建请求并创建目标路径,将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
在一种可能的实现方式中,任意计算节点接收到目标路径的相关信息时,该计算节点根据所述目标路径的相关信息执行所述分布式计算任务;在所述分布式计算任务执行结束后,该计算节点发送路径释放请求到所述控制器,所述路径释放请求指示所述目标路径。
根据本公开的另一方面,提供了一种控制器,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
根据本公开实施例的路径创建方法,控制器可接收来自任意计算节点的路径创建请求,路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,使得控制器可获知需要创建何种路径;根据预先存储的多个计算节点及其包括的计算设备的拓扑结构,确定使多个计算设备可通信的至少一条备选路径,使得备选路径首先满足包括的计算设备以及拓扑类型的需求;再根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,选择拥塞程度满足第一预设条件的备选路径作为目标路径,并创建目标路径,因此可以完成最优的目标路径的选择与创建,且目标路径可以是拥塞程度满足需求的。控制器可将目标路径的相关信息输出至发出路径创建请求的计算节点,使得该计算节点可使用该目标路径。根据本公开实施例的路径创建方法,控制器基于全局的拓扑结构和已创建路径信息确定目标路径,既避免了多个分布式计算任务创建的路径相同,提高资源利用效率和任务执行效率,又提高了路径创建的准确度。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的路径创建方法的示例性应用场景。
图2示出根据本公开实施例的路径创建方法的流程的示意图。
图3a示出根据本公开实施例的拓扑结构的示例。
图3b示出根据本公开实施例的拓扑结构的示例。
图4示出根据本公开实施例的备选路径的示例。
图5示出根据本公开实施例的已创建路径信息的一个示例。
图6示出根据本公开实施例的已创建路径信息的一个示例。
图7示出根据本公开实施例的路径创建方法的流程的示意图。
图8示出根据本公开实施例的计算节点和控制器的示例性结构图。
图9示出根据本公开实施例的通信库和各模块的工作方式的示意图。
图10示出根据本公开实施例的装置1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的路径创建方法的示例性应用场景。
如图1所示,路径创建方法可以由数据处理系统中的控制器执行。数据处理系统可包括多个计算节点(图1中以计算节点1和计算节点2为例)和控制器。控制器可以设置在任意计算节点上,也可以单独设置在控制节点上。在图1中,以控制器设置在控制节点上为例。控制器可与任意计算节点通信。
计算节点可以是服务器或者计算机等允许设置计算设备的节点。计算设备可以是中央处理器(central processing unit,CPU)、外围组件快速互联(peripheral componentinterconnect express,PCIe)设备、图形处理器(graphics processing unit,GPU)等等。控制节点可以是服务器或者计算机等允许设置控制器的节点。
每个计算节点可包括至少一个计算设备和多个通信设备。在图1的示例中,计算节点1上包括的计算设备有CPU1、GPU1、GPU2,其中,CPU1、GPU1、GPU2通过结点M连接,GPU1、GPU2还直接互联。计算节点2上包括CPU2、GPU3、GPU4,其中,CPU2、GPU3、GPU4通过结点N连接,GPU3、GPU4还直接互联。
计算节点1上包括的通信设备有网卡1和网卡2,其中网卡1和网卡2均有一端连接结点M,另一端连接交换机。计算节点2上包括的通信设备有网卡3和网卡4,其中网卡3和网卡4均有一端连接结点N,另一端连接交换机。
各计算节点可以对自身与其他计算节点之间的拓扑信息,以及自身内部的计算设备之间的拓扑信息进行收集,收集到的拓扑信息可以包括与自身可通信的每个计算节点的标识、自身所包括的每对可通信的计算设备的标识对、使计算设备之间可通信的通信链路的信息。通信链路的示例可参见下文图3a-图4的相关描述。
收集到的拓扑信息可以被计算节点输出至控制器,由控制器整理并存储为全局的拓扑结构。拓扑结构的示例可以参见下文及图3a和图3b的相关描述。
任意计算节点均可执行分布式计算任务。某一计算节点上的分布式计算任务被启动时,该计算节点上的通信库被初始化。通信库初始化过程中,该计算节点产生并输出路径创建请求到控制器。路径创建请求可包括执行该分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件。拓扑类型和第一预设条件的示例可以参见下文的相关描述。
控制器执行路径创建方法可接收来自各计算节点的拓扑信息,整理并存储为全局的拓扑结构。控制器还用于存储全局的已创建路径信息,即已创建且未释放的路径的信息。控制器执行路径创建方法,接收路径创建请求后,根据当前存储的已创建路径信息、当前存储的拓扑结构、以及路径创建请求所包括的标识、拓扑类型、第一预设条件确定并创建目标路径。其中,创建目标路径的方式可以是将目标路径的相关信息加入已创建路径信息。创建目标路径之后,控制器可将目标路径的相关信息输出给发出路径创建请求的计算节点。在该计算节点上,分布式计算任务执行时即可使用该目标路径。
分布式计算任务执行结束时,计算节点输出路径释放请求到控制器,其中路径释放请求可指示需释放的路径。控制器执行路径创建方法,接收路径释放请求后,可释放路径释放请求指示的路径。其中,释放路径的方式可以是从已创建路径信息中删除路径的相关信息。
以图1中的计算节点1为例,计算节点1上的分布式计算任务1被启动时,计算节点1发送路径创建请求1到控制器。控制器执行本公开实施例的路径创建方法,针对路径创建请求1,确定并创建目标路径(路径1),将目标路径(路径1)的相关信息输出给计算节点1。则在分布式计算任务1执行时可使用路径1上的计算设备和通信链路。分布式计算任务1执行结束时,计算节点1发送路径释放请求1到控制器。路径释放请求1指示路径1。控制器根据路径释放请求1,将路径1释放。
图2示出根据本公开实施例的路径创建方法的流程的示意图。
如图2所示,本公开提出一种路径创建方法,所述方法应用于控制器,控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,所述方法包括步骤S21-步骤S25:
步骤S21,接收来自任意计算节点的路径创建请求,路径创建请求包括执行分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件;
步骤S22,根据预先存储的多个计算节点及其包括的计算设备的拓扑结构,确定使多个计算设备可通信且满足所述拓扑类型的至少一条备选路径;
步骤S23,根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度;
步骤S24,选择拥塞程度满足第一预设条件的备选路径作为目标路径,并创建目标路径;
步骤S25,将目标路径的相关信息输出至发出路径创建请求的计算节点。
举例来说,在步骤S21中,控制器先接收路径创建请求。路径创建请求可以是计算节点上的分布式计算任务被启动后,该计算节点产生并输出的。路径创建请求中可包括执行该分布式计算任务使用的多个计算设备的标识(identification,ID)、拓扑类型、第一预设条件。多个计算设备可以分布在多个计算节点中的一个或几个计算节点上。
其中,路径创建请求包括的标识,可以为提供算力的计算设备的标识,拓扑类型可以为树形或者环形或者其他类型,第一预设条件可以为目标路径的拥塞程度最小。在此情况下,可表示用户希望创建的目标路径上包括该标识对应的计算设备,并由该计算设备提供计算能力;目标路径的形状应为拓扑类型指示的形状;目标路径是所有可创建路径中拥塞程度最小的路径。
例如,路径创建请求可以是:[[[CPU1 ID,……],[GPU1 ID,……]],[[CPU2ID,……],[GPU3 ID,……],表示环形的参数,表示第一预设条件的参数],其中,参见图1,CPU1和GPU1可以是计算节点1上的计算设备,CPU2和GPU3可以是计算节点2上的计算设备。该路径创建请求表示用户希望创建的目标路径上包括提供计算能力的CPU1、GPU1、CPU2和GPU3,目标路径的形状应为环形,目标路径是所有可创建路径中拥塞程度最小路径。
本领域技术人员应理解,路径创建请求还可以包括更多的信息,只要路径创建请求使得控制器可获知需要创建何种路径即可,本公开实施例对于路径创建请求所包括的具体信息不作限制。
在步骤S22中,控制器根据预先存储的多个计算节点及其包括的计算设备的拓扑结构,确定使多个计算设备可通信且满足拓扑类型的至少一条备选路径。
图3a和图3b分别示出根据本公开实施例的拓扑结构的示例。
举例来说,在计算节点间的通信关系以及计算节点上的各计算设备、通信设备的通信关系如图1所示时,预先存储的多个计算节点及其包括的计算设备的拓扑结构可以如图3a所示。其中,每个空心点代表一个计算设备。每条边表示数据传输使用的通信设备。每条边也看作一条通信链路。
在图3a的示例中,为了简洁,对于存在通信关系的计算设备之间仅展示一条边,但本领域技术人员应理解,实际应不止一条边。参见图3b,在CPU1和CPU2之间实际存在4条边,分别表示网卡1、网卡2、网卡3、网卡4。其中CPU1作为数据发送方、CPU2作为数据接收方时,在计算节点1侧的CPU1可使用网卡1或者网卡2传输数据,而对在计算节点2侧的CPU2使用何种网卡接收数据不作限制。CPU2作为数据发送方、CPU1作为数据接收方时,在计算节点2侧的CPU2可使用网卡3或者网卡4传输数据,而对在计算节点1侧的CPU1使用何种网卡接收数据不作限制。
本领域技术人员应理解,在CPU1和GPU3之间、CPU1和GPU4之间、CPU2和GPU1之间、CPU2和GPU2之间,同样也存在4条边,并分别表示网卡1、网卡2、网卡3、网卡4,在计算节点1侧的计算设备作为数据发送方时可使用网卡1或者网卡2传输数据,在计算节点2侧的计算设备作为数据发送方时可使用网卡3或者网卡4传输数据,在此不再一一描述。
图4示出根据本公开实施例的备选路径的示例。
在拓扑结构如图3a和图3b所示时,如果路径创建请求表示用户希望创建的目标路径上包括提供计算能力的CPU1、GPU1、CPU2和GPU3,目标路径的形状应为环形,目标路径是所有可创建路径中拥塞程度最小路径。则备选路径可以是包括CPU1、GPU1、CPU2和GPU3且形状为环形的路径。备选路径的示例参见图4。
为了简洁,图4中仅示出3条备选路径。本领域技术人员应理解,备选路径应不止3条,只要路径能够成环即可。
在步骤S23中,可根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度。
已创建路径指的是已创建且未释放的路径。在本公开实施例中,可以指在当前时刻已经创建完毕且没释放的路径,也可以指在未来某一时间点(可以是下文的预期创建时间)计划创建、经过一定时间段(可以是下文所述的分布式计算任务预期执行时长)后,在未来的另一时间点(可以是下文的预期释放时间)计划释放的。
备选路径可以由该路径上的多条通信链路组成。以图4中最上方的备选路径为例,该路径可以由CPU1和CPU2之间的通信链路(使用网卡1)、CPU1和GPU1之间的通信链路、GPU3和GPU1之间的通信链路(使用网卡3)、CPU2和GPU3之间的通信链路组成。应注意的是,这里所说的路径上的通信链路,指的是仅考虑该路径时,其所包括的通信链路计算设备。比如参见图3a,CPU1和GPU2也存在通信链路,但图4中最上方的备选路径上不包括该通信链路,因此不作考虑。
通信链路可能存在多种类型。在一种可能的实现方式中,通信链路包括点对点通信类型、无限带宽(infiniband,IB)类型、基于融合以太网的远程直接数据存取(remotedirect memory access over converged Ethernet,RoCE)类型、以太网(Ethernet)类型中的一种或多种。
其中,点对点通信类型,可以指外围组件快速互联(peripheral componentinterconnect express,PCIe)类型,以及如NVLink等通信技术。
任意两个计算设备之间存在通信链路时,可能存在至少一种类型的通信链路。不同类型的通信链路的传输速率、带宽、时延可能不同。本公开实施例对于各类型通信链路的传输速率、带宽、时延不作限制。
本领域技术人员应理解,通信链路还可以包括更多的类型,例如MTLink等通信技术,只要可实现两个计算设备之间的数据通信即可,本公开实施例对于通信链路的具体类型不作限制。
由于硬件条件限制,每条通信链路的可用带宽通常是一定的。在某一时间点上,如果有1条已经创建完毕的路径包括某条通信链路,则表示有1个分布式计算任务在该时间点可使用该条通信链路。可以理解的是,同一时间点使用同一条通信链路的分布式计算任务数量越少,每个分布式计算任务的可用带宽越大,该通信链路的拥塞程度越小,反之,同一时间点使用同一条通信链路的分布式计算任务数量越大,每个分布式计算任务的可用带宽越小,该通信链路的拥塞程度越大。因此,已创建路径信息可以用于确定备选路径的各通信链路的拥塞程度,进而确定备选路径的拥塞程度。
如果已知分布式计算任务的创建时间、已知分布式计算任务的任务量,那么分布式计算任务的释放时间是可以预期的。在此情况下,对于目标路径的创建时间点有两种可能的需求。一种是不考虑预期,实时创建目标路径;一种是考虑预期,在未来的预设时间段内选择某一时间点创建目标路径。在需求不同时,确定拥塞程度的方式也不同,其示例可以参见下文的对步骤S23的进一步描述。
在步骤S24中,选择拥塞程度满足第一预设条件的备选路径作为目标路径,并创建目标路径。其中,满足第一预设条件的备选路径可以是拥塞程度最小的备选路径。
选择拥塞程度满足第一预设条件的备选路径的方式与确定拥塞程度的方式有关。创建目标路径可以是将目标路径的相关信息加入已创建路径信息。其示例性实现方式可以参见下文对步骤S24的进一步描述。
在步骤S25中,控制器可将目标路径的相关信息输出至发出路径创建请求的计算节点。
该计算节点接收到目标路径的相关信息后,即可在执行分布式计算任务时使用该目标路径。
根据本公开实施例的路径创建方法,控制器可接收来自任意计算节点的路径创建请求,路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,使得控制器可获知需要创建何种路径;根据预先存储的多个计算节点及其包括的计算设备的拓扑结构,确定使多个计算设备可通信的至少一条备选路径,使得备选路径首先满足包括的计算设备以及拓扑类型的需求;再根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,选择拥塞程度满足第一预设条件的备选路径作为目标路径,并创建目标路径,因此可以完成最优的目标路径的选择与创建,且目标路径可以是拥塞程度满足需求的。控制器可将目标路径的相关信息输出至发出路径创建请求的计算节点,使得该计算节点可使用该目标路径。根据本公开实施例的路径创建方法,控制器基于全局的拓扑结构和已创建路径信息确定目标路径,既避免了多个分布式计算任务创建的路径相同,提高资源利用效率和任务执行效率,又提高了路径创建的准确度。
在一种可能的实现方式中,所述方法还包括:
接收来自任意计算节点的路径释放请求时,释放路径释放请求所指示的路径,包括从已创建路径信息中删除路径释放请求所指示的路径的相关信息。
路径释放请求可以包括路径的标识,该路径也即路径释放请求所指示的路径。相应地,已创建路径信息也可包括已创建且未释放的路径的标识。在释放路径释放请求所指示的路径时,可以根据路径释放请求包括的标识从已创建路径信息中找到路径释放请求所指示的路径的相关信息,并删除找到的信息。
通过这种方式,可以保证已创建路径信息的准确度。
在一种可能的实现方式中,所述方法还包括:
接收来自任意计算节点的拓扑信息,拓扑信息包括与该计算节点可通信的每个计算节点的标识,以及该计算节点上、每对可通信的计算设备的标识对和通信链路的信息;
根据拓扑信息更新预先存储的拓扑结构。
拓扑结构的示例可以参见上文及图3a、图3b的相关描述。
通信链路的信息可以指通信链路的类型。由于拓扑信息包括与该计算节点可通信的每个计算节点的标识,以及该计算节点上、每对可通信的计算设备的标识对和通信链路的信息,因此可用于更新预先存储的拓扑结构中,与该计算节点有关的拓扑结构。拓扑结构的更新方式可以基于现有技术实现,在此不再赘述。
通过这种方式,可以保证拓扑结构的准确度。
在一种可能的实现方式中,第一预设条件为目标路径的拥塞程度最小,
步骤S23包括:
根据已创建路径信息,确定当前时间点备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示备选路径的拥塞程度的第一拥塞参数;
步骤S24中,选择拥塞程度满足第一预设条件的备选路径作为目标路径,包括:
从备选路径中选择第一拥塞参数最大的备选路径作为目标路径。
举例来说,参见上文所述,应用场景需求可以是实时创建路径,此时只需考虑当前时间点通信链路被分布式计算任务使用的情况,不必考虑在未来的某一时间点创建路径时是否效果更优。也即,路径创建请求反映的用户需求,可以是筛选出只需考虑当前时间点通信链路被分布式计算任务使用的情况下拥塞程度最小的备选路径。
参见上文描述,备选路径的每条通信链路,均有对应的可用带宽,并且通常保持不变。通信链路的可用带宽与使用该通信链路的分布式计算任务的数量的比值,可作为通信链路的平均可用带宽,也即使用该通信链路的每个分布式计算任务可使用的带宽。可以通过备选路径上各通信链路的平均可用带宽,确定备选路径的拥塞程度。
在一个示例中,拥塞程度最小可以通过备选路径的局部拥塞程度判断。一条通信链路的平均可用带宽越小,表示该条通信链路拥塞程度越大。对此,在步骤S23中,可以根据已创建路径信息,确定当前时间点备选路径的每条通信链路分别被多少分布式计算任务使用。例如可以通过已创建路径信息中有多少已创建且未释放路径包括备选路径的某条通信链路来确定该通信链路被多少分布式计算任务使用。之后再根据已知的该通信链路的可用带宽和确定出的分布式计算任务数量确定该通信链路的平均可用带宽。可以设置第一拥塞参数使其等于当前时间点备选路径上各通信链路的平均可用带宽的最小值,此时第一拥塞参数即可表示备选路径的局部拥塞程度。第一拥塞参数越小,表示备选路径局部拥塞程度越大;第一拥塞参数越大,表示备选路径局部拥塞程度越小。
在此情况下,如果某一备选路径的第一拥塞参数大于其他任意备选路径的第一拥塞参数,则可说明该备选路径是所有备选路径中、局部的拥塞程度最小的。因此,在步骤S24中,从备选路径中选择第一拥塞参数最大的备选路径作为目标路径即可。
在另一个示例中,拥塞程度最小还可以通过备选路径的整体拥塞程度判断。某一备选路径上,可能只有一条通信链路的平均可用带宽很小(拥塞程度大),其他通信链路的平均可用带宽都比较大(拥塞程度小)。另一备选路径上,可能只有一条通信链路的平均可用带宽很大(拥塞程度小),其他通信链路的平均可用带宽都比较小(拥塞程度大)。
对此,在步骤S23中,根据已创建路径信息,确定当前时间点备选路径的每条通信链路的平均可用带宽后(其实现方式参见上文描述),可以设置第一拥塞参数使其等于当前时间点备选路径上各通信链路的平均可用带宽的加权平均值。此时第一拥塞参数即可表示备选路径的整体拥塞程度。第一拥塞参数越小,表示备选路径整体拥塞程度越大;第一拥塞参数越大,表示备选路径整体拥塞程度越小。
在此情况下,如果某一备选路径的第一拥塞参数大于其他任意备选路径的第一拥塞参数,则可说明该备选路径是所有备选路径中、整体的拥塞程度最小的。因此,在步骤S24中,从备选路径中选择第一拥塞参数最大的备选路径作为目标路径即可。
各通信链路的权值可以根据通信链路的传输速率、时延等预先设置,还可以采用其他方式设置,例如都设置为1等,本公开实施例对于权值的设置方式不作限制。
通过这种方式,使得选择目标路径的方式更灵活也更简单,所需的数据处理成本更小,目标路径的选择更快、准确度更高。
进一步地,在一种可能的实现方式中,步骤S24中,选择拥塞程度满足第一预设条件的备选路径作为目标路径,还包括:
第一拥塞参数最大的备选路径有多个时,从第一拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为目标路径。
示例性地,如果全部的备选路径的第一拥塞参数中,最大的第一拥塞参数有多个,那么可以基于备选路径的其他参数来进一步对多个最大的第一拥塞参数对应的备选路径进行选择。每条通信链路都有时延,备选路径上各通信链路的时延之和也即备选路径的时延。时延越大则传输越慢,因此,可以优先选择时延最小的备选路径作为目标路径。可以理解的是,如果时延最小的备选路径也有多个,可以进一步选择备选路径的其他参数,例如传输速率等继续对备选路径进行选择。
或者,也可以设置为同时存在多个最大的第一拥塞参数对应的备选路径或者多个时延最小的备选路径时,从中随机选择一个作为目标路径,本公开对此不作限制。
在一种可能的实现方式中,第一预设条件为目标路径的拥塞程度最小,
步骤S23包括:
根据已创建路径信息,确定预设时间段内每一时间点备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示该时间点备选路径的拥塞程度的第一拥塞参数;
根据备选路径在每一时间点的第一拥塞参数的最大值,确定指示备选路径的拥塞程度的第二拥塞参数;
步骤S24中,选择拥塞程度满足第一预设条件的备选路径作为目标路径,包括:
从备选路径中选择第二拥塞参数最大的备选路径作为目标路径。
举例来说,参见上文所述,应用场景需求可以是在未来的预设时间段内选择某一时间点创建路径,此时需考虑未来的预设时间段内的通信链路被分布式计算任务使用的情况,并考虑在备选路径作为目标路径在该预设时间段内的哪一时间点创建时效果更优。此时路径创建请求还可包括分布式计算任务的预期执行时长,也即,路径创建请求反映的用户需求,可以是筛选出需考虑预设时间段内通信链路被分布式计算任务使用的情况下拥塞程度最小的备选路径。
参见上文描述,可以通过备选路径上各通信链路的平均可用带宽,确定备选路径的拥塞程度。拥塞程度最小可以通过备选路径的局部拥塞程度或者整体拥塞程度判断。在步骤S23中,可以根据已创建路径信息,先确定预设时间段内每一时间点备选路径的每条通信链路的平均可用带宽(其实现方式参见上文描述),根据每一时间点备选路径上各通信链路的平均可用带宽的最小值或加权平均值,确定该时间点备选路径的第一拥塞参数。此时第一拥塞参数即可表示备选路径在对应时间点的拥塞程度。对于任意备选路径,其对应多个第一拥塞参数,每个第一拥塞参数对应于预设时间段内的一个时间点。
然后,可再根据备选路径在每一时间点的第一拥塞参数的最大值,确定指示备选路径的拥塞程度的第二拥塞参数。也即,对于任意备选路径,从其对应的多个第一拥塞参数中找到最大的,作为第二拥塞参数。在此情况下,如果某一备选路径的第二拥塞参数大于其他任意备选路径的第二拥塞参数,则可说明该备选路径是预设时间段内可创建的所有备选路径中拥塞程度最小的。因此,在步骤S24中,从备选路径中选择第二拥塞参数最大的备选路径作为目标路径即可。
预设时间段可以是未来的时间段,可以根据应用场景需求设置,使得目标路径在预设时间段的某一时间点创建时,对于分布式计算任务的执行效率的影响不会过大。本公开实施例对于预设时间段的具体设置方式不作限制。
通过这种方式,使得选择目标路径的方式更灵活,备选路径在预设时间段内的某一时间点的拥塞程度可能低于在当前时间点的拥塞程度,使得选择出的目标路径的拥塞程度尽可能的低。
进一步地,在一种可能的实现方式中,步骤S24中,选择拥塞程度满足第一预设条件的备选路径作为目标路径,还包括:
第二拥塞参数最大的备选路径有多个时,从第二拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为目标路径。
示例性地,如果全部的备选路径的第二拥塞参数中,最大的第二拥塞参数有多个,那么可以基于备选路径的其他参数来进一步对多个最大的第二拥塞参数对应的备选路径进行选择。每条通信链路都有时延,备选路径上各通信链路的时延之和也即备选路径的时延。时延越大则传输越慢,因此,可以优先选择时延最小的备选路径作为目标路径。可以理解的是,如果时延最小的备选路径也有多个,可以进一步选择备选路径的其他参数,例如传输速率等继续对备选路径进行选择。
或者,也可以设置为同时存在多个最大的第二拥塞参数对应的备选路径或者多个时延最小的备选路径时,从中随机选择一个作为目标路径。本公开对此不作限制。
下面介绍本公开实施例执行步骤S24实现实时创建目标路径的示例性方法。
在一种可能的实现方式中,已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息,
步骤S24中,创建目标路径包括:
将目标路径的标识、目标路径所包括的计算设备的标识以及目标路径上的通信链路的信息加入已创建路径信息。
举例来说,由于执行步骤S24实时创建目标路径,因此,已创建路径信息中所记载的都是当前时间点已创建且未释放的路径的相关信息。在此情况下,已创建路径信息可包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息。
图5示出根据本公开实施例的已创建路径信息的一个示例。
参见图5,假设路径L0是已创建路径,则已创建路径信息可以包括路径L0的相关信息:路径L0的标识L0;路径L0所包括的计算设备的标识CPU0、GPU0;路径L0上的通信链路的信息CPU0-GPU0。
在选择目标路径之后,将该目标路径的相关信息,也即,该目标路径的标识、目标路径所包括的计算设备的标识以及目标路径上的通信链路的信息加入已创建路径信息。假设最终选择了图4中最上方的备选路径作为目标路径,该备选路径的标识为L1,路径L1所包括的计算设备的标识CPU1、CPU2、GPU1、GPU3;路径L1上的通信链路的信息(CPU1-GPU1、CPU1-(网卡1)-CPU2、CPU2-GPU3、GPU3-(网卡3)-GPU1)。则将该目标路径的相关信息加入已创建路径信息后,即可实现目标路径的创建。
在此情况下,步骤S25中,控制器输出的目标路径的相关信息也可以包括目标路径的标识、目标路径所包括的计算设备的标识以及目标路径上的通信链路的信息。
通过这种方式,可以实时创建目标路径。
下面介绍本公开实施例执行步骤S24实现在未来的某一时间点创建目标路径的示例性方法。
在一种可能的实现方式中,路径创建请求还包括分布式计算任务的预期执行时长,已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息、该路径的预期创建时间和预期释放时间,
步骤S24包括:
根据目标路径的第二拥塞参数对应的时间点,确定目标路径的预期创建时间;
根据目标路径的预期创建时间和预期执行时长,确定目标路径的预期释放时间;
将目标路径的标识、目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息、目标路径的预期创建时间和预期释放时间加入已创建路径信息。
举例来说,由于执行步骤S24不一定是实时创建目标路径,还有可能在未来的某一时间点创建目标路径,因此,已创建路径信息中所记载的可能包括当前时间点已创建且未释放的路径的相关信息,也可能包括在未来的某一时间点预期创建、在未来的另一时间点预期释放的路径的相关信息。
在此情况下,已创建路径信息可包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息、该路径的预期创建时间和预期释放时间。在执行步骤S23时,可以根据各已创建且未释放的路径的预期创建时间和预期释放时间,确定每一备选路径上各通信链路在预设时间段的不同时间点的拥塞程度(即上文所述的第二拥塞参数)。
图6示出根据本公开实施例的已创建路径信息的一个示例。
参见图6,假设路径L2和路径L3是已创建路径,则已创建路径信息可以包括路径L2的相关信息:路径L2的标识L2;路径L2所包括的计算设备的标识CPU0、CPU1;路径L2上的通信链路的信息CPU0-CPU1;路径L2的预期创建时间T20和预期释放时间T21。以及路径L3的相关信息:路径L3的标识L3;路径L3所包括的计算设备的标识CPU1、GPU1、CPU0;路径L3上的通信链路的信息CPU1-GPU1、CPU0-CPU1;路径L3的预期创建时间T30和预期释放时间T31。
在选择目标路径之后,将该目标路径的标识、目标路径所包括的计算设备的标识以及目标路径上的通信链路的信息、目标路径的预期创建时间和预期释放时间加入已创建路径信息。假设最终选择了图4中最上方的备选路径作为目标路径,该备选路径的标识为L1,路径L1所包括的计算设备的标识CPU1、CPU2、GPU1、GPU3;路径L1上的通信链路的信息(CPU1-GPU1、CPU1-(网卡1)CPU2、CPU2-GPU3、GPU3-(网卡3)-GPU1),路径L1的预期创建时间为T10,预期释放时间为T11。则将该目标路径的相关信息加入已创建路径信息后,即可实现目标路径的创建
在此情况下,步骤S25中,控制器输出的目标路径的相关信息也可以包括目标路径的标识、目标路径所包括的计算设备的标识以及目标路径上的通信链路的信息、目标路径的预期创建时间和预期释放时间。
通过这种方式,可以在未来的某一时间点创建目标路径。
在一种可能的实现方式中,在到达目标路径的预期释放时间后、接收到指示目标路径的路径释放请求前的任意时间点时,所述方法还包括:
查找已创建路径信息,确定是否存在预期创建时间与目标路径的预期释放时间相关联的已创建且未释放的路径;
根据当前时间点修改已创建路径信息中的目标路径的预期释放时间;
在查找到至少一条路径时,根据当前时间点修改所述至少一条路径的预期创建时间和预期释放时间,或者,
在查找到至少一条路径时,释放查找到的路径,并根据该路径包括的多个计算设备的标识,重新执行根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使多个计算设备可通信且满足所述拓扑类型的至少一条备选路径及之后的步骤。
举例来说,在理想情况下,到达目标路径的预期释放时间时,分布式计算任务将执行结束,控制器将接收到来自计算节点、指示目标路径的路径释放请求,目标路径将被释放。如果出现突发情况,导致到达目标路径的预期释放时间时,分布式计算任务仍未执行结束,则目标路径将无法被释放。也就是说,目标路径的预期释放时间后、接收到指示目标路径的路径释放请求前的任意时间点,已创建路径信息仍包括目标路径的相关信息。由于此时目标路径尚未释放,因此这些时间点上已创建路径信息中的目标路径的预期释放时间是不准确的。如果这些时间点上已创建路径信息中还存储有预期创建时间与目标路径的预期释放时间关联的其他路径,则该路径的相关信息也是不准确的。
为了保证已创建路径信息的准确度,可以对不准确的信息进行查找和修改。下面先介绍本公开实施例查找不准确的信息的示例性方式。
举例来说,查找不准确的信息,可以是查找已创建路径信息,确定是否存在预期创建时间与目标路径的预期释放时间相关联的已创建且未释放的路径,如存在,则查找到的路径的相关信息即为不准确的信息。
其中,某一路径的预期创建时间与目标路径的预期释放时间相关联的一种情况是,该路径的预期创建时间晚于目标路径的预期释放时间、且该路径包括的通信链路与目标路径包括的通信链路部分或全部相同。也即,该路径继承了目标路径的部分或全部通信链路。本公开实施例中将这种路径归类于受影响路径。
例如,参见图6,如果路径L1的相关信息加入后的已创建路径信息是当前存储的已创建路径信息,目标路径是路径L2,路径L3的预期创建时间T30晚于路径L2的预期释放时间T21,且路径L3和路径L2包括相同的通信链路CPU0-CPU1,那么,路径L3与路径L2相关联。路径L3即为受影响路径,并且准确度直接受路径L2的预期释放时间的准确度影响。
某一路径的预期创建时间与目标路径的预期释放时间相关联的另一种情况是,该路径包括的通信链路与目标路径包括的通信链路不同,但与受影响路径包括的通信链路部分或全部相同,且该路径预期创建时间晚于受影响路径的预期释放时间。也即,该路径继承了受影响路径的部分或全部通信链路。本公开实施例中将这种路径也归类于受影响路径。
例如,参见图6,如果路径L1的相关信息加入后的已创建路径信息是当前存储的已创建路径信息,目标路径是路径L2,路径L3是受影响路径。路径L1的预期创建时间T10晚于路径L3的预期释放时间T31,且路径L1和路径L3包括相同的通信链路CPU1-GPU1,那么,路径L1与路径L3相关联,进而与路径L2也相关联。路径L3也是受影响路径,并且准确度间接受路径L2的预期释放时间的准确度影响。
本领域技术人员应理解,查找不准确的信息还可以有更多的方式,只要使得查找到的信息为受目标路径的预期释放时间变化的影响导致准确度变化的信息即可,本公开实施例对于查找不准确的信息的具体方式不作限制。
下面介绍本公开实施例对不准确的信息进行修改的示例性方式。
首先,可以先对已创建路径信息中的目标路径的预期释放时间进行修改,将其修改为与当前时间点一致,直到目标路径的相关信息被删除。
其次是对查找到的至少一条路径的相关信息的修改。本公开实施例给出两种示例性修改方式。第一种修改方式为,根据当前时间点修改至少一条路径的预期创建时间和预期释放时间。也即,查找到的路径包括的计算设备和通信链路不变,将路径的预期创建时间和预期释放时间延后,其中,延后的程度可以与目标路径的预期释放时间的延后程度保持一致。也即,不释放受影响路径,仅调整受影响路径的预期创建时间和预期释放时间。
第二种修改方式为,释放查找到的路径,并根据该路径包括的多个计算设备的标识,重新执行根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使多个计算设备可通信且满足拓扑类型的至少一条备选路径(步骤S22)及之后的步骤。也即,释放受影响路径,重新为受影响路径对应的分布式计算任务创建新的目标路径。
本领域技术人员应理解,对于已创建路径信息中的不准确的信息的修改还可以有更多的方式,只要修改后的已创建路径信息的准确度比修改前更高即可,本公开实施例对于已创建路径信息的具体修改方式不作限制。
通过这种方式,可以完成已创建路径信息的修改,保证已创建路径信息的准确度。
在一种可能的实现方式中,本公开还提出一种路径创建方法,该方法应用于数据处理系统。数据处理系统包括控制器和多个计算节点,控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,数据处理系统的结构图可以参见图1。
图7示出根据本公开实施例的路径创建方法的流程的示意图。
如图7所示,所述方法应用于数据处理系统,所述方法包括步骤S71和步骤S72:
步骤S71,任意计算节点上的分布式计算任务被启动时,该计算节点发送路径创建请求到控制器,路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,多个计算设备是执行分布式计算任务使用到的计算设备;其示例性实现方式可以参见图1、图9的相关描述。
步骤S72,控制器执行以上所述的路径创建方法,接收路径创建请求并创建目标路径,将目标路径的相关信息输出至发出路径创建请求的计算节点。其示例性实现方式可以参见图2-图6、图9的相关描述。
图8示出根据本公开实施例的计算节点和控制器的示例性结构图。
如图8所示,计算节点可包括通信库、拓扑代理模块和多个计算设备。控制器可包括拓扑收集模块、拓扑存储模块、拓扑计算模块、路径管理模块和路径存储模块。其中,通信库、拓扑代理模块、拓扑收集模块、拓扑存储模块、拓扑计算模块、路径管理模块和路径存储模块既可以使用软件实现,也可以使用硬件实现,本公开实施例对此不作限制。
图9示出根据本公开实施例的通信库和各模块的工作方式的示意图。图9中的通信库、拓扑代理模块可以设置在同一计算节点上。
下面结合图8和图9介绍通信库和各模块在上文图2-图6的相关描述的流程中所完成的功能。
在一种可能的实现方式中,所述方法还包括:
任意计算节点收集自身与其他计算节点之间的拓扑信息,以及自身内部的计算设备之间的拓扑信息,收集到的拓扑信息包括与自身可通信的每个计算节点的标识、自身内部的每对可通信的计算设备的标识对及通信链路;
输出拓扑信息到控制器。
举例来说,如图8所示,拓扑信息的收集可以由计算设备上的拓扑代理模块完成。例如对于计算节点1,假设计算节点1可以和计算节点2通信,计算节点1内部的计算设备1和计算设备2可通信,计算设备1和计算设备3可通信,那么计算节点1上的拓扑代理模块收集到的拓扑信息,可以包括计算节点2的标识、计算设备1和计算设备2的标识对、计算设备1和计算设备3的标识对、使得计算设备1和计算设备2可通信的通信链路、使得计算节点1和计算节点3可通信的通信链路。
收集到的拓扑信息可以被拓扑代理模块输出至控制节点上的控制器的拓扑收集模块(即图9中的步骤1)。计算节点可以周期性收集拓扑信息并输出,控制器上,拓扑收集模块可根据接收到的拓扑信息更新拓扑存储模块存储的拓扑结构(即图9中的步骤2)。以保证拓扑结构的准确度。
任意计算节点均可执行分布式计算任务。如图8所示,在某一计算节点上的分布式计算任务被启动时,该计算节点上的通信库被初始化。通信库初始化过程中,通信库调用该计算节点上的拓扑代理模块(即图9中的步骤4),拓扑代理模块产生并输出路径创建请求到控制器的路径管理模块(即图9中的步骤5)。
控制器上,路径管理模块将路径创建请求转发至拓扑计算模块(即图9中的步骤6),完成上文所述的步骤S21的执行。拓扑计算模块针对接收的路径创建请求,获取拓扑存储模块当前存储的拓扑结构(即图9中的步骤7)并确定备选路径,完成上文所述的步骤S22的执行。拓扑计算模块获取路径存储模块当前存储的已创建路径信息(即图9中的步骤8)并确定每一备选路径上各通信链路的拥塞程度,完成上文所述的步骤S23的执行。拓扑计算模块根据拥塞程度确定目标路径,并将目标路径的相关信息输出给路径管理模块(即图9中的步骤9),由路径管理模块创建目标路径,其中,创建目标路径的方式可以是将目标路径的相关信息加入已创建路径信息(即图9中的步骤10),完成上文所述的步骤S24的执行。
路径管理模块还用于将目标路径的相关信息输出至发起路径创建请求的计算节点的拓扑代理模块(即图9中的步骤11),完成上文所述的步骤S25的执行。在该计算节点上,拓扑代理模块转发目标路径的相关信息至通信库(即图9中的步骤12),通信库根据目标路径的相关信息完成初始化,此后分布式计算任务执行时即可使用该目标路径。
在一种可能的实现方式中,所述方法还包括:
任意计算节点接收到目标路径的相关信息时,该计算节点根据目标路径的相关信息执行分布式计算任务;
在分布式计算任务执行结束后,该计算节点发送路径释放请求到控制器,路径释放请求指示目标路径。
举例来说,参见图9,分布式计算任务执行结束时,计算节点上的通信库再次调用拓扑代理模块(即图9中的步骤14),拓扑代理模块输出路径释放请求到控制器的路径管理模块(即图9中的步骤15),其中路径释放请求可指示需释放的路径。路径管理模块针对接收的路径释放请求,释放其指示的路径。其中,释放目标路径的方式可以是从已创建路径信息中删除目标路径的相关信息(即图9中的步骤16)。
本公开还提供一种控制器,其结构可参见图8。
在一种可能的实现方式中,所述控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,所述控制器包括:
路径管理模块,用于接收来自任意计算节点的路径创建请求,所述路径创建请求包括执行分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件;
拓扑计算模块,用于根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径;根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度;选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,并由所述路径管理模块创建所述目标路径;
路径管理模块还用于将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
各模块的功能可以参见图9及相关描述。
在一种可能的实现方式中,所述路径管理模块还用于:接收来自任意计算节点的路径释放请求时,释放所述路径释放请求所指示的路径,包括从所述已创建路径信息中删除所述路径释放请求所指示的路径的相关信息。
在一种可能的实现方式中,所述控制器还包括拓扑收集模块,所述拓扑收集模块用于:接收来自任意计算节点的拓扑信息,所述拓扑信息包括与该计算节点可通信的每个计算节点的标识,以及该计算节点上每对可通信的计算设备的标识对和通信链路的信息;根据所述拓扑信息更新预先存储的所述拓扑结构。
在一种可能的实现方式中,所述第一预设条件为所述目标路径的拥塞程度最小,所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:根据所述已创建路径信息,确定当前时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示所述备选路径的拥塞程度的第一拥塞参数;所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:从所述备选路径中选择第一拥塞参数最大的备选路径作为所述目标路径。
在一种可能的实现方式中,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:第一拥塞参数最大的备选路径有多个时,从第一拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
在一种可能的实现方式中,所述第一预设条件为所述目标路径的拥塞程度最小,所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:根据所述已创建路径信息,确定预设时间段内每一时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示该时间点所述备选路径的拥塞程度的第一拥塞参数;根据所述备选路径在每一时间点的第一拥塞参数的最大值,确定指示所述备选路径的拥塞程度的第二拥塞参数;所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:从所述备选路径中选择第二拥塞参数最大的备选路径作为所述目标路径。
在一种可能的实现方式中,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:第二拥塞参数最大的备选路径有多个时,从第二拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
在一种可能的实现方式中,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息,所述创建所述目标路径包括:将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息加入所述已创建路径信息。
在一种可能的实现方式中,所述路径创建请求还包括分布式计算任务的预期执行时长,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息、该路径的预期创建时间和预期释放时间,所述创建所述目标路径包括:根据所述目标路径的第二拥塞参数对应的时间点,确定所述目标路径的预期创建时间;根据所述目标路径的预期创建时间和所述预期执行时长,确定所述目标路径的预期释放时间;将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息、所述目标路径的预期创建时间和预期释放时间加入所述已创建路径信息。
在一种可能的实现方式中,在到达所述目标路径的预期释放时间后、接收到指示所述目标路径的路径释放请求前的任意时间点时,所述路径管理模块还用于:查找所述已创建路径信息,确定是否存在预期创建时间与所述目标路径的预期释放时间相关联的已创建且未释放的路径;根据当前时间点修改所述已创建路径信息中的所述目标路径的预期释放时间;在查找到至少一条路径时,根据当前时间点修改所述至少一条路径的预期创建时间和预期释放时间,或者,在查找到至少一条路径时,释放查找到的路径,并根据该路径包括的多个计算设备的标识,重新执行根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径及之后的步骤。
在一种可能的实现方式中,所述通信链路包括点对点通信类型、无限带宽类型、基于融合以太网的远程直接数据存取类型、以太网类型中的一种或多种。
在一些实施例中,本公开实施例提供的控制器具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开还提供一种数据处理系统,其结构可参见图1。
在一种可能的实现方式中,所述数据处理系统包括控制器和多个计算节点,所述控制器与所述多个计算节点通信,每个计算节点上包括至少一个计算设备,
任意计算节点上的分布式计算任务被启动时,该计算节点发送路径创建请求到所述控制器,所述路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,所述多个计算设备是执行所述分布式计算任务使用到的计算设备;
所述控制器执行所述路径创建方法,接收所述路径创建请求并创建目标路径,将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
在一种可能的实现方式中,任意计算节点接收到目标路径的相关信息时,该计算节点根据所述目标路径的相关信息执行所述分布式计算任务;在所述分布式计算任务执行结束后,该计算节点发送路径释放请求到所述控制器,所述路径释放请求指示所述目标路径。
在一些实施例中,本公开实施例提供的数据处理系统具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种控制器,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图10示出根据本公开实施例的装置1900的框图。例如,装置1900可以被提供为一控制器。参照图10,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (17)
1.一种路径创建方法,其特征在于,所述方法应用于控制器,所述控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,所述方法包括:
接收来自任意计算节点的路径创建请求,所述路径创建请求包括执行分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件;
根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径;
根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度;
选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,并创建所述目标路径;
将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收来自任意计算节点的路径释放请求时,释放所述路径释放请求所指示的路径,包括从所述已创建路径信息中删除所述路径释放请求所指示的路径的相关信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收来自任意计算节点的拓扑信息,所述拓扑信息包括与该计算节点可通信的每个计算节点的标识,以及该计算节点上每对可通信的计算设备的标识对和通信链路的信息;
根据所述拓扑信息更新预先存储的所述拓扑结构。
4.根据权利要求3所述的方法,其特征在于,所述第一预设条件为所述目标路径的拥塞程度最小,
所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:
根据所述已创建路径信息,确定当前时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示所述备选路径的拥塞程度的第一拥塞参数;
所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:
从所述备选路径中选择第一拥塞参数最大的备选路径作为所述目标路径。
5.根据权利要求4所述的方法,其特征在于,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:
第一拥塞参数最大的备选路径有多个时,从第一拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
6.根据权利要求3所述的方法,其特征在于,所述第一预设条件为所述目标路径的拥塞程度最小,
所述根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度,包括:
根据所述已创建路径信息,确定预设时间段内每一时间点所述备选路径上各通信链路的平均可用带宽的最小值或加权平均值,作为指示该时间点所述备选路径的拥塞程度的第一拥塞参数;
根据所述备选路径在每一时间点的第一拥塞参数的最大值,确定指示所述备选路径的拥塞程度的第二拥塞参数;
所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,包括:
从所述备选路径中选择第二拥塞参数最大的备选路径作为所述目标路径。
7.根据权利要求6所述的方法,其特征在于,所述选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,还包括:
第二拥塞参数最大的备选路径有多个时,从第二拥塞参数最大的多个备选路径中,选择通信时延最小的备选路径作为所述目标路径。
8.根据权利要求4所述的方法,其特征在于,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息,
所述创建所述目标路径包括:
将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息加入所述已创建路径信息。
9.根据权利要求6所述的方法,其特征在于,所述路径创建请求还包括分布式计算任务的预期执行时长,所述已创建路径信息包括已创建且未释放的路径的标识、该路径所包括的计算设备的标识以及该路径上的通信链路的信息、该路径的预期创建时间和预期释放时间,
所述创建所述目标路径包括:
根据所述目标路径的第二拥塞参数对应的时间点,确定所述目标路径的预期创建时间;
根据所述目标路径的预期创建时间和所述预期执行时长,确定所述目标路径的预期释放时间;
将所述目标路径的标识、所述目标路径所包括的计算设备的标识以及所述目标路径上的通信链路的信息、所述目标路径的预期创建时间和预期释放时间加入所述已创建路径信息。
10.根据权利要求9所述的方法,其特征在于,在到达所述目标路径的预期释放时间后、接收到指示所述目标路径的路径释放请求前的任意时间点时,所述方法还包括:
查找所述已创建路径信息,确定是否存在预期创建时间与所述目标路径的预期释放时间相关联的已创建且未释放的路径;
根据当前时间点修改所述已创建路径信息中的所述目标路径的预期释放时间;
在查找到至少一条路径时,根据当前时间点修改所述至少一条路径的预期创建时间和预期释放时间,或者,
在查找到至少一条路径时,释放查找到的路径,并根据该路径包括的多个计算设备的标识,重新执行根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径及之后的步骤。
11.根据权利要求3所述的方法,其特征在于,所述通信链路包括点对点通信类型、无限带宽类型、基于融合以太网的远程直接数据存取类型、以太网类型中的一种或多种。
12.一种路径创建方法,其特征在于,所述方法应用于数据处理系统,所述数据处理系统包括控制器和多个计算节点,所述控制器与所述多个计算节点通信,每个计算节点上包括至少一个计算设备,所述方法包括:
任意计算节点上的分布式计算任务被启动时,该计算节点发送路径创建请求到所述控制器,所述路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,所述多个计算设备是执行所述分布式计算任务使用到的计算设备;
所述控制器执行权利要求1-11中任一项所述的方法,接收所述路径创建请求并创建目标路径,将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
任意计算节点接收到目标路径的相关信息时,该计算节点根据所述目标路径的相关信息执行所述分布式计算任务;
在所述分布式计算任务执行结束后,该计算节点发送路径释放请求到所述控制器,所述路径释放请求指示所述目标路径。
14.一种控制器,其特征在于,所述控制器与多个计算节点通信,每个计算节点上包括至少一个计算设备,所述控制器包括:
路径管理模块,用于接收来自任意计算节点的路径创建请求,所述路径创建请求包括执行分布式计算任务使用的多个计算设备的标识、拓扑类型、第一预设条件;
拓扑计算模块,用于根据预先存储的所述多个计算节点及其包括的计算设备的拓扑结构,确定使所述多个计算设备可通信且满足所述拓扑类型的至少一条备选路径;根据预先存储的已创建路径信息,确定每一备选路径的拥塞程度;选择拥塞程度满足所述第一预设条件的备选路径作为目标路径,并由所述路径管理模块创建所述目标路径;
所述路径管理模块还用于将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
15.一种数据处理系统,其特征在于,所述数据处理系统包括控制器和多个计算节点,所述控制器与所述多个计算节点通信,每个计算节点上包括至少一个计算设备,
任意计算节点上的分布式计算任务被启动时,该计算节点发送路径创建请求到所述控制器,所述路径创建请求包括多个计算设备的标识、拓扑类型、第一预设条件,所述多个计算设备是执行所述分布式计算任务使用到的计算设备;
所述控制器执行权利要求1-11中任一项所述的方法,接收所述路径创建请求并创建目标路径,将所述目标路径的相关信息输出至发出所述路径创建请求的计算节点。
16.一种控制器,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至11中任意一项所述的方法。
17.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至11中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311034673.4A CN116760761B (zh) | 2023-08-16 | 2023-08-16 | 路径创建方法、数据处理系统、控制器、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311034673.4A CN116760761B (zh) | 2023-08-16 | 2023-08-16 | 路径创建方法、数据处理系统、控制器、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116760761A CN116760761A (zh) | 2023-09-15 |
CN116760761B true CN116760761B (zh) | 2023-10-13 |
Family
ID=87951870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311034673.4A Active CN116760761B (zh) | 2023-08-16 | 2023-08-16 | 路径创建方法、数据处理系统、控制器、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116760761B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543107A (zh) * | 2019-09-23 | 2021-03-23 | 瞻博网络公司 | 具有使用冗余单播覆盖网络的可靠多播的内容递送 |
WO2023078150A1 (zh) * | 2021-11-04 | 2023-05-11 | 中兴通讯股份有限公司 | 算路方法、路由计算设备、电子设备和计算机存储介质 |
WO2023093513A1 (zh) * | 2021-11-29 | 2023-06-01 | 华为技术有限公司 | 路径感知方法、装置及系统 |
CN116319517A (zh) * | 2022-04-28 | 2023-06-23 | 王举范 | 一种最短路径确定方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10425324B2 (en) * | 2017-08-17 | 2019-09-24 | Fabriscale Technologies AS | Method of computing balanced routing paths in fat-trees |
-
2023
- 2023-08-16 CN CN202311034673.4A patent/CN116760761B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112543107A (zh) * | 2019-09-23 | 2021-03-23 | 瞻博网络公司 | 具有使用冗余单播覆盖网络的可靠多播的内容递送 |
WO2023078150A1 (zh) * | 2021-11-04 | 2023-05-11 | 中兴通讯股份有限公司 | 算路方法、路由计算设备、电子设备和计算机存储介质 |
WO2023093513A1 (zh) * | 2021-11-29 | 2023-06-01 | 华为技术有限公司 | 路径感知方法、装置及系统 |
CN116319517A (zh) * | 2022-04-28 | 2023-06-23 | 王举范 | 一种最短路径确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116760761A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10771332B2 (en) | Dynamic scheduling of network updates | |
US9432257B2 (en) | Traffic behavior driven dynamic zoning for distributed traffic engineering in SDN | |
CN107979409B (zh) | 轨道间卫星通信路由方法及装置 | |
US9853906B2 (en) | Network prioritization based on node-level attributes | |
US9785522B2 (en) | Adaptive datacenter topology for distributed frameworks job control through network awareness | |
CN112003787B (zh) | 一种路由路径确定方法、装置、控制设备和存储介质 | |
KR102339747B1 (ko) | 시뮬레이터, 시뮬레이션 장치, 및 시뮬레이션 방법 | |
US9632921B1 (en) | Validation using scenario runners | |
CN110058937B (zh) | 用于调度专用处理资源的方法、设备和介质 | |
CN113742031A (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN111431730B (zh) | 一种业务处理方法、系统、计算机设备及可读介质 | |
CN109784928B (zh) | 基于区块链的信息处理方法及信息处理装置 | |
WO2019144809A1 (zh) | 一种服务更新方法及装置、系统 | |
US20190349288A1 (en) | Data Forwarding Method and Apparatus | |
US10216593B2 (en) | Distributed processing system for use in application migration | |
CN113849361B (zh) | 测试服务节点的方法、装置、设备以及存储介质 | |
CN116760761B (zh) | 路径创建方法、数据处理系统、控制器、存储介质 | |
KR102153814B1 (ko) | 로드 균형을 위한 확률 기반 적응형 라우팅 알고리즘 | |
CN115865701A (zh) | 基于菊花链网络的节点控制方法、装置及系统 | |
CN114172998B (zh) | 一种文件传输方法、装置、电子设备及存储介质 | |
CN113691403B (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN112188411B (zh) | 基于无线Mesh网络的多联机系统和数据传输方法 | |
CN111611068B (zh) | 分布式系统中的数据写方法、服务器及客户端 | |
CN113852554A (zh) | 一种数据传输方法、装置及设备 | |
JP5741717B2 (ja) | 情報処理方法、装置及びプログラム |
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 |