CN108681482A - 基于图数据的任务调度方法和装置 - Google Patents
基于图数据的任务调度方法和装置 Download PDFInfo
- Publication number
- CN108681482A CN108681482A CN201810466739.XA CN201810466739A CN108681482A CN 108681482 A CN108681482 A CN 108681482A CN 201810466739 A CN201810466739 A CN 201810466739A CN 108681482 A CN108681482 A CN 108681482A
- Authority
- CN
- China
- Prior art keywords
- graph
- data
- node
- value
- exchanged
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000010586 diagram Methods 0.000 title abstract description 10
- 238000013139 quantization Methods 0.000 claims description 185
- 238000004364 calculation method Methods 0.000 claims description 165
- 238000004891 communication Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 10
- 230000003247 decreasing effect Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Advance Control (AREA)
Abstract
本申请涉及一种基于图数据的任务调度方法、装置、计算机可读存储介质和计算机设备,所述方法包括:获取从待处理图数据中划分出的子图数据;执行对于所述子图数据中图节点的单位计算任务;获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;确定所述子图数据中未完成的单位计算任务所对应的第三量化值;当所述第二量化值和所述第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。本申请提供的方案可以提高任务的调度效率。
Description
技术领域
本申请涉及图计算技术领域,特别是涉及一种基于图数据的任务调度方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,出现了以“图论”为基础的对现实世界的一种图结构的抽象表达,以及在这种数据结构上的计算模式,也就是图计算。在具体应用中,可以用图数据表示社交网络、商品购买关系、道路交通网络、通信网络等等信息,而基于图数据的计算需求也越来越多,越来越复杂。
传统的基于图数据的计算通常是依赖于分布式计算架构,而当前主流的图数据的任务调度方法是中心化的调度方法。比如,基于调度队列和调度资源池的MapReduce(映射归约编程模型)集群调度算法,通常使用参数服务器统一进行任务调度和控制。
然而,使用参数服务器统一进行计算任务的调度和控制,使得计算任务的处理效率依赖于参数服务器的设置和性能,一旦数据量过大或参数服务器的容错无法得到保证,则图数据的处理效率无法得到保障,且所有在进行中的计算都会报错。特别是当处理超大规模数据量时,传统的基于中心化的任务调度方法存在任务调度效率低的问题。
发明内容
基于此,有必要针对传统的基于中心化的计算任务调度方法存在任务调度效率低的技术问题,提供一种基于图数据的任务调度方法、装置、计算机可读存储介质和计算机设备。
一种基于图数据的任务调度方法,应用于计算节点,所述方法包括:
获取从待处理图数据中划分出的子图数据;
执行对于所述子图数据中图节点的单位计算任务;
获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;
获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;
确定所述子图数据中未完成的单位计算任务所对应的第三量化值;
当所述第二量化值和所述第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
一种基于图数据的任务调度装置,包括:
获取模块,用于获取从待处理图数据中划分出的子图数据;
执行模块,用于执行对于所述子图数据中图节点的单位计算任务;
所述获取模块还用于获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;
所述获取模块还用于获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;
确定模块,用于确定所述子图数据中未完成的单位计算任务所对应的第三量化值;
交换模块,用于当所述第二量化值和所述第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述基于图数据的任务调度方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述基于图数据的任务调度方法的步骤。
上述基于图数据的任务调度方法、装置、计算机可读存储介质和计算机设备,通过将待处理图数据分割成子图数据进行分布式处理,可大大提高图数据的处理效率。再分别获取第一量化值、第二量化值和第三量化值,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。其中,第一量化值和第二量化值可以衡量计算节点的计算能力,第三量化值可以衡量计算节点的负载状态,这样,可将计算节点的计算能力和负载状态用和单位计算任务相应的量化值量化表示,准确又直观。通过在计算节点之间进行图节点和第一量化值的交换,来保持第二量化值和第三量化值满足均衡条件,这样,可以不需要依赖特定的服务器或节点分配任务,而是通过计算节点之间彼此协调分配图节点,并动态调整分配,实现自组织的负载均衡,避免了特定服务器的单点故障和网络拥塞问题,大大提高了任务的调度效率。并且,采用这样自组织的动态任务调度方法,能够适应更大规模集群的计算任务调度,动态增减计算节点的数量均不会对已有的计算任务造成影响,具有高可扩展性。
附图说明
图1为一个实施例中基于图数据的任务调度方法的应用环境图;
图2为一个实施例中基于图数据的任务调度方法的流程示意图;
图3为一个实施例中获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值步骤的流程示意图;
图4为一个实施例中确定子图数据中未完成的单位计算任务所对应的第三量化值步骤的流程示意图;
图5为一个实施例中判断第二量化值和第三量化值是否符合均衡条件步骤的流程示意图;
图6为一个实施例中在计算节点之间进行图节点和第一量化值的交换的步骤的流程示意图;
图7为另一个实施例中基于图数据的任务调度方法的流程示意图;
图8为一个实施例中基于图数据的任务调度装置的结构框图;
图9为另一个实施例中基于图数据的任务调度装置的结构框图;
图10为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中基于图数据的任务调度方法的应用环境图。参照图1,该基于图数据的任务调度方法应用于分布式的图计算系统。该分布式的图计算系统包括控制节点110、计算节点120和数据仓库130。控制节点110和计算节点120通过区块链网络连接,控制节点110和计算节点120分别通过网络与数据仓库130连接。控制节点110可以通过终端来实现,具体可以是台式终端或移动终端,移动终端比如手机、平板电脑或笔记本电脑等。计算节点120可以通过部署在一个或多个服务器上的程序来实现,比如图1所示的计算节点a、b、c等分别分布在高性能计算机1至高性能计算机N上。数据仓库130可以是集中式的存储设备,也可以是分布式的存储集群或设备。在一个实施例中,该分布式的图计算系统有多个计算节点,该基于图数据的任务调度方法可应用于任一计算节点上。
如图2所示,在一个实施例中,提供了一种基于图数据的任务调度方法。本实施例主要以该方法应用于上述图1中的计算节点120来举例说明。参照图2,该基于图计算的任务调度方法具体包括如下步骤:
S202,获取从待处理图数据中划分出的子图数据。
其中,图数据是采用图结构组织起来的结构化数据,通过应用图形理论来存储实体之间的关系信息。在数学上,图结构可以使用二元组G=<V,E>来表示,其中,表示图数据中的N个图节点的集合,表示图节点之间的连接边。待处理图数据是计算节点待处理的图数据。子图数据是从待处理图数据划分出的部分图数据。
通常,图数据由图节点和图节点间的边构成。图节点是图数据中的顶点,可以用来表示图数据中的主体。比如,当用图数据存储社会网络中个体之间的信息时,可以用图数据中的不同图节点表示不同的个体;或者当用图数据表示商品购买关系时,每个用户和每个商品均是一个图节点。其中,图节点可以包含图节点的节点标识和节点属性等信息。图节点间的边是图数据中的边,可以用来表示图数据中不同主体之间的关系。比如,当用图数据存储社会网络中个体之间的信息时,用图数据中的不同图节点表示不同的个体,可以用图数据中的边表示个体之间的关系,如好友关系;当用图数据表示商品购买关系时,每个用户和每个商品均是一个图节点,用户购买商品表示成一条边等。
在一个实施例中,各个计算节点可以是部署在一个或多个服务器上的程序,计算节点可通过区块链这一媒介构成一个虚拟的网络结构。计算节点可通过将数据、任务执行日志或计算节点状态等信息写入新区块,并将新区块加入区块链网络,以方便进行计算节点彼此间的通信协调,以完成子图数据所对应的计算任务,进而完成待处理图数据所对应的计算任务。其中,区块链网络是运行区块链技术的载体和组织方式。
在一个实施例中,该分布式的图计算系统中包含控制节点,控制节点可通过与该分布式的图计算系统中的一个或多个计算节点进行通信,以接入此区块链网络。控制节点可通过将与待处理图数据相对应的任务信息记录在新区块中,并将新区块加入区块链网络,在区块链网络中广播该任务信息。这样,在该区块链网络中的所有计算节点均可接收到广播的任务信息。其中,任务信息是与计算任务相关的信息。
在一个实施例中,计算节点可通过定时器或定时程序等定时查看区块链网络中的最新区块中记录的信息。当检测到任务信息后,判断计算节点自身的负载状态,当计算节点未超载时,计算节点可从区块链网络中加载该任务信息。
在一个实施例中,任务信息可以包括任务可执行文件的获取路径、执行计算任务的算法参数、子图数据的获取路径、计算结果的输出路径,以及期望完成时间等。计算节点从区块链网络中加载该任务信息后,可获取待处理图数据所对应的图结构中的子图结构,并根据获取的子图结构从数据仓库中获取相应的子图数据。
在一个实施例中,当计算节点从区块链网络中加载该任务信息后,可根据自身负载状态,从待处理图数据所对应的图结构中随机获取一定数量的图节点及相应的边,构成子图结构。并根据任务信息中记载的子图数据的获取路径,从数据仓库中获取该子图结构所对应的子图数据。
在一个实施例中,分布式的图计算系统可将待处理图数据按照当前的计算节点的数量,将待处理图数据按预设条件,比如平均或随机,划分成相应数量的子图数据。
S204,执行对于子图数据中图节点的单位计算任务。
其中,单位计算任务是该分布式的图计算系统中的最小计算分配单位,比如在当次迭代计算过程中,某个图节点对应的计算任务。具体地,计算节点在获取从待处理图数据中划分出的子图数据后,可对获取的子图数据中的图节点进行相应的计算。
在一个实施例中,计算节点在加载任务信息后,根据任务信息中记载的任务可执行文件的获取路径,以及执行计算任务的算法参数等信息,从数据仓库中拉取相应的任务可执行文件和执行计算任务的算法参数。进一步地,计算节点在获取子图数据后,根据执行计算任务的算法参数,执行拉取的任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
在一个实施例中,对待处理图数据进行的计算是迭代计算,随着算法的迭代更新,每次迭代过程中都会产生新的计算任务。子图数据中的每个图节点可以通过算法驱动源源不断地产生需要完成计算的单位计算任务。
S206,获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值。
其中,区块链数据是记录在区块链网络中的数据,区块链网络中的新区块可以通过广播的方式共享记录的信息。量化值是对单位计算任务进行量化而得到的数值,比如一个单位计算任务对应一个单位的量化值。第一量化值是对计算节点中已经形成相应区块链数据的,且已完成的单位计算任务进行量化而得到的数值。第一量化值可以衡量计算节点的计算能力,与部分已完成的单位计算任务相对应。第一量化值,具体可以是在区块链网络中进行流通和交换的资源,可以称之为通货值或虚拟货币值等。
具体地,计算节点执行对于子图数据中图节点的单位计算任务后,可将部分已完成的单位计算任务所对应数据记录至区块链网络中形成相应区块链数据,这部分已完成的单位计算任务所对应的量化值即为第一量化值。
在一个实施例中,计算节点执行对于子图数据中图节点的单位计算任务后,完成相应的单位计算任务。当计算节点完成相应的单位计算任务后,可得到对子图数据进行计算的全局计算数据和局部计算数据。其中,全局计算数据是各计算节点对子图数据进行计算的过程中需要进行全局共享并全局更新的数据,全局计算数据的规模是有限的。局部计算数据是各计算节点对子图数据进行计算的过程中仅被少数计算节点使用和更新的数据。
在一个实施例中,计算节点可将全局计算数据记录在新区块中,当新区块通过区块链网络的验证后,将新区块加入区块链网络。在一个实施例中,计算节点还可将从上一区块到当前时间的所有相关数据,比如当前的全局计算数据、任务执行日志或计算节点状态记录在新区块并将新区块加入区块链网络,并获得相应的第一量化值。
在一个实施例中,计算节点可通过主动广播新区块中记录的相关数据,以式与分布式的图计算系统中的所有计算节点共享记录的相关数据,比如记录在新区块中的全局计算数据。或者,也可通过请求的形式扩散新区块中记录的相关数据。其中,以请求的形式扩散是指,计算节点可通过发送请求的方式获取新区块中记录的相关数据。
在具体应用场景中,待处理图数据所涉及的图计算问题中,待处理图数据所对应的图结构通常是较为稀疏的图,待处理图数据中的边数M远远小于图节点数N的两两组合:这样,通常需要全局共享的全局计算数据规模有限,大部分的数据都具有一定的局部性,仅被少数计算节点的计算所使用。采用该分布式的图计算系统,将全局计算数据通过区块链网络进行全局共享,局部计算数据则可以缓存至相应的计算节点中,通过请求的形式获取,避免了大量的不必要的网络通信开销。
S208,获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
其中,第二量化值是对计算节点中未形成相应区块链数据的,且已完成的单位计算任务进行量化而得到的数值。第二量化值可以衡量计算节点的计算能力,与计算节点中另一部分已完成的单位计算任务相对应。第二量化值,具体可以是计算节点当前所拥有的可兑现为第一量化值的资源,可以称之为资产值。当计算节点将已完成的单位计算任务所对应的数据记录在区块链网络中形成相应的区块链数据后,这部分区块链数据所对应的资产值就可转换成区块链网络中流通的相同数额的通货值。
具体地,计算节点执行对于子图数据中图节点的单位计算任务后,得到相应的数据。计算节点根据未被记录至区块链网络中的数据,确定相对应的已完成的单位计算任务。对确定的已完成的单位计算任务进行量化,得到第二量化值。在一个实施例中,计算节点执行对于子图数据中图节点的单位计算任务后,完成相应的单位计算任务。当计算节点完成相应的单位计算任务后,也就可以获取已完成的单位计算任务所对应的第二量化值。
在一个实施例中,计算节点将全局计算数据写入新区块前,获取已完成的单位计算任务所对应的历史第二量化值。其中,历史第二量化值,对应将全局计算数据写入新区块前未形成相应区块链数据且已完成的单位计算任务。当计算节点将全局计算数据写入新区块,且该新区块通过区块链网络的验证后,从历史第二量化值中扣减生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值,得到当前的第二量化值。
这样,通过将全局计算数据写入新区块以形成相应区块链数据的方式,可将相应的历史第二量化值转换成第一量化值。通过记账的方式,将未来可兑现的第二量化值,快捷方便地转化为相应的可流通的第一量化值。这样,第一量化值和当前的第二量化值的总和就可表示计算节点当前的计算能力。
S210,确定子图数据中未完成的单位计算任务所对应的第三量化值。
其中,第三量化值是对计算节点中的未完成的单位计算任务进行量化而得到的数值。第三量化值,具体可以是计算节点待计算的单位计算任务所对应的数值,可以称之为负债值,可以衡量计算节点的负载状态。当计算节点执行未完成的单位计算任务并完成后,可将相应的第三量化值转换成相同数额的第二量化值,进而再转换成相同数额的第一量化值。
具体地,计算节点可实时获取当前的未完成的单位计算任务,根据未完成的单位计算任务,确定相应的第三量化值。在一个实施例中,第一量化值、第二量化值和第三量化值的单位相同,均与单位计算任务相对应。
在一个实施例中,待处理图数据所对应的总任务是一定的,各计算节点中的子图数据所产生的子任务也是一定的。当计算节点通过执行对于子图数据中图节点的单位计算任务时,不断的完成相应的单位计算任务。计算节点可根据子图数据所产生的子任务,以及当前已完成的单位计算任务,获取当前的未完成的单位计算任务,进而确定相应的第三量化值。
在一个实施例中,待处理图数据所对应的总任务是不断变化的,各计算节点中的子图数据所产生的子任务也是不断变化的。计算节点可根据子图数据迭代产生计算任务。随着算法的迭代更新,每次迭代过程中都会产生新的计算任务。子图数据中的每个图节点可以通过算法驱动源源不断地产生需要完成计算的单位计算任务。
在一个实施例中,计算节点可根据子图数据、已完成的单位计算任务的数量、已完成的单位计算任务的内容、区块链网络中共享的全局计算数据,以及局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。
S212,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
其中,均衡条件是预先设置的用于衡量计算节点当前的计算能力和负载状态之间是均衡关系的条件。均衡条件,比如子图数据当前的第三量化值的第二总和,和子图数据当前的第二量化值的第一总和的对比值,在指定范围内。其中,对比值是两个数值的差异值,具体可以通过数学计算来确定两个数值的差异值。数学计算,比如将两个数直接相除、取对数后相除、相减,或进行其他运算后再取对数后相除等等。对比值可以衡量一个数值相对于另一个数值的差异状态。
具体地,当第二量化值和第三量化值不符合均衡条件时,可在计算节点之间进行图节点和第一量化值的交换,以保持第二量化值和第三量化值符合均衡条件。
在一个实施例中,均衡条件所对应的指定范围可以是预设的固定范围,也可以是由随时间变化的函数所确定的范围。
上述基于图数据的任务调度方法,通过将待处理图数据分割成子图数据进行分布式处理,可大大提高图数据的处理效率。再分别获取第一量化值、第二量化值和第三量化值,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。其中,第一量化值和第二量化值可以衡量计算节点的计算能力,第三量化值可以衡量计算节点的负载状态,这样,可将计算节点的计算能力和负载状态用和单位计算任务相应的量化值量化表示,准确又直观。通过在计算节点之间进行图节点和第一量化值的交换,来保持第二量化值和第三量化值满足均衡条件,这样,可以不需要依赖特定的服务器或节点分配任务,而是通过计算节点之间彼此协调分配图节点,并动态调整分配,实现自组织的负载均衡,避免了特定服务器的单点故障和网络拥塞问题,大大提高了任务的调度效率。并且,采用这样自组织的动态任务调度方法,能够适应更大规模集群的计算任务调度,动态增减计算节点的数量均不会对已有的计算任务造成影响,具有高可扩展性。
在一个实施例中,步骤S202具体包括:获取区块链网络中广播的与待处理图数据相对应的任务信息;根据任务信息,读取相应的任务可执行文件和从待处理图数据中划分出的子图数据。步骤S204具体包括:执行任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
具体地,计算节点可通过区块链网络获取区块链网络中广播的与待处理图数据相对应的任务信息,并根据任务信息,从本地或数据仓库中读取相应的任务可执行文件和从待处理图数据中划分出的子图数据。执行任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
在一个实施例中,该分布式的图计算系统中包含控制节点,控制节点可通过将与待处理图数据相对应的任务信息记录在新区块中,并将新区块加入区块链网络,在区块链网络中广播该任务信息。
在一个实施例中,区块链网络中的所有计算节点均可通过新区块的广播而接收到与待处理图数据相对应的任务信息。
在一个实施例中,计算节点可通过定时器或定时程序等定时查看区块链网络中的最新区块中记录的信息。主动获取区块链网络中广播的与待处理图数据相对应的任务信息。
上述实施例中,获取区块链网络中广播的与待处理图数据相对应的任务信息,再根据任务信息,读取相应的任务可执行文件和相应的子图数据,执行任务可执行文件,可以实现执行单位计算任务的步骤。其中,任务信息可以是一个很轻的文件,这样,通过区块链网络进行任务的发布可大大减少分布式的图计算系统中任务发布和获取的通信量,大大提高了任务发布的效率。
在一个实施例中,步骤S206具体包括以下步骤:
S302,将已完成的单位计算任务相应的全局计算数据写入新区块。
在一个实施例中,上述区块链网络可以由一个私有的区块链构成,在区块链网络中记录数据所需的密钥可以根据相关非对称加密算法标准,比如椭圆曲线加密算法或RSA加密算法(一种非对称加密算法)事先生成,存储在数据仓库中。计算节点可在需要使用时访问数据仓库以获取相关密钥。
在一个实施例中,计算节点可根据相应的共识算法生成新区块。共识算法,比如共识哈希算法。计算节点可将已完成的单位计算任务相应的全局计算数据写入新区块。在一个实施例中,计算节点可将全局数据、任务执行日志、图节点的交换数据或计算节点状态等信息写入新区块。
在一个实施例中,当区块链是私有链时,可以缩减共识哈希算法的位数,以提高处理效率,达到提升系统吞吐量的目的。缩减共识哈希算法的位数,比如使用128位的SHA(Secure Hash Algorithm,安全哈希算法)而不是256位;也可以调节共识哈希算法为POS(Proof of Work,工作量证明),使用币龄=第三量化值*年龄来决定下一个新区块的生成者。一般而言,当图数据的交换量在每秒100万次以上时,能够使得分布式的图计算系统达到较好的通信效率。具体地,可以采用下面的分段函数作为共识哈希函数的位数标准:
其中,表示提供待交换的图节点的第一方k中的图节点的平均第三量化值;表示提供待交换的图节点的第一方k中的图节点的平均第二量化值;表示提供待交换的图节点的第一方k中的图节点的平均币龄;η和δ分别为相应的阈值。
在一个实施例中,各计算节点可预先设置默认允许当前拥有的第一量化值最多的计算节点生成新区块。在这种情况下第一量化值的产生将会分配到第一量化值最少的计算节点上,从而实现更高的协调效率。这里的第一量化值也可替换为第二量化值或第三量化值。
在一个实施例中,对于共识哈希函数,也可以采用限制共识前缀0的数量来控制复杂度,与位数控制类似,约束哈希结果前缀0的数量越多,共识问题的难度就越大。
S304,当新区块通过区块链网络的验证后,生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
具体地,当计算节点产生的新区块通过区块链网络的验证后,计算节点可将该新区块加入区块链网络。计算节点可生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
上述实施例中,将已完成的单位计算任务相应的全局计算数据写入新区块,当新区块通过区块链网络的验证后,以快速便捷地生成相应的第一量化值,该第一量化值可以在区块链网络中进行流通和交换。
在一个实施例中,步骤S210具体包括以下步骤:
S402,从区块链网络获取最新的全局计算数据。
具体地,计算节点可通过区块链网络获取新区块中记录的最新的全局计算数据。在一个实施例中,计算节点可通过定时查看新区块的方式,从区块链网络中缓存最新的全局计算数据。
S404,获取已完成的单位计算任务相应的局部计算数据。
具体地,计算节点可读取本地缓存的局部计算数据,或者从子图结构中相邻的计算节点处缓存所需要的局部计算数据。
S406,根据子图数据、已完成的单位计算任务的数量、全局计算数据和局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。
具体地,计算节点可根据子图数据、已完成的单位计算任务的数量、全局计算数据和局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。比如,可通过如下公式计算图节点i的单位计算任务所对应的第三量化值:其中,表示当前的单位计算任务所对应的第三量化值;vi表示子图数据;表示生成当前的单位计算任务所依赖的前s个时点的已完成的单位计算任务;Θt是当前的全局计算数据,是当前的局部计算数据。
上述实施例中,根据子图数据、已完成的单位计算任务的数量、最新的全局计算数据和局部计算数据,可确定子图数据中待生成的单位计算任务所对应的第三量化值,可以准确高效地预估计算节点在未来一段时间内的负载状态。即使动态变动子图数据中图节点的数量,或者动态增加边数都不影响当前的全局计算数据和局部计算数据,计算节点可在已完成的计算任务的基础上进一步计算,大大提高了对待处理图数据的处理效率。
在一个实施例中,基于图数据的任务调度方法还包括判断第二量化值和第三量化值是否符合均衡条件的步骤,该步骤具体包括:
S502,获取子图数据当前的第二量化值的第一总和。
具体地,各计算节点可确定当前计算节点内的子图数据中的全部的未形成相应区块链数据且已完成的单位计算任务,进而确定相应的第二量化值的第一总和。
S504,获取子图数据当前的第三量化值的第二总和。
具体地,各计算节点可确定当前计算节点内的子图数据中的全部的未完成的单位计算任务,进而确定相应的第三量化值的第二总和。
S506,确定第二总和相对于第一总和的对比值。
具体地,计算节点可通过将第一总和和第二总和进行数学计算,以确定第二总和相对于第一总和的对比值。其中,数学计算,比如直接相除、取对数后相除、相减,或进行其他运算后再取对数后相除等等。
在一个实施例中,考虑到第二量化值和第三量化值均随时间变化而呈指数增长,因此,计算节点可分别对第二总和和第一总和取对数后再计算比值,这样第二总和相对于第一总和的对比值可保持线性变化。
在一个实施例中,计算节点可根据以下公式计算第二总和相对于第一总和的对比值:
其中,a和m均为常数;a>0,且a≠1;m≥1;表示子图数据当前的第三量化值的第二总和;表示子图数据当前的第二量化值的第一总和。
在另一个实施例中,可直接将第二总和除以第一总和,以得到第二总和相对于第一总和的对比值。计算节点可根据以下公式计算第二总和相对于第一总和的对比值:
其中,表示子图数据当前的第三量化值的第二总和;表示子图数据当前的第二量化值的第一总和。
S508,当对比值超出指定范围时,第二量化值和第三量化值不符合均衡条件。
具体地,可以预设相应的指定范围,当对比值超出指定范围时,则判断第二量化值和第三量化值不符合均衡条件。当对比值在指定范围内时,则判断第二量化值和第三量化值符合均衡条件。
在一个实施例中,当对比值为对第二总和和第一总和取对数后再相除所得的值,则指定范围的最小值μ(t)和最大值λ(t)均是随时间t变化的线性减函数,且μ(t)<λ(t)。比如,可用如下公式表示对比值在指定范围内:
在一个具体地实施例中,常数a可以为10,常数m为1,则上述公式可简化为
在另一个实施例中,当对比值为第二总和和第一总和的商时,则指定范围的最小值μ(t)和最大值λ(t)均是随时间t变化的幂函数,且μ(t)<λ(t)。比如,可用如下公式表示对比值在指定范围内:
在一个实施例中,上述指定范围也可为固定范围,比如由第一阈值和第二阈值所确定的固定范围。
在一个实施例中,当对比值小于指定范围的最小值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换,以保持对比值在指定范围内;当对比值大于指定范围的最大值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持对比值在指定范围内。
在一个实施例中,当对比值小于指定范围的最小值时,计算节点会尝试通过第一量化值交换得到新的图节点,并且会优先以较少的第一量化值交换得到新的图节点。当对比值大于指定范围的最大值时,计算节点会尝试将自己拥有的图节点交换出去,并且会优先交换那些可以换得更多第一量化值的图节点。
需要指出的是,在上述的实施例中,对比值是第二总和相对于第一总和的对比值,当对比值小于指定范围的最小值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换;当对比值大于指定范围的最大值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持对比值在指定范围内。相应的,对比值也可以是第一总和相对于第二总和的对比值,而当对比值大于指定范围的最大值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换;当对比值小于指定范围的最小值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持对比值在指定范围内。
上述实施例中,通过确定子图数据当前的第二量化值的第一总和,以及子图数据当前的第三量化值的第二总和的对比值,判断对比值是否在指定范围内,当对比值超出指定范围时,则第二量化值和第三量化值不符合均衡条件。这样可快速准确的确定第二量化值和第三量化值是否符合均衡条件,以便高效的在计算节点之间进行图节点和第一量化值的交换,通过计算节点之间彼此协调动态分配图节点,高效地实现了自组织的负载均衡。
在一个实施例中,在计算节点之间进行图节点和第一量化值的交换的步骤具体包括以下步骤:
S602,在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方。
具体地,当计算节点内的第二量化值和第三量化值不符合均衡条件时,计算节点间可互相进行相应的图节点和第一量化值的交换,以维持各计算节点内的第二量化值和第三量化值符合均衡条件。这样,在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方。
S604,确定第一方对待交换的图节点的第一预估量化值。
其中,预估量化值是预估的对待交换的图节点所拥有的未完成的单位计算任务进行量化的值。第一预估量化值是提供待交换的图节点的第一方对待交换的图节点所拥有的未完成的单位计算任务进行量化的值。预估量化值和第一量化值的单位相同。
具体地,当计算节点为提供待交换的图节点的第一方时,计算节点可根据待交换的图节点所对应的第二量化值与第一方所对应的第二量化值的关系,待交换的图节点所对应的第三量化值与第一方所对应的第三量化值的关系,确定第一方对待交换的图节点的第一预估量化值。
在一个实施例中,计算节点可通过以下公式计算第一预估量化值:
其中,vi表示待交换的图节点;k表示提供待交换的图节点的第一方;y1(vi,k)表示第一方对待交换的图节点的第一预估量化值;表示待交换的图节点的第三量化值;Ci表示待交换的图节点的第二量化值;表示提供待交换的图节点的第一方k中的图节点的平均第三量化值;表示提供待交换的图节点的第一方k中的图节点的平均第二量化值;α和β分别为相应的参数;e为自然常数。
S606,确定第二方对待交换的图节点的第二预估量化值。
其中,第二预估量化值是换取待交换的图节点的第二方对待交换的图节点所拥有的未完成的单位计算任务进行量化的值。
具体地,当计算节点为换取待交换的图节点的第二方时,计算节点在确定第二预估量化值时,可以考虑在换取待交换的图节点后,第二方所对应的计算节点需要增加的计算任务和减少的通信距离量。因此,计算节点可根据待交换的图节点的第三量化值,以及待交换的图节点与第二方中的图节点间的通信距离,来确定第二方对待交换的图节点的第二预估量化值。
在一个实施例中,计算节点可根据以下公式计算第二预估量化值:
其中,vi表示待交换的图节点;l表示换取待交换的图节点的第二方;y2(vi,l)表示第二方对待交换的图节点的第二预估量化值;表示待交换的图节点的第三量化值;∑j∈ ldist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i的通信距离的总和。
在一个实施例中,dist(i,j)可表示图节点i和图节点j之间的通信距离。由于计算图数据中任意两图节点间的通信距离的计算量巨大,因此计算节点采用数学上的近似方法来计算图节点间的通信距离,比如,可采用局部近似法来计算图节点间的通信距离,具体可根据以下公式计算图节点间的通信距离:
其中,dist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i间的通信距离;ei,j∈E表示图节点j与图节点i之间通过边连接;表示图节点j与图节点i之间无边。
也就是,当图节点i和图节点j之间通过边连接时,可近似认为图节点i和图节点j的距离很近。当第二方所对应的计算节点换取了待交换的图节点后,计算节点可减少相应的通信距离,因此,第二预估量化值越高。当图节点i和图节点j之间无边连接时,当第二方所对应的计算节点换取了待交换的图节点后,计算节点并未减少通信距离。
在一个实施例中,计算节点还可采取其他的近似方法来计算图节点间的通信距离,比如判断待计算的两图节点间是否有共同的邻近图节点,当两图节点间是存在共同的邻近图节点时,则可认为这两图节点间的通信距离短,当第二方所对应的计算节点换取了待交换的图节点后,计算节点所减少的通信量也更多。还比如,计算节点可根据随机路径图法生成两两图节点间的路径,在同一个路径上的图节点则被认为通信距离短,当第二方所对应的计算节点换取了待交换的图节点后,计算节点所减少的通信量也更多。
S608,根据第一预估量化值和第二预估量化值,确定用于与待交换的图节点交换的第一量化值。
具体地,计算节点可根据第一预估量化值和第二预估量化值,确定用于与待交换的图节点交换的第一量化值。比如,可计算第一预估量化值和第二预估量化值的平均值,将平均值作为与待交换的图节点交换的第一量化值。或者,计算节点也可根据一定的权重比值,对第一预估量化值和第二预估量化值进行加权求和后取平均值,将加权求和后的平均值作为与待交换的图节点交换的第一量化值等。
S610,在待进行交换的计算节点之间,进行待交换的图节点与确定的第一量化值间的交换。
具体地,在待进行交换的计算节点间,第二方可通过确定的第一量化值换取第一方的待交换的图节点。
上述实施例中,根据提供待交换的图节点的第一方对待交换的图节点的第一预估量化值,以及换取待交换的图节点的第二方对待交换的图节点的第二预估量化值,确定用于与待交换的图节点交换的第一量化值。这样可以综合考量第一方和第二方的实际情况,在待进行交换的计算节点之间,进行公平的待交换的图节点与第一量化值的交换。
如图7所示,在一个具体实施例中,基于图数据的任务调度方法包括以下步骤:
702,获取区块链网络中广播的与待处理图数据相对应的任务信息。
704,根据任务信息,读取相应的任务可执行文件和从待处理图数据中划分出的子图数据。
S706,执行任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
S708,将已完成的单位计算任务相应的全局计算数据写入新区块。
S710,当新区块通过区块链网络的验证后,生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
S712,获取将全局计算数据写入新区块前的历史第二量化值;历史第二量化值,对应将全局计算数据写入新区块前未形成相应区块链数据且已完成的单位计算任务。
S714,从历史第二量化值中扣减第一量化值,得到当前未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
S716,从区块链网络获取最新的全局计算数据。
S718,获取已完成的单位计算任务相应的局部计算数据。
S720,根据子图数据、已完成的单位计算任务的数量、全局计算数据和局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。
S722,获取子图数据当前的第二量化值的第一总和。
S724,获取子图数据当前的第三量化值的第二总和。
S726,确定第二总和相对于第一总和的对比值。
S728,当对比值超出指定范围时,第二量化值和第三量化值不符合均衡条件。
S730,当第二量化值和第三量化值不符合均衡条件时,在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方。
S732,确定第一方对待交换的图节点的第一预估量化值。
S734,确定第二方对待交换的图节点的第二预估量化值。
S736,根据第一预估量化值和第二预估量化值,确定用于与待交换的图节点交换的第一量化值。
S738,在待进行交换的计算节点之间,进行待交换的图节点与确定的第一量化值间的交换。
上述基于图数据的任务调度方法,通过将待处理图数据分割成子图数据进行分布式处理,可大大提高图数据的处理效率。再分别获取第一量化值、第二量化值和第三量化值,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。其中,第一量化值和第二量化值可以衡量计算节点的计算能力,第三量化值可以衡量计算节点的负载状态,这样,可将计算节点的计算能力和负载状态用和单位计算任务相应的量化值量化表示,准确又直观。通过在计算节点之间进行图节点和第一量化值的交换,来保持第二量化值和第三量化值满足均衡条件,这样,可以不需要依赖特定的服务器或节点分配任务,而是通过计算节点之间彼此协调分配图节点,并动态调整分配,实现自组织的负载均衡,避免了特定服务器的单点故障和网络拥塞问题,大大提高了任务的调度效率。并且,采用这样自组织的动态任务调度方法,能够适应更大规模集群的计算任务调度,动态增减计算节点的数量均不会对已有的计算任务造成影响,具有高可扩展性。
图7为一个实施例中基于图数据的任务调度方法的流程示意图。应该理解的是,虽然图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在具体应用场景中,比如TSP问题中(Traveling Salesman Problem,旅行推销员问题),可通过上述基于图数据的任务调度方法高效地求得较优解。其中,TSP问题具体指推销员如何在最短距离内走完所有城市(图节点)并回到出发的城市。这是一个NP(Non-deterministic Polynomial,非确定性多项式)完全问题,一般会求其近似解。通过本方案中的基于图数据的任务调度方法,可将该TSP问题拆分成子图中的最短遍历问题,即通过寻找局部最优来近似逼近全局最优解。其中全局计算数据即为当前待处理图数据中的的路径以及总长度,而局部计算数据则包括各个子图数据中较优的路径长度,以及进入和离开该子图的图节点。计算的过程为不断优化路径选择,计算节点之间彼此协调动态分配图节点,以得到最优情况下的最优子图分割,并求得该情况下的最优解。
如图8所示,在一个实施例中,提供了一种基于图数据的任务调度装置800,包括:获取模块801、执行模块802、确定模块803和交换模块803。
获取模块801,用于获取从待处理图数据中划分出的子图数据。
执行模块802,用于执行对于子图数据中图节点的单位计算任务。
获取模块801还用于获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值。
获取模块801还用于获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
确定模块803,用于确定子图数据中未完成的单位计算任务所对应的第三量化值。
交换模块804,用于当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
在一个实施例中,获取模块801还用于获取区块链网络中广播的与待处理图数据相对应的任务信息;根据任务信息,读取相应的任务可执行文件和从待处理图数据中划分出的子图数据。执行模块802还包括:执行任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
在一个实施例中,获取模块801还用于将已完成的单位计算任务相应的全局计算数据写入新区块;当新区块通过区块链网络的验证后,生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
在一个实施例中,获取模块801还用于获取将全局计算数据写入新区块前的历史第二量化值;历史第二量化值,对应将全局计算数据写入新区块前未形成相应区块链数据且已完成的单位计算任务;从历史第二量化值中扣减第一量化值,得到当前未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
在一个实施例中,确定模块803还用于从区块链网络获取最新的全局计算数据;获取已完成的单位计算任务相应的局部计算数据;根据子图数据、已完成的单位计算任务的数量、全局计算数据和局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。
在一个实施例中,获取模块801还用于获取子图数据当前的第二量化值的第一总和;获取子图数据当前的第三量化值的第二总和。确定模块803还用于确定第二总和相对于第一总和的对比值;当对比值超出指定范围时,第二量化值和第三量化值不符合均衡条件。
在一个实施例中,确定模块803还用于根据以下公式计算第二总和相对于第一总和的对比值:
其中,a和m均为常数;a>0,且a≠1;m≥1;表示子图数据当前的第三量化值的第二总和;表示子图数据当前的第二量化值的第一总和。
在一个实施例中,指定范围的最小值μ(t)和最大值λ(t)均是随时间t变化的线性减函数,且μ(t)<λ(t)。
在一个实施例中,交换模块804还用于当对比值小于指定范围的最小值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换,以保持对比值在指定范围内;当对比值大于指定范围的最大值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持对比值在指定范围内。
在一个实施例中,交换模块804还用于在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方;确定第一方对待交换的图节点的第一预估量化值;确定第二方对待交换的图节点的第二预估量化值;根据第一预估量化值和第二预估量化值,确定用于与待交换的图节点交换的第一量化值;在待进行交换的计算节点之间,进行待交换的图节点与确定的第一量化值间的交换。
如图9所示,在一个实施例中,交换模块804还包括计算模块805,用于根据以下公式计算第一预估量化值:
其中,vi表示待交换的图节点;k表示提供待交换的图节点的第一方;y1(vi,k)表示第一方对待交换的图节点的第一预估量化值;表示待交换的图节点的第三量化值;Ci表示待交换的图节点的第二量化值;表示提供待交换的图节点的第一方k中的图节点的平均第三量化值;表示提供待交换的图节点的第一方k中的图节点的平均第二量化值;α和β分别为相应的参数;e为自然常数。
在一个实施例中,计算模块805还用于根据以下公式计算第二预估量化值:
其中,vi表示待交换的图节点;l表示换取待交换的图节点的第二方;y2(vi,l)表示第二方对待交换的图节点的第二预估量化值;表示待交换的图节点的第三量化值;∑j∈ ldist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i的通信距离的总和。
在一个实施例中,计算模块805还用于根据以下公式计算通信距离:
其中,dist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i间的通信距离;ei,j∈E表示图节点j与图节点i之间通过边连接;表示图节点j与图节点i之间无边。
上述基于图数据的任务调度装置,通过将待处理图数据分割成子图数据进行分布式处理,可大大提高图数据的处理效率。再分别获取第一量化值、第二量化值和第三量化值,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。其中,第一量化值和第二量化值可以衡量计算节点的计算能力,第三量化值可以衡量计算节点的负载状态,这样,可将计算节点的计算能力和负载状态用和单位计算任务相应的量化值量化表示,准确又直观。通过在计算节点之间进行图节点和第一量化值的交换,来保持第二量化值和第三量化值满足均衡条件,这样,可以不需要依赖特定的服务器或节点分配任务,而是通过计算节点之间彼此协调分配图节点,并动态调整分配,实现自组织的负载均衡,避免了特定服务器的单点故障和网络拥塞问题,大大提高了任务的调度效率。并且,采用这样自组织的动态任务调度方法,能够适应更大规模集群的计算任务调度,动态增减计算节点的数量均不会对已有的计算任务造成影响,具有高可扩展性。
图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的计算节点120所分布的计算机设备。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于图数据的任务调度方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行基于图数据的任务调度方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的基于图数据的任务调度装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该基于图数据的任务调度装置的各个程序模块,比如,图8所示的获取模块、执行模块、确定模块和交换模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的基于图数据的任务调度方法中的步骤。
例如,图10所示的计算机设备可以通过如图8所示的基于图数据的任务调度装置中的获取模块执行步骤S202、S206和S208。计算机设备可通过执行模块执行步骤S204。计算机设备可通过确定模块执行步骤S210。计算机设备可通过交换模块执行步骤S212。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:获取从待处理图数据中划分出的子图数据;执行对于子图数据中图节点的单位计算任务;获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;确定子图数据中未完成的单位计算任务所对应的第三量化值;当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
在一个实施例中,计算机程序使得处理器在执行获取从待处理图数据中划分出的子图数据的步骤时具体执行以下步骤:获取区块链网络中广播的与待处理图数据相对应的任务信息;根据任务信息,读取相应的任务可执行文件和从待处理图数据中划分出的子图数据;计算机程序使得处理器在执行执行对于子图数据中图节点的单位计算任务的步骤时具体执行以下步骤:执行任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
在一个实施例中,计算机程序使得处理器在执行获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值的步骤时具体执行以下步骤:将已完成的单位计算任务相应的全局计算数据写入新区块;当新区块通过区块链网络的验证后,生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
在一个实施例中,计算机程序使得处理器在执行获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值的步骤时具体执行以下步骤:获取将全局计算数据写入新区块前的历史第二量化值;历史第二量化值,对应将全局计算数据写入新区块前未形成相应区块链数据且已完成的单位计算任务;从历史第二量化值中扣减第一量化值,得到当前未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
在一个实施例中,计算机程序使得处理器在执行确定子图数据中未完成的单位计算任务所对应的第三量化值的步骤时具体执行以下步骤:从区块链网络获取最新的全局计算数据;获取已完成的单位计算任务相应的局部计算数据;根据子图数据、已完成的单位计算任务的数量、全局计算数据和局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。
在一个实施例中,计算机程序使得处理器还执行以下步骤:获取子图数据当前的第二量化值的第一总和;获取子图数据当前的第三量化值的第二总和;确定第二总和相对于第一总和的对比值;当对比值超出指定范围时,第二量化值和第三量化值不符合均衡条件。
在一个实施例中,计算机程序使得处理器在执行确定第二总和相对于第一总和的对比值的步骤时具体执行以下步骤:根据以下公式计算第二总和相对于第一总和的对比值:
其中,a和m均为常数;a>0,且a≠1;m≥1;表示子图数据当前的第三量化值的第二总和;表示子图数据当前的第二量化值的第一总和。
在一个实施例中,指定范围的最小值μ(t)和最大值λ(t)均是随时间t变化的线性减函数,且μ(t)<λ(t)。
在一个实施例中,计算机程序使得处理器在执行在计算节点之间进行图节点和第一量化值的交换的步骤时具体执行以下步骤:当对比值小于指定范围的最小值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换,以保持对比值在指定范围内;当对比值大于指定范围的最大值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持对比值在指定范围内。
在一个实施例中,计算机程序使得处理器在执行在计算节点之间进行图节点和第一量化值的交换的步骤时具体执行以下步骤:在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方;确定第一方对待交换的图节点的第一预估量化值;确定第二方对待交换的图节点的第二预估量化值;根据第一预估量化值和第二预估量化值,确定用于与待交换的图节点交换的第一量化值;在待进行交换的计算节点之间,进行待交换的图节点与确定的第一量化值间的交换。
在一个实施例中,计算机程序使得处理器在执行确定第一方对待交换的图节点的第一预估量化值的步骤时具体执行以下步骤:根据以下公式计算第一预估量化值:
其中,vi表示待交换的图节点;k表示提供待交换的图节点的第一方;y1(vi,k)表示第一方对待交换的图节点的第一预估量化值;表示待交换的图节点的第三量化值;Ci表示待交换的图节点的第二量化值;表示提供待交换的图节点的第一方k中的图节点的平均第三量化值;表示提供待交换的图节点的第一方k中的图节点的平均第二量化值;α和β分别为相应的参数;e为自然常数。
在一个实施例中,计算机程序使得处理器在执行确定第二方对待交换的图节点的第二预估量化值的步骤时具体执行以下步骤:根据以下公式计算第二预估量化值:
其中,vi表示待交换的图节点;l表示换取待交换的图节点的第二方;y2(vi,l)表示第二方对待交换的图节点的第二预估量化值;表示待交换的图节点的第三量化值;∑j∈ ldist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i的通信距离的总和。
在一个实施例中,计算机程序使得处理器在执行确定换取待交换的图节点的第二方中的图节点与待交换的图节点的通信距离的总和的步骤时具体执行以下步骤:根据以下公式计算通信距离:
其中,dist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i间的通信距离;ei,j∈E表示图节点j与图节点i之间通过边连接;表示图节点j与图节点i之间无边。
上述计算机设备,通过将待处理图数据分割成子图数据进行分布式处理,可大大提高图数据的处理效率。再分别获取第一量化值、第二量化值和第三量化值,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。其中,第一量化值和第二量化值可以衡量计算节点的计算能力,第三量化值可以衡量计算节点的负载状态,这样,可将计算节点的计算能力和负载状态用和单位计算任务相应的量化值量化表示,准确又直观。通过在计算节点之间进行图节点和第一量化值的交换,来保持第二量化值和第三量化值满足均衡条件,这样,可以不需要依赖特定的服务器或节点分配任务,而是通过计算节点之间彼此协调分配图节点,并动态调整分配,实现自组织的负载均衡,避免了特定服务器的单点故障和网络拥塞问题,大大提高了任务的调度效率。并且,采用这样自组织的动态任务调度方法,能够适应更大规模集群的计算任务调度,动态增减计算节点的数量均不会对已有的计算任务造成影响,具有高可扩展性。
一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:获取从待处理图数据中划分出的子图数据;执行对于子图数据中图节点的单位计算任务;获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;确定子图数据中未完成的单位计算任务所对应的第三量化值;当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
在一个实施例中,计算机程序使得处理器在执行获取从待处理图数据中划分出的子图数据的步骤时具体执行以下步骤:获取区块链网络中广播的与待处理图数据相对应的任务信息;根据任务信息,读取相应的任务可执行文件和从待处理图数据中划分出的子图数据;计算机程序使得处理器在执行执行对于子图数据中图节点的单位计算任务的步骤时具体执行以下步骤:执行任务可执行文件,以执行对于子图数据中图节点的单位计算任务。
在一个实施例中,计算机程序使得处理器在执行获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值的步骤时具体执行以下步骤:将已完成的单位计算任务相应的全局计算数据写入新区块;当新区块通过区块链网络的验证后,生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
在一个实施例中,计算机程序使得处理器在执行获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值的步骤时具体执行以下步骤:获取将全局计算数据写入新区块前的历史第二量化值;历史第二量化值,对应将全局计算数据写入新区块前未形成相应区块链数据且已完成的单位计算任务;从历史第二量化值中扣减第一量化值,得到当前未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
在一个实施例中,计算机程序使得处理器在执行确定子图数据中未完成的单位计算任务所对应的第三量化值的步骤时具体执行以下步骤:从区块链网络获取最新的全局计算数据;获取已完成的单位计算任务相应的局部计算数据;根据子图数据、已完成的单位计算任务的数量、全局计算数据和局部计算数据,确定子图数据中未完成的单位计算任务所对应的第三量化值。
在一个实施例中,计算机程序使得处理器还执行以下步骤:获取子图数据当前的第二量化值的第一总和;获取子图数据当前的第三量化值的第二总和;确定第二总和相对于第一总和的对比值;当对比值超出指定范围时,第二量化值和第三量化值不符合均衡条件。
在一个实施例中,计算机程序使得处理器在执行确定第二总和相对于第一总和的对比值的步骤时具体执行以下步骤:根据以下公式计算第二总和相对于第一总和的对比值:
其中,a和m均为常数;a>0,且a≠1;m≥1;表示子图数据当前的第三量化值的第二总和;表示子图数据当前的第二量化值的第一总和。
在一个实施例中,指定范围的最小值μ(t)和最大值λ(t)均是随时间t变化的线性减函数,且μ(t)<λ(t)。
在一个实施例中,计算机程序使得处理器在执行在计算节点之间进行图节点和第一量化值的交换的步骤时具体执行以下步骤:当对比值小于指定范围的最小值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换,以保持对比值在指定范围内;当对比值大于指定范围的最大值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持对比值在指定范围内。
在一个实施例中,计算机程序使得处理器在执行在计算节点之间进行图节点和第一量化值的交换的步骤时具体执行以下步骤:在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方;确定第一方对待交换的图节点的第一预估量化值;确定第二方对待交换的图节点的第二预估量化值;根据第一预估量化值和第二预估量化值,确定用于与待交换的图节点交换的第一量化值;在待进行交换的计算节点之间,进行待交换的图节点与确定的第一量化值间的交换。
在一个实施例中,计算机程序使得处理器在执行确定第一方对待交换的图节点的第一预估量化值的步骤时具体执行以下步骤:根据以下公式计算第一预估量化值:
其中,vi表示待交换的图节点;k表示提供待交换的图节点的第一方;y1(vi,k)表示第一方对待交换的图节点的第一预估量化值;表示待交换的图节点的第三量化值;Ci表示待交换的图节点的第二量化值;表示提供待交换的图节点的第一方k中的图节点的平均第三量化值;表示提供待交换的图节点的第一方k中的图节点的平均第二量化值;α和β分别为相应的参数;e为自然常数。
在一个实施例中,计算机程序使得处理器在执行确定第二方对待交换的图节点的第二预估量化值的步骤时具体执行以下步骤:根据以下公式计算第二预估量化值:
其中,vi表示待交换的图节点;l表示换取待交换的图节点的第二方;y2(vi,l)表示第二方对待交换的图节点的第二预估量化值;表示待交换的图节点的第三量化值;∑j∈ ldist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i的通信距离的总和。
在一个实施例中,计算机程序使得处理器在执行确定换取待交换的图节点的第二方中的图节点与待交换的图节点的通信距离的总和的步骤时具体执行以下步骤:根据以下公式计算通信距离:
其中,dist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i间的通信距离;ei,j∈E表示图节点j与图节点i之间通过边连接;表示图节点j与图节点i之间无边。
上述计算机可读存储介质,通过将待处理图数据分割成子图数据进行分布式处理,可大大提高图数据的处理效率。再分别获取第一量化值、第二量化值和第三量化值,当第二量化值和第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。其中,第一量化值和第二量化值可以衡量计算节点的计算能力,第三量化值可以衡量计算节点的负载状态,这样,可将计算节点的计算能力和负载状态用和单位计算任务相应的量化值量化表示,准确又直观。通过在计算节点之间进行图节点和第一量化值的交换,来保持第二量化值和第三量化值满足均衡条件,这样,可以不需要依赖特定的服务器或节点分配任务,而是通过计算节点之间彼此协调分配图节点,并动态调整分配,实现自组织的负载均衡,避免了特定服务器的单点故障和网络拥塞问题,大大提高了任务的调度效率。并且,采用这样自组织的动态任务调度方法,能够适应更大规模集群的计算任务调度,动态增减计算节点的数量均不会对已有的计算任务造成影响,具有高可扩展性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种基于图数据的任务调度方法,应用于计算节点,所述方法包括:
获取从待处理图数据中划分出的子图数据;
执行对于所述子图数据中图节点的单位计算任务;
获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;
获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;
确定所述子图数据中未完成的单位计算任务所对应的第三量化值;
当所述第二量化值和所述第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
2.根据权利要求1所述的方法,其特征在于,所述获取从待处理图数据中划分出的子图数据包括:
获取区块链网络中广播的与待处理图数据相对应的任务信息;
根据所述任务信息,读取相应的任务可执行文件和从待处理图数据中划分出的子图数据;
所述执行对于所述子图数据中图节点的单位计算任务包括:
执行所述任务可执行文件,以执行对于所述子图数据中图节点的单位计算任务。
3.根据权利要求1所述的方法,其特征在于,所述获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值包括:
将已完成的单位计算任务相应的全局计算数据写入新区块;
当所述新区块通过区块链网络的验证后,生成与写入的全局计算数据相应的单位计算任务所对应的第一量化值。
4.根据权利要求3所述的方法,其特征在于,所述获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值包括:
获取将所述全局计算数据写入新区块前的历史第二量化值;所述历史第二量化值,对应将所述全局计算数据写入新区块前未形成相应区块链数据且已完成的单位计算任务;
从所述历史第二量化值中扣减所述第一量化值,得到当前未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值。
5.根据权利要求1所述的方法,其特征在于,所述确定所述子图数据中未完成的单位计算任务所对应的第三量化值包括:
从区块链网络获取最新的全局计算数据;
获取已完成的单位计算任务相应的局部计算数据;
根据所述子图数据、已完成的单位计算任务的数量、所述全局计算数据和局部计算数据,确定所述子图数据中未完成的单位计算任务所对应的第三量化值。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述子图数据当前的第二量化值的第一总和;
获取所述子图数据当前的第三量化值的第二总和;
确定所述第二总和相对于所述第一总和的对比值;
当所述对比值超出指定范围时,所述第二量化值和所述第三量化值不符合均衡条件。
7.根据权利要求6所述的方法,其特征在于,所述确定所述第二总和相对于所述第一总和的对比值包括:
根据以下公式计算所述第二总和相对于所述第一总和的对比值:
其中,a和m均为常数;a>0,且a≠1;m≥1;表示所述子图数据当前的第三量化值的第二总和;表示所述子图数据当前的第二量化值的第一总和。
8.根据权利要求7所述的方法,其特征在于,所述指定范围的最小值μ(t)和最大值λ(t)均是随时间t变化的线性减函数,且μ(t)<λ(t)。
9.根据权利要求6所述的方法,其特征在于,所述在计算节点之间进行图节点和第一量化值的交换包括:
当所述对比值小于指定范围的最小值时,将当前计算节点的第一量化值与非当前计算节点的相应图节点进行交换,以保持所述对比值在所述指定范围内;
当所述对比值大于指定范围的最大值时,将当前计算节点的图节点与非当前计算节点的相应第一量化值进行交换,以保持所述对比值在所述指定范围内。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述在计算节点之间进行图节点和第一量化值的交换包括:
在待进行交换的计算节点间,确定提供待交换的图节点的第一方,以及换取待交换的图节点的第二方;
确定所述第一方对所述待交换的图节点的第一预估量化值;
确定所述第二方对所述待交换的图节点的第二预估量化值;
根据所述第一预估量化值和所述第二预估量化值,确定用于与待交换的图节点交换的第一量化值;
在待进行交换的计算节点之间,进行待交换的图节点与确定的第一量化值间的交换。
11.根据权利要求10所述的方法,其特征在于,所述确定所述第一方对所述待交换的图节点的第一预估量化值包括:
根据以下公式计算所述第一预估量化值:
其中,vi表示待交换的图节点;k表示提供待交换的图节点的第一方;y1(vi,k)表示第一方对所述待交换的图节点的第一预估量化值;表示待交换的图节点的第三量化值;Ci表示待交换的图节点的第二量化值;表示提供待交换的图节点的第一方k中的图节点的平均第三量化值;表示提供待交换的图节点的第一方k中的图节点的平均第二量化值;α和β分别为相应的参数;e为自然常数。
12.根据权利要求10所述的方法,其特征在于,所述确定所述第二方对所述待交换的图节点的第二预估量化值包括:
根据以下公式计算所述第二预估量化值:
其中,vi表示待交换的图节点;l表示换取待交换的图节点的第二方;y2(vi,l)表示第二方对所述待交换的图节点的第二预估量化值;表示待交换的图节点的第三量化值;∑j∈ ldist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i的通信距离的总和。
13.根据权利要求12所述的方法,其特征在于,所述换取待交换的图节点的第二方中的图节点与待交换的图节点的通信距离的总和包括:
根据以下公式计算所述通信距离:
其中,dist(i,j)表示换取待交换的图节点的第二方l中的图节点j与待交换的图节点i间的通信距离;ei,j∈E表示图节点j与图节点i之间通过边连接;表示图节点j与图节点i之间无边。
14.一种基于图数据的任务调度装置,包括:
获取模块,用于获取从待处理图数据中划分出的子图数据;
执行模块,用于执行对于所述子图数据中图节点的单位计算任务;
所述获取模块还用于获取已形成相应区块链数据且已完成的单位计算任务所对应的第一量化值;
所述获取模块还用于获取未形成相应区块链数据且已完成的单位计算任务所对应的第二量化值;
确定模块,用于确定所述子图数据中未完成的单位计算任务所对应的第三量化值;
交换模块,用于当所述第二量化值和所述第三量化值不符合均衡条件时,在计算节点之间进行图节点和第一量化值的交换。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至13中任一项所述方法的步骤。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810466739.XA CN108681482B (zh) | 2018-05-16 | 2018-05-16 | 基于图数据的任务调度方法和装置 |
JP2020564236A JP7061693B2 (ja) | 2018-05-16 | 2019-03-28 | グラフデータに基づくタスクスケジューリング方法、装置、プログラム及び機器 |
PCT/CN2019/080122 WO2019218778A1 (zh) | 2018-05-16 | 2019-03-28 | 基于图数据的任务调度方法、装置、存储介质和设备 |
KR1020207032964A KR102499076B1 (ko) | 2018-05-16 | 2019-03-28 | 그래프 데이터 기반의 태스크 스케줄링 방법, 디바이스, 저장 매체 및 장치 |
EP19803567.7A EP3796166B1 (en) | 2018-05-16 | 2019-03-28 | Graph data-based task scheduling method, device, storage medium and apparatus |
SG11202010908TA SG11202010908TA (en) | 2018-05-16 | 2019-03-28 | Graph data-based task scheduling method, device, storage medium and apparatus |
US17/009,342 US11734060B2 (en) | 2018-05-16 | 2020-09-01 | Graph data based task scheduling method, apparatus and storage medium thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810466739.XA CN108681482B (zh) | 2018-05-16 | 2018-05-16 | 基于图数据的任务调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108681482A true CN108681482A (zh) | 2018-10-19 |
CN108681482B CN108681482B (zh) | 2020-12-01 |
Family
ID=63806564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810466739.XA Active CN108681482B (zh) | 2018-05-16 | 2018-05-16 | 基于图数据的任务调度方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11734060B2 (zh) |
EP (1) | EP3796166B1 (zh) |
JP (1) | JP7061693B2 (zh) |
KR (1) | KR102499076B1 (zh) |
CN (1) | CN108681482B (zh) |
SG (1) | SG11202010908TA (zh) |
WO (1) | WO2019218778A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542602A (zh) * | 2018-11-20 | 2019-03-29 | 中链科技有限公司 | 一种基于区块链的分布式任务处理方法、装置及系统 |
WO2019218778A1 (zh) * | 2018-05-16 | 2019-11-21 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法、装置、存储介质和设备 |
CN111400521A (zh) * | 2020-02-28 | 2020-07-10 | 苏州浪潮智能科技有限公司 | 一种图数据处理方法、装置、设备、介质 |
CN111400555A (zh) * | 2020-03-05 | 2020-07-10 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN112990332A (zh) * | 2021-03-26 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
CN113434273A (zh) * | 2021-06-29 | 2021-09-24 | 平安科技(深圳)有限公司 | 数据处理方法、装置、系统及存储介质 |
CN117291273A (zh) * | 2023-11-24 | 2023-12-26 | 合肥微观纪元数字科技有限公司 | 量子计算区块链系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11875357B2 (en) * | 2020-07-09 | 2024-01-16 | Mastercard International Incorporated | Method and system of using miner commitment to reward proofs |
WO2022146031A1 (en) * | 2020-12-29 | 2022-07-07 | Samsung Electronics Co., Ltd. | Method and device of computing layout selection for efficient dnn inference |
CN113114790B (zh) * | 2021-06-10 | 2021-09-14 | 武汉研众科技有限公司 | 一种基于区块链与边缘计算的负载均衡方法与系统 |
CN113360269A (zh) * | 2021-06-29 | 2021-09-07 | 平安普惠企业管理有限公司 | 一种任务分配方法、装置、服务器及存储介质 |
CN116541407B (zh) * | 2023-07-07 | 2023-10-10 | 之江实验室 | 一种数据处理的方法、装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
US8972378B2 (en) * | 2012-10-22 | 2015-03-03 | Microsoft Corporation | Formulating global statistics for distributed databases |
CN105446979A (zh) * | 2014-06-27 | 2016-03-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN105590321A (zh) * | 2015-12-24 | 2016-05-18 | 华中科技大学 | 一种基于块的子图构建及分布式图处理方法 |
CN106033476A (zh) * | 2016-05-19 | 2016-10-19 | 西安交通大学 | 一种云计算环境中分布式计算模式下的增量式图计算方法 |
CN106777351A (zh) * | 2017-01-17 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 基于art树分布式系统图存储计算系统及其方法 |
US20170364701A1 (en) * | 2015-06-02 | 2017-12-21 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510538B1 (en) * | 2009-04-13 | 2013-08-13 | Google Inc. | System and method for limiting the impact of stragglers in large-scale parallel data processing |
WO2014102996A1 (ja) | 2012-12-28 | 2014-07-03 | 株式会社日立製作所 | 情報処理システム |
US20150227586A1 (en) * | 2014-02-07 | 2015-08-13 | Futurewei Technologies, Inc. | Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment |
US10366204B2 (en) | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
CN108681482B (zh) * | 2018-05-16 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法和装置 |
CN111030802B (zh) * | 2018-05-16 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 图数据的计算任务发布方法、装置、设备和存储介质 |
-
2018
- 2018-05-16 CN CN201810466739.XA patent/CN108681482B/zh active Active
-
2019
- 2019-03-28 JP JP2020564236A patent/JP7061693B2/ja active Active
- 2019-03-28 KR KR1020207032964A patent/KR102499076B1/ko active IP Right Grant
- 2019-03-28 WO PCT/CN2019/080122 patent/WO2019218778A1/zh unknown
- 2019-03-28 EP EP19803567.7A patent/EP3796166B1/en active Active
- 2019-03-28 SG SG11202010908TA patent/SG11202010908TA/en unknown
-
2020
- 2020-09-01 US US17/009,342 patent/US11734060B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8972378B2 (en) * | 2012-10-22 | 2015-03-03 | Microsoft Corporation | Formulating global statistics for distributed databases |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN105446979A (zh) * | 2014-06-27 | 2016-03-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
US20170364701A1 (en) * | 2015-06-02 | 2017-12-21 | ALTR Solutions, Inc. | Storing differentials of files in a distributed blockchain |
CN105590321A (zh) * | 2015-12-24 | 2016-05-18 | 华中科技大学 | 一种基于块的子图构建及分布式图处理方法 |
CN106033476A (zh) * | 2016-05-19 | 2016-10-19 | 西安交通大学 | 一种云计算环境中分布式计算模式下的增量式图计算方法 |
CN106777351A (zh) * | 2017-01-17 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 基于art树分布式系统图存储计算系统及其方法 |
Non-Patent Citations (2)
Title |
---|
梁涛: "多级批处理过程自组织动态调度方法", 《系统工程理论与实践》 * |
袁培森: "基于内存计算的大规模图数据管理研究", 《华东师范大学学报(自然科学版)》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734060B2 (en) | 2018-05-16 | 2023-08-22 | Tencent Technology (Shenzhen) Company Limited | Graph data based task scheduling method, apparatus and storage medium thereof |
WO2019218778A1 (zh) * | 2018-05-16 | 2019-11-21 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法、装置、存储介质和设备 |
US20200401445A1 (en) * | 2018-05-16 | 2020-12-24 | Tencent Technology (Shenzhen) Company Limited | Graph data based task scheduling method, apparatus and storage medium thereof |
CN109542602B (zh) * | 2018-11-20 | 2021-05-11 | 苏州朗润创新知识产权运营有限公司 | 一种基于区块链的分布式任务处理方法、装置及系统 |
CN109542602A (zh) * | 2018-11-20 | 2019-03-29 | 中链科技有限公司 | 一种基于区块链的分布式任务处理方法、装置及系统 |
CN111400521A (zh) * | 2020-02-28 | 2020-07-10 | 苏州浪潮智能科技有限公司 | 一种图数据处理方法、装置、设备、介质 |
CN111400521B (zh) * | 2020-02-28 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种图数据处理方法、装置、设备、介质 |
CN111400555A (zh) * | 2020-03-05 | 2020-07-10 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN111400555B (zh) * | 2020-03-05 | 2023-09-26 | 湖南大学 | 图数据查询任务处理方法、装置、计算机设备和存储介质 |
CN112990332A (zh) * | 2021-03-26 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
CN112990332B (zh) * | 2021-03-26 | 2023-06-02 | 杭州海康威视数字技术股份有限公司 | 一种子图规模预测和分布式训练方法、装置及电子设备 |
CN113434273A (zh) * | 2021-06-29 | 2021-09-24 | 平安科技(深圳)有限公司 | 数据处理方法、装置、系统及存储介质 |
CN117291273A (zh) * | 2023-11-24 | 2023-12-26 | 合肥微观纪元数字科技有限公司 | 量子计算区块链系统 |
CN117291273B (zh) * | 2023-11-24 | 2024-02-13 | 合肥微观纪元数字科技有限公司 | 量子计算区块链系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200401445A1 (en) | 2020-12-24 |
WO2019218778A1 (zh) | 2019-11-21 |
KR20200142070A (ko) | 2020-12-21 |
EP3796166B1 (en) | 2024-03-06 |
JP7061693B2 (ja) | 2022-04-28 |
EP3796166A1 (en) | 2021-03-24 |
EP3796166A4 (en) | 2021-06-16 |
SG11202010908TA (en) | 2020-12-30 |
KR102499076B1 (ko) | 2023-02-14 |
US11734060B2 (en) | 2023-08-22 |
JP2021524100A (ja) | 2021-09-09 |
CN108681482B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681482B (zh) | 基于图数据的任务调度方法和装置 | |
CN108683738B (zh) | 图数据处理方法和图数据的计算任务发布方法 | |
CN109872535B (zh) | 一种智慧交通通行预测方法、装置及服务器 | |
US7594016B1 (en) | Calculating numbers of servers for tiers of a multi-tiered system | |
Kim et al. | Prediction based sub-task offloading in mobile edge computing | |
CN113615137B (zh) | Cdn优化平台 | |
CN109710406A (zh) | 数据分配及其模型训练方法、装置、及计算集群 | |
CN111400555A (zh) | 图数据查询任务处理方法、装置、计算机设备和存储介质 | |
US20180276688A1 (en) | System and method for a scalable recommender system using massively parallel processors | |
US7886055B1 (en) | Allocating resources in a system having multiple tiers | |
CN111106960A (zh) | 一种虚拟网络的映射方法、映射装置及可读存储介质 | |
CN112561138B (zh) | 电力负荷预测方法、装置、计算机设备和存储介质 | |
US9021094B1 (en) | Allocation of resources for tiers of a multi-tiered system based on selecting items from respective sets | |
CN110266770B (zh) | 基于博弈论的闲置云资源调度方法和装置 | |
Romeijn et al. | Computational complexity of finding Pareto efficient outcomes for biobjective lot‐sizing models | |
CN113297310B (zh) | 一种物联网中区块链分片验证者选取的方法 | |
JP7521616B2 (ja) | 装置、方法、制御装置、制御方法及びプログラム | |
CN114708110A (zh) | 续保行为预测模型的联合训练方法、装置及电子设备 | |
CN113254218A (zh) | 模型的资源部署方法、系统、设备及存储介质 | |
CN112417478A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114637606A (zh) | 基于配电台区配变网关的任务卸载方法、装置和设备 | |
WO2017028930A1 (en) | Methods and apparatus for running an analytics function | |
Bădică et al. | Optimizing communication costs in acoda using simulated annealing: Initial experiments | |
CN115238148A (zh) | 面向多方企业联合信用评级的特征组合筛选方法及应用 | |
CN117648179A (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 |