CN111935006A - 一种数据传输方法、装置、处理设备及介质 - Google Patents

一种数据传输方法、装置、处理设备及介质 Download PDF

Info

Publication number
CN111935006A
CN111935006A CN202010799569.4A CN202010799569A CN111935006A CN 111935006 A CN111935006 A CN 111935006A CN 202010799569 A CN202010799569 A CN 202010799569A CN 111935006 A CN111935006 A CN 111935006A
Authority
CN
China
Prior art keywords
node
target
aggregation
nodes
reachable
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
Application number
CN202010799569.4A
Other languages
English (en)
Other versions
CN111935006B (zh
Inventor
姜曦楠
朱子霖
周飞虎
郭振宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010799569.4A priority Critical patent/CN111935006B/zh
Publication of CN111935006A publication Critical patent/CN111935006A/zh
Application granted granted Critical
Publication of CN111935006B publication Critical patent/CN111935006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种数据传输方法、装置、处理设备及介质,涉及云计算,其中方法包括:获取目标对象的计算图中多个目标节点之间的可达性关系和各目标节点的调度时长,根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,采用目标聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示计算设备按照目标聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。本申请实施可基于更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。

Description

一种数据传输方法、装置、处理设备及介质
技术领域
本申请涉及互联网技术领域,具体涉及计算机技术领域,尤其涉及一种数据传输方法、一种数据传输装置、一种处理设备及一种计算机存储介质。
背景技术
在数学图论中,图用于表达物体与物体之间的关系的抽象,其主要由用于表示物体的节点和表示物体之间的关系的边组成;其中,每条边都有方向的图可称为有向图(Directed Graph)。随着图技术和互联网技术的发展,计算图应运而生;所谓的计算图又可称为数据流图(DataFlowGraph),其具体是指用于表征目标对象的数据流计算的有向图。计算图中的节点用于表示在计算目标对象的过程中所涉及的数据处理操作,一个数据处理操作对应一个执行结果数据;计算图中的边用于表示数据处理操作(节点)之间的依赖关系,如数据依赖关系和控制依赖关系。计算图中通常会具有一些特殊的目标节点,这些目标节点用于表示需要传输执行结果数据的数据处理操作。
目前,在计算设备对目标对象进行计算之前,通常会构建该目标对象的计算图,并将构建得到的计算图直接发送至计算设备;使得计算设备在计算目标对象的过程中,每执行一个目标节点所表示的数据处理操作后,便直接传输相应的执行结果数据。这样的数据传输方式会导致数据传输的次数过多,消耗过多的网络资源;并且,通常每次传输都会具有网络延时,这样还会导致传输总时长较长。
发明内容
本申请实施例提供了一种数据传输方法、装置、处理设备及介质,可通过更新后的计算图指示计算设备对目标节点的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
一方面,本申请实施例提供了一种数据传输方法,所述方法包括:
获取目标对象的计算图中多个目标节点之间的可达性关系,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;可达性关系用于指示:各目标节点沿着计算图中的至少一条边到达其他目标节点的能力;
获取各目标节点的调度时长;
根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合;
采用目标聚合节点更新计算图,并将更新后的计算图发送至计算设备,更新后的计算图用于指示计算设备按照目标聚合节点的指示在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合,并传输聚合结果。
另一方面,本申请实施例提供了一种数据传输装置,所述装置包括:
处理单元,用于获取目标对象的计算图中的多个目标节点之间的可达性关系,每个目标节点用于表示所述目标对象在计算过程中需要被执行的一个数据处理操作,且所述每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;所述可达性关系用于指示:各目标节点沿着所述计算图中的至少一条边到达其他目标节点的能力;
所述处理单元,还用于获取所述各目标节点的调度时长,并根据所述调度时长和所述多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,所述目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合;
所述处理单元,还用于采用所述目标聚合节点更新所述计算图;
通信单元,用于将更新后的计算图发送至计算设备,所述更新后的计算图用于指示所述计算设备按照所述目标聚合节点的指示在所述目标对象的计算过程中对所述被聚合的目标节点所表示的数据处理操作的执行结果进行聚合,并传输聚合结果。
相应地,本申请实施例还提供了一种处理设备,该处理设备包括处理器和存储装置;存储装置,用于存储程序指令;处理器,用于调用程序指令并执行上述的数据传输方法。
相应地,本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述的数据传输方法。
相应地,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述提供的数据传输方法。
本申请实施例中,可获取目标对象的计算图中多个目标节点之间的可达性关系和各目标节点的调度时长,根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点;该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合。进一步地,可采用目标聚合节点更新计算图,将更新后的计算图发送至计算设备。使得计算设备在计算目标对象的过程中,在执行被聚合的目标节点表示的数据处理操作后,可按照目标聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种数据传输系统的架构示意图;
图1b是本申请另一实施例提供的一种数据传输系统的架构示意图;
图2是本申请实施例提供的一种数据传输方法的流程示意图;
图3a是本申请实施例提供的一种计算图的示意图;
图3b是本申请实施例提供的一种邻接矩阵的示意图;
图3c是本申请实施例提供的一种初始可达矩阵的示意图;
图3d是本申请实施例提供的一种目标可达矩阵的示意图;
图3e是本申请实施例提供的一种调度时长计算的示意图;
图4是本申请另一实施例提供的一种数据传输方法的流程示意图;
图5a是本申请另一实施例提供的一种目标有向图的构建示意图;
图5b是本申请另一实施例提供的一种第一聚合矩阵和第一有向图的示意图;
图5c是本申请另一实施例提供的一种第二聚合矩阵和第二有向图的示意图;
图5d是本申请另一实施例提供的一种目标聚合层次信息的示意图;
图6a是本申请另一实施例提供的一种逆向图的示意图;
图6b是本申请另一实施例提供的一种支配树的示意图;
图6c是本申请另一实施例提供的一种逆支配树的示意图;
图6d是本申请另一实施例提供的一种目标聚合层次信息的提取示意图;
图6e是本申请另一实施例提供的一种目标聚合层次信息的提取示意图;
图6f是本申请另一实施例提供的一种目标聚合层次信息的提取示意图;
图6g是本申请另一实施例提供的一种目标聚合层次信息的提取示意图;
图7a是本申请另一实施例提供的一种第一聚合层次信息的示意图;
图7b是本申请另一实施例提供的一种更新可达矩阵的示意图;
图7c是本申请另一实施例提供的一种第一可达聚合矩阵和第一可达聚合有向图的示意图;
图7d是本申请另一实施例提供的一种目标聚合层次信息的示意图;
图7e是本申请另一实施例提供的一种生成目标聚合节点的示意图;
图7f是本申请另一实施例提供的一种添加目标聚合节点的示意图;
图7g是本申请另一实施例提供的一种添加通信节点的示意图;
图8是本申请实施例提供的一种分布式机器学习的应用场景示意图;
图9是本申请实施例提供的一种数据传输装置的结构示意图;
图10是本申请实施例提供的一种处理设备的结构示意图。
具体实施方式
在目标对象的计算过程中,为了能够更好地对各目标节点所表示的数据处理操作的执行结果数据进行传输,本申请实施例首先提出了一种数据传输系统。此处的目标对象是指计算过程中涉及多次数据处理操作的任一对象,例如该目标对象可以是模型训练过程中涉及卷积操作、池化操作等多次数据处理操作的神经网络模型;又如,该目标对象可以是应用测试过程中涉及对应用功能1的测试操作、应用功能2的测试操作等多次数据处理操作的应用程序;再如,该目标对象可以是硬件测试过程中涉及对模组1的测试操作、模组2的测试操作等多次数据处理操作的硬件设备,等等。
具体的,该数据传输系统可包括:一个处理设备11以及一个或多个计算设备12;该处理设备11和各计算设备12之间可相互进行通信。其中,处理设备11主要用于生成并更新目标对象的计算图(即数据流图),并将计算图发送至各计算设备12;其可以是具有数据处理功能的任一终端或者服务器。计算设备12主要用于对目标对象执行多次数据处理操作,并按照计算图的指示传输部分或全部数据处理操作的执行结果数据;其可以是具有数据计算功能以及通信功能的任一终端或者服务器。在一种具体实现中,各计算设备12在用于按照计算图的指示传输部分或全部数据处理操作的执行结果数据时,可以是将该部分或全部数据处理操作的执行结果数据回传至处理设备11,以使得处理设备11可根据各计算设备12发送的执行结果数据对目标对象进行后续处理,如模型更新处理、应用测试分析处理、模组测试分析处理等等;在此具体实现中,数据传输系统的系统架构可参见图1a所示。再一种具体实现中,各计算设备12在用于按照计算图的指示传输部分或全部数据处理操作的执行结果数据时,可以是将该部分或全部数据处理操作的执行结果数据传输至另一个管理设备13,以使得管理设备13可根据各计算设备12发送的执行结果数据进行后续处理;在此具体实现中,数据传输系统的系统架构可参见图1b所示。为便于阐述,后续均以图1b所示的系统架构进行说明。
需要说明的是,图1a和图1b均只是示例性地表征数据传输系统的具体架构,并不对其进行限定。例如,图1a和图1b均是单独物理部署了一个处理设备11来执行计算图的生成和更新操作的;但在其他实施例中,也可选用多个计算设备12中的任一计算设备作为处理设备以执行计算图的生成和更新操作;在此情况下,便可不用单独部署一个处理设备11。还需说明的是,上述所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机,等等。上述所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算(cloud computing)服务的云服务器,等等,其中,云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
基于上述的数据传输系统,本申请实施例还提出了一种数据传输方案。具体的,该数据传输方案的大致原理如下:处理设备可以通过分析计算图中多个需要传输同步数据(即执行结果数据)的目标节点之间的可达性关系,确定各目标节点的可达性信息和/或支配点信息。其中,任一目标节点的支配点信息包括以下至少一项:任一目标节点的支配点集(该支配点集包括至少一个支配点)和任一目标节点的逆支配点集(该逆支配点集包括至少一个逆支配点);可达性信息;任一目标节点的可达信息包括:任一节点对应的可达节点和任一节点对应的被可达节点。进一步地,可以根据上述可达性信息和/或支配点信息提取目标聚合层次信息,并结合目标聚合层次信息和调度时长逐层聚合各目标节点,将调度时长相近、具有相同或相似可达性的目标节点、或者互为支配点和逆支配点的目标节点,聚合成一个目标聚合节点,并采用目标聚合节点更新计算图。该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合。
其中,支配点的定义如下:当且仅当从有向图的起始节点(可以理解为源节点)到节点n的每一条路径均要经过节点d,则可认为有向图中的一个节点d支配节点n;即可认为节点d是节点n的支配点,写作d dom n(或d》n)。相应的,逆支配点是指根据将有向图的所有边反向后的图,求得的支配点。可达性是指一个目标节点沿着计算图中的一系列边到达另一个目标节点的能力;如果一个目标节点A可以通过一系列边到达另一个目标节点B,则认为目标节点A到目标节点B可达,相应地,目标节点B为目标节点A的可达节点,目标节点A为目标节点B的被可达节点。否则认为目标节点A到目标节点B不可达。
进一步地,在采用目标聚合节点更新计算图后,可将更新后计算图下发至各计算设备;使得各计算设备在计算目标对象的过程中,可按照聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输。可见,本申请实施例所提出的数据传输方案可实现至少两个目标节点所对应的执行结果数据的聚合传输,这样可有效减少数据传输的次数,以节省网络资源并缩短传输总时长。
基于上述的描述,本申请实施例提出一种数据传输方法,该数据传输方法可以由上述所提及的处理设备执行。请参见图2,该数据传输方法可包括以下步骤S201-S204:
S201:获取目标对象的计算图中多个目标节点之间的可达性关系。
在本申请实施例中,目标对象的计算图可包括以下计算节点:多个目标节点以及非目标节点;每个计算节点均可用于表示目标对象在计算过程中需要被执行的一个数据处理操作。其中,目标节点是指表示的数据处理操作的执行结果需要进行传输的计算节点,非目标节点则是指表示的数据处理操作的执行结果不需要进行传输的计算节点。可达性关系用于指示各目标节点沿着计算图中的至少一条边到达其他目标节点的能力,具体地,该可达关系可以表征各目标节点在计算图中的目标可达节点和目标被可达节点。任一目标节点的目标可达节点是指由任一目标节点通过计算图中的至少一条边所到达的目标节点;任一目标节点对应的被可达目标节点是指:通过计算图中的至少一条边到达该任一目标节点的目标节点。
以图3a所示的计算图为例,计算图可包括多个计算节点,每个计算节点上的数字用于表征该计算节点所表示的数据处理操作的执行时长,例如,计算图中M:1,用于表征计算节点M所表示的数据处理操作的执行时长为1,各计算节点之间的连线(即有向边)表示依赖关系,连线上的数字用于表示有向边的编号。其中,计算图中的黑色计算节点均为目标节点;设任一目标节点为目标节点L,由于目标节点L可通过计算图中的编号为29和30的两条边到达目标节点O,那么目标节点L的可达目标节点便可包括目标节点O。由于目标节点E可通过计算图中的编号为14和24的两条边到达目标节点L,那么目标节点L的被可达目标节点便可包括目标节点E;又由于目标节点B可通过计算图中的编号为6、14和24的两条边到达目标节点L,那么目标节点L的被可达目标节点便还可包括目标节点B。
在具体实现中,步骤S201的具体实施方式可包括以下几种:
实施方式一:直接根据目标对象的计算图,获取该计算图中的多个目标节点的可达性关系。具体的,针对任一目标节点而言,可遍历该计算图中除该任一目标节点以外的各目标节点。若在计算图中检测到当前遍历的目标节点沿着至少一条边到达该任一目标节点,则可以确定该任一目标节点是当前遍历的目标节点的可达目标节点,当前遍历的目标节点是该任一目标节点的被可达目标节点。在计算图中除该任一目标节点以外的各目标节点均被遍历后,便可得到多个目标节点之间的可达性关系。
实施方式二:可先根据目标对象的计算图的拓扑关系,计算包含计算图中的各计算节点的邻接矩阵,如图3b所示。其中,该邻接矩阵可用于指示计算图中的计算节点之间的连接关系;具体的,若该邻接矩阵中的第x行第y列的元素为非零元素,则可表示第x行对应的目标节点和第y列对应的目标节点在计算图中是相连接的,即第x行对应的目标节点可通过计算图中的一条有向边到达第y列对应的目标节点。可见,若该邻接矩阵中的第x行第y列的元素为非零元素,则可表明第x行对应的目标节点和第y列对应的目标节点具有可达性关系,该可达性关系为:第y列对应的目标节点是第x行对应的目标节点的可达目标节点,第x行对应的目标节点是第y列对应的目标节点的被可达目标节点。其中,x和y均大于0且小于或等于计算节点的数量。然后,可直接根据邻接矩阵,获取计算图中的多个目标节点之间的可达性关系。需要说明的是,图3b只是示例性地表示目标对象的计算图以及相应的邻接矩阵;并不对其进行限定。例如,图3b所示的计算图中的每条有向边上均具有相应的编号;但在其他实施例中,各条有向边上也可不标注编号。在此情况下,邻接矩阵便可只采用“0”和“1”来表示各计算节点之间的连接关系;其中,“0”表示未连接,“1”表示相连接。即若第x行对应的目标节点和第y列对应的目标节点在计算图中是相连接的,则邻接矩阵中的第x行第y列的元素便为“1”。
实施方式三:可获取用于指示多个目标节点之间的可达性关系的目标可达性矩阵,并基于该目标可达性矩阵获取多个目标节点之间的可达性关系。在一种具体实现中,可获取目标对象的计算图;并可根据计算图的拓扑关系,计算包含多个目标节点的目标可达矩阵,该目标可达矩阵用于指示各目标节点之间的可达性关系。在具体实施过程中,可先根据计算图的拓扑关系,计算包含计算图中的各计算节点的邻接矩阵。然后对邻接矩阵求传递闭包,得到包含计算图中的各计算节点的初始可达矩阵,该初始可达矩阵可用于指示计算图中的各计算节点之间的可达性关系。所谓的传递闭包是指包含任意两个节点之间的传递关系的最小传递关系;所谓的求传递闭包是指:根据邻接矩阵所指示的连接关系查找出具有传递关系的计算节点,并根据查找出的计算节点的传递关系确定出各计算节点之间的可达性关系的处理。
例如,根据图3c所示的邻接矩阵可知:计算节点A和计算节点C相连接,且计算节点C和计算节点F相连接;那么可确定计算节点C为具有传递关系的计算节点,其传递关系为:从计算节点A传递到计算节点C,并从计算节点C传递到计算节点F。那么根据此传递关系,便可确定计算节点A和计算节点C之间具有可达性关系。基于此,可得到各计算节点之间的可达性关系,从而得到如图3c所示的初始可达矩阵。通过该初始可达矩阵便可知道任一计算节点可以沿着路径(即至少一条有向边)到达哪些计算节点,也可知道该任一计算节点被哪些计算节点到达;比如可知计算节点F可以到达KMNO这四个计算节点,也可知道计算节点F可被ABCDEG这六个计算节点到达。在得到初始可达矩阵后,可去除初始可达矩阵中的非目标节点,得到包含多个目标节点的目标可达矩阵,如图3d所示。
需要说明的是,与初始可达矩阵类似,通过目标可达矩阵也可直接知道任一目标节点可以沿着路径(即至少一条有向边)到达哪些目标节点,以及知道该任一目标节点被哪些目标节点到达。因此,在其他实施例中,在得到目标可达矩阵后,也可直接根据目标可达矩阵确定多个目标节点之间的可达性关系。
S202:获取各目标节点的调度时长。
其中,任一目标节点的调度时长可以为理解为该任一目标节点所表示的数据处理操作的最早完成所需的时长。在一个实施例中,获取目标对象的计算图中的至少两个目标节点的调度时长的具体方式可以为:预热运行目标对象的计算图,并记录计算图中各计算节点表示的数据处理操作的执行时长,进一步地,依照各计算节点表示的数据处理操作的执行时长,计算计算图中的至少两个目标节点的调度时长。其中,在预设运行计算图的过程中,还可以记录传输各目标节点所表示的数据处理操作的执行结果数据所需的通信量。
具体实现中,以计算计算图中的第一目标节点(第一目标节点为计算图中至少两个目标节点中的任一个目标节点)为例说明上述调度时长的具体计算方式为:确定计算图中从起始节点开始,到达第一目标节点的各条路径,并对各条路径中除第一目标节点以外的节点对应的执行时长求和,将求和结果确定为第一目标节点的输入时长。进一步地,从第一目标节点的各输入时长中,确定第一目标节点的最大输入时长,并将第一目标节点的执行时长和最大输入时长的和值,确定为第一目标节点的调度时长。
与之相似的,可以通过上述方式,计算计算图中每一个目标节点,以及每一个非目标节点的调度时长。
示例性地,可以从计算图的起始节点开始,通过式1.1计算每个计算节点i的调度时长T,式1.1中
Figure BDA0002622738080000102
表征的是计算节点i的最大输入时长,该最大输入时长是所有输入计算节点i的最早完时间(Ti)的最大值,Δti为计算节点i对应的执行时长。
Figure BDA0002622738080000101
以图3e所示的计算图为例,可以从计算图中起始节点B和起始节点A开始,通过上述式1.1计算每个计算节点的调度时长,计算后的每个计算节点的调度时长可以参见图3e中的下图所示,其中,每个计算节点的调度时长可以用每个计算节点上括号中的数字表示,例如计算节点M的调度时长为15,可以表示为:M(15)。
S203:根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点。其中,目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合。
在本申请实施例中,处理设备可以通过分析计算图中多个需要传输同步数据(即执行结果数据)的目标节点之间的可达性关系,确定各目标节点的可达性信息和/或支配点信息。进一步地,可以根据上述可达性信息和/或支配点信息提取目标聚合层次信息,并结合目标聚合层次信息和调度时长逐层聚合各目标节点,将调度时长相近、具有相同或相似可达性的目标节点、或者互为支配点和逆支配点的目标节点,聚合成一个聚合节点。
S204:采用聚合节点更新计算图,并将更新后的计算图发送至计算设备。其中,更新后的计算图用于指示计算设备按照目标聚合节点的指示在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合,并传输聚合结果。
本申请实施例中,可获取目标对象的计算图中多个目标节点之间的可达性关系和各目标节点的调度时长,根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点;该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合。进一步地,可采用目标聚合节点更新计算图,将更新后的计算图发送至计算设备。使得计算设备在计算目标对象的过程中,在执行被聚合的目标节点表示的数据处理操作后,可按照目标聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
请参见图4,是本申请实施例提供的另一种数据传输方法的流程示意图。该方法可以由上述所提及的处理设备执行。请参见图4,该数据传输方法可包括以下步骤S401-S406:
S401:获取目标对象的计算图中多个目标节点之间的可达性关系。
S402:获取各目标节点的调度时长。其中,步骤S401~步骤S402的具体实施方式,可以参见上述实施例中步骤S201~步骤S202的相关描述,此处不再赘述。
S403:根据多个目标节点之间的可达性关系,提取目标聚合层次信息。目标聚合层次信息包括:N层聚合所需的目标节点组,N为正整数;每个目标节点组中至少存在一个节点为目标节点。
在具体实现中,上述步骤S403的具体实施方式可包括以下几种:
实施方式一:根据多个目标节点之间的可达性关系,获取各目标节点的可达性信息,其中,任一目标节点的可达性信息包括以下至少一项:由任一目标节点通过计算图中的至少一条边所到达的可达目标节点,以及通过计算图中的至少一条边到达任一目标节点的被可达目标节点。
示例性地,假设多个目标节点之间的可达性关系如图3d的目标可达矩阵所示,以任一目标节点为目标节点L为例,从目标可达矩阵可以看出,目标节点L的可达目标节点包括目标节点O,目标节点L的被可达目标节点包括目标节点R和目标节点E,那么,目标节点L的可达性信息可为(O,BE)。基于此,还可得到其他目标节点的可达性信息如下:目标节点B的可达性信息可为(EGJLO,×)、目标节点E的可达性信息可为(GJLO,B)、目标节点G的可达性信息可为(JO,BE)、目标节点J的可达性信息可为(O,BEG)、目标节点O的可达性信息可为(×,BEGJL)。其中,“×”表示空,即没有相应的目标节点。
在一个实施例中,多个目标节点之间的可达性关系可通过目标可达矩阵表示,在得到目标可达矩阵之后,可按照最少边数的构建原则,根据目标可达矩阵构建由多个目标节点所构成的目标有向图,并基于目标有向图,获取多个目标节点的可达性信息。其中,最少边数的构建原则是指:构建得到的目标有向图所包含有向边的条数最少的原则。具体的,针对任一目标节点而言,可遍历该目标有向图中除该任一目标节点以外的各目标节点。若在目标有向图中检测到当前遍历的目标节点沿着至少一条边到达该任一目标节点,则将该当前遍历的目标节点作为该任一目标节点的被可达目标节点添加至该任一目标节点的可达性信息中;若在目标有向图中检测到该任一目标节点沿着至少一条边到达当前遍历的目标节点,则将该当前遍历的目标节点作为该任一目标节点的可达目标节点添加至该任一目标节点的可达性信息中。在目标有向图中除该任一目标节点以外的各目标节点均被遍历后,便可得到该任一目标节点的可达性信息。示例性地,假设目标可达矩阵如图5a所示,那么基于该目标可达矩阵构建得到的目标有向图,可以如图5a中的目标有向图所示。
在本申请实施例中,针对任意两个目标节点而言,若在这两个目标节点的可达性信息中过滤掉这两个目标节点之后,这两个目标节点的过滤后的可达性信息中的可达目标节点和被可达目标节点均相同;则可认为这两个目标节点的可达性信息相同。例如,仍以图3a所示的计算图为例:针对目标节点G和目标节点J而言,目标节点G的可达性信息为(JO,BE),目标节点J的可达性信息为(O,BEG)。若在目标节点G的可达性信息中过滤掉目标节点J,则可得到目标节点G的过滤后的可达性信息为(O,BE);若在目标节点J的可达性信息中过滤掉目标节点G,则可得到目标节点J的过滤后的可达性信息为(O,BE)。由于目标节点G的过滤后的可达性信息和目标节点J的过滤后的可达性信息相同,因此可认为目标节点G和目标节点J的可达性信息相同。同理,针对任意两个目标节点而言,若在这两个目标节点的可达性信息中过滤掉这两个目标节点之后,这两个目标节点的过滤后的可达性信息中包括了较多的相同可达目标节点以及较多的被可达节点,则可认为这两个目标节点的可达性信息相似。
进一步地,根据各目标节点的可达性信息,提取目标聚合层次信息。
其中,目标聚合层次信息可包括:N层聚合所需的节点组,N为正整数;每个节点组包括以下至少一种节点:目标节点和由至少两个目标节点聚合的聚合节点。由前述可知,具有相同可达性信息(或相似可达性信息)的节点(如目标节点)通常具有相同(或相似)的依赖关系;因此这些具有相同可达性信息(或相似可达性信息)的节点可被聚合在一起。基于此,为了使得每层聚合所需的每个节点组中的节点具有相同可达性信息或相似可达性信息,从而便于后续可按照聚合层次信息将这些具有相同可达性信息(或相似可达性信息)的节点进行聚合。本申请实施例可根据这些具有相同可达性信息以及相似可达性信息的节点之间的信息特征,设置一个可达性条件;该可达性条件可包括:根据被选取的各节点的可达性信息中所包括的相同可达节点的数量以及相同被可达节点的数量,计算得到的被选取的各节点之间的节点亲和性大于亲和性阈值。
其中,节点亲和性的计算方式包括但不限于:根据被选取的各节点的可达信息中的可达节点的数量计算第一参考值,以及根据被选取的各节点的可达信息中的被可达节点的数量计算第二参考值。其中,第一参考值可以包括:被选取的各节点的可达信息中的可达节点的数量的总和,或者被选取的各节点的可达信息中的可达节点的数量的均值,等等;同理,第二参考值可以包括:被选取的各节点的可达信息中的被可达节点的数量的总和,或者被选取的各节点的可达信息中的被可达节点的数量的均值,等等。其次,可计算相同可达节点的数量和第一参考值之间的第一比值,以及计算相同被可达节点的数量和第二参考值之间的第二比值。然后,可根据第一比值和第二比值,计算得到节点亲和性。具体的,可求取第一比值和第二比值的总和,得到节点亲和性;或者,可计算第一比值和第二比值的均值,得到节点亲和性;或者,可根据相同可达节点指标的权重值以及相同被可达节点指标的权重值,对第一比值和第二比值进行加权求和,得到节点亲和性,等等。应理解的是,本申请实施例只是示例性地列举了几种计算节点亲和性的具体实施方式,并非穷举。
那么,在执行实施方式一时,可参考该可达性条件来根据各目标节点的可达性信息,提取目标聚合层次信息;具体的,其具体实施方式可包括以下步骤s11-s13:
s11,从第i层聚合所涉及的节点集中,选取可达性信息满足可达性条件的节点,并将被选取的节点添加至第i层聚合所需的至少一个第i节点组。一个第i节点组对应一个第i聚合节点,i的取值∈[1,N];其中,当i的取值为1时,第1层聚合所涉及的节点集包括多个目标节点;第2层聚合所涉及的节点集包括:各第1节点组对应的第1聚合节点,以及未被选取至第1层聚合所需的至少一个第i节点组中的目标节点,以此类推。
s12,采用各第i节点组对应的第i个聚合节点,替换节点集中被选取的节点以更新节点集。需要说明的是,在采用各第i节点组对应的第i个聚合节点,替换节点集中被选取的节点后,更新后的节点集中的各节点的可达性信息也会进行更新。
s13,若更新后的节点集中存在可达性信息满足可达性条件的节点,则对i的当前取值执行加一操作以更新i,并执行从第i层聚合所涉及的节点集中选取可达性信息满足所述可达性条件的节点的步骤。若更新后的节点集不存在可达性信息满足可达性条件的节点,则可停止提取目标聚合层次信息。
由上述步骤s11-s13的相关描述可知,每个节点组中的各节点的可达性信息满足可达性条件。其中,第i层对应的节点集中的各节点构成第i层对应的有向图;第i层的任一节点组中的任一节点的可达性信息包括以下至少一项:任一节点对应的可达节点和任一节点对应的被可达节点。其中,任一节点对应的可达节点是指:由任一节点通过第i层的有向图中的至少一条边所到达的节点;任一节点对应的被可达节点是指:通过第i层的有向图中的至少一条边到达任一节点的节点。相应的,每个节点组中的各节点的可达性信息满足可达性条件包括:根据每个节点组中的各节点的可达性信息中所包括的相同可达节点的数量以及相同被可达节点的数量,计算得到的每个节点组中的各节点之间的节点亲和性大于亲和性阈值。
基于上述步骤s11-s13的相关描述,为了能够更清楚地理解上述实施方式一的具体实施过程,下面将结合下述例子对上述实施方式一的具体实施过程作进一步阐述:
(一)i的取值为1:
首先,可从第一层聚合(第1层聚合)所涉及的节点集(即多个目标节点)中,选取可达性信息满足可达性条件的目标节点,然后将被选取的目标节点添加至第一层聚合所需的至少一个第一节点组(第1节点组)中。例如,设多个目标节点包括:图5a所示的目标节点B、目标节点E、目标节点G、目标节点J、目标节点L和目标节点O;其中,目标节点B和目标节点E的可达性信息相同,目标节点G和目标节点J的可达性信息相同;即第一层聚合所涉及的节点集中可达性信息满足可达性条件的目标节点有:目标节点B和目标节点E,以及目标节点G和目标节点J。那么可将目标节点B和目标节点E添加至第一节点组(采用B=E表示),以及将目标节点G和目标节点J添加至另一个第一节点组(采用G=J表示);其中,第一节点组(B=E)对应的第一聚合节点为(BE),第一节点组(G=J)对应的第一聚合节点为(GJ)。
其次,可采用这两个第一节点组所对应的第一聚合节点,替换第一层聚合所涉及的节点集中被选取的节点以更新节点集。具体的,可采用第一聚合节点(BE)替换第一层聚合所涉及的节点集中被选取的目标节点B和目标节点E;以及采用第一聚合节点(GJ)替换第一层聚合所涉及的节点集中被选取的目标节点G和目标节点J,从而可得到更新后的节点集包括以下节点:第一聚合节点(BE)、第一聚合节点(GJ)、目标节点L和目标节点O。然后,可获取更新后的节点集中的各节点的可达性信息。具体的,可在目标可达矩阵中对各第一节点组所涉及的目标节点进行聚合,得到第一聚合矩阵;并根据该第一聚合矩阵获取更新后的节点集中的各节点的可达性信息。或者,也可在目标有向图中对各第一节点组所涉及的目标节点进行虚拟聚合,得到第一有向图;并可根据第一有向图获取更新后的节点集中的各节点的可达性信息。以图5a所示的目标可达矩阵或目标有向图为例,可得到如图5b所示的第一聚合矩阵或第一有向图。那么,根据该第一聚合矩阵或第一有向图,可获取到更新后的节点集中的各节点的可达性信息如下:第一聚合节点(BE)的可达性信息为((GJ)LO,×)、第一聚合节点(GJ)的可达性信息为(O,(BE))、目标节点L的可达性信息为(O,(BE)),以及目标节点O的可达性信息为(×,(BE)(GJ)L)。
然后,可检测更新后的节点集中是否存在可达性信息满足可达性条件的节点;若存在,则对i的当前取值执行加一操作以更新i,并执行从第i层所涉及的节点集中选取可达性信息满足可达性条件的节点的步骤;否则,停止提取目标聚合层次信息。承接上述例子,由于更新后的节点集中存在第一聚合节点(GJ)和目标节点L的可达性信息满足可达性条件,因此可对i的当前取值(取值为“1”)进行加一操作以更新i,即此时更新后的i的取值为2。然后,可执行从第2层聚合所涉及的节点集中选取可达性信息满足可达性条件的节点的步骤;具体可参见下述描述。
(二)i的取值为2:
首先,可从第二层聚合(第2层聚合)所涉及的节点集中,选取可达性信息满足可达性条件的目标节点,然后将被选取的目标节点添加至第二层聚合所需的至少一个第二节点组(第2节点组)中。承接上述例子,第二层聚合所涉及的节点集包括:第一聚合节点(BE)、第一聚合节点(GJ)、目标节点L和目标节点O;其中,第二层聚合所涉及的节点集中可达性信息满足可达性条件的目标节点有:第一聚合节点(GJ)和目标节点L。那么可将第一聚合节点(GJ)和目标节点L添加至第二节点组(采用GJ=L表示);该第二节点组(GJ=L)对应的第二聚合节点为(GJL)。
其次,可采用该第二节点组所对应的第二聚合节点,替换第二层聚合所涉及的节点集中被选取的节点以更新节点集。具体的,可采用第二聚合节点(GJL)替换第二层聚合所涉及的节点集中被选取的第一聚合节点(GJ)和目标节点L,从而可得到更新后的节点集包括以下节点:第一聚合节点(BE)、第二聚合节点(GJL)和目标节点O。然后,可获取更新后的节点集中的各节点的可达性信息。具体的,可在第一聚合矩阵中对各第二节点组所涉及的节点进行聚合,得到第二聚合矩阵;并根据该第二聚合矩阵获取更新后的节点集中的各节点的可达性信息。或者,也可在第一有向图中对各第二节点组所涉及的节点进行虚拟聚合,得到第二有向图;并可根据第二有向图获取更新后的节点集中的各节点的可达性信息。以图5b所示的第一聚合矩阵或第一有向图为例,可得到如图5c所示的第二聚合矩阵或第二有向图。那么,根据该第二聚合矩阵或第二有向图,可获取到更新后的节点集中的各节点的可达性信息如下:第一聚合节点(BE)的可达性信息为((GJL)O,×)、第二聚合节点(GJL)的可达性信息为(O,(BE)),以及目标节点O的可达性信息为(×,(BE)(GJL))。
然后,可检测更新后的节点集中是否存在可达性信息满足可达性条件的节点;若存在,则对i的当前取值执行加一操作以更新i,并执行从第i层所涉及的节点集中选取可达性信息满足可达性条件的节点的步骤;否则,停止提取聚合层次信息。承接上述例子,由于更新后的节点集中存在第一聚合节点(BE)和第二聚合节点(GJL)的可达性信息满足可达性条件,以及存在第二聚合节点(GJL)和目标节点O的可达性信息满足可达性条件,因此可对i的当前取值(取值为“2”)进行加一操作以更新i,即此时更新后的i的取值为3。然后,可执行从第3层聚合所涉及的节点集中选取可达性信息满足可达性条件的节点的步骤;具体可参见下述描述。
(三)i的取值为3:
首先,可从第三层聚合(第3层聚合)所涉及的节点集中,选取可达性信息满足可达性条件的目标节点,然后将被选取的目标节点添加至第三层聚合所需的至少一个第三节点组(第3节点组)中。承接上述例子,第三层聚合所涉及的节点集包括:第一聚合节点(BE)、第二聚合节点(GJL)和目标节点O;其中,第三层聚合所涉及的节点集中可达性信息满足可达性条件的目标节点有:第一聚合节点(BE)和第二聚合节点(GJL),以及第二聚合节点(GJL)和目标节点O。可将第一聚合节点(BE)和第二聚合节点(GJL)添加至第三节点组(采用BE=GJL表示),以及将第二聚合节点(GJL)和目标节点O添加至第三节点组(采用GJL=O表示)。进一步的,由于这两个第三节点组中存在相同的节点(即第二聚合节点(GJL)),因此可将这两个第三节点组合并成一个第三节点组,以减少聚合层次。在此情况下,第三层聚合所涉及的第三节点组的数量为1个,其包括以下节点:第一聚合节点(BE)、第二聚合节点(GJL)和目标节点O;相应的,第三节点组对应的第三聚合节点为(BEGJLO)。
其次,可采用该第三节点组所对应的第三聚合节点,替换第三层聚合所涉及的节点集中被选取的节点以更新节点集。具体的,可采用第三聚合节点为(BEGJLO)替换第三层聚合所涉及的节点集中被选取的第一聚合节点(BE)、第二聚合节点(GJL)和目标节点O,从而可得到更新后的节点集包括以下节点:第三聚合节点为(BEGJLO)。由于更新后的节点集中只包括第三聚合节点(BEGJLO),因此更新后的节点集中必然不存在可达性信息满足可达性条件的节点;那么此时可停止提取目标聚合层次信息,从而得到最终的目标聚合层次信息。可选的,该目标聚合层次信息可采用图5d所示的层次信息图进行表示。
实施方式二:根据多个目标节点之间的可达性关系,构建包括多个目标节点的目标有向图。具体实现中,上述多个目标节点之间的可达性关系可以通过包括该多个目标节点的目标可达矩阵表示。可按照最少边数的构建原则,根据目标可达矩阵构建由多个目标节点所构成的目标有向图,如图5a所示。
那么,在执行实施方式二时,其具体实施方式可包括以下步骤s21-s23:
s21,基于目标有向图获取各目标节点的支配点信息。
其中,任一目标节点的支配点信息可用于反映任一目标节点和其他目标节点之间的支配关系。具体的,任一目标节点的支配信息可包括以下至少一项:任一目标节点的支配点集和任一目标节点的逆支配点集。任一目标节点的支配点集是指由该任一目标节点的各支配点构成的集合;该任一目标节点的支配点集中的支配点可为:从目标有向图中的起始目标节点至任一目标节点的所有正向路径均经过的目标节点。其中,任一目标节点的支配点集中距离任一目标节点最近的支配点,为任一目标节点的最近支配点;即任一目标节点的最近支配点是指:该任一目标节点的支配点集中被除自身以外的其他所有支配点支配的支配点。需要说明的是,目标有向图中的起始目标节点不存在支配点。举例来说,参见图5a中的目标有向图:例如,设任一目标节点为目标节点J。由于从目标有向图中的起始目标节点(即目标节点B)至目标节点J,只存在一条正向路径(即正向路径B→E→G→J);因此,这一条正向路径(即正向路径B→E→G→J)所经过的目标节点B、目标节点E、目标节点G以及目标节点J均可作为目标节点J的支配点。即目标节点J的支配点集可包括:目标节点B、目标节点E、目标节点G以及目标节点J。其中,目标节点J的最近支配点为支配点集中距离目标节点J最近的目标节点G。又如,设任一目标节点为目标节点O。由于从目标有向图中的起始目标节点(即目标节点B)至目标节点J,存在两条正向路径(即正向路径B→E→G→J→O和正向路径B→E→L→O);那么这两条正向路径(即正向路径B→E→G→J→O和正向路径B→E→L→O)均经过的目标节点B和目标节点E,均可作为目标节点O的支配点。即目标节点O的支配点集可包括:目标节点B和目标节点E;其中,目标节点O的最近支配点为支配点集中距离目标节点O最近的目标节点E。
任一目标节点的逆支配点集是指由该任一目标节点的各逆支配点构成的集合;该任一目标节点的逆支配点集中的逆支配点可为:从目标有向图对应的逆向图中的起始目标节点至任一目标节点的所有逆向路径均经过的目标节点。其中,任一目标节点的逆支配点集中距离任一目标节点最近的逆支配点,为任一目标节点的最近逆支配点;即任一目标节点的最近逆支配点是指:该任一目标节点的逆支配点集中被除自身以外的其他所有逆支配点支配的逆支配点。并且,逆向图是指对目标有向图中的各条有向边进行反向处理所得到的图。需要说明的是,逆向图中的起始目标节点(即目标有向图中的末尾目标节点)不存在逆支配点。举例来说,仍以图6a中上图所示的目标有向图为例,其相应的逆向图可参见图6a中的下图所示:例如,设任一目标节点为目标节点G。由于从逆向图中的起始目标节点(即目标节点O)至目标节点G,只存在一条逆向路径(即逆向路径O→J→G);因此,这一条逆向路径(即逆向路径O→J→G)所经过的目标节点O以及目标节点J均可作为目标节点G的逆支配点。即目标节点G的逆支配点集可包括:目标节点O以及目标节点J。其中,目标节点G的最近逆支配点为逆支配点集中距离目标节点G最近的目标节点J。又如,设任一目标节点为目标节点B。由于从逆向图中的起始目标节点(即目标节点O)至目标节点B,存在两条逆向路径(即逆向路径O→J→G→E→B和逆向路径O→E→B);那么这两条逆向路径(即逆向路径O→J→G→E→B和逆向路径O→E→B)均经过的目标节点E和目标节点O,均可作为目标节点B的逆支配点。即目标节点B的逆支配点集可包括:目标节点E和目标节点O;其中,目标节点B的最近逆支配点为逆支配点集中距离目标节点B最近的目标节点E。
在本申请实施例中,如果两个节点互为最近支配点和最近逆支配点,那么可将由这两个节点所构成的节点对称为支配对。也就是说,如果节点X的最近支配点Y的最近逆支配点是节点X本身(即节点Y是节点X的最近支配点,节点X是节点Y的最近逆支配点),则可定义节点对{Y,X}为支配对,需要说明的是,此处的节点X和节点Y均是泛指,并不指代特定的节点。可见,支配对是指满足如下条件的目标节点所构成的节点对:一个目标节点是另一个目标节点的最近支配点,且另一个目标节点是该一个目标节点的最近逆支配点。例如,仍以上述图6a所示的例子为例:由于目标节点B是目标节点E的最近支配点,而目标节点E是目标节点B的最近逆支配点,因此由目标节点B和目标节点E所构成的节点对{B,E}可为支配对。
s22,根据各目标节点的支配点信息,构建由多个目标节点构成的支配树。该支配树可用于指示各目标节点之间的支配先后顺序。
在具体实现中,由于目标有向图中的起始目标节点是不存在支配点的,因此可将目标有向图中的起始目标节点作为支配树的根节点,并确定多个目标节点中除目标有向图中的起始目标节点以外的剩余目标节点。然后,可从每个剩余目标节点的支配点信息中的支配点集中,获取每个剩余目标节点的最近支配点;并根据每个剩余目标节点的最近支配点,确定各目标节点之间的最近支配关系。最后,可按照最近支配关系将各剩余目标节点添加至根节点下,以得到支配树。
为便于更清楚地理解支配树的构建过程,下面采用图6a中所示的目标有向图进行举例说明:参见图6a所示,目标有向图中的起始目标节点为目标节点B,由于目标节点B没有支配点,因此可将目标节点B添加至支配树的根节点。其次,可确定多个目标节点中除目标有向图中的起始目标节点以外的剩余目标节点以及各剩余目标节点的最近支配点如下:目标节点E(最近支配点为目标节点B)、目标节点G(最近支配点为目标节点B)、目标节点L(最近支配点为目标节点B)、目标节点O(最近支配点为目标节点B)以及目标节点J(最近支配点为目标节点G)。然后,可确定各目标节点之间的最近支配关系如下:目标节点E被目标节点B最近支配,目标节点G、目标节点L以及目标节点O均被目标节点E最近支配,以及目标节点J被目标节点G最近支配。那么,按照最近支配关系将各剩余目标节点添加至根节点下,便可得到如图6b所示的支配树。
s23,基于支配树提取目标聚合层次信息。
其中,目标聚合层次信息包括:N层聚合所需的节点组,N为正整数;每个节点组中至少存在一个节点为目标节点。由前述可知,支配树中除根节点以外的每个目标节点的父节点为:每个目标节点的最近支配点。多个目标节点中可存在K个支配对,一个支配对可关联至少一层聚合所需的节点组;其中,K为正整数。具体的,基于支配树提取目标聚合层次信息的具体实施方式可包括以下步骤s31-s34:
S31,按照自底向上的遍历顺序,从支配树中未被遍历的目标节点中选取第一目标节点。
S32,根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测是否存在第二目标节点和第一目标节点构成第k个支配对,k∈[1,K];其中,第二目标节点满足如下条件:第二目标节点为第一目标节点的最近支配点,且第一目标节点为第二目标节点的最近逆支配点。具体的,若第一目标节点为支配树的根节点,则可直接确定不存在第二目标节点和第一目标节点构成第k个支配对。若第一目标节点不是支配树的根节点,则可从支配树中获取第一目标节点的父节点。然后,可在该第一目标节点的父节点的逆支配点集中,查询该第一目标节点的父节点的最近逆支配点是否为第一目标节点;若是,则可将第一目标节点的父节点作为第二目标节点,并确定存在第二目标节点和第一目标节点构成第k个支配对。
可选的,为便于更好地查询第一目标节点的父节点的最近逆支配点是否为第一目标节点;处理设备还可先根据各目标节点的支配点信息,构建由多个目标节点构成的逆支配树,该逆支配树中除根节点以外的每个目标节点的父节点为:每个目标节点的最近逆支配点。那么,处理设备便可直接查询第一目标节点的父节点在逆支配树中的父节点是否为第一目标节点;若是,则可确定第一目标节点的父节点的最近逆支配点为第一目标节点。其中,根据各目标节点的支配点信息,构建由多个目标节点构成的逆支配树的具体实施方式如下:由于目标有向图中的末尾目标节点是不存在逆支配点的,因此可将目标有向图中的末尾目标节点作为逆支配树的根节点,并确定多个目标节点中除目标有向图中的末尾目标节点以外的待添加目标节点。然后,可从每个待添加目标节点的支配点信息中的逆支配点集中,获取每个待添加目标节点的最近逆支配点;并根据每个待添加目标节点的最近逆支配点,确定各待添加目标节点之间的最近逆支配关系。最后,可按照最近逆支配关系将各待添加目标节点添加至逆支配树的根节点下,以得到逆支配树。仍以图6a所示的目标有向图为例,其相应的逆支配树可参见图6c所示。
S33,若存在,则根据第二目标节点从多个目标节点中,选取至少一个目标节点添加至与第k个支配对关联的目标层聚合所需的节点组中。并继续遍历支配树,即继续执行步骤s31以重新选取第一目标节点,再通过步骤s32检测是否存在第k+1个支配对,以此类推;直至支配树中的各目标节点均被遍历。其中,在根据第二目标节点从多个目标节点中,选取至少一个目标节点添加至与第k个支配对关联的目标层聚合所需的节点组中时,可具有以下几种实施方式:
在一种实施方式中,若存在,则处理设备可直接从多个目标节点中选取第一目标节点和第二目标节点添加至与第k个支配对关联的目标层聚合所需的节点组中。再一种实施方式中,若存在,则处理设备还可从支配树中获取第二目标节点的后代节点集。其中,第二目标节点的后代节点集中至少包括第一目标节点;若第一目标节点具有后代节点(如第一目标节点的子节点、第一目标节点的子节点的子节点等),则第二目标节点的后代节点集中还可包括第一目标节点的后代节点。然后,可检测后代节点集中是否包括除第一目标节点以及第一目标节点的后代节点以外的其他后代节点。
若后代节点集中只包括第一目标节点以及第一目标节点的后代节点,则选取第一目标节点和第二目标节点,添加至与第k个支配对关联的目标层聚合所需的节点组中。在一种具体实施方式中,可直接选取第一目标节点和第二目标节点,添加至与第k个支配对关联的目标层聚合所需的节点组中。再一种具体实施方式中,还可进一步检测前k-1个支配对关联的历史层聚合所需的节点组中,是否存在第一历史节点组包括第一目标节点。若存在第一历史节点组,则可将第一历史节点组对应的聚合节点和第二目标节点,添加至与第k个支配对关联的目标层聚合所需的节点组中;以便于后续进行聚合迭代处理时,可到达目标层聚合时直接聚合第二目标节点和第一目标节点所在的聚合节点,从而避免新增聚合节点和聚合层次。若不存在第一历史节点组,则可将第一目标节点和第二目标节点添加至目标层聚合所需的节点组中。
若后代节点集中包括除第一目标节点以及第一目标节点的后代节点以外的其他后代节点,则可选取其他后代节点添加至目标层聚合所需的节点组中,以便于后续可先将其他后代节点聚合成一个聚合节点,再将第一目标节点、第二目标节点和该聚合节点聚合成一个新的聚合节点。在一种具体实施方式中,可直接选取其他后代节点,添加至目标层聚合所需的节点组中。再一种具体实施方式中,还可进一步检测前k-1个支配对关联的历史层聚合所需的节点组中,是否存在第二历史节点组包括其他后代节点所对应的聚合节点。若存在第二历史节点组,则可将第二历史节点组对应的聚合节点、第一目标节点以及第二目标节点,添加至目标层聚合所需的节点组中;以便于后续进行聚合迭代处理时,可在到达目标层聚合时直接聚合第一目标节点、第二目标节点以及其他后代节点对应的聚合节点所在的聚合节点,从而避免新增聚合节点和聚合层次。若不存在第二历史节点组,则可将其他后代节点添加至目标层聚合所需的节点组中,并将由其他后代节点聚合的聚合节点、第一目标节点以及第二目标节点,添加至与第k个支配对关联的位于目标层聚合之下的下一层聚合所需的节点组中。
可选的,还可进一步检测前k-1个支配对关联的历史层聚合所需的节点组中,是否存在第三历史节点组包括其他后代节点。若存在第三历史节点组,则可将第三历史节点组对应的聚合节点、第一目标节点以及第二目标节点,添加至目标层聚合所需的节点组中;以便于后续进行聚合迭代处理时,可在到达目标层聚合时直接聚合第一目标节点、第二目标节点以及其他后代节点所在的聚合节点,从而避免新增聚合节点和聚合层次。若不存在第三历史节点组,则可将其他后代节点添加至目标层聚合所需的节点组中,并将由其他后代节点聚合的聚合节点、第一目标节点以及第二目标节点,添加至与第k个支配对关联的位于目标层聚合之下的下一层聚合所需的节点组中。
S34,若不存在,则重新选取第一目标节点,直至支配树中的各目标节点均被遍历。
基于上述步骤s31-s34的相关描述,为了能够更清楚地理解上述步骤S23的具体实施过程,下面将结合图6b所示的支配树对上述步骤S23的具体实施过程作进一步阐述:
(一)第一个支配对{G,J}:
首先,可按照自底向上的遍历顺序,从图6b所示的支配树的最底层(即第四层)中未被遍历的目标节点中选取目标节点J作为第一目标节点。然后,可根据除目标有向图中的末尾目标节点(即目标节点O)以外的各目标节点的逆支配点集,检测到存在第二目标节点(即目标节点G)能够和第一目标节点(即目标节点J)构成第1个支配对{G,J}(或记为第一个支配对{G,J})。由于在支配树中,目标节点G的后代节点集中除了目标节点J以外,不存在其他后代节点;因此第一个支配对所关联的聚合层的数量可为1,即第一个支配对可只关联第一层聚合所需的节点组。此时可直接将目标节点G和目标节点J,添加至与第一个支配对关联的目标层聚合(即第一层聚合)所需的节点组中,以使得后续到达第一层聚合时可直接聚合目标节点G和目标节点J,如图6d所示。
然后,可继续遍历支配树,以重新选取第一目标节点。具体的,由于图6b所示的支配树中的最底层(即第四层)中只包括目标节点J这一个目标节点,且该目标节点J已被遍历;因此,可继续遍历支配树的第三层中的各目标节点。由于同一层中的各目标节点之间没有先后顺序,因此可采用任意顺序对同一层的各目标节点进行遍历。假设按照从左至右的顺序来遍历支配树中的第三层中的各目标节点,则可先从第三层未被遍历的目标节点(目标节点G、目标节点L以及目标节点O)中,选取目标节点G作为第一目标节点。由于根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测到不存在第二目标节点能够和第一目标节点(即目标节点G)构成第2个支配对(或记为第二个支配对)。因此,可继续遍历支配树的第三层,并从第三层未被遍历的目标节点(目标节点L以及目标节点O)中,重新选取目标节点L作为第一目标节点。
同理,由于根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,也检测到不存在第二目标节点能够和第一目标节点(即目标节点L)构成第2个支配对(或记为第二个支配对)。因此,还可继续遍历支配树的第三层,并从第三层未被遍历的目标节点(目标节点O)中,重新选取目标节点O作为第一目标节点。由于根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测到存在第二目标节点(即目标节点E)能够和第一目标节点(即目标节点O)构成第2个支配对{E,O}(或记为第二个支配对{E,O})。因此可根据第二目标节点(即目标节点E)从多个目标节点中,选取至少一个目标节点添加至与第2个支配对关联的目标层聚合所需的节点组中,具体可参见下述描述。
(二)第二个支配对{E,O}:
由于在支配树中,目标节点E的后代节点集中除了目标节点O以外,还存在其他后代节点:目标节点G、目标节点J以及目标节点L。因此第二个支配对所关联的聚合层的数量可为2,即第二个支配对可关联第二层聚合所需的节点组以及第三层聚合所需的节点组。具体的,可先将目标节点G、目标节点J以及目标节点L这三个其他后代节点,添加至与第二个支配对关联的第二层聚合所需的节点组中,如图6e所示。然后,再将由这三个其他后代节点聚合的聚合节点(即聚合节点(GJL))、第一目标节点(即目标节点O)以及第二目标节点(即目标节点E),添加至与第二个支配对关联的位于目标层聚合之下的下一层聚合(即第三层聚合)所需的节点组中,如图6f所示。
然后,可继续遍历支配树,以重新选取第一目标节点。具体的,由于图6b所示的支配树中的第三层中的各目标节点均已被遍历;因此,可继续遍历支配树的第二层中的各目标节点。由于第二层只包括目标节点E这一个目标节点,因此可直接选取目标节点E作为第一目标节点。然后,可根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测到存在第二目标节点(即目标节点B)能够和第一目标节点(即目标节点E)构成第3个支配对{B,E}(或记为第三个支配对{B,E})。因此可根据第二目标节点(即目标节点B)从多个目标节点中,选取至少一个目标节点添加至与第3个支配对关联的目标层聚合所需的节点组中,具体可参见下述描述。
(三)第三个支配对{B,E}:
由于在支配树中,目标节点B的后代节点集中除了目标节点E以及目标节点E的后代节点以外,不存在其他后代节点。因此第三个支配对所关联的聚合层的数量可为1,即第三个支配对可只关联第四层聚合所需的节点组。具体的,由于存在一个第一历史节点组(即第三层聚合所需的节点组)中包括第一目标节点(即目标节点E),因此可直接将该第一历史节点组对应的聚合节点(即聚合节点(EGJLO))以及第二目标节点(即目标节点B)添加至第四层聚合所需的节点组中,如图6g所示。然后,可继续遍历支配树,以重新选取第一目标节点。具体的,由于图6b所示的支配树中的第二层中的各目标节点均已被遍历;因此,可继续遍历支配树的第一层中的根节点;由于根节点不存在支配点,因此可停止提取目标聚合层次信息,从而得到最终的目标聚合层次信息。该聚合层次信息可以通过层次信息图表示,该层次信息图如可采用图6g中的下图进行示意性表示。
实施方式三:基于支配树提取第一聚合层次信息,获取用于表示第一聚合层次信息的层次信息图,基于层次信息图获取各待聚合节点的目标可达性信息其中,待聚合节点为多个目标节点和对每个支配聚合节点组所涉及的目标节点进行聚合得到的聚合节点;第一聚合层次信息包括:至少一层聚合所需的支配聚合节点组,每个支配聚合节点组中至少存在一个节点为目标节点。此处,基于支配树提取第一聚合层次信息的具体实施方式可以参见上述实施方式二中步骤S23的相关描述,此处的支配聚合节点组即为上述基于支配树确定的至少至少一层聚合所需的节点组,此处不再赘述。
示例性地,假设表示第一聚合层次信息的层次信息图如图7a所示,从图中可以看出,第一聚合层次信息包括3层聚合所需的支配聚合节点组,从内层到外层分别为:第一层聚合所需的第一支配聚合节点组(包括:目标节点G和目标节点J)、第二层聚合所需的第二支配聚合节点组(包括:目标节点G、目标节点J和目标节点L)、以及第三层聚合所需的第三支配聚合节点组(包括:目标节点B、目标节点E、目标节点G、目标节点J、目标节点L和目标节点O)。那么,待聚合节点包括目标节点B、E、G、L、J、O,以及每个支配聚合节点组所涉及的目标节点进行聚合得到的聚合节点:GJ和GJL。进一步地,可以基于层次信息图中所表征的各待聚合节点的可达性关系,构建各待聚合节点对应的更新可达矩阵(如图7b所示),并基于该更新可达矩阵获取各待聚合节点的目标可达性信息。
进一步地,在得到目标可达性信息之后,根据各待聚合节点的目标可达性信息,提取第二聚合层次信息。
其中,第二聚合层次信息包括:至少一层聚合所需的可达聚合节点组,每个可达聚合节点组包括以下至少一种节点:待聚合节点和由至少两个待聚合节点进行聚合得到的可达聚合节点;且每个可达聚合节点组中的各待聚合节点的目标可达性信息满足目标可达性条件。此处,根据各待聚合节点的目标可达性信息,提取第二聚合层次信息的具体实施方式,与上述实施方式一中“根据各目标节点的可达性信息,提取目标聚合层次信息”的实施方式相似,主要的区别在于,各待聚合节点之间的可达性关系,除了“可达”、“不可达”以外,还包括“可见”与“不可见”。
从第i层聚合所涉及的可达聚合节点集中,选取目标可达性信息满足所述目标可达性条件的节点,并将被选取的节点添加至第i层聚合所需的至少一个第i可达聚合节点组;一个第i可达聚合节点组对应一个第i可达聚合节点;其中,当i的取值为1时,第1层聚合所涉及的可达聚合节点集包括各待聚合节点;
s42,采用各第i可达聚合节点组对应的第i个可达聚合节点,替换可达聚合节点集中被选取的节点以更新节点集;
s43若更新后的可达聚合节点集中存在目标可达性信息满足目标可达性条件的节点,则对i的当前取值执行加一操作以更新i,并执行从第i层聚合所涉及的可达聚合节点集中选取目标可达性信息满足目标可达性条件的节点的步骤。
由上述步骤s41-s43的相关描述可知,每个可达聚合节点组中的各节点的目标可达性信息满足目标可达性条件。第i层对应的可达聚合节点集中的各节点构成第i层对应的有向图;第i层的任一可达聚合节点组中的任一节点的目标可达性信息包括以下至少一项:任一节点对应的可达节点、任一节点对应的被可达节点、任一节点对应的可见节点和任一节点对应的不可见节点。
其中,任一节点对应的可见节点是指:在第i层对应的有向图中不是被任一节点聚合的节点、不是任一节点对应的可达聚合节点,且不是被其他可达聚合节点聚合的节点,该其它可达聚合节点为除任一节点对应的可达聚合节点以外的可达聚合节点。任一节点对应的可达节点是指:由任一节点通过第i层的有向图中的至少一条边所到达的可见节点;任一节点对应的被可达节点是指:通过第i层的有向图中的至少一条边到达任一节点的可见节点。相应地,每个可达聚合节点组中的各节点的目标可达性信息满足目标可达性条件包括:根据每个可达聚合节点组中的各节点的目标可达性信息中所包括的相同可达节点的数量以及相同被可达节点的数量,计算得到的每个可达聚合节点组中的各节点之间的节点亲和性大于亲和性阈值。
与上述执行实施方式1对应的步骤s11-s13的实现原理相同,可以不断迭代执行步骤s41-s43,将具有相同目标可达性信息或相似目标可达性信息的待聚合节点聚合,由于一次聚合后,会导致未被聚合的节点的目标可达性信息发生变化;在此情况下,可能存在至少两个未被聚合的待聚合节点的变化后的目标可达性信息相同或相似,或者存在未被聚合的待聚合节点的变化后的目标可达性信息和已聚合得到的节点的目标可达性信息相同或相似。那么在此情况下,还可进一步地对该至少两个未被聚合的待聚合节点,或者对该未被聚合的待聚合节点和已聚合得到的节点进行二次聚合;以此类推,直至不再存在未被聚合的待聚合节点的变化后的目标可达性信息相同或相似,以及不再存在未被聚合的待聚合节点的变化后的目标可达性信息和已聚合得到的节点的目标可达性信息相同或相似,从而得到新的聚合节点。
为了能够更清楚地理解上述步骤s41-s43具体实施过程,下面将结合下述例子对上述步骤s41-s43的具体实施过程作进一步阐述:
首先,i的取值为1,可从第一层聚合(第1层聚合)所涉及的可达聚合节点集中(即各待聚合节点)中,选取目标可达性信息满足目标可达性条件的节点,然后将被选取的节点添加至第一层聚合所需的至少一个第一可达聚合节点组(第1可达聚合节点组)中。例如,设各待聚合节点包括:图7a所示的目标节点B、目标节点E、目标节点G、目标节点L、目标节点J、目标节点O、聚合节点GJ和聚合节点GJL。在分析待聚合节点B或者待聚合节点E的目标可达性信息时,只考虑待聚合节点B、待聚合节点E、待聚合节点GJL和待聚合节点O这四个,因为从图7a所示的层次信息图可以看出待聚合节点B和待聚合节点E在待聚合节点GJL外,所以待聚合节点GJL作为整体聚合节点而独立,待聚合节点G、待聚合节点J、待聚合节点L以及待聚合节点GJ均包含在待聚合节点GJL内,对于待聚合节点B和待聚合节点E而言,均为不可见节点。其中,待聚合节点B和待聚合节点E的目标可达性信息相同,待聚合节点E和待聚合节点GJL的目标可达性信息相同,待聚合节点GJL和待聚合节点O的目标可达性信息相同,即第一层聚合所涉及的可达聚合节点集中目标可达性信息满足目标可达性条件的节点有:待聚合节点B和待聚合节点E,待聚合节点E和待聚合节点GJL,以及待聚合节点GJL和待聚合节点O。那么可将待聚合节点B和待聚合节点E添加至第一可达聚合节点组(采用B=E表示),将待聚合节点E和待聚合节点GJL添加至另一个第一可达聚合节点组(采用E=GJL表示);将待聚合节点O和待聚合节点GJL添加至又一个第一可达聚合节点组(采用GJL=0表示)。进一步的,由于这三个第一可达聚合节点组中存在B=E=GJL=O,因此可将这三个第一可达聚合节点组合并成一个第一可达聚合节点组,以减少聚合层次。在此情况下,第一层聚合所涉及的第一可达聚合节点组的数量为1个,其包括以下节点:待聚合节点(B)、待聚合节点(E)、待聚合节点(GJL)和待聚合节点O;相应的,第一可达聚合节点组对应的第一可达聚合节点为(BEGJLO)。
其次,可采用第一可达聚合节点组对应的第一可达聚合节点为(BEGJLO),替换第一层聚合所涉及的可达聚合节点集中被选取的节点以更新可达聚合节点集。具体的,可采用第一可达聚合节点为(BEGJLO)替换第一层聚合所涉及的可达聚合节点集中被选取的待聚合节点(B)、待聚合节点(E)、待聚合节点(GJL)和待聚合节点O,从而可得到更新后的可达聚合节点集包括以下节点:第一可达聚合节点为(BEGJLO)、待聚合节点(G)、待聚合节点(J)、待聚合节点(L)和待聚合节点(GJ)。
然后,可获取更新后的可达聚合节点集中的各节点的目标可达性信息。具体的,可在图7b所示的更新可达矩阵中对第一可达聚合节点组所涉及的节点进行聚合,得到第一可达聚合矩阵;并根据该第一可达聚合矩阵获取更新后的可达聚合节点集中的各节点的目标可达性信息。或者,也可在图7a所示的层次信息图中对第一可达聚合节点组所涉及的节点进行虚拟聚合,得到第一可达聚合有向图;并可根据第一可达聚合有向图获取更新后的可达聚合节点集中的各节点的目标可达性信息。以图7a所示的层次信息图或图7b所示的更新可达矩阵为例,可得到如图7c所示的第一可达聚合矩阵或第一可达聚合有向图。那么,根据该第一可达聚合矩阵或第一可达聚合有向图,可获取到更新后的节点集中的各节点的目标可达性信息如下:第一可达聚合节点(BEGJLO)的目标可达信息为(×,×)、待聚合节点(G)的目标可达信息为(J,×)、待聚合节点(J)的目标可达信息为(×,G)、待聚合节点(L)的目标可达信息为(×,×)和待聚合节点(GJ)的目标可达信息为(×,×)。
然后,可检测更新后的可达聚合节点集中是否存在目标可达性信息满足目标可达性条件的节点;若存在,则对i的当前取值执行加一操作以更新i,并执行从第i层所涉及的可达聚合节点集中选取目标可达性信息满足目标可达性条件的节点的步骤;否则,停止提取第二聚合层次信息。承接上述例子,由于更新后的节点集中不存在目标可达性信息满足目标可达性条件的节点,那么此时可停止提取第二聚合层次信息,从而得到最终的第二聚合层次信息,可选的,该聚合层次信息可采用层次信息图(该层次信息图与如图7c中的第一可达聚合有向图相同)进行表示。
进一步地,在得到第一聚合层次信息和第二聚合层次信息后,依照第一聚合层次信息和第二聚合层次信息,得到目标聚合层次信息。
其中,目标聚合层次信息包括:N层聚合所需的目标节点组,目标节点组是基于支配聚合节点组和可达聚合节点组确定的,N为正整数;每个目标节点组中至少存在一个节点为目标节点。具体实现中,可以对比支配聚合节点组和可达聚合节点组,删除支配聚合节点组和可达聚合节点组中相同的节点组,得到目标节点组,并基于第一聚合层次信息和第二聚合层次信息确定各目标节点组的层级信息,从而根据各目标节点组的层级信息得到目标聚合层次信息。其中,上述相同的节点组是指:支配聚合节点组和可达聚合节点组各自所包括的节点相同。
示例性地,假设第一聚合层次信息(通过支配树提取的聚合层次信息)采用如图7a所示的层次信息图表示,第二聚合层次信息(通过目标可达性信息提取的聚合层次信息)采用如图7c所示的层次信息图(即图7c中的第一可达聚合有向图)表示,通过分析第一聚合层次信息和第二聚合层次信息可知,第一聚合层次信息包括的支配聚合节点组为:第一层聚合所需的第一支配聚合节点组(包括目标节点G和目标节点J)、第二层聚合所需的第二支配聚合节点组(包括目标节点G、目标节点J和目标节点L);第二聚合层次信息包括的可达聚合节点组为:第一层聚合所需的第一可达聚合节点组(包括目标节点B、目标节点E、目标节点G、目标节点J、目标节点L、和目标节点O)。对比支配聚合节点组和可达聚合节点组,支配聚合节点组和可达聚合节点组中不存在相同的节点组,则最终的目标节点组包括:第一支配聚合节点组、第二支配聚合节点组和第一可达聚合节点组。进一步地,基于各目标节点组的层级信息得到目标聚合层次信息。此处的目标聚合层次信息包括3层聚合所需的目标节点组,第一层聚合所需的目标节点组包括目标节点G和目标节点J、第二层聚合所需的目标节点组包括目标节点G、目标节点J和目标节点L;第三层聚合所需的目标节点组包括目标节点B、目标节点E、目标节点G、目标节点J、目标节点L和目标节点O。可选的,该聚合层次信息可采用如图7d的层次信息图进行表示。
S404:按照目标聚合层次信息和调度时长对多个目标节点进行至少一层聚合迭代处理,得到目标聚合节点。
在具体实施过程中,可从目标聚合层次信息的最内层聚合(即第一层聚合)开始,将通信量阈值作为颗粒度进行节点聚合。具体的,步骤S404的具体实施方式可包括以下步骤s51-s57:
S51,按照目标聚合层次信息确定第n层聚合所需的第n目标节点组,并根据第n目标节点组中的每个节点的通信量确定第n目标节点组的通信量总和;其中,n∈[1,N]。需要说明的是,由前述可知:任一节点组中的节点可包括以下至少一项:目标节点和由至少两个目标节点所聚合得到的聚合节点。针对目标节点而言,目标节点的通信量是根据该目标节点所对应的执行结果数据的数据大小确定的;针对聚合节点而言,聚合节点的通信量是对该聚合节点所对应的目标节点的通信量进行求和得到的。
S52,若第n目标节点组的通信量总和大于通信量阈值,则按照调度时长将第n目标节点组中的至少两个节点聚合为目标聚合节点。
其中,目标聚合节点包括第一目标聚合节点和第二目标聚合节点,按照调度时长将第n目标节点组中的至少两个节点聚合为目标聚合节点的具体实施方式可以为:按照调度时长从小到大的顺序逐个组合第n目标节点组中的各节点,若在逐个组合过程中确定出前m个节点的通信量总和小于或者等于通信量阈值,且前m+1个节点的通信量总和大于通信量阈值,则根据前m个节点得到第一目标聚合节点。在确定出第一目标聚合节点后,继续依照调度时长从小到大的顺序逐个组合第n目标节点组中的剩余节点,剩余节点为第n目标节点组中除上述前m个节点以外的节点。
进一步地,若在逐个组合剩余节点的过程中确定出剩余节点中的前p个节点的通信量总和小于或者等于通信量阈值,且剩余节点中的前p+1个节点的通信量总和大于通信量阈值,则根据前p个节点得到第二目标聚合节点;其中,m和p均为大于1的整数。
依次类推,可以继续检测下一个剩余节点中前o(o为大于1的整数)个节点的通信量总和是否小于或者等于通信量阈值,且下一个剩余节点中前o+1(o为大于1的整数)个节点的通信量总和是否大于通信量阈值,确定出下一个聚合节点,直至遍历完第n目标节点组中的所有节点,则停止聚合。
或者,在另一个实施例中,若在上述逐个组合过程中确定出前m个节点的通信量总和大于通信量阈值,且m为2,则确定前2个节点未聚合成功,则将上述至少两个节点中除上述第m-1节点(即第n目标节点组中的第一个节点)以外的节点确定为剩余节点。进一步地,继续按照调度时长从小到大的顺序逐个组合该剩余节点中的各节点,并从该剩余节点中确定出通信量总和小于或者等于通信量阈值的聚合节点。其中,从该剩余节点中确定出通信量总和小于或者等于通信量阈值的聚合节点的具体方式,可以参照上述聚合第二聚合节点的相关描述,此处不再赘述。
S53,若第n目标节点组的通信量总和小于或等于通信量阈值,则对第n目标节点组中的各节点进行聚合处理,得到第n聚合节点。
S54,若n的当前取值小于N,且按照目标聚合层次信息获取的第n+1层聚合所需的第n+1节点组的通信量总和大于通信量阈值,则根据第n聚合节点得到目标聚合节点。
S55,若n的当前取值小于N,且第n+1节点组的通信量总和小于或等于所述通信量阈值,则对n的当前取值执行加一操作以更新n,并执行按照目标聚合层次信息确定第n层聚合所需的第n目标节点组的步骤。
S56,若n的当前取值等于N,则根据第n聚合节点得到目标聚合节点。
S57,若n的当前取值等于N,则可根据第n聚合节点得到目标聚合节点。
其中,上述步骤s51-s57中所提及的根据第n聚合节点得到目标聚合节点这一步骤的具体实施方式可以是:若n的取值为1,则将第1聚合节点作为目标聚合节点;若n的取值不为1,则获取前n-1层聚合所得到的至少一个历史聚合节点,并从至少一个历史聚合节点中选取未被执行聚合处理的历史聚合节点,将选取的未被执行聚合处理的历史聚合节点和第n聚合节点作为目标聚合节点。需要说明的是,前n-1层聚合是指:第1层聚合至第n-1层聚合之间的所有层聚合。
基于上述步骤s51-s57的相关描述,为了能够更清楚地理解上述步骤S404的具体实施过程,下面将结合具体例子对上述步骤S404的具体实施过程作进一步阐述。具体的,仍承接上述例子,假设目标聚合层次信息采用如图7d的层次信息图进行表示,且设通信量阈值为100以及设各目标节点的通信量如下:目标节点B的通信量为50(即B=50)、目标节点E的通信量为20(即E=20)、目标节点L的通信量为120(即L=120)、目标节点G的通信量为10(即G=10)、目标节点J的通信量为80(即J=80)、目标节点O的通信量为50(即O=50)。各目标节点的调度时长如下:目标节点B的调度时长为2,目标节点E的调度时长为3,目标节点G的调度时长为11,目标节点J的调度时长为14,目标节点L的调度时长为8,目标节点O的调度时长为23,任一聚合节点的调度时长为对应的被聚合节点中最大的调度时长,例如聚合节点(GJL)的调度时长为对应的被聚合节点中最大的调度时长:14。那么相应的,步骤S404的具体实施过程如下:
(一)n的取值为1:
首先,可根据目标聚合层次信息确定第一层聚合所需的第一目标节点组包括:目标节点G和目标节点J。然后,可根据第一目标节点组中的每个节点的通信量确定各第一目标节点组的通信量总和为90。由于第一目标节点组的通信量总和小于通信量阈值(100),因此可对第一目标节点组中的各节点进行聚合,得到第一聚合节点(GJ),如图7e所示,其中,图7e中每个节点上的数字用于表征该节点的通信量,例如“B=5”,用于表征节点B的通信量为50。然后,由于n的当前取值(取值为1)小于N(取值为4),因此可按照聚合层次信息获取第n+1层聚合所需的第n+1目标节点组的通信量总和;即可按照聚合层次信息获取第二层聚合所需的第二节点组包括:第一聚合节点(GJ)和目标节点L,其通信量总和为210。由于获取的第二层聚合所需的第二节点组的通信量总和大于通信量阈值(100),因此停止聚合迭代;此时可根据第一聚合节点得到目标聚合节点,即目标聚合节点包括:第一聚合节点(GJ)。
(二)n的取值为2:
首先,可目标根据聚合层次信息确定第二层聚合所需的第二目标节点组包括:第一聚合节点(GJ)和目标节点L;并根据该第二目标节点组中的每个节点的通信量确定第二目标节点组的通信量总和为,即可确定第二目标节点组(GJ=L)的通信量总和为210。由于第二目标节点组的通信量总和大于通信量阈值(100),且第二目标节点组中除了第一聚合节点(GJ)和目标节点L以外,无其他节点可聚合,可无需执行按照调度时长将第二目标节点组中的至少两个目标节点聚合为目标聚合节点的步骤,因此停止聚合迭代。
(三)n的取值为3:
首先,可根据目标聚合层次信息确定第三层聚合所需的第三目标节点组包括:第二聚合节点(GJL)、目标节点B、目标节点E和目标节点O,并根据该第三目标节点组中的每个节点的通信量确定第三目标节点组的通信量总和为330。这种情况下,由于第三目标节点组的通信量总和(330)大于通信量阈值(100),且第三目标节点组中还包括至少两个目标节点,则可以按照调度时长将第三目标节点组中的至少两个目标节点聚合为目标聚合节点。具体地,第三目标节点组中各节点的调度时长从小到大的顺序为:B→E→GJL→O,可以按照调度时长从小到大的顺序逐个组合第三目标节点组中的各节点。在逐个组合的过程中,首先将第三目标节点组中排序前2的目标节点B和目标节点E组合,计算目标节点B和目标节点E的第一通信量总和为70,经判断第一通信量总和(70)小于通信量阈值(100),因此可对第三目标节点组中的目标节点B和目标节点E进行聚合,得到聚合节点(BE),进一步地,可以继续依照调度时长从小到大的顺序将第三目标节点组中排序前3的目标节点B、目标节点E和第二聚合节点(GJL)组合,计算目标节点B、目标节点E和第二聚合节点(GJL)的第二通信量总和为280,经判断第二通信量总和280大于通信量阈值100,则可以将前2个目标节点B和目标节点E聚合为聚合节点(BE),如图7e所示。
需要说明的是,若在其他实施例中,通信量阈值为260;在上述n的取值为2的情况下,由于第二目标节点组的通信量总和(210)小于通信量阈值(260),且n的当前取值小于N,因此还可对n的当前取值执行加一操作以更新n,使得n的取值更新为2。然后,可执行按照目标聚合层次信息确定第二层聚合所需的第二目标节点组的步骤,具体地:首先,可目标根据聚合层次信息确定第二层聚合所需的第二目标节点组包括:第一聚合节点(GJ)和目标节点L;并根据该第二目标节点组中的每个节点的通信量确定第二目标节点组的通信量总和为,即可确定第二目标节点组(GJ=L)的通信量总和为210。由于第二目标节点组的通信量总和小于通信量阈值(260),因此可对该第二目标节点组中的各节点进行聚合,得到第二聚合节点(GJL)。然后,由于n的当前取值(取值为2)小于N(取值为3),因此可按照目标聚合层次信息获取第n+1层聚合所需的第n+1目标节点组的通信量总和;即可按照目标聚合层次信息获取第三层聚合所需的第三目标节点组的通信量总和。具体的,可先按照目标聚合层次信息获取到第三层聚合所需的第三目标节点组包括:第二聚合节点(GJL)、目标节点B、目标节点E和目标节点O;然后,可根据第三目标节点组中的各节点的通信量,计算得到第三目标节点组的通信量总和为330。由于获取的第三层聚合所需的第三目标节点组的通信量总和大于通信量阈值(260),因此停止聚合迭代;此时可根据第二聚合节点得到目标聚合节点。具体的,可获取前1层聚合所得到的第一聚合节点(GJ);由于第一聚合节点(GJ)已被聚合,因此不存在未被执行聚合处理的历史聚合节点,那么便可只将第二聚合节点(GJL)作为目标聚合节点。也就是说,此情况下的目标聚合节点包括:第二聚合节点(GJL)。
S405,采用目标聚合节点更新计算图。
在具体实施过程中,可在计算图中增加目标聚合节点,并采用有向边连接目标聚合节点和被聚合的目标节点;以图7e所示的目标聚合节点(即聚合节点(GJ)和聚合节点(BE))为例,添加目标聚合节点的示意图可参见图7f所示。然后,可在计算图中为未被聚合的目标节点增加一个匹配的通信节点,以及在计算图中为目标聚合节点增加一个匹配的通信节点;其中,通信节点用于表示数据传输操作。承接上述例子,未被聚合的目标节点包括:目标节点L和目标节点O;目标聚合节点包括聚合节点(GJ)和聚合节点(BE);那么添加通信节点的示意图可参见图7g所示。
S406,将更新后的计算图发送至计算设备。
可以理解是,在本申请实施例中,上述目标聚合节点信息可以通过上述实施方式一:直接根据各目标节点的可达性信息,提取得到。经研究表明,在目标对象的计算过程中,若某个目标节点(如目标节点G)存在可达目标节点(如目标节点J)和被可达目标节点(如目标节点E),则需要在执行完被可达目标节点(如目标节点E)所表示的数据处理操作后,才可执行该目标节点(如目标节点G)所表示的数据处理操作,然后再执行可达目标节点(如目标节点J)的数据处理操作。由此可见,对于该目标节点(如目标节点G)而言,该目标节点(如目标节点G)具有如下依赖关系:该目标节点(如目标节点G)所表示的数据处理操作的执行依赖于被可达目标节点(如目标节点E),且目标节点(如目标节点G)所表示的数据处理操作的执行被该目标节点的可达目标节点(如目标节点J)依赖。而经研究进一步表明,具有相同可达性信息(或相似可达性信息)的目标节点通常具有相同(或相似)的依赖关系,即这些具有相同可达性信息(或相似可达性信息)的目标节点所表示的数据处理操作的执行均需依赖于相同的被可达目标节点,且被相同的可达目标节点依赖。基于此,本申请实施例可以结合各目标节点的调度时长和可达性信息,将具有相同可达性信息(或相似可达性信息)的目标节点或者调度时间相近的目标节点聚合成一个目标聚合节点,以通过该目标聚合节点指示计算设备后续对这些具有相同可达性信息(或相似可达性信息)、调度时间相近的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
或者,上述目标聚合节点信息可以通过上述实施方式二:直接基于支配点信息提取得到。基于此,本申请实施例可以结合各目标节点的调度时长和支配点信息,将互为支配点和逆支配点的目标节点,或者调度时间相近的目标节点聚合成一个目标聚合节点,以通过该目标聚合节点指示计算设备后续对这些互为支配点和逆支配点的目标节点、或者调度时间相近的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
或者,上述目标聚合节点信息可以通过上述实施方式三:结合支配点信息和目标可达性信息提取得到,相比于上述直接基于支配点信息提取目标聚合节点信息,或者直接基于可达性信息提取目标聚合节点信息,采用这样的方式,可以最大化的聚合目标节点,得到目标聚合节点。后续计算设备基于目标聚合节点所表示的数据处理操作的执行结果数据进行聚合传输,从而进一步减少数据传输的次数,以最大程度地节省网络资源并缩短传输总时长。
本申请实施例中,可获取目标对象的计算图中多个目标节点之间的可达性关系和各目标节点的调度时长,根据多个目标节点之间的可达性关系提取目标聚合层次信息。其次,可按照目标聚合层次信息和调度时长对多个目标节点进行至少一层聚合迭代处理,以提升目标聚合节点的准确性。进一步地,可采用目标聚合节点更新计算图,将更新后的计算图发送至计算设备。使得计算设备在计算目标对象的过程中,在执行被聚合的目标节点表示的数据处理操作后,可按照目标聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
在实际应用中,上述所提及的数据传输方法可运用在不同的应用场景中;例如,分布式机器学习的应用场景、采用一个或多个计算设备对应用程序进行测试的应用场景、采用一个或多个计算设备对硬件设备进行测试的应用场景,等等。其中,分布式机器学习是指:将神经网络模型的机器学习任务分配到多个计算设备上进行并行处理的机器学习方式。分布式机器学习可支持数据并行(DataParallelism)模式,模型并行(modelParallelism)模式等多种模式。在数据并行模式中:不同的计算设备拥有同一个模型的多个副本,每个计算设备采用不同的训练数据并行地对各自的副本进行模型训练以使得各自的副本进行机器学习,然后将所有计算设备在模型训练中所涉及的计算结果(如梯度)按照某种方式合并。在模型并行模式中:同一个模型的不同部分被分配给不同的计算设备,如不同的网络层或同一网络层的不同参数被分配给不同的计算设备,由各计算设备并行地对各自负责的部分进行模型训练以使得各自负责的部分进行机器学习,然后将所有计算设备的训练结果合并。
所谓的机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科;其专门研究计算机设备怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是AI(Artificial Intelligence,人工智能)的核心,所谓的AI是指利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,AI是计算机科学的一个综合技术;其主要通过了解智能的实质,生产出一种新的能以人类智能相似的方式做出反应的智能机器,使得智能机器具有感知、推理与决策等多种功能。
下面以将上述所提及的数据传输方法运用在分布式机器学习的应用场景为例,对该数据传输方法的具体应用进行阐述;在该分布式机器学习的应用场景中,目标对象可以是一个待进行分布式机器学习的神经网络模型,每个目标节点所表示的数据处理操作的执行结果数据包括:该神经网络模型在分布式机器学习中产生的梯度。具体的,该数据传输方法的大致原理可一并参见图8所示:
处理设备可先获取神经网络模型的计算图,该计算图中可包括多个用于表示需要传输执行结果数据(如梯度)的数据处理操作的目标节点。其次,可通过比较计算图中需要传输同步数据(即梯度)的各目标节点的可达性信息,将具有相同或相似可达性信息的目标节点聚合成一个目标聚合节点(concate节点)。然后,可在计算图中添加该目标聚合节点,并为需要通信的张量(即未被聚合的目标节点对应的梯度以及聚合节点对应的聚合结果)添加通信节点(All Reduce节点)以更新计算图。在运行时,处理设备可将更新后的计算图下发至各计算设备;使得各计算设备在对各自所持有的神经网络模型的副本进行模型训练过程中,可按照更新后的计算图中的目标聚合节点的指示,将被聚合的各目标节点所对应的梯度进行梯度融合;所谓的梯度融合是指:将不同梯度融合在一个通信数据段里进行一起通信传输的处理。在进行梯度融合后,便可接着运算通信节点;且各计算设备在运算到通信节点时可与管理设备进行同步通信,以将相应的张量(未被聚合的目标节点对应的梯度以及聚合节点对应的聚合结果)传输至管理设备。
相应的,管理设备在接收到各计算设备传输的张量后,若各计算设备传输的张量是未被聚合的目标节点对应的梯度,则管理设备可直接对各计算设备传输的梯度进行合并计算(如均值计算),采用合并后的梯度更新神经网络模型(即目标对象)的网络参数。若各计算设备传输的张量是聚合节点对应的聚合结果,则管理设备可对该聚合结果进行分离处理,得到被融合的各梯度。然后,可分别对各计算设备传输的同一数据处理操作的梯度进行合并计算(如均值计算),并分别采用合并后的梯度更新神经网络模型(即目标对象)的网络参数。在更新网络参数后,管理设备可将更新后的网络参数下发至各计算设备;或者在接收到各计算设备的拉取请求后,再将更新后的网络参数下发至各计算设备,使得各计算设备采用更新后的网络参数执行下一轮的模型训练,以重复执行上述步骤,直至模型训练完成。
由此可见,在将本申请实施例所提出的数据传输方法应用到分布式机器学习的应用场景中,可有效地对各计算设备在模型训练过程中所得到的梯度进行融合传输,这样可有效减少传输时延,加速通信。并且,这样的梯度融合方法可以适应较为复杂的计算图拓扑结构,且适应不同的通信量阈值条件,可实现灵活地融合通信信息,使计算通信并行。应理解的是,本申请实施例所提出的数据传输方法除了可合理且灵活地应用于分布式机器学习框架等机器学习平台中,还可以扩展到需要计算通信并行的其他分布式系统;本申请实施例对此不作限制。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述实施例中描述的相应方法。
再请参见图9,是本申请实施例的一种数据传输装置的结构示意图,本申请实施例的数据传输装置可以设置在上述处理设备中,也可以为运行于处理设备中的一个计算机程序(包括程序代码)。
本申请实施例的装置的一个实现方式中,装置包括如下结构。
处理单元90,用于获取目标对象的计算图中的多个目标节点之间的可达性关系,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;可达性关系用于指示:各目标节点沿着计算图中的至少一条边到达其他目标节点的能力;
处理单元90,还用于获取各目标节点的调度时长,并根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合;
上述处理单元90,还用于采用目标聚合节点更新计算图;
通信单元91,用于将更新后的计算图发送至计算设备,该更新后的计算图用于指示计算设备按照目标聚合节点的指示在目标对象的计算过程中对所述被聚合的目标节点所表示的数据处理操作的执行结果进行聚合,并传输聚合结果。
在一个实施例中,上述处理单元90,具体用于根据多个目标节点之间的可达性关系,提取目标聚合层次信息,该目标聚合层次信息包括:N层聚合所需的目标节点组,N为正整数;每个目标节点组中至少存在一个节点为目标节点;按照目标聚合层次信息和调度时长对多个目标节点进行至少一层聚合迭代处理,得到目标聚合节点。
在一个实施例中,上述处理单元90,还具体用于按照目标聚合层次信息确定第n层聚合所需的第n目标节点组,并根据第n目标节点组中的每个节点的通信量确定第n目标节点组的通信量总和;n∈[1,N];若第n目标节点组的通信量总和大于通信量阈值,则按照调度时长将第n目标节点组中的至少两个节点聚合为目标聚合节点;若第n目标节点组的通信量总和小于或等于通信量阈值,则对第n目标节点组中的各节点进行聚合处理,得到第n聚合节点;若n的当前取值小于N,且按照目标聚合层次信息获取的第n+1层聚合所需的第n+1节点组的通信量总和大于通信量阈值,则根据第n聚合节点得到目标聚合节点。
在一个实施例中,目标聚合节点包括第一目标聚合节点和第二目标聚合节点,处理单元90,还具体用于按照调度时长从小到大的顺序逐个组合第n目标节点组中的各节点,若在逐个组合过程中确定出前m个节点的通信量总和小于或者等于通信量阈值,且前m+1个节点的通信量总和大于通信量阈值,则根据前m个节点得到第一目标聚合节点;在确定出第一目标聚合节点后,继续依照调度时长从小到大的顺序逐个组合第n目标节点组中的剩余节点,剩余节点为第n目标节点组中除上述前m个节点以外的节点;若在逐个组合剩余节点的过程中确定剩余节点中的前p个目标节点的通信量总和小于或者等于通信量阈值,且剩余节点中的前p+1个节点的通信量总和大于通信量阈值,则根据前p个节点得到第二目标聚合节点;其中,m和p均为大于1的整数。
在一个实施例中,处理单元90,还用于若n的当前取值小于N,且第n+1节点组的通信量总和小于或等于所述通信量阈值,则对n的当前取值执行加一操作以更新n,并执行按照目标聚合层次信息确定第n层聚合所需的第n目标节点组的步骤;若n的当前取值等于N,则根据第n聚合节点得到目标聚合节点。
在一个实施例中,处理单元90,还具体用于若n的取值为1,则将第1聚合节点作为目标聚合节点;若n的取值不为1,则获取前n-1层聚合所得到的至少一个历史聚合节点,并从至少一个历史聚合节点中选取未被执行聚合处理的历史聚合节点,将选取的未被执行聚合处理的历史聚合节点和第n聚合节点作为目标聚合节点。
在一个实施例中,处理单元90,还具体用于根据多个目标节点之间的可达性关系,构建包括多个目标节点的目标有向图;基于目标有向图,获取各目标节点的支配点信息;根据各目标节点的支配点信息,构建由多个目标节点构成的支配树;基于支配树,提取目标聚合层次信息。
在一个实施例中,处理单元90,还具体用于基于支配树,提取第一聚合层次信息,该第一聚合层次信息包括:至少一层聚合所需的支配聚合节点组,每个支配聚合节点组中至少存在一个节点为目标节点;获取用于表示第一聚合层次信息的层次信息图;基于层次信息图获取各待聚合节点的目标可达性信息,该待聚合节点为多个目标节点和对每个支配聚合节点组所涉及的目标节点进行聚合得到的聚合节点;根据各待聚合节点的目标可达性信息,提取第二聚合层次信息,第二聚合层次信息包括:至少一层聚合所需的可达聚合节点组,每个可达聚合节点组包括以下至少一种节点:待聚合节点和由至少两个待聚合节点进行聚合得到的可达聚合节点;且每个可达聚合节点组中的各待聚合节点的目标可达性信息满足目标可达性条件;依照第一聚合层次信息和第二聚合层次信息,得到目标聚合层次信息;该目标聚合层次信息包括:N层聚合所需的目标节点组,目标节点组是基于支配聚合节点组和可达聚合节点组确定的,N为正整数;每个目标节点组中至少存在一个节点为所述目标节点。
在一个实施例中,处理单元90,还具体用于从第i层聚合所涉及的可达聚合节点集中,选取目标可达性信息满足目标可达性条件的节点,并将被选取的节点添加至第i层聚合所需的至少一个第i可达聚合节点组;一个第i可达聚合节点组对应一个第i可达聚合节点;其中,当i的取值为1时,该第1层聚合所涉及的可达聚合节点集包括各待聚合节点;采用各第i可达聚合节点组对应的第i个可达聚合节点,替换可达聚合节点集中被选取的节点以更新节点集;若更新后的可达聚合节点集中存在目标可达性信息满足目标可达性条件的节点,则对i的当前取值执行加一操作以更新i,并执行从第i层聚合所涉及的可达聚合节点集中选取目标可达性信息满足目标可达性条件的节点的步骤。
在一个实施例中,第i层对应的可达聚合节点集中的各节点构成第i层对应的有向图;第i层的任一可达聚合节点组中的任一节点的目标可达性信息包括以下至少一项:任一节点对应的可达节点、任一节点对应的被可达节点、任一节点对应的可见节点和任一节点对应的不可见节点;
其中,任一节点对应的可见节点是指:在第i层对应的有向图中不是被任一节点聚合的节点、不是任一节点对应的可达聚合节点,且不是被其他可达聚合节点聚合的节点,其它可达聚合节点为除任一节点对应的可达聚合节点以外的可达聚合节点;
任一节点对应的可达节点是指:由任一节点通过第i层的有向图中的至少一条边所到达的可见节点;任一节点对应的被可达节点是指:通过第i层的有向图中的至少一条边到达任一节点的可见节点。
每个可达聚合节点组中的各节点的目标可达性信息满足目标可达性条件包括:根据每个可达聚合节点组中的各节点的目标可达性信息中所包括的相同可达节点的数量以及相同被可达节点的数量,计算得到的每个可达聚合节点组中的各节点之间的节点亲和性大于亲和性阈值。
在一个实施例中,支配树中除根节点以外的每个目标节点的父节点为:每个目标节点的最近支配点;多个目标节点中存在K个支配对,一个支配对关联至少一层聚合所需的支配聚合节点组;其中,K为正整数;处理单元90,还具体用于按照自底向上的遍历顺序,从支配树中未被遍历的目标节点中选取第一目标节点;根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测是否存在第二目标节点和第一目标节点构成第k个支配对,k∈[1,K];第二目标节点满足如下条件:第二目标节点为第一目标节点的最近支配点,且第一目标节点为第二目标节点的最近逆支配点;若存在,则根据第二目标节点从多个目标节点中,选取至少一个目标节点添加至与第k个支配对关联的目标层聚合所需的支配聚合节点组中;并继续遍历支配树;若不存在,则重新选取第一目标节点,直至支配树中的各目标节点均被遍历。
在一个实施例中,处理单元90,还具体用于若存在,则从支配树中获取第二目标节点的后代节点集;若后代节点集中只包括第一目标节点以及第一目标节点的后代节点,则选取第一目标节点和第二目标节点,添加至与第k个支配对关联的目标层聚合所需的支配聚合节点组中;若后代节点集中包括除第一目标节点以及第一目标节点的后代节点以外的其他后代节点,则选取其他后代节点添加至目标层聚合所需的支配聚合节点组中。
在一个实施例中,处理单元90,还具体用于根据多个目标节点之间的可达性关系,获取各目标节点的可达性信息,其中,任一目标节点的可达性信息包括以下至少一项:由任一目标节点通过计算图中的至少一条边所到达的可达目标节点,以及通过计算图中的至少一条边到达任一目标节点的被可达目标节点;根据各目标节点的可达性信息,提取目标聚合层次信息;目标聚合层次信息包括:N层聚合所需的节点组,N为正整数;每个节点组包括以下至少一种节点:目标节点和由至少两个目标节点聚合的聚合节点;且每个节点组中的各节点的可达性信息满足可达性条件。
在本申请实施例中,上述各单元的具体实现可参考前述各附图所对应的实施例中相关内容的描述。
本申请实施例中的数据传输装置可获取目标对象的计算图中多个目标节点之间的可达性关系和各目标节点的调度时长,根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点;该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合。进一步地,可采用目标聚合节点更新计算图,将更新后的计算图发送至计算设备。使得计算设备在计算目标对象的过程中,在执行被聚合的目标节点表示的数据处理操作后,可按照目标聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
再请参见图10,是本申请实施例的一种处理设备的结构示意图,本申请实施例的处理设备包括供电模块等结构,并包括处理器100、存储装置101以及通信接口102。处理器100、存储装置101以及通信接口102之间可以交互数据,由处理器100实现相应的数据传输功能。
存储装置101可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置101也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储装置101还可以包括上述种类的存储器的组合。
处理器100可以是中央处理器100(central processing unit,CPU)。在一个实施例中,处理器100还可以是图形处理器100(Graphics Processing Unit,GPU)。处理器100也可以是由CPU和GPU的组合。在处理设备中,可以根据需要包括多个CPU和GPU进行相应的数据传输。
在一个实施例中,存储装置101用于存储程序指令。处理器100可以调用程序指令,实现如本申请实施例中上述涉及的各种方法。
在第一个可能的实施方式中,处理设备的处理器100,调用存储装置101中存储的程序指令,用于获取目标对象的计算图中多个目标节点之间的可达性关系,每个目标节点用于表示目标对象在计算过程中需要被执行的一个数据处理操作,且每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;可达性关系用于指示:各目标节点沿着计算图中的至少一条边到达其他目标节点的能力;获取各目标节点的调度时长;根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合;采用目标聚合节点更新计算图,并通过通信接口102将更新后的计算图发送至计算设备,更新后的计算图用于指示:计算设备按照目标聚合节点的指示,在目标对象的计算过程中对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合,并传输聚合后的数据。
在一个实施例中,上述处理器100,具体用于根据多个目标节点之间的可达性关系,提取目标聚合层次信息,该目标聚合层次信息包括:N层聚合所需的目标节点组,N为正整数;每个目标节点组中至少存在一个节点为目标节点;按照目标聚合层次信息和调度时长对多个目标节点进行至少一层聚合迭代处理,得到目标聚合节点。
在一个实施例中,上述处理器100,还具体用于按照目标聚合层次信息确定第n层聚合所需的第n目标节点组,并根据第n目标节点组中的每个节点的通信量确定第n目标节点组的通信量总和;n∈[1,N];若第n目标节点组的通信量总和大于通信量阈值,则按照调度时长将第n目标节点组中的至少两个节点聚合为目标聚合节点;若第n目标节点组的通信量总和小于或等于通信量阈值,则对第n目标节点组中的各节点进行聚合处理,得到第n聚合节点;若n的当前取值小于N,且按照目标聚合层次信息获取的第n+1层聚合所需的第n+1节点组的通信量总和大于通信量阈值,则根据第n聚合节点得到目标聚合节点。
在一个实施例中,目标聚合节点包括第一目标聚合节点和第二目标聚合节点,处理器100,还具体用于按照调度时长从小到大的顺序逐个组合第n目标节点组中的各节点,若在逐个组合过程中确定出前m个节点的通信量总和小于或者等于通信量阈值,且前m+1个节点的通信量总和大于通信量阈值,则根据前m个节点得到第一目标聚合节点;在确定出第一目标聚合节点后,继续依照调度时长从小到大的顺序逐个组合第n目标节点组中的剩余节点,剩余节点为第n目标节点组中除上述前m个节点以外的节点;若在逐个组合剩余节点的过程中确定剩余节点中的前p个目标节点的通信量总和小于或者等于通信量阈值,且剩余节点中的前p+1个节点的通信量总和大于通信量阈值,则根据前p个节点得到第二目标聚合节点;其中,m和p均为大于1的整数。
在一个实施例中,处理器100,还用于若n的当前取值小于N,且第n+1节点组的通信量总和小于或等于所述通信量阈值,则对n的当前取值执行加一操作以更新n,并执行按照目标聚合层次信息确定第n层聚合所需的第n目标节点组的步骤;若n的当前取值等于N,则根据第n聚合节点得到目标聚合节点。
在一个实施例中,处理器100,还具体用于若n的取值为1,则将第1聚合节点作为目标聚合节点;若n的取值不为1,则获取前n-1层聚合所得到的至少一个历史聚合节点,并从至少一个历史聚合节点中选取未被执行聚合处理的历史聚合节点,将选取的未被执行聚合处理的历史聚合节点和第n聚合节点作为目标聚合节点。
在一个实施例中,处理器100,还具体用于根据多个目标节点之间的可达性关系,构建包括多个目标节点的目标有向图;基于目标有向图,获取各目标节点的支配点信息;根据各目标节点的支配点信息,构建由多个目标节点构成的支配树;基于支配树,提取目标聚合层次信息。
在一个实施例中,处理器100,还具体用于基于支配树,提取第一聚合层次信息,该第一聚合层次信息包括:至少一层聚合所需的支配聚合节点组,每个支配聚合节点组中至少存在一个节点为目标节点;获取用于表示第一聚合层次信息的层次信息图;基于层次信息图获取各待聚合节点的目标可达性信息,该待聚合节点为多个目标节点和对每个支配聚合节点组所涉及的目标节点进行聚合得到的聚合节点;根据各待聚合节点的目标可达性信息,提取第二聚合层次信息,第二聚合层次信息包括:至少一层聚合所需的可达聚合节点组,每个可达聚合节点组包括以下至少一种节点:待聚合节点和由至少两个待聚合节点进行聚合得到的可达聚合节点;且每个可达聚合节点组中的各待聚合节点的目标可达性信息满足目标可达性条件;依照第一聚合层次信息和第二聚合层次信息,得到目标聚合层次信息;该目标聚合层次信息包括:N层聚合所需的目标节点组,目标节点组是基于支配聚合节点组和可达聚合节点组确定的,N为正整数;每个目标节点组中至少存在一个节点为所述目标节点。
在一个实施例中,处理器100,还具体用于从第i层聚合所涉及的可达聚合节点集中,选取目标可达性信息满足目标可达性条件的节点,并将被选取的节点添加至第i层聚合所需的至少一个第i可达聚合节点组;一个第i可达聚合节点组对应一个第i可达聚合节点;其中,当i的取值为1时,该第1层聚合所涉及的可达聚合节点集包括各待聚合节点;采用各第i可达聚合节点组对应的第i个可达聚合节点,替换可达聚合节点集中被选取的节点以更新节点集;若更新后的可达聚合节点集中存在目标可达性信息满足目标可达性条件的节点,则对i的当前取值执行加一操作以更新i,并执行从第i层聚合所涉及的可达聚合节点集中选取目标可达性信息满足目标可达性条件的节点的步骤。
在一个实施例中,第i层对应的可达聚合节点集中的各节点构成第i层对应的有向图;第i层的任一可达聚合节点组中的任一节点的目标可达性信息包括以下至少一项:任一节点对应的可达节点、任一节点对应的被可达节点、任一节点对应的可见节点和任一节点对应的不可见节点;
其中,任一节点对应的可见节点是指:在第i层对应的有向图中不是被任一节点聚合的节点、不是任一节点对应的可达聚合节点,且不是被其他可达聚合节点聚合的节点,其它可达聚合节点为除任一节点对应的可达聚合节点以外的可达聚合节点;
任一节点对应的可达节点是指:由任一节点通过第i层的有向图中的至少一条边所到达的可见节点;任一节点对应的被可达节点是指:通过第i层的有向图中的至少一条边到达任一节点的可见节点。
每个可达聚合节点组中的各节点的目标可达性信息满足目标可达性条件包括:根据每个可达聚合节点组中的各节点的目标可达性信息中所包括的相同可达节点的数量以及相同被可达节点的数量,计算得到的每个可达聚合节点组中的各节点之间的节点亲和性大于亲和性阈值。
在一个实施例中,支配树中除根节点以外的每个目标节点的父节点为:每个目标节点的最近支配点;多个目标节点中存在K个支配对,一个支配对关联至少一层聚合所需的支配聚合节点组;其中,K为正整数;处理器100,还具体用于按照自底向上的遍历顺序,从支配树中未被遍历的目标节点中选取第一目标节点;根据除目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测是否存在第二目标节点和第一目标节点构成第k个支配对,k∈[1,K];第二目标节点满足如下条件:第二目标节点为第一目标节点的最近支配点,且第一目标节点为第二目标节点的最近逆支配点;若存在,则根据第二目标节点从多个目标节点中,选取至少一个目标节点添加至与第k个支配对关联的目标层聚合所需的支配聚合节点组中;并继续遍历支配树;若不存在,则重新选取第一目标节点,直至支配树中的各目标节点均被遍历。
在一个实施例中,处理器100,还具体用于若存在,则从支配树中获取第二目标节点的后代节点集;若后代节点集中只包括第一目标节点以及第一目标节点的后代节点,则选取第一目标节点和第二目标节点,添加至与第k个支配对关联的目标层聚合所需的支配聚合节点组中;若后代节点集中包括除第一目标节点以及第一目标节点的后代节点以外的其他后代节点,则选取其他后代节点添加至目标层聚合所需的支配聚合节点组中。
在一个实施例中,处理器100,还具体用于根据多个目标节点之间的可达性关系,获取各目标节点的可达性信息,其中,任一目标节点的可达性信息包括以下至少一项:由任一目标节点通过计算图中的至少一条边所到达的可达目标节点,以及通过计算图中的至少一条边到达任一目标节点的被可达目标节点;根据各目标节点的可达性信息,提取目标聚合层次信息;目标聚合层次信息包括:N层聚合所需的节点组,N为正整数;每个节点组包括以下至少一种节点:目标节点和由至少两个目标节点聚合的聚合节点;且每个节点组中的各节点的可达性信息满足可达性条件。
在本申请实施例中,上述处理器100的具体实现可参考前述各附图所对应的实施例中相关内容的描述。
本申请实施例中的处理设备可获取目标对象的计算图中多个目标节点之间的可达性关系和各目标节点的调度时长,根据调度时长和多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点;该目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合。进一步地,可采用目标聚合节点更新计算图,将更新后的计算图发送至计算设备。使得计算设备在计算目标对象的过程中,在执行被聚合的目标节点表示的数据处理操作后,可按照目标聚合节点的指示对被聚合的目标节点所表示的数据处理操作的执行结果数据进行聚合传输,从而减少数据传输的次数,以节省网络资源并缩短传输总时长。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所描述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (15)

1.一种数据传输方法,其特征在于,所述方法包括:
获取目标对象的计算图中多个目标节点之间的可达性关系,每个目标节点用于表示所述目标对象在计算过程中需要被执行的一个数据处理操作,且所述每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;所述可达性关系用于指示:各目标节点沿着所述计算图中的至少一条边到达其他目标节点的能力;
获取所述各目标节点的调度时长;
根据所述调度时长和所述多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,所述目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合;
采用所述目标聚合节点更新所述计算图,并将更新后的计算图发送至计算设备,所述更新后的计算图用于指示所述计算设备按照所述目标聚合节点的指示在所述目标对象的计算过程中对所述被聚合的目标节点所表示的数据处理操作的执行结果进行聚合,并传输聚合结果。
2.如权利要求1所述的方法,其特征在于,所述根据所述调度时长和所述多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,包括:
根据所述多个目标节点之间的可达性关系,提取目标聚合层次信息,所述目标聚合层次信息包括:N层聚合所需的目标节点组,N为正整数;每个目标节点组中至少存在一个节点为所述目标节点;
按照所述目标聚合层次信息和所述调度时长对所述多个目标节点进行至少一层聚合迭代处理,得到目标聚合节点。
3.如权利要求2所述的方法,其特征在于,所述按照所述目标聚合层次信息和所述调度时长对所述多个目标节点进行至少一层聚合迭代处理,得到目标聚合节点,包括:
按照所述目标聚合层次信息确定第n层聚合所需的第n目标节点组,并根据所述第n目标节点组中的每个节点的通信量确定所述第n目标节点组的通信量总和;n∈[1,N];
若所述第n目标节点组的通信量总和大于通信量阈值,则按照所述调度时长将所述第n目标节点组中的至少两个节点聚合为目标聚合节点;
若所述第n目标节点组的通信量总和小于或等于通信量阈值,则对所述第n目标节点组中的各节点进行聚合处理,得到第n聚合节点;若n的当前取值小于N,且按照所述目标聚合层次信息获取的第n+1层聚合所需的第n+1节点组的通信量总和大于所述通信量阈值,则根据所述第n聚合节点得到目标聚合节点。
4.如权利要求3所述的方法,其特征在于,所述目标聚合节点包括第一目标聚合节点和第二目标聚合节点,所述按照所述调度时长将所述第n目标节点组中的至少两个节点聚合为目标聚合节点,包括:
按照所述调度时长从小到大的顺序逐个组合所述第n目标节点组中的各节点,若在逐个组合过程中确定出前m个节点的通信量总和小于或者等于所述通信量阈值,且前m+1个节点的通信量总和大于所述通信量阈值,则根据所述前m个节点得到第一目标聚合节点;
在确定出所述第一目标聚合节点后,继续依照所述调度时长从小到大的顺序逐个组合所述第n目标节点组中的剩余节点,所述剩余节点为所述第n目标节点组中除所述前m个节点以外的节点;
若在逐个组合所述剩余节点的过程中确定所述剩余节点中的前p个目标节点的通信量总和小于或者等于通信量阈值,且所述剩余节点中的前p+1个节点的通信量总和大于所述通信量阈值,则根据所述前p个节点得到第二目标聚合节点;其中,所述m和p均为大于1的整数。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
若n的当前取值小于N,且所述第n+1节点组的通信量总和小于或等于所述通信量阈值,则对所述n的当前取值执行加一操作以更新n,并执行按照所述目标聚合层次信息确定第n层聚合所需的第n目标节点组的步骤;
若n的当前取值等于N,则根据所述第n聚合节点得到目标聚合节点。
6.如权利要求3或4所述的方法,其特征在于,所述根据所述第n聚合节点得到目标聚合节点,包括:
若n的取值为1,则将第1聚合节点作为目标聚合节点;
若n的取值不为1,则获取前n-1层聚合所得到的至少一个历史聚合节点,并从所述至少一个历史聚合节点中选取未被执行聚合处理的历史聚合节点,将选取的所述未被执行聚合处理的历史聚合节点和所述第n聚合节点作为所述目标聚合节点。
7.如权利要求2所述的方法,其特征在于,所述根据所述多个目标节点之间的可达性关系,提取目标聚合层次信息,包括:
根据所述多个目标节点之间的可达性关系,构建包括所述多个目标节点的目标有向图;
基于所述目标有向图,获取各目标节点的支配点信息;
根据所述各目标节点的支配点信息,构建由所述多个目标节点构成的支配树;
基于所述支配树,提取目标聚合层次信息。
8.如权利要求7所述的方法,其特征在于,所述基于所述支配树,提取目标聚合层次信息,包括:
基于所述支配树,提取第一聚合层次信息,所述第一聚合层次信息包括:至少一层聚合所需的支配聚合节点组,每个支配聚合节点组中至少存在一个节点为所述目标节点;
获取用于表示所述第一聚合层次信息的层次信息图;
基于所述层次信息图获取各待聚合节点的目标可达性信息,所述待聚合节点为所述多个目标节点和对每个支配聚合节点组所涉及的目标节点进行聚合得到的聚合节点;
根据所述各待聚合节点的目标可达性信息,提取第二聚合层次信息,所述第二聚合层次信息包括:至少一层聚合所需的可达聚合节点组,每个可达聚合节点组包括以下至少一种节点:所述待聚合节点和由至少两个待聚合节点进行聚合得到的可达聚合节点;且每个可达聚合节点组中的各待聚合节点的目标可达性信息满足目标可达性条件;
依照所述第一聚合层次信息和所述第二聚合层次信息,得到目标聚合层次信息;所述目标聚合层次信息包括:N层聚合所需的目标节点组,所述目标节点组是基于所述支配聚合节点组和所述可达聚合节点组确定的,N为正整数;每个目标节点组中至少存在一个节点为所述目标节点。
9.如权利要求8所述的方法,其特征在于,所述根据所述各待聚合节点的目标可达性信息,提取第二聚合层次信息,包括:
从第i层聚合所涉及的可达聚合节点集中,选取目标可达性信息满足所述目标可达性条件的节点,并将被选取的节点添加至第i层聚合所需的至少一个第i可达聚合节点组;一个第i可达聚合节点组对应一个第i可达聚合节点;其中,当i的取值为1时,所述第1层聚合所涉及的可达聚合节点集包括所述各待聚合节点;
采用各第i可达聚合节点组对应的第i个可达聚合节点,替换所述可达聚合节点集中被选取的节点以更新所述节点集;
若更新后的可达聚合节点集中存在目标可达性信息满足目标可达性条件的节点,则对i的当前取值执行加一操作以更新i,并执行从第i层聚合所涉及的可达聚合节点集中选取目标可达性信息满足所述目标可达性条件的节点的步骤。
10.如权利要求9所述的方法,其特征在于,第i层对应的可达聚合节点集中的各节点构成第i层对应的有向图;第i层的任一可达聚合节点组中的任一节点的目标可达性信息包括以下至少一项:所述任一节点对应的可达节点、所述任一节点对应的被可达节点、所述任一节点对应的可见节点和所述任一节点对应的不可见节点;
其中,所述任一节点对应的可见节点是指:在所述第i层对应的有向图中不是被所述任一节点聚合的节点、不是所述任一节点对应的可达聚合节点,且不是被其他可达聚合节点聚合的节点,所述其它可达聚合节点为除所述任一节点对应的可达聚合节点以外的可达聚合节点;
所述任一节点对应的可达节点是指:由所述任一节点通过所述第i层的有向图中的至少一条边所到达的可见节点;所述任一节点对应的被可达节点是指:通过所述第i层的有向图中的至少一条边到达所述任一节点的可见节点;
所述每个可达聚合节点组中的各节点的目标可达性信息满足目标可达性条件包括:根据所述每个可达聚合节点组中的各节点的目标可达性信息中所包括的相同可达节点的数量以及相同被可达节点的数量,计算得到的所述每个可达聚合节点组中的各节点之间的节点亲和性大于亲和性阈值。
11.如权利要求8所述的方法,其特征在于,所述支配树中除根节点以外的每个目标节点的父节点为:所述每个目标节点的最近支配点;所述多个目标节点中存在K个支配对,一个支配对关联至少一层聚合所需的支配聚合节点组;其中,K为正整数;所述基于所述支配树,提取第一聚合层次信息,包括:
按照自底向上的遍历顺序,从所述支配树中未被遍历的目标节点中选取第一目标节点;
根据除所述目标有向图中的末尾目标节点以外的各目标节点的逆支配点集,检测是否存在第二目标节点和所述第一目标节点构成第k个支配对,k∈[1,K];所述第二目标节点满足如下条件:所述第二目标节点为所述第一目标节点的最近支配点,且所述第一目标节点为所述第二目标节点的最近逆支配点;
若存在,则根据所述第二目标节点从所述多个目标节点中,选取至少一个目标节点添加至与所述第k个支配对关联的目标层聚合所需的支配聚合节点组中;并继续遍历所述支配树;
若不存在,则重新选取第一目标节点,直至所述支配树中的各目标节点均被遍历。
12.如权利要求11所述的方法,其特征在于,所述若存在,则根据所述第二目标节点从所述多个目标节点中,选取至少一个目标节点添加至与所述第k个支配对关联的目标层聚合所需的支配聚合节点组中,包括:
若存在,则从所述支配树中获取所述第二目标节点的后代节点集;
若所述后代节点集中只包括所述第一目标节点以及所述第一目标节点的后代节点,则选取所述第一目标节点和所述第二目标节点,添加至与所述第k个支配对关联的目标层聚合所需的支配聚合节点组中;
若所述后代节点集中包括除所述第一目标节点以及所述第一目标节点的后代节点以外的其他后代节点,则选取所述其他后代节点添加至所述目标层聚合所需的支配聚合节点组中。
13.如权利要求2所述的方法,其特征在于,根据所述多个目标节点之间的可达性关系,提取目标聚合层次信息,包括:
根据所述多个目标节点之间的可达性关系,获取各目标节点的可达性信息,其中,任一目标节点的可达性信息包括以下至少一项:由所述任一目标节点通过所述计算图中的至少一条边所到达的可达目标节点,以及通过所述计算图中的至少一条边到达所述任一目标节点的被可达目标节点;
根据各目标节点的可达性信息,提取目标聚合层次信息;所述目标聚合层次信息包括:N层聚合所需的节点组,N为正整数;每个节点组包括以下至少一种节点:所述目标节点和由至少两个目标节点聚合的聚合节点;且每个节点组中的各节点的可达性信息满足可达性条件。
14.一种数据传输装置,其特征在于,所述装置包括:
处理单元,用于获取目标对象的计算图中的多个目标节点之间的可达性关系,每个目标节点用于表示所述目标对象在计算过程中需要被执行的一个数据处理操作,且所述每个目标节点所表示的数据处理操作的执行结果数据需要进行传输;所述可达性关系用于指示:各目标节点沿着所述计算图中的至少一条边到达其他目标节点的能力;
所述处理单元,还用于获取所述各目标节点的调度时长,并根据所述调度时长和所述多个目标节点之间的可达性关系,将至少两个目标节点聚合为目标聚合节点,所述目标聚合节点用于指示对被聚合的目标节点所表示的数据处理操作的执行结果进行聚合;
所述处理单元,还用于采用所述目标聚合节点更新所述计算图;
通信单元,用于将更新后的计算图发送至计算设备,所述更新后的计算图用于指示所述计算设备按照所述目标聚合节点的指示在所述目标对象的计算过程中对所述被聚合的目标节点所表示的数据处理操作的执行结果进行聚合,并传输聚合结果。
15.一种处理设备,其特征在于,所述处理设备包括处理器和存储装置,所述处理器和存储装置相互连接,其中,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-13任一项所述的方法。
CN202010799569.4A 2020-08-07 2020-08-07 一种数据传输方法、装置、处理设备及介质 Active CN111935006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010799569.4A CN111935006B (zh) 2020-08-07 2020-08-07 一种数据传输方法、装置、处理设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010799569.4A CN111935006B (zh) 2020-08-07 2020-08-07 一种数据传输方法、装置、处理设备及介质

Publications (2)

Publication Number Publication Date
CN111935006A true CN111935006A (zh) 2020-11-13
CN111935006B CN111935006B (zh) 2023-04-18

Family

ID=73307419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010799569.4A Active CN111935006B (zh) 2020-08-07 2020-08-07 一种数据传输方法、装置、处理设备及介质

Country Status (1)

Country Link
CN (1) CN111935006B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230488A1 (en) * 2006-03-31 2007-10-04 International Business Machines Corporation Space and time efficient XML graph labeling
CN102075360A (zh) * 2011-01-19 2011-05-25 中国人民解放军信息工程大学 基于聚合等价类的网络故障分布式处理方法
CN106101001A (zh) * 2016-05-24 2016-11-09 中国人民解放军国防科学技术大学 一种不确定多播传输方法
CN109117429A (zh) * 2017-06-22 2019-01-01 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN109241355A (zh) * 2018-06-20 2019-01-18 中南大学 有向无环图的可达性查询方法、系统及可读存储介质
CN109840533A (zh) * 2017-11-28 2019-06-04 中国移动通信集团浙江有限公司 一种应用拓扑图识别方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230488A1 (en) * 2006-03-31 2007-10-04 International Business Machines Corporation Space and time efficient XML graph labeling
CN102075360A (zh) * 2011-01-19 2011-05-25 中国人民解放军信息工程大学 基于聚合等价类的网络故障分布式处理方法
CN106101001A (zh) * 2016-05-24 2016-11-09 中国人民解放军国防科学技术大学 一种不确定多播传输方法
CN109117429A (zh) * 2017-06-22 2019-01-01 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN109840533A (zh) * 2017-11-28 2019-06-04 中国移动通信集团浙江有限公司 一种应用拓扑图识别方法及装置
CN109241355A (zh) * 2018-06-20 2019-01-18 中南大学 有向无环图的可达性查询方法、系统及可读存储介质

Also Published As

Publication number Publication date
CN111935006B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN110908667B (zh) 神经网络联合编译的方法、装置和电子设备
CN111414233A (zh) 一种在线模型推理系统
Petcu A class of algorithms for distributed constraint optimization
CN113835899B (zh) 针对分布式图学习的数据融合方法及装置
CN108768716A (zh) 一种微服务路径选择方法及装置
US20160292581A1 (en) Minimized processing of streaming changes into a semantic reasoner
CN108040008A (zh) 在线服务功能链的跨域部署方法
WO2023040372A1 (zh) 一种基于图算法的ai建模流程编排方法和系统
CN111061763B (zh) 用于生成规则引擎的规则执行计划的方法及装置
CN111935005B (zh) 数据传输方法、装置、处理设备及介质
Ouyang et al. Semantic enrichment of object associations across federated BIM semantic graphs in a common data environment
CN110958666A (zh) 基于强化学习的网络切片资源映射方法
AlSuwaidan et al. Swarm Intelligence Algorithms for Optimal Scheduling for Cloud‐Based Fuzzy Systems
CN111935026A (zh) 一种数据传输方法、装置、处理设备及介质
CN114003775A (zh) 图数据处理、查询方法及其系统
CN111935006B (zh) 一种数据传输方法、装置、处理设备及介质
CN115883401B (zh) 一种基于流交互图的端到端网络性能预测方法、系统及平台
CN115412401B (zh) 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置
CN115001978B (zh) 一种基于强化学习模型的云租户虚拟网络智能映射方法
US10547565B2 (en) Automatic determination and just-in-time acquisition of data for semantic reasoning
Guan et al. A multi‐controller placement method for software defined network based on improved firefly algorithm
CN114900435B (zh) 一种连接关系预测方法及相关设备
Wang et al. Data-intensive service provision based on particle swarm optimization
Shalini Lakshmi et al. A predictive context aware collaborative offloading framework for compute-intensive applications
CN111953614B (zh) 数据传输方法、装置、处理设备及介质

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