WO2020019315A1 - 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备 - Google Patents

一种基于图数据的计算运行调度方法、***、计算机可读介质及设备 Download PDF

Info

Publication number
WO2020019315A1
WO2020019315A1 PCT/CN2018/097517 CN2018097517W WO2020019315A1 WO 2020019315 A1 WO2020019315 A1 WO 2020019315A1 CN 2018097517 W CN2018097517 W CN 2018097517W WO 2020019315 A1 WO2020019315 A1 WO 2020019315A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
partition
calculated
partitions
idle
Prior art date
Application number
PCT/CN2018/097517
Other languages
English (en)
French (fr)
Inventor
樊文飞
于文渊
徐静波
罗小简
Original Assignee
浙江天猫技术有限公司
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 浙江天猫技术有限公司 filed Critical 浙江天猫技术有限公司
Priority to CN201880094017.4A priority Critical patent/CN112912849A/zh
Priority to PCT/CN2018/097517 priority patent/WO2020019315A1/zh
Publication of WO2020019315A1 publication Critical patent/WO2020019315A1/zh
Priority to US17/160,212 priority patent/US20210149746A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Definitions

  • the invention belongs to the technical field of data resource allocation, and in particular relates to a method, a system, a computer-readable medium, and a device for computing operation scheduling based on graph data.
  • Graph data is a kind of data stored by graph as a data structure, which is abstracted into the connection between nodes and nodes.
  • map data exists widely and has a large volume, such as interpersonal relationship maps in Weibo, webpage maps in search engines, and geographic information maps in transportation systems. Analyzing and mining the information in the graph data is of great significance for work in the fields of business management, production control, market analysis, engineering design, and scientific exploration.
  • Embodiments of the present invention provide a method, a system, a computer-readable medium, and a device for computing operation scheduling based on graph data, so as to solve the technical problem of wasting computing resources when the existing graph data runs.
  • An embodiment of the present invention provides a calculation running and scheduling method based on graph data, including the following steps:
  • the number of partitions allocated to each processor is greater than the number of threads corresponding to each processor.
  • a method for selecting and determining the partitions to be calculated includes:
  • an embodiment of the present invention also provides a computing operation scheduling system based on graph data, including:
  • a division module for dividing the graph data into multiple partitions
  • a deployment module configured to schedule the partition to be allocated to multiple processors
  • a submission module configured to hand over the partition to the corresponding thread of the processor for calculation according to the criticality of each partition
  • a determining module is configured to determine whether an idle processor exists.
  • the processor includes one or more idle threads, the processor is an idle processor:
  • a communication module configured to communicate between the idle processor and other processors to find a partition to be calculated corresponding to the other processor
  • a selection module configured to select and determine the partition to be calculated
  • a migration module configured to bind the determined partition to be calculated for migration to thread processing of the idle processor.
  • the number of partitions allocated to each processor by the allocation module is greater than the number of threads corresponding to each processor.
  • the selection module selecting and determining the partitions to be calculated specifically includes:
  • an embodiment of the present invention also provides a computer-readable medium storing a computer program for running graph data.
  • the computer program includes instructions for causing a computer system to perform the following operations:
  • the number of partitions allocated to each processor is greater than the number of threads corresponding to each processor.
  • a method for selecting and determining the partitions to be calculated includes:
  • an embodiment of the present invention further provides an electronic device including a processor and a memory; the memory is configured to store a computer program, and the processor is configured to execute the computer program stored in the memory, so that the electronic device executes any one of the foregoing A computational scheduling method based on graph data.
  • communication between processors can reduce the waiting time of each processor
  • Second, evaluating the criticality of the partition before the thread executes the calculation partition can reduce the execution time of a processor and avoid longer execution time
  • evaluating and selecting multiple partitions to be calculated can accelerate convergence and ensure the correctness and termination of data calculation operations.
  • FIG. 1 is a flowchart of a calculation and scheduling method based on graph data according to an embodiment of the present invention
  • FIG. 2 is a flowchart of a method for selecting a partition to be calculated in the method for calculating operation scheduling based on graph data according to an embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of a graph-based computing operation scheduling system according to an embodiment of the present invention.
  • FIG. 4 is a schematic structural diagram of an electronic device according to an embodiment of the present invention.
  • Icons 21-division module; 22-deployment module; 23-submit module; 24-judgment module; 25-communication module; 26-selection module; 27- migration module.
  • An embodiment of the present invention provides a calculation and scheduling method based on graph data. As shown in FIG. 1, the method includes the following steps:
  • the method of partitioning the graph data is not limited, as long as the number of partitions is far greater than the number of threads, which can realize the scenario of thread scheduling partitioning.
  • the large number of partitions can reduce the size of each partition, thereby avoiding the situation that the calculation amount of some partitions is much larger than other partitions.
  • the partitioning may be implemented by a partitioning algorithm, for example, METIs.
  • the partitioning algorithm may follow the principles of ensuring a minimum number of edges across partitions and a minimum number of points across partitions.
  • the graph data is divided into three levels.
  • the processing system includes at least one computing device, each computing device corresponds to multiple memories, each memory corresponds to multiple processors, and a specific method of three-level partitioning includes:
  • the data in each of the formed third-level partitions is data with a high degree of correlation; the data of two connected third-level partitions will share common edge data. Once the edge data is updated in one partition, it is necessary to notify adjacent data through messages. Partition is updated.
  • the graph data uses graphs to store data, and is one of the data structure methods for storing data that is closest to high performance.
  • a graph is composed of numerous nodes and relationships. The relationship between nodes is an important part of the graph database. Many related data can be found through relationships, such as node collections, relationship collections, and their attribute collections.
  • each processor can be allocated a different number of partitions.
  • Each processor may correspond to multiple threads, and the number of partitions allocated to each processor may be greater than the number of threads corresponding to each processor.
  • the scheduling may be performed using an existing scheduling algorithm. In this embodiment, the scheduler controls the processor to call different partitions.
  • the partition is successively handed over to a thread corresponding to the processor for calculation.
  • Each thread fetches partition data from the processor to perform calculations. After execution is complete, it can continue to fetch the next partition in the processor for execution. At this time, the criticality of each partition needs to be evaluated , Determine the key partition and call for execution, so that the thread calculates the key partition first, which can reduce the execution time of the partition.
  • the key partitions are evaluated based on data runtime parameters and their statistical information. For example, if the first partition and the second partition are associated with the data of the third partition, then the third partition may be determined as a critical partition, and the thread may perform the calculation of the third partition with priority.
  • S4. Determine whether there is an idle processor. When the processor includes one or more idle threads, the processor is an idle processor.
  • the other processor refers to a processor other than the idle processor.
  • the other processor threads may all be running, or there may be idle threads.
  • the idle processor may send a message with an idle thread to any other processor.
  • the other processor may allocate the partition to be calculated to an idle processor for calculation.
  • the partition to be calculated refers to a partition that has not been executed by a thread.
  • the method for selecting and determining the partition to be calculated specifically includes:
  • the data size of the partitions to be calculated is different, and the time required to perform calculations will also be different. At this time, the execution time of the partitions under the processor needs to be considered as a whole to prevent the partitions with long execution time from being allocated to the same processor. In addition to considering the execution time of the partition, it is also necessary to consider the migration overhead between the partitions to be calculated.
  • the migration overhead includes the data of the partition to be calculated from one machine to another (communication overhead) and on the destination machine. Rebuild the two parts of the partition to be calculated. The time cost of these two parts constitutes the migration cost.
  • the evaluation results include loss and benefit data for each partition to be calculated.
  • evaluation algorithms can be used for calculation, such as greedy algorithm.
  • Determine which partitions to be calculated can be allocated to the idle processor based on comparing the loss and benefit data of each partition to be calculated. For example, partitions with more benefits than losses can be allocated to idle processors.
  • the idle processor may copy the data of the partition to be calculated from the disk or other processors, and bind the data to the idle thread for calculation.
  • the migration process is to transfer the data of the partition to be calculated from one machine to another (communication), and rebuild the partition to be calculated on the destination machine, and the partition to be calculated is bound to the idle
  • the processor's thread processes are to transfer the data of the partition to be calculated from one machine to another (communication), and rebuild the partition to be calculated on the destination machine, and the partition to be calculated is bound to the idle.
  • an embodiment of the present invention provides a computing operation scheduling system based on graph data, including:
  • the dividing module 21 is configured to divide the graph data into a plurality of partitions.
  • the method of partitioning the graph data is not limited, as long as the number of partitions is far greater than the number of threads, which can realize the scenario of thread scheduling partitioning.
  • the large number of partitions can reduce the size of each partition, thereby avoiding the situation that the calculation amount of some partitions is much larger than other partitions.
  • the partitioning may be implemented by a partitioning algorithm, for example, METIs.
  • the partitioning algorithm may follow the principles of ensuring a minimum number of edges across partitions and a minimum number of points across partitions.
  • the graph data is divided into three levels.
  • the processing system includes at least one computing device, each computing device corresponds to multiple memories, each memory corresponds to multiple processors, and a specific method of three-level partitioning includes:
  • the data in each of the formed third-level partitions is data with a high degree of correlation; the data of two connected third-level partitions will share common edge data. Once the edge data is updated in one partition, it is necessary to notify adjacent data through messages. Partition is updated.
  • a deployment module 22 is configured to schedule the partition to be allocated to multiple processors. After the partitioning module 21 completes the partitioning, since the data size of each partition is different, a different number of partitions can be allocated to each server. Each processor may correspond to multiple threads, and the number of partitions allocated to each processor may be greater than the number of threads corresponding to each processor.
  • the deployment module 22 may be executed by using an existing scheduling algorithm. The scheduler controls the processor to call different partitions.
  • the submission module 23 is configured to hand over the partitions to the threads corresponding to the processors for calculation according to the criticality of each partition.
  • Each thread fetches partition data from the processor to perform calculations. After execution is complete, it can continue to fetch the next partition in the processor for execution. At this time, it is necessary to evaluate the criticality of each partition. , Determine the key partition and call the execution, so that the thread calculates the key partition first, which can reduce the execution time of the partition.
  • the key partitions are evaluated based on data runtime parameters and their statistical information. For example, if the first partition and the second partition are associated with the data of the third partition, then the third partition may be determined as a critical partition, and the thread may perform the calculation of the third partition with priority.
  • the determining module 24 is configured to determine whether an idle processor exists. When the processor includes one or more idle threads, the processor is determined to be an idle processor.
  • the communication module 25 is configured to communicate between the idle processor and other processors to find a partition to be calculated corresponding to the other processor.
  • the idle processor may send a message with an idle thread to any other processor.
  • the other processor may allocate the partition to be calculated to an idle processor for calculation.
  • the selection module 26 is configured to select and determine the partition to be calculated. When the number of partitions to be calculated is multiple, specific partitions and which partitions need to be allocated to idle processors are specifically required, and the selection module 26 needs to perform specific evaluation on the multiple partitions to be calculated.
  • the selection module specifically includes:
  • the execution time of each of the partitions to be calculated and the migration overhead between the partitions to be calculated evaluate the losses and benefits, and obtain an evaluation result.
  • the data size of the partitions to be calculated is different, and the time required to perform calculations will also be different.
  • the execution time of the partitions under the processor needs to be considered as a whole to prevent the partitions with long execution time from being allocated to the same processor.
  • the migration overhead includes the data of the partition to be calculated from one machine to another (communication overhead) and on the destination machine. Rebuild the two parts of the partition to be calculated. The time cost of these two parts constitutes the migration cost.
  • the evaluation results include loss and benefit data for each partition to be calculated.
  • evaluation algorithms can be used for calculation, such as greedy algorithm.
  • partitions to be calculated are allocated to the idle processor. Specifically, it is determined which partitions to be calculated can be allocated to the idle processor according to comparing the loss and benefit data of each of the partitions to be calculated, for example, a partition with a benefit greater than the loss can be allocated to the idle processor.
  • the idle processor may copy data of the partition to be calculated from a disk or other processors.
  • the migration module 27 is configured to bind the determined partition to be calculated to the thread processing of the idle processor. Specifically, the migration process is to transfer the data of the partition to be calculated from one machine to another (communication), and rebuild the partition to be calculated on the destination machine, and the partition to be calculated is bound to the idle The processor's thread processes.
  • communication is performed between processors and reallocation of the partitions to be calculated can reduce the waiting time of each processor; the partitions are evaluated before the threads execute the calculation partitions.
  • the degree of criticality can reduce the execution time of a processor and avoid long execution time; evaluating and selecting multiple partitions to be calculated can accelerate convergence and ensure the correctness and termination of data calculation operations.
  • An embodiment of the present invention provides a computer-readable medium storing a computer program for running graph data.
  • the computer program includes instructions for causing a computer system to perform the following operations:
  • the number of partitions allocated to each processor is greater than the number of threads corresponding to each processor.
  • a method for selecting and determining the partitions to be calculated includes:
  • the computer-readable storage medium may be a ROM / RAM, a magnetic disk, an optical disc, and the like, and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the embodiments or the Described in some sections.
  • a computer device which may be a personal computer, a server, or a network device, etc.
  • the computer-readable medium storing a computer program for running graph data communicates among processors, reallocates partitions to be calculated, and can reduce the waiting time of each processor; the calculation is performed in a thread Evaluating the criticality of the partition before partitioning can reduce the execution time of a processor and avoid long execution time. Evaluating multiple partitions to be calculated can accelerate convergence and ensure the correctness and termination of data calculations.
  • An embodiment of the present invention further provides an electronic device, including a processor 41 and a memory 42.
  • the memory 42 is configured to store a computer program
  • the processor 41 is configured to execute a computer program stored in the memory, so that the electronic device executes any of the foregoing items.
  • the calculation and scheduling method based on graph data.
  • the electronic devices in the embodiments of the present invention exist in various forms, including but not limited to:
  • Mobile communication equipment This type of equipment is characterized by mobile communication functions, and its main goal is to provide voice and data communication.
  • Such terminals include: smart phones (such as iPhone), multimedia phones, feature phones, and low-end phones.
  • Ultra-mobile personal computer equipment This type of equipment belongs to the category of personal computers, has computing and processing functions, and generally has the characteristics of mobile Internet access.
  • Such terminals include: PDA, MID and UMPC devices, such as iPad.
  • Portable entertainment equipment This type of equipment can display and play multimedia content.
  • Such devices include: audio and video players (such as iPod), handheld game consoles, e-books, as well as smart toys and portable car navigation devices.
  • Servers, personal computers, and cloud computing nodes Devices that provide computing services.
  • the composition of the server includes processors, hard disks, memory, and system buses.
  • the server and general-purpose computer architecture are similar, but because of the need to provide highly reliable services , So it has higher requirements in terms of processing power, stability, reliability, security, scalability, manageability, and so on.
  • the electronic device communicates between the processors and redistributes the partitions to be calculated, which can reduce the waiting time of each processor; and evaluates the criticality of the partitions before the threads execute the calculation partitions, which can reduce a certain
  • the execution time of the processor avoids long execution time; evaluating and selecting multiple partitions to be calculated can accelerate convergence and ensure the correctness and termination of data calculation operations.

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)
  • Debugging And Monitoring (AREA)

Abstract

一种基于图数据的计算运行调度方法、调度***、计算机可读介质及设备,所述调度方法包括:将图数据划分成多个分区(S1);调度所述分区分配给多个处理器(S2);根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算(S3);判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器(S4);将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区(S5);选择确定所述待计算分区(S6);将所述确定的待计算分区绑定到所述空闲处理器的线程处理(S7)。

Description

一种基于图数据的计算运行调度方法、***、计算机可读介质及设备 技术领域
本发明属于数据资源分配技术领域,尤其涉及一种基于图数据的计算运行调度方法、***、计算机可读介质及设备。
背景技术
随着信息技术的发展以及互联网的普及,数据呈***式增长,尤其是近年来社交网络的快速发展使得图数据急剧增长。图数据是一种以图为数据结构进行存储的数据,其被抽象成节点和节点的连线。在现实世界中,图数据广泛存在且体量巨大,例如微博中的人际关系图、搜索引擎中的网页指向图和交通***中的地理信息图等等。分析并挖掘图数据中的信息对于商务管理,生产控制,市场分析,工程设计和科学探索等领域的工作具有重要意义。
当运行图数据时,在任何给定的处理时间,可能有多个用户线程等待在计算机***的处理器或CPU上执行。现有技术中,当一个线程计算完一个任务后,该线程会随机去执行下一个任务,并不会去评估该任务的关键程度;并且不同的处理器或者CPU之间不进行通信,例如CPU1线程下的任务已经全部执行完毕,CPU2线程全部处于运行中,并且还有待处理任务在等待执行,这样就会出现CPU2执行时间较长,CPU1等待时间较长的问题,从而浪费计算资源。
有鉴于此,如今迫切需要设计一种基于图数据的计算运行调度方法,以便克服现有图数据运行的不足之处。
发明内容
本发明实施例提供了一种基于图数据的计算运行调度方法、***、计算机可读介质及设备,以解决现有图数据运行时浪费计算资源的技术问题。
本发明实施例提供一种基于图数据的计算运行调度方法,包括如下步骤:
将图数据划分成多个分区;
调度所述分区分配给多个处理器;
根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区;
选择确定所述待计算分区;
将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
进一步的,分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
进一步的,若所述待计算分区数量为多个时,选择确定所述待计算分区的方法包括:
考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益;
根据评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
确定所述待计算分区数据迁移到所述空闲处理器的方式。
同时,本发明实施例还提供一种基于图数据的计算运行调度***,包括:
划分模块,用于将图数据划分成多个分区;
调配模块,用于调度所述分区分配给多个处理器;
提交模块,用于根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
判断模块,用于判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器:
通信模块,用于将所述空闲处理器和其它处理器之间进行通信,找到所述其它处理器对应的待计算分区;
选择模块,用于选择确定所述待计算分区;
迁移模块,用于将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
进一步的,所述调配模块分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
进一步的,若所述待计算分区数量为多个时,所述选择模块选择确定所述待计算分区 具体包括:
考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益,获得一评估结果;
根据所述评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
确定所述待计算分区数据迁移到所述空闲处理器的方式。
另外,本发明实施例还提供一种存储用于图数据运行的计算机程序的计算机可读介质,所述计算机程序包括指令,用于使计算机***进行以下操作:
将图数据划分成多个分区;
调度所述分区分配给多个处理器;
根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区;
选择确定所述待计算分区;
将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
进一步的,分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
进一步的,若所述待计算分区数量为多个时,选择确定所述待计算分区的方法包括:
考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益;
根据评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
确定所述待计算分区数据迁移到所述空闲处理器的方式。
另外,本发明实施例还提供一种电子设备,包括处理器和存储器;存储器用于存储计算机程序,处理器用于执行存储器存储的计算机程序,以使所述电子设备执行上述任一项所述的基于图数据的计算运行调度方法。
本发明实施例的上述方案与现有技术相比,至少具有以下有益效果:
第一,处理器之间进行通信,能够减少每个处理器的等待时间;
第二,在线程执行计算分区前先评估分区的关键程度,能够减少某一处理器的执行时间,避免执行时间较长;
第三,对多个待计算分区进行评估选择,能够加速收敛,保证数据计算运行的正确性和终止性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例所述基于图数据的计算运行调度方法的流程图;
图2是本发明一个实施例所述基于图数据的计算运行调度方法中选择待计算分区的方法流程图。
图3是本发明一个实施例所述基于图数据的计算运行调度***的结构示意图;
图4是本发明一个实施例所述电子设备的结构示意图;
图标:21-划分模块;22-调配模块;23-提交模块;24-判断模块;25-通信模块;26-选择模块;27-迁移模块。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合附图详细说明本发明的优选实施例。
实施例1
本发明实施例提供一种基于图数据的计算运行调度方法,如图1所示,包括以下步骤:
S1,将图数据划分成多个分区。
对所述图数据进行分区的方式不限,只要满足分区的数量远大于线程数量即可,这样能够实现线程调度分区的情景。所述分区的数量多可以减小每个分区的大小,从而避免出现某些分区的计算量远大于其他分区的情况。优选的,所述分区可采用分区算法实现,例 如,METIS。所述分区算法可以遵循保证跨分区边最少、跨分区点最少等原则。
本实施例中,结合非统一内存访问架构(NUMA)的处理***,对所述图数据进行三级分区。具体的,所述处理***包括至少一个计算设备,每个计算设备对应多个存储器,每个存储器对应多个处理器,三级分区具体方法包括:
根据所述计算设备的个数及计算设备之间的通信开销,对所述图数据进行分区,获得多个第一级分区;
根据所述每个计算设备中NUMA节点的个数及NUMA节点之间的通信开销,将所述每一个第一级分区分为多个第二级分区;
根据所述每个NUMA节点内工作节点数量及每个工作节点之间的通信开销,将所述每一个第二级分区分为多个第三级分区,其中,工作节点包括处理器或处理器线程。
形成的每个第三级分区内的数据是关联程度较高的数据;相连两个第三级分区的数据会存在共用边数据,一旦一个分区更新了边数据,需要通过消息去通知相邻的分区进行更新。
所述图数据是用图来存储数据,是最接近高性能的一种用于存储数据的数据结构方式之一。一个图由无数的节点和关系组成,节点之间的关系是图数据库很重要的一部分,通过关系可以找到很多关联的数据,比如节点集合,关系集合以及他们的属性集合。
S2,调度所述分区分配给多个处理器。
在步骤S1完成分区后,由于每个分区的数据大小不同,可以给每个处理器调度分配不同数量的分区。所述每个处理器可以对应多个线程,分配给每个处理器的分区数量可以大于所述每个处理器对应的线程数量。所述调度可以采用现有的调度算法来执行。本实施例中,调度器控制所述处理器调取不同的分区。
S3,根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算。
每个线程从所述处理器中调取分区数据去执行计算,当执行完成后,可以继续在所述处理器中调取下一个分区进行执行,此时,需要去评估每个分区的关键程度,确定出关键分区并调取执行,使线程先计算关键分区,这样可以减少分区的执行时间。
所述关键分区是根据数据运行时参数及其统计信息来评估的。如第一个分区、第二个分区均与第三个分区的数据相关联,此时就可以确定所述第三个分区为关键分区,所述线程可以优先执行计算所述第三个分区。
S4,判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
S5,将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区。
所述其它处理器是指除所述空闲处理器之外的其它处理器。该其它处理器线程可能均处于运行状态,也可能有空闲线程。
当判断存在空闲处理器时,所述空闲处理器可以向其他任意一个其它处理器发送有空闲线程的消息。当其它处理器接收到消息时,若其它处理器存在待计算分区时,该其它处理器可以将所述待计算分区分配给空闲处理器进行计算。所述待计算分区是指线程还未执行的分区。
S6,选择确定所述待计算分区;
当所述待计算分区数量为多个时,具体需要分配几个分区、哪几个分区迁移到空闲处理器,需要对其进行具体评估。如图2所示,选择确定所述待计算分区的评估方法具体包括:
S61,考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益,获得一评估结果。
所述待计算分区的数据大小不同,需要执行计算的时间也会不同,此时需要整体考虑处理器下的分区执行时间,防止执行时间长的分区都分配到同一处理器。除了考虑分区的执行时间,还需要考虑所述待计算分区之间的迁移开销,该迁移开销包括将待计算分区的数据从一台机器传输到另一台机器(通信开销)和在目的机器上重建待计算分区两部分,这两部分的时间开销构成了迁移开销。
所述评估结果包括每个待计算分区的损失和利益数据。评估过程中可以采用评估算法进行计算,如贪心算法。
S62,根据评估结果确定具体哪些所述待计算分区分配到所述空闲处理器。
根据比较所述每个待计算分区的损失和利益数据来确定哪些待计算分区可分配到所述空闲处理器。比如可以将利益大于损失的分区分配给空闲处理器。
S63,确定所述待计算分区数据迁移到所述空闲处理器的方式。
所述空闲处理器可以从磁盘或者其它处理器复制所述待计算分区的数据,并绑定到空闲线程中进行计算。
S7,将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
具体的,所述迁移的过程是将待计算分区的数据从一台机器传输到另一台机器(通信),并在目的机器上重建待计算分区,该待计算分区被绑定到所述空闲处理器的线程进行处理。
本发明实施例提供的基于图数据的计算运行调度方法中,将各个处理器之间进行通信,重新分配待计算分区,能够减少每个处理器的等待时间;在线程执行计算分区前先评估分区的关键程度,能够减少某一处理器的执行时间,避免执行时间较长;对多个待计算分区进行评估选择,能够加速收敛,保证数据计算运行的正确性和终止性。
实施例2
如图3所示,本发明实施例提供一种基于图数据的计算运行调度***,包括:
划分模块21,用于将图数据划分成多个分区。
对所述图数据进行分区的方式不限,只要满足分区的数量远大于线程数量即可,这样能够实现线程调度分区的情景。所述分区的数量多可以减小每个分区的大小,从而避免出现某些分区的计算量远大于其他分区的情况。优选的,所述分区可采用分区算法实现,例如,METIS。所述分区算法可以遵循保证跨分区边最少、跨分区点最少等原则。
本实施例中,结合非统一内存访问架构(NUMA)的处理***,对所述图数据进行三级分区。具体的,所述处理***包括至少一个计算设备,每个计算设备对应多个存储器,每个存储器对应多个处理器,三级分区具体方法包括:
根据所述计算设备的个数及计算设备之间的通信开销,对所述图数据进行分区,获得多个第一级分区;
根据所述每个计算设备中NUMA节点的个数及NUMA节点之间的通信开销,将所述每一个第一级分区分为多个第二级分区;
根据所述每个NUMA节点内工作节点数量及每个工作节点之间的通信开销,将所述每一个第二级分区分为多个第三级分区,其中,工作节点包括处理器或处理器线程。
形成的每个第三级分区内的数据是关联程度较高的数据;相连两个第三级分区的数据会存在共用边数据,一旦一个分区更新了边数据,需要通过消息去通知相邻的分区进行更 新。
调配模块22,用于调度所述分区分配给多个处理器。所述划分模块21完成分区后,由于每个分区的数据大小不同,可以给每个服务器分配不同数量的分区。所述每个处理器可以对应多个线程,分配给每个处理器的分区数量可以大于所述每个处理器对应的线程数量。所述调配模块22可以采用现有的调度算法来执行。调度器控制所述处理器调取不同的分区。
提交模块23,用于根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算。每个线程从所述处理器中调取分区数据去执行计算,当执行完成后,可以继续在所述处理器中调取下一个分区进行执行,此时,需要去评估每个分区的关键程度,确定关键分区并调取执行,使线程先计算关键分区,这样可以减少分区的执行时间。
所述关键分区是根据数据运行时参数及其统计信息来评估的。如第一个分区、第二个分区均与第三个分区的数据相关联,此时就可以确定所述第三个分区为关键分区,所述线程可以优先执行计算所述第三个分区。
判断模块24,用于判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则判断所述处理器为空闲处理器。
通信模块25,用于将所述空闲处理器和其它处理器之间进行通信,找到所述其它处理器对应的待计算分区。当存在空闲处理器时,所述空闲处理器可以向任意一个其它处理器发送有空闲线程的消息。当其它处理器接收到消息时,若其它处理器下存在待计算分区时,该其它处理器可以将所述待计算分区分配给空闲处理器进行计算。
选择模块26,用于选择确定所述待计算分区。当所述待计算分区数量为多个时,具体需要分配几个分区、哪几个分区到空闲处理器,所述选择模块26需要对多个待计算分区进行具体评估。所述选择模块具体包括:
考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益,获得一评估结果。所述待计算分区的数据大小不同,需要执行计算的时间也会不同,此时需要整体考虑处理器下的分区执行时间,防止执行时间长的分区都分配到同一处理器。除了考虑分区的执行时间,还需要考虑所述待计算分区之间的迁移开销,该迁移开销包括将待计算分区的数据从一台机器传输到另一台机器(通信开销)和在目的机器上重建待计算分区两部分,这两部分的时间开销构成了迁移开销。
所述评估结果包括每个待计算分区的损失和利益数据。评估过程中可以采用评估算法进行计算,如贪心算法。
根据评估结果确定具体哪些所述待计算分区分配到所述空闲处理器。具体的,根据比较所述每个待计算分区的损失和利益数据来确定哪些待计算分区可分配到所述空闲处理器,比如可以将利益大于损失的分区分配给空闲处理器。
确定所述待计算分区数据迁移到所述空闲处理器的方式。具体的,所述空闲处理器可以从磁盘或者其它处理器复制所述待计算分区的数据。
迁移模块27,用于将上述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。具体的,所述迁移的过程是将待计算分区的数据从一台机器传输到另一台机器(通信),并在目的机器上重建待计算分区,该待计算分区被绑定到所述空闲处理器的线程进行处理。
本发明实施例提供的基于图数据的计算运行调度***中,将各个处理器之间进行通信,重新分配待计算分区,能够减少每个处理器的等待时间;在线程执行计算分区前先评估分区的关键程度,能够减少某一处理器的执行时间,避免执行时间较长;对多个待计算分区进行评估选择,能够加速收敛,保证数据计算运行的正确性和终止性。
实施例3
本发明实施例提供一种存储用于图数据运行的计算机程序的计算机可读介质,所述计算机程序包括指令,用于使计算机***进行以下操作:
将图数据划分成多个分区;
调度所述分区分配给多个处理器;
根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区;
选择确定所述待计算分区;
将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
其中,分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
其中,若所述待计算分区数量为多个时,选择确定所述待计算分区的方法包括:
考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失 和利益;
根据评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
确定所述待计算分区数据迁移到所述空闲处理器的方式。
所述计算机可读存储介质可以为ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
本发明实施例提供的存储用于图数据运行的计算机程序的计算机可读介质,将各个处理器之间进行通信,重新分配待计算分区,能够减少每个处理器的等待时间;在线程执行计算分区前先评估分区的关键程度,能够减少某一处理器的执行时间,避免执行时间较长;对多个待计算分区进行评估选择,能够加速收敛,保证数据计算运行的正确性和终止性。
实施例4
本发明实施例还提供一种电子设备,包括处理器41和存储器42;存储器42用于存储计算机程序,处理器41用于执行存储器存储的计算机程序,以使所述电子设备执行上述任一项所述的基于图数据的计算运行调度方法。
该基于图数据的计算运行调度方法的具体原理如上述实施例所述,在此不再一一赘述。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器以及个人计算机、云服务计算节点:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
本发明实施例提供的电子设备将各个处理器之间进行通信,重新分配待计算分区,能够减少每个处理器的等待时间;在线程执行计算分区前先评估分区的关键程度,能够减少 某一处理器的执行时间,避免执行时间较长;对多个待计算分区进行评估选择,能够加速收敛,保证数据计算运行的正确性和终止性。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

  1. 一种基于图数据的计算运行调度方法,其特征在于,包括:
    将图数据划分成多个分区;
    调度所述分区分配给多个处理器;
    根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
    判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
    将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区;
    选择确定所述待计算分区;
    将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
  2. 根据权利要求1所述的基于图数据的计算运行调度方法,其特征在于,分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
  3. 根据权利要求1所述的基于图数据的计算运行调度方法,其特征在于,若所述待计算分区数量为多个时,选择确定所述待计算分区的方法包括:
    考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益,获得一评估结果;
    根据所述评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
    确定所述待计算分区数据迁移到所述空闲处理器的方式。
  4. 一种基于图数据的计算运行调度***,其特征在于,包括:
    划分模块,用于将图数据划分成多个分区;
    调配模块,用于调度所述分区并分配给多个处理器;
    提交模块,用于根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
    判断模块,用于判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
    通信模块,用于将所述空闲处理器和其它处理器之间进行通信,找到所述其它处理器对应的待计算分区;
    选择模块,用于选择确定所述待计算分区;
    迁移模块,用于将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
  5. 根据权利要求4所述的基于图数据的计算运行调度***,其特征在于,所述调配模块分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
  6. 根据权利要求4所述的基于图数据的计算运行调度***,其特征在于,若所述待计算分区数量为多个时,所述选择模块选择确定所述待计算分区具体包括:
    考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益,获得一评估结果;
    根据所述评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
    确定所述待计算分区数据迁移到所述空闲处理器的方式。
  7. 一种存储用于图数据运行的计算机程序的计算机可读介质,其特征在于,所述计算机程序包括指令,用于使计算机***进行以下操作:
    将图数据划分成多个分区;
    调度所述分区分配给多个处理器;
    根据每个分区的关键程度将所述分区先后交给所述处理器对应的线程计算;
    判断是否存在空闲处理器,当所述处理器包括一个或多个空闲线程时,则所述处理器为空闲处理器;
    将所述空闲处理器和其它处理器进行通信,寻找所述其它处理器对应的待计算分区;
    选择确定所述待计算分区;
    将所述确定的待计算分区迁移绑定到所述空闲处理器的线程处理。
  8. 根据权利要求7所述的计算机可读介质,其特征在于,分配给每个处理器的分区数量大于所述每个处理器对应的线程数量。
  9. 根据权利要求7所述的计算机可读介质,其特征在于,若所述待计算分区数量为多个时,选择确定所述待计算分区的方法包括:
    考虑每个所述待计算分区的执行时间以及所述待计算分区之间的迁移开销,评估损失和利益,获得一评估结果;
    根据所述评估结果确定具体哪些所述待计算分区分配到所述空闲处理器;
    确定所述待计算分区数据迁移到所述空闲处理器的方式。
  10. 一种电子设备,其特征在于,包括处理器和存储器;存储器用于存储计算机程序,处理器用于执行存储器存储的计算机程序,以使所述电子设备执行上述任一项所述的基于 图数据的计算运行调度方法。
PCT/CN2018/097517 2018-07-27 2018-07-27 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备 WO2020019315A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201880094017.4A CN112912849A (zh) 2018-07-27 2018-07-27 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备
PCT/CN2018/097517 WO2020019315A1 (zh) 2018-07-27 2018-07-27 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备
US17/160,212 US20210149746A1 (en) 2018-07-27 2021-01-27 Method, System, Computer Readable Medium, and Device for Scheduling Computational Operation Based on Graph Data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/097517 WO2020019315A1 (zh) 2018-07-27 2018-07-27 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/160,212 Continuation US20210149746A1 (en) 2018-07-27 2021-01-27 Method, System, Computer Readable Medium, and Device for Scheduling Computational Operation Based on Graph Data

Publications (1)

Publication Number Publication Date
WO2020019315A1 true WO2020019315A1 (zh) 2020-01-30

Family

ID=69181176

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/097517 WO2020019315A1 (zh) 2018-07-27 2018-07-27 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备

Country Status (3)

Country Link
US (1) US20210149746A1 (zh)
CN (1) CN112912849A (zh)
WO (1) WO2020019315A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021029871A1 (en) * 2019-08-12 2021-02-18 Hewlett-Packard Development Company, L.P. Thread mapping

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130247068A1 (en) * 2012-03-15 2013-09-19 Samsung Electronics Co., Ltd. Load balancing method and multi-core system
CN104850461A (zh) * 2015-05-12 2015-08-19 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法
CN106445686A (zh) * 2016-09-21 2017-02-22 东软集团股份有限公司 资源分配方法及装置
CN107122244A (zh) * 2017-04-25 2017-09-01 华中科技大学 一种基于多gpu的图数据处理***及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988268B2 (en) * 2002-04-30 2006-01-17 Microsoft Corporation IO completion architecture for user-mode networking
US7143412B2 (en) * 2002-07-25 2006-11-28 Hewlett-Packard Development Company, L.P. Method and apparatus for optimizing performance in a multi-processing system
EP1673683A4 (en) * 2003-10-14 2010-06-02 Raptor Networks Technology Inc MEDIATION SYSTEM WITH DISTRIBUTED COUPLING FIELD
US20060020701A1 (en) * 2004-07-21 2006-01-26 Parekh Harshadrai G Thread transfer between processors
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US8310492B2 (en) * 2009-09-03 2012-11-13 Ati Technologies Ulc Hardware-based scheduling of GPU work
US10019391B2 (en) * 2015-03-20 2018-07-10 International Business Machines Corporation Preventing software thread blocking due to interrupts
US10089155B2 (en) * 2015-09-22 2018-10-02 Advanced Micro Devices, Inc. Power aware work stealing
US11138516B2 (en) * 2017-06-30 2021-10-05 Visa International Service Association GPU enhanced graph model build and scoring engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130247068A1 (en) * 2012-03-15 2013-09-19 Samsung Electronics Co., Ltd. Load balancing method and multi-core system
CN104850461A (zh) * 2015-05-12 2015-08-19 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法
CN106445686A (zh) * 2016-09-21 2017-02-22 东软集团股份有限公司 资源分配方法及装置
CN107122244A (zh) * 2017-04-25 2017-09-01 华中科技大学 一种基于多gpu的图数据处理***及方法

Also Published As

Publication number Publication date
CN112912849A (zh) 2021-06-04
US20210149746A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
US10637949B2 (en) Transparent sharding of traffic across messaging brokers
CN109783237B (zh) 一种资源配置方法及装置
US11023535B1 (en) Placement of data volumes in a data center
US9846589B2 (en) Virtual machine placement optimization with generalized organizational scenarios
US9401835B2 (en) Data integration on retargetable engines in a networked environment
Ge et al. GA-based task scheduler for the cloud computing systems
US20180052709A1 (en) Dynamic usage balance of central processing units and accelerators
Sheikhalishahi et al. A multi-dimensional job scheduling
US20130318525A1 (en) Locality-aware resource allocation for cloud computing
US11175948B2 (en) Grouping of tasks for distribution among processing entities
US10691502B2 (en) Task queuing and dispatching mechanisms in a computational device
CN103970607A (zh) 使用等价集合来计算优化虚拟机分配的方法和装置
CN109191287B (zh) 一种区块链智能合约的分片方法、装置及电子设备
US10733025B2 (en) Balancing categorized task queues in a plurality of processing entities of a computational device
WO2020019313A1 (zh) 一种图数据的更新方法、***、计算机可读存储介质及设备
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
Ma et al. Dependency-aware data locality for MapReduce
Hefny et al. Comparative study load balance algorithms for map reduce environment
Ludwig et al. Optimizing multi‐tier application performance with interference and affinity‐aware placement algorithms
Venugopal et al. A set coverage-based mapping heuristic for scheduling distributed data-intensive applications on global grids
Yankovitch et al. Hypersonic: A hybrid parallelization approach for scalable complex event processing
Liu et al. KubFBS: A fine‐grained and balance‐aware scheduling system for deep learning tasks based on kubernetes
WO2020019315A1 (zh) 一种基于图数据的计算运行调度方法、***、计算机可读介质及设备
US20210149960A1 (en) Graph Data Storage Method, System and Electronic Device
US10296227B2 (en) System and method for dynamic cache distribution for in-memory data grids

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18927295

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18927295

Country of ref document: EP

Kind code of ref document: A1