WO2021111586A1 - 分散処理システム - Google Patents

分散処理システム Download PDF

Info

Publication number
WO2021111586A1
WO2021111586A1 PCT/JP2019/047633 JP2019047633W WO2021111586A1 WO 2021111586 A1 WO2021111586 A1 WO 2021111586A1 JP 2019047633 W JP2019047633 W JP 2019047633W WO 2021111586 A1 WO2021111586 A1 WO 2021111586A1
Authority
WO
WIPO (PCT)
Prior art keywords
job
distributed
processing system
distributed processing
interconnect
Prior art date
Application number
PCT/JP2019/047633
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 JP2021562285A priority Critical patent/JP7347537B2/ja
Priority to US17/782,131 priority patent/US20230004425A1/en
Priority to PCT/JP2019/047633 priority patent/WO2021111586A1/ja
Publication of WO2021111586A1 publication Critical patent/WO2021111586A1/ja

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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/54Interprogram communication
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a distributed processing system that processes tasks generated by jobs from a plurality of users at high speed and with high efficiency.
  • a job executed by deep learning is referred to as a learning job
  • the weight of each neuron model (the neuron in the previous stage) is applied to a learning target consisting of a multi-layered neuron model.
  • the inference accuracy is improved by updating the value multiplied by the value output by the model) using a large amount of input sample data.
  • the mini-batch method is used as a method for improving inference accuracy.
  • a gradient calculation process for calculating a gradient with respect to the weight for each sample data an aggregation process for aggregating the gradients for a plurality of different sample data (summing the gradients obtained for each sample data by weight), and an aggregation process.
  • the weight update process of updating each weight based on the aggregated gradient is repeated.
  • the data (distributed data) obtained for each distribution processing node is aggregated in the aggregation processing node from each distributed processing node.
  • Communication to the processing node (distributed communication) is required.
  • the actual learning job is not limited to the one that always requires the maximum processing load, but the processing load differs for each user, and varies from the one with an extremely large processing load to the one with an extremely small processing load.
  • it is difficult to share the processor among multiple users, and in a large-scale distributed processing system that supports learning jobs with a heavy load, when learning jobs with different processing loads occur from different users at the same time. There was a problem that it was difficult to process (see, for example, Non-Patent Document 1).
  • FIG. 6 shows a distributed processing system in which a conventional distributed processing system is divided and used by a plurality of users.
  • a distributed processing system is used by a plurality of users, a user is assigned to each distributed system configured by dividing a plurality of distributed nodes 102 constituting the distributed processing system 101 as shown in FIG. 6, and a learning job is executed. Can be done.
  • the memory area is allocated to one user or job for the arithmetic device of one distributed node, a division loss occurs due to the allocation of one distributed node even for a job with a small processing load.
  • a job with a small processing load and a process with a large processing load are performed at the same time, there is a problem that the allocation of distributed nodes to a plurality of jobs having different processing loads becomes inefficient.
  • the present invention has been made in consideration of the above circumstances, and has high efficiency capable of suppressing a decrease in calculation efficiency due to a node division loss and efficiently processing a plurality of learning jobs having different processing loads.
  • the purpose is to provide a distributed processing system.
  • the distributed processing system of the present invention is one said distributed node in a distributed processing system in which a plurality of distributed nodes including a plurality of arithmetic devices and interconnect devices are connected.
  • a memory area is allocated for each job processed by the distributed processing system, and the interconnect device and the arithmetic device are allocated between the interconnect devices and / or the arithmetic devices.
  • direct memory access between the memory areas for processing the job is executed.
  • the present invention when a plurality of users simultaneously execute learning jobs having different processing loads, it is possible to suppress a decrease in calculation efficiency due to a node division loss and efficiently process a plurality of learning jobs having different processing loads. It is possible to provide a highly efficient distributed processing system that can be used.
  • FIG. 1 is a diagram showing a configuration example of a distributed processing system according to the first embodiment of the present invention.
  • FIG. 2 is a diagram showing a configuration example of a distributed processing system according to a second embodiment of the present invention.
  • FIG. 3A is a diagram showing a configuration example of a distributed processing system according to a third embodiment of the present invention.
  • FIG. 3B is a diagram showing an operation example of the distributed processing system according to the third embodiment of the present invention.
  • FIG. 4A is a diagram showing a configuration example of a distributed node according to a fourth embodiment of the present invention.
  • FIG. 4B is a time chart of the operation of the distributed node according to the fourth embodiment of the present invention.
  • FIG. 1 is a diagram showing a configuration example of a distributed processing system according to the first embodiment of the present invention.
  • FIG. 2 is a diagram showing a configuration example of a distributed processing system according to a second embodiment of the present invention.
  • FIG. 3A is a diagram showing
  • FIG. 5A is a diagram showing a configuration example of a distributed node according to a fifth embodiment of the present invention.
  • FIG. 5B is a time chart of the operation of the distributed node according to the fifth embodiment of the present invention.
  • FIG. 6 is a diagram showing a conventional distributed processing system.
  • fixed in the present embodiment means that the swap-out of the memory is prevented by the setting with respect to the memory for which the direct memory access is performed.
  • fixed memory means that a user or job can monopolize a specific area of memory and use the memory, and depending on the setting, when sharing with other users or jobs, or direct memory of other users or jobs. It can also be modified to be used as a memory area for access. It does not mean that the specific area is fixed in advance and cannot be changed. The same applies to other embodiments.
  • job means a process performed by a program executed by a user, and even if the user is the same, the job may be different.
  • task means a unit of each operation performed by an arithmetic device or the like in a job executed by a user. The same applies to other embodiments.
  • FIG. 1 is a diagram showing an embodiment of the present invention.
  • the distributed processing system 101 is composed of a plurality of distributed nodes 102 that constitute the distributed processing system 101.
  • Each distributed node 102 includes a plurality of arithmetic devices 103 and interconnect devices 104.
  • the arithmetic device 103 and the interconnect device 104 each include one or a plurality of memory areas.
  • the arithmetic device 103-1 is an arithmetic device assigned to process the job A
  • the arithmetic devices 103-2 to 103-4 are arithmetic devices assigned to process the job B.
  • the memory area 106-1 is a memory area in the arithmetic device 103-1 allocated to process the job A
  • the memory area 107-1 is a memory area in the interconnect device 104 allocated to the job A
  • -2 to 106-4 are memory areas in the arithmetic device 103 assigned to the user B
  • memory areas 107-2 are memory areas in the interconnect device 104 assigned to the user B.
  • the dotted line box 300 indicates the computational resources used by the job A
  • the solid line box 400 indicates the computational resources used by the job B.
  • each distributed node 103 for example, a SYS-4028GR-TR2 server manufactured by Supermicro (hereinafter referred to as “server”) is used.
  • the CPU motherboard of this server is equipped with two Intel Xeon CPU processors E5-2600V4 as CPUs and eight DDR4-2400DIMM32GB memory cards as main memory.
  • a daughter board with 16 lane slots of PCI Express 3.0 (Gen3) is mounted on the CPU motherboard, and four NVIDIA V100s are used as arithmetic devices 103, and four NVIDIA V100s are used as interconnect devices 104, manufactured by Xillinx.
  • One VCU118 Evolution board is mounted on this Evolution board, and two QSFP28 optical transceivers are mounted as interconnects.
  • the distributed nodes are connected in a ring shape by optical fibers connected to the optical transceiver of the QSFP 28 to form a distributed processing system.
  • arithmetic device a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an FPGA, a quantum arithmetic device, an artificial intelligence (neuron) chip, or the like can be used.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • FPGA Field-programmable gate array
  • quantum arithmetic device an artificial intelligence (neuron) chip, or the like.
  • an SB7800 InfiniBand switch manufactured by Mellanox can be used as the aggregation switch.
  • the gradient data of each job obtained by the arithmetic device is subjected to, for example, the same distributed node by a group communication protocol such as All-Reduction.
  • Gradient data is added between the arithmetic devices in the device, and the added gradient data is further aggregated and added to the arithmetic devices of adjacent distributed nodes via an interconnect by aggregate communication.
  • the gradient data from the distributed node executing the learning job is aggregated by the aggregation node, the gradient data averaged there is distributed and communicated to the arithmetic devices involved in the aggregation and shared. Based on the shared gradient data, the learning is repeated and the learning parameters are updated in each arithmetic device.
  • the memory built into each device between the computing device and the interconnect device in the distributed node and between the interconnect devices between different distributed nodes in order to move gradient data at high speed, the memory built into each device between the computing device and the interconnect device in the distributed node and between the interconnect devices between different distributed nodes.
  • the area is fixedly allocated, and data is transferred between the fixedly allocated memory addresses.
  • Data transfer within the former distributed node is called direct memory access, and data transfer between the latter distributed nodes is called remote direct memory access.
  • the memory of the distributed node is allocated to a single job, and one user occupies the memory in one distributed node 102. It was.
  • the arithmetic device 103-1 on the leftmost side has the fixed memory area 106-1 of job A and the other three arithmetic devices.
  • Job B's fixed memory areas 106-2 to 106-4 are allocated to the devices 103-2 to 103-4.
  • individual fixed memory areas 107-1 and 107-2 are allocated to each of the job A and the job B, respectively.
  • the direct memory access associated with job A is on the leftmost side of the distributed node in the upper left of FIG. It is executed between the fixed memory area 106-1 provided in the arithmetic device 103-1 and the fixed memory area 107-1 of the user A in the interconnect device 104. Further, between different distributed nodes, the fixed memory area 107-1 of the user A in the interconnect device 104 and the fixed memory area 107 assigned to the interconnect device 104 of the distributed node 102 in the lower left of FIG. 1 are remote. Direct access memory is done.
  • the direct memory access associated with job B is the fixed memory areas 106-2 to 106 allocated to the three arithmetic devices 103-2 to 103-4 on the right side of the distributed node in the upper left of FIG. It is executed between -4 and the fixed memory area 107-2 of the user B in the interconnect device 104. Further, between different distributed nodes, the remote direct access memory between the fixed memory area 107-2 of the user B in the interconnect device 104 and the fixed memory area allocated to the interconnect device of the distributed node 102 in the upper right of FIG. Is done.
  • FIG. 2 is a diagram showing a second embodiment of the present invention.
  • the second embodiment in addition to the jobs A and B of the first embodiment, jobs C and D are added, and the state of the memory allocation process when the load of the learning job of each additional user is small is shown. It is shown.
  • the dotted line 500 indicates the fixed memory area in the arithmetic device and the interconnect device for the job C
  • the fixed memory area 106-2 of the job C is the fixed memory area of the job A in the same arithmetic device 103-1. It coexists with the memory area 106-1.
  • the memory area 107-2 is a fixed memory area in the interconnect device 104 allocated to the job C.
  • the memory areas 106-3 and 106-4 are fixed memory areas in the arithmetic devices 103-2 and 103-3 assigned to the user D.
  • the memory area 107-3 is a fixed memory area in the interconnect device 104 allocated to the user D.
  • interconnect device 104 in addition to the fixed memory areas allocated to job A and job B, fixed memory areas for job C and job D are secured. In this way, the fixed memory area of each job is allocated in each device, and the learning job of each user is executed in each arithmetic device.
  • the fixed memory area in the device is individually allocated to each job, and the fixed device area for a plurality of jobs coexists in one computing device. Therefore, the distributed processing system is flexibly divided not by the division by the distributed node but by the arithmetic device constituting the distributed node, and further by the fixed memory area in the arithmetic device. This makes it possible to provide a distributed processing system capable of efficiently and at high speed processing a plurality of jobs having different processing load sizes.
  • FIGS. 3A and 3B are diagrams showing a configuration example and an operation example of the distributed processing system according to the third embodiment of the present invention.
  • the interconnect device is provided with a fixed memory area for each job of a plurality of jobs, but in the third embodiment, the interconnect device is provided with a memory area shared by a plurality of jobs. Is provided.
  • the memory area of the interconnect device 104 is a fixed shared memory area 107 shared by jobs A, B, C, and D.
  • FIG. 3B shows a specific example of the sharing mode.
  • job B makes direct memory access using all of the fixed memory area 107
  • time t2 users A, C, and D who do not need a large fixed memory area are fixed.
  • the memory area is shared at the same time.
  • FIGS. 4A and 4B are diagrams showing a configuration example of a distributed node and an operation time chart according to a fourth embodiment of the present invention.
  • the arithmetic unit A105-1 and the fixed memory area A106-1 are allocated for the job A, and the arithmetic unit B105-2 and the fixed memory area B106-2 are allocated for the job B.
  • the interconnect device 104 the fixed memory area A107-1 is allocated for the job A, and the fixed memory area B107-2 is allocated for the job B.
  • FIG. 4B illustrates a time chart of calculation in the calculation device 103 and a communication time chart between the calculation device and the interconnect device.
  • the task A1 and the task A2 are the calculation time of the job A in the calculation device 103
  • the calculation time of the task B is the calculation time of the job B.
  • the communication time chart between the arithmetic device and the interconnect device shows the communication time between the arithmetic device and the interconnect of the calculation data of the job A.
  • the AllReduce communication of job A is executed, the calculation of the arithmetic device for job A is not performed, so that some tasks of job B can be executed during this time.
  • job A sends 1 GB of gradient data.
  • the interconnect device 104 starts direct memory access to the memory of the interconnect device from the cache memory or global memory in the adjacent distributed node. ..
  • the bandwidth of the interconnect is 100 Gbit / s
  • the time for transferring 1 GB of data is 80 milliseconds. During this 80 ms, the task of job B can be executed.
  • a dedicated fixed memory area for transferring the processing data of a predetermined job to the interconnect device is provided in the arithmetic device, and the direct memory access processing of a plurality of jobs is scheduled and controlled in the arithmetic device.
  • the operating time of the computing device can be increased and the computing efficiency can be improved.
  • FIGS. 5A and 5B are diagrams showing a configuration example of a distributed node and an operation time chart according to a fifth embodiment of the present invention.
  • a communication controller having a communication control function generated by a hardware circuit is installed between the memories for which direct memory access is performed.
  • the scheduler 108 of the arithmetic device 103 starts the direct memory access of the job A at time t3 after the arithmetic of the job A is completed.
  • the communication controller 109 detects the end of the data transfer of the job A, it feeds back to the scheduler 108 and restarts the direct memory access of the job B at time t4.
  • a function for assigning an identifier that links the job and the data to be transmitted is provided in the communication controller 109 on the transmission side of the direct memory access to identify which job is the direct memory access.
  • the present invention can be used in a large-scale distributed processing system that processes a large amount of information processing and a distributed processing system that simultaneously processes a plurality of jobs having different loads.
  • it can be applied to machine learning of neural networks, large-scale operations (large-scale matrix operations, etc.), or systems that perform a large amount of data information processing.
  • 101 Distributed processing system, 102 ... Distributed node, 103-1 to 103-4 ... Arithmetic device, 104 ... Interconnect device, 105, 105-1 to 105-4 ... Arithmetic unit, 106, 106-1 to 106-4 ... Memory area (arithmetic device), 107, 107-1 to 107-2 ... Memory area (interconnect device),

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

複数の演算デバイス(103)とインタコネクトデバイス(104)とを備えた複数の分散ノード(102)が接続されている分散処理システム(101)において、1つの前記分散ノード(102)におけるインタコネクトデバイス(104)及び/または演算デバイス(103)において、分散処理システム(101)が処理するジョブ毎にメモリ領域(106、107)が割当てられ、インタコネクトデバイス(104)の間、演算デバイス(103)の間、インタコネクトデバイス(104)と演算デバイス(103)の間の少なくとも何れかにおいて、ジョブを処理するためのメモリ領域の間のダイレクトメモリアクセスが実行される。これにより、ノードの分割損による演算効率低下を抑制し、処理負荷の異なる複数の学習ジョブを効率的に処理することができる。

Description

分散処理システム
 本発明は、複数のユーザからのジョブにより発生するタスクを高速、高効率に処理する分散処理システムに関するものである。
 近年、シリコンプロセスの微細化の限界によりムーアの法則が適用できない、いわゆるポストムーア時代の到来が言われてきている。このポストムーア時代に向けて、CPUなどのプロセッサのシリコンプロセス微細化による演算性能限界を打破して、演算性能を飛躍的に向上しようとする取り組みが行われている。
 このような取り組みとして、一つのプロセッサ内に演算コアを複数持たせるマルチコア化のアプローチがあるが、一つのシリコンチップの大きさの限界もあり、単体のプロセッサの飛躍的な向上には限界がある。このような単体のプロセッサの限界を超えるため、これらの演算デバイスを搭載したサーバを複数、大容量のインタコネクトで接続した分散処理システムを用いて、単一のデバイスや単一のサーバでは難しかった高負荷のタスクを高速で処理する分散処理システム技術が注目されつつある。
 例えば、高負荷のジョブの一例である深層学習(以下、深層学習で実行されるジョブを学習ジョブと称する。)では、多層のニューロンモデルからなる学習対象について、各ニューロンモデルの重み(前段のニューロンモデルが出力した値に乗じる係数)を、入力した大量のサンプルデータを用いて、更新することにより、推論精度を改善する。
 通常、推論精度を改善する手法には、ミニバッチ法が用いられている。ミニバッチ法では、サンプルデータ毎に前記重みに対する勾配を計算する勾配計算処理と、複数の異なるサンプルデータについて前記勾配を集計する(サンプルデータ毎に得られた勾配を重み別に合算する)集計処理と、各重みを前記集計された勾配に基づいて更新する重み更新処理と、を繰り返す。
 また、分散処理システム技術を適応した分散深層学習において、集計処理を行うためには、分散処理ノード毎に得られたデータ(分散データ)を集計処理ノードに集約するための、各分散処理ノードから集計処理ノードへの通信(集約通信)と、集計処理ノードでの全ノード集計処理と、集計処理ノードが集計したデータ(集計データ)を各分散処理ノードに転送するための、集計処理ノードから分散処理ノードへの通信(分配通信)とが必要となる。
 これらの処理、特に深層学習における勾配計算処理は、多数回の演算を必要とするので、推論精度を向上させるために、重みの個数や入力するサンプルデータの個数が増加すると、深層学習に要する時間が増大する。このため、推論精度を向上させ、なおかつ、深層学習に要する時間を増加さないために、分散ノードを増加させ、分散処理システムの規模を大きく設計する必要があった。
 実際の学習ジョブは、常に最大の処理負荷を要求するものばかりではなく、処理負荷がユーザ毎に異なり、処理負荷の極めて大きいものから、処理負荷の極めて小さいものまで様々である。しかし、従来の技術では、プロセッサを複数のユーザで共有する処理が難しく、負荷の大きい学習ジョブに対応させた規模の大きな分散処理システムでは、異なるユーザから処理負荷の異なる学習ジョブが同時に発生した場合の処理が難しいという課題があった(例えば、非特許文献1参照。)。
 図6は、従来の分散処理システムを複数ユーザで分割して利用する分散処理システムを示したものである。複数ユーザで分散処理システムを利用する場合、図6のように分散処理システム101を構成する複数の分散ノード102を分割して構成された各分散システムにそれぞれユーザを割り当てて学習ジョブを実行することができる。しかし、1つの分散ノードの演算デバイスに対して一つのユーザあるいはジョブに対するメモリ領域の割り当てが行われるため、処理負荷の小さなジョブに対しても1つの分散ノードを割り当てることによる分割損が発生し、処理負荷の小さなジョブと処理負荷の大きな処理を同時に行う場合に、処理負荷の異なる複数のジョブに対する分散ノードの割り当てが非効率になってしまうという問題があった。
NVIDIA社著,"NVIDIA TESLA V100 GPU ARCHITECTURE",30頁, 2017年8月刊行,インターネット<https://images.nvidia.com/content/volta-architecture/pdf/volta-architecture-whitepaper.pdf>
 本発明は、上記のような事情を考慮してなされたものであり、ノードの分割損による演算効率低下を抑制し、処理負荷の異なる複数の学習ジョブを効率的に処理することのできる高効率な分散処理システムを提供することにある。
 上記のような課題を解決するために、本発明の分散処理システムは、複数の演算デバイスとインタコネクトデバイスとを備えた複数の分散ノードが接続されている分散処理システムにおいて、1つの前記分散ノードにおける前記インタコネクトデバイス及び/または前記演算デバイスにおいて、前記分散処理システムが処理するジョブ毎にメモリ領域が割当てられ、前記インタコネクトデバイスの間、前記演算デバイスの間、前記インタコネクトデバイスと前記演算デバイスの間の少なくとも何れかにおいて、前記ジョブを処理するための前記メモリ領域間のダイレクトメモリアクセスが実行される。
 本発明によれば、複数ユーザが同時に異なる処理負荷の学習ジョブを同時に実行する場合において、ノードの分割損による演算効率低下を抑制し、処理負荷の異なる複数の学習ジョブを効率的に処理することのできる高効率な分散処理システムを提供することが可能となる。
図1は、本発明の第1の実施の形態に係る分散処理システムの構成例を示す図である。 図2は、本発明の第2の実施の形態に係る分散処理システムの構成例を示す図である。 図3Aは、本発明の第3の実施の形態に係る分散処理システムの構成例を示す図である。 図3Bは、本発明の第3の実施の形態に係る分散処理システムの動作例を示す図である。 図4Aは、本発明の第4の実施の形態に係る分散ノードの構成例を示す図である。 図4Bは、本発明の第4の実施の形態に係る分散ノードの動作のタイムチャートである。 図5Aは、本発明の第5の実施の形態に係る分散ノードの構成例を示す図である。 図5Bは、本発明の第5の実施の形態に係る分散ノードの動作のタイムチャートである。 図6は、従来の分散処理システムを示す図である。
 以下、本発明の第1の実施の形態について図面を参照して説明する。尚、本実施の形態における「固定」とは、ダイレクトメモリアクセスを行うメモリに関し、設定によりメモリのスワップアウトが防止されることを意味するものである。このため、「固定メモリ」は、ユーザあるいはジョブがメモリの特定領域を独占してメモリを利用できることであり、設定により、他のユーザやジョブと共有する場合や、他のユーザやジョブのダイレクトメモリアクセス用のメモリ領域と使用するように、変更することも可能である。予め特定領域が固定されていて、変更できないという意味ではない。他の実施の形態においても同様である。
 また、「ジョブ」とは、ユーザが実行したプログラムで行われる処理を意味しており、ユーザが同じでもジョブが異なる場合がある。また、「タスク」とは、ユーザが実行したジョブにおいて、演算デバイスなどが行う一つ一つの演算の単位を意味する。他の実施の形態においても同様である。
[第1の実施の形態]
<分散処理システムの構成>
 図1は、本発明の実施の形態を示す図である。分散処理システム101は、分散処理システム101を構成する複数の分散ノード102から構成されている。各分散ノード102は、複数の演算デバイス103、インタコネクトデバイス104を備えている。演算デバイス103、インタコネクトデバイス104は、それぞれ一つまたは複数のメモリ領域を備えている。
 図1の構成例では、ジョブA、ジョブBに、分散処理システム101内の計算リソースを割り当てる場合を想定している。演算デバイス103-1は、ジョブAを処理するために割り当てた演算デバイス、演算デバイス103-2~103-4は、ジョブBを処理するために割り当てた演算デバイスである。
 メモリ領域106-1は、ジョブAを処理するために割り当てた演算デバイス103-1内のメモリ領域、メモリ領域107-1は、ジョブAに割り当てたインタコネクトデバイス104内のメモリ領域、メモリ領域106-2~106-4は、ユーザBに割り当てた演算デバイス103内のメモリ領域、メモリ領域107-2は、ユーザBに割り当てたインタコネクトデバイス104内のメモリ領域である。また、点線の囲み300は、ジョブAが利用する計算リソースを示し、実線の囲み400は、ジョブBが利用する計算資源を示している。
<分散ノードの装置構成>
 次に、分散ノードの具体的な装置構成例を説明する。本実施の形態では、各分散ノード103としては、例えば、Supermicro社製SYS-4028GR-TR2サーバ(以下、「サーバ」と称する。)を用いる。このサーバのCPUマザーボードには、CPUとしてIntel Xeon CPUプロセッサE5-2600V4を2台搭載し、メインメモリとして、DDR4-2400DIMM32GBのメモリカードを8枚搭載している。
 また、CPUマザーボードには、PCI Express 3.0 (Gen3)の16レーンスロットのドータボードが実装され、このスロットに、演算デバイス103として、NVIDIAのV100を4台、インタコネクトデバイス104として、Xillinx社製のVCU118 Evaluation ボード1台が搭載され、このEvaluation ボードには、QSFP28の光トランシーバ2台をインタコネクトとして実装する。分散ノード間は、QSFP28の光トランシーバに接続した光ファイバで、リング状に接続することで、分散処理システムを構成する。
 なお、演算デバイスとしては、具体的には、CPU(Central Processing Unit)や、GPU(Graphics Processing Unit)やFPGA、量子演算デバイス、人工知能(ニューロン)チップなどを用いることができる。
 なお、分散ノード間をリング構成以外の構成を用いて柔軟に接続する場合には、図1の集約スイッチを用いる必要がある。例えば、集約スイッチとしては、Mellanox社製のSB7800インフィニバンドスイッチを用いることができる。
<分散のノードの動作>
 図1を用いて本実施の形態における分散ノードの動作について説明する。図1では、分散処理システムにおいてユーザAとユーザBが分散深層学習を実行している場合を想定する。
 具体的には、学習ジョブのタスクの一つである勾配計算処理が終了した後、演算デバイスで得られた各ジョブの勾配データについて、All-Reduceといった集団通信プロトコルによって、例えば、同一の分散ノード内の演算デバイスどうしで、勾配データの加算が行われ、加算された勾配データが、さらに集約通信によって、インタコネクトを介して隣接する分散ノードの演算デバイスへ集約、加算処理される。
 同様にして、学習ジョブを実行している分散ノードからの勾配データを集約ノードで集約すると、そこで平均化処理された勾配データは、集約に関わる演算デバイスに分配通信されて、共有化される。共有化された勾配データを基に、学習を繰り返して、各演算デバイスにて学習パラメータを更新する。
 これらの集約通信や分配通信では、高速に勾配データを移動させるために、分散ノード内での演算デバイスとインタコネクトデバイス間、異なる分散ノード間のインタコネクトデバイス間では、各デバイスに内蔵されるメモリ領域を固定的に割り当てて、それぞれの固定的に割り当てたメモリアドレス同士でデータ転送を行う。前者の分散ノード内のデータ転送はダイレクトメモリアクセスと呼ばれ、後者の分散ノード間のデータ転送はリモートダイレクトメモリアクセスと呼ばれている。従来は、図1の左上の分散ノード102内にある4つの演算デバイスでは、単一のジョブに分散ノードのメモリが割り当てられ、一つの分散ノード102内のメモリを、一つのユーザが占有していた。
 しかし、本実施の形態では、図1左上の分散ノードの4つの演算デバイスの内、一番左側の演算デバイス103-1には、ジョブAの固定メモリ領域106-1、その他の3台の演算デバイス103-2~103-4には、ジョブBの固定メモリ領域106-2~106-4を割り当てる。また、この分散ノード102内のインタコネクトデバイス104では、ジョブAとジョブBのそれぞれに対して、個別の固定メモリ領域107-1及び107-2を割り当てている。
 このように、複数のジョブのそれぞれに対して1つの分散ノード内の演算デバイスおよびインタコネクトデバイスのメモリを割り当てることによって、ジョブAに伴うダイレクトメモリアクセスは、図1左上の分散ノードの一番左側の演算デバイス103-1に設けた固定メモリ領域106-1とインタコネクトデバイス104内のユーザAの固定メモリ領域107-1との間で実行される。また、異なる分散ノード間においては、インタコネクトデバイス104内のユーザAの固定メモリ領域107-1と、図1左下の分散ノード102のインタコネクトデバイス104に割り当てた固定メモリ領域107との間でリモートダイレクトアクセスメモリが行われる。
 同様に、ジョブBに対しても、ジョブBに伴うダイレクトメモリアクセスは、図1左上の分散ノードの右側3台の演算デバイス103-2~103-4に割り当てた固定メモリ領域106-2~106-4とインタコネクトデバイス104内のユーザBの固定メモリ領域107-2との間で実行される。また、異なる分散ノード間では、インタコネクトデバイス104内のユーザBの固定メモリ領域107-2と、図1右上の分散ノード102のインタコネクトデバイスに割り当てた固定メモリ領域との間でリモートダイレクトアクセスメモリが行われる。
 このように、複数のジョブのそれぞれに対して、ジョブ毎の固定メモリ領域を各分散ノードのデバイス内に設けることによって、分散ノード単位ではなく演算デバイス単位で、分散処理システムを利用するユーザあるいはジョブ数に応じた分散処理を実現でき、ユーザ数、学習ジョブの処理負荷の大きさに応じて高効率な分散処理が可能な分散処理システムを実現することができる。
[第2の実施の形態]
<分散処理システムの構成>
 図2は、本発明の第2の実施の形態を示す図である。第2の実施の形態は、第1の実施の形態のジョブA、ジョブBに加え、更にジョブC、ジョブDが加わり、各追加ユーザの学習ジョブの負荷が小さい場合のメモリ割り当て処理の様子を示したものである。図2では、点線500は、ジョブCに対する演算デバイスおよびインタコネクトデバイス内の固定メモリ領域を示し、ジョブCの固定メモリ領域106-2は、同一の演算デバイス103-1内において、ジョブAの固定メモリ領域106-1と併存している。メモリ領域107-2は、ジョブCに割り当てられたインタコネクトデバイス104内の固定メモリ領域である。メモリ領域106-3、106-4は、ユーザDに割り当てられた演算デバイス103-2、103-3内の固定メモリ領域である。メモリ領域107-3は、ユーザDに割り当てられたインタコネクトデバイス104内の固定メモリ領域である。
<分散ノードの動作>
 第2の実施の形態では、ジョブA、Bの学習ジョブの要求に加え、新たにユーザからジョブA、Bの処理負荷よりも処理負荷の軽い学習ジョブC、Dの要求があった場合を想定している。ジョブCは一番処理負荷が軽いので、ユーザAが利用していた左上の一番左側の演算デバイス103-1において、ジョブAに割り当てられたメモリ領域106-1とは別に、ユーザCに小さなメモリ領域106-2が割り当てられる。また、ジョブDの処理負荷は、ジョブCの処理負荷よりも重いので、ジョブBが使用していた演算デバイスのうち2台の演算デバイス103-2、103-3をジョブDに割り当てる。この際、ジョブBに対して割り当てていた固定メモリ領域をジョブDに対して割り当てるように割当ての変更を行う。
 次に、インタコネクトデバイス104内に、ジョブAとジョブBに割り当てた固定メモリ領域に加え、ジョブCとジョブDに対する固定メモリ領域を確保する。このように、各デバイス内において、各ジョブの固定メモリ領域の割り当てが行われ、各演算デバイスで各ユーザの学習ジョブが実行されることとなる。
 以上説明したように、第2の実施の形態では、各ジョブに対して、デバイス内の固定メモリ領域を個別に割り当て、さらに1つの演算デバイス内に、複数のジョブに対する固定デバイス領域を併存させるように構成したので、分散処理システムを、分散ノード単位での分割ではなく、分散ノードを構成する演算デバイス単位で、更には、演算デバイス内の固定メモリ領域単位で、分散処理システムを柔軟に分割することが可能となり、処理負荷の大きさの異なる複数のジョブを効率的に、かつ高速に処理することが可能な分散処理システムを提供することができる。
 [第3の実施の形態]
<分散処理システムの構成>
 図3A、図3Bは、本発明の第3の実施の形態に係る分散処理システムの構成例と動作例を示す図である。第2の実施の形態では、インタコネクトデバイスに、複数のジョブの各ジョブの固定メモリ領域を設けていたが、第3の実施の形態では、インタコネクトデバイスに、複数のジョブで共有するメモリ領域を設けている。
<分散ノードの動作>
 本実施の形態では、ジョブ数が増加して各ジョブに対して割り当てる固定メモリ領域が不足する場合に、一つの固定メモリ領域を複数のジョブで共有する。固定メモリ領域として割り当てることが可能なインタコネクトデバイスのメモリ領域が、ジョブBに対する固定メモリ領域ですべて消費される場合、他のジョブA、C、Dに対しては割り当てる固定メモリ領域がなくなってしまう。このため、図3Aの右図に記載のように、インタコネクトデバイス104のメモリ領域を、ジョブA、B、C、Dで共有する固定共有メモリ領域107とする。
 図3Bは、共有の態様の具体例を示したものである。図3の例では、時間t1で、ジョブBが、固定メモリ領域107の全てを利用してダイレクトメモリアクセスを行い、時間t2では、大きな固定メモリ領域を必要としないユーザA、C、Dが固定メモリ領域を同時にシェアしている。
 このように、複数のジョブ毎に固定メモリ領域を個別に割り当てるのではなく、複数のジョブがシェアする共有メモリにすることによって、インタコネクトデバイスのように、固定メモリ領域として割り当てるリソースが小さい場合にも、複数のジョブが利用可能な分散処理システムを提供することができる。本実施の形態によれば、複数のジョブを効率的に、かつ高速に処理することが可能な分散処理システムを提供することができる。
 また、時分割で固定メモリ領域を共有する場合、ダイレクトメモリアクセスで確保できる帯域を一つのユーザで占有できるので、高速なデータ転送が要求されるユーザを優先的に割り当てることができ、ジョブ毎のQoSを提供できるというメリットを有する。
 [第4の実施の形態]
<分散処理システムの構成>
 図4A、図4Bは、本発明の第4の実施の形態に係る分散ノードの構成例と動作タイムチャートを示す図である。
 図4Aの演算デバイス103では、ジョブAのために演算部A105-1と固定メモリ領域A106-1が割り当てられ、ジョブBのために演算部B105-2と固定メモリ領域B106-2が割り当てられている。インタコネクトデバイス104では、ジョブAのために固定メモリ領域A107-1が割り当てられ、ジョブBのために固定メモリ領域B107-2が割り当てられている。
 図4Bは、演算デバイス103内の演算のタイムチャート及び、演算デバイス-インタコネクトデバイス間の通信タイムチャートを図示したものである。演算デバイス103内の演算のタイムチャートにおいて、タスクA1、タスクA2は、演算デバイス103でのジョブAの演算時間、タスクBの演算時間は、ジョブBの演算時間である。演算デバイス-インタコネクトデバイス間の通信タイムチャートは、ジョブAの計算データの演算デバイス-インタコネクト間の通信時間を示したものである。
<分散ノードの動作>
 図4Bの演算タイムチャートにおいて、ジョブAは開始時刻にて開始され、タスクAが終了すると、演算デバイス-インタコネクトデバイス間でメモリ間ダイレクトメモリアクセスが行われる。深層学習の例では、各分散ノード間の計算結果の集約、共有がAll-Reduceなどの集団通信と呼ばれるプロトコルによる通信を介して行われる。この際、ユーザBがジョブ(この場合、タスクB後に演算デバイスーインタコネクト間で通信が発生しないものとする)を開始した場合、ジョブAが実行されている間は、ジョブB開始に伴うタスクBの演算を開始することができない。
 しかし、ジョブAのAllReduce通信が実行されると、ジョブAに対する演算デバイスの演算は行われないので、この時間、ジョブBの一部のタスクを実行することができる。例えば、ダイレクトメモリアクセスで、ジョブAでは1GBの勾配データが送られる場合を想定する。ジョブAの1GBのデータがインタコネクトデバイス104に転送された場合、インタコネクトデバイス104では、隣接する分散ノード内のキャッシュメモリやグローバルメモリからインタコネクトデバイスのメモリに対して、ダイレクトメモリアクセスを開始する。インタコネクトの帯域が100Gbit/sの場合、1GBのデータを転送する時間は80ミリ秒である。この80ミリ秒の間に、ジョブBのタスクを実行することができる。
 ジョブAのタスクAの実行時間が800ミリ秒で、次に、ジョブAのタスクAが実行されるというようにジョブAのタスクA1、A2が繰り返して実行されるとすると、ジョブAのみの処理だと、全演算デバイスの可稼働時間に対して、ジョブAの実行時間の割合は90%になる。ここで、ジョブBの負荷の割合が、ジョブAの負荷の10%とすると、ジョブAが使いきれなかった演算デバイスの残り10%の稼働時間をすべて利用することができ、演算デバイスの効率が100%になる。
 このように、演算デバイス内に、所定のジョブの処理データをインタコネクトデバイスへ転送するための専用の固定メモリ領域を設け、複数のジョブのダイレクトメモリアクセスの処理を演算デバイス内でスケジューリング制御することにより、演算デバイスの稼働時間を増やし、演算効率の向上を図ることができる。本実施の形態によれば、複数のジョブを効率的に、かつ高速に処理することが可能な分散処理システムを提供することができる。
 [第5の実施の形態]
 (分散ノードの動作)
 図5A、図5Bは、本発明の第5の実施の形態に係る分散ノードの構成例と動作タイムチャートを示す図である。第5の実施の形態では、ダイレクトメモリアクセスを行うメモリの間に、ハードウェア回路で生成した通信制御機能を有する通信コントローラが設置されている。
 本実施の形態では、処理負荷の大きいジョブAと小さいジョブBがあり、ジョブAとジョブBのダイレクトメモリアクセスが同時に行われる場合を想定している。図5Aに示すように、一つの演算デバイスに複数のジョブ毎に固定メモリ領域が割り当てられていて、同時にダイレクトメモリアクセスが行われる場合は、ダイレクトメモリアクセスの帯域が競合してしまう。また、複数のジョブの中に優先度の高いジョブがある場合には、優先度の高いジョブを先に処理する必要がある。
 図5Bにおいて、時間t1で、ユーザBのジョブが開始され、タスクが演算デバイスで処理され、その後、ユーザAのジョブが時間t2で開始されたとする。ユーザAの優先度が高いので、時間t2でユーザBのダイレクトメモリアクセスが開始された際に、通信コントローラ109が、ユーザBのダイレクトアクセスを中止し、その情報を演算デバイス103のスケジューラ108へ即時にフィードバックする。
 演算デバイス103のスケジューラ108は、ジョブAの演算の完了後、時間t3でジョブAのダイレクトメモリアクセスを開始させる。通信コントローラ109は、ジョブAのデータ転送の終了を検知したら、スケジューラ108にフィードバックし、時間t4でジョブBのダイレクトメモリアクセスを再開する。
 このように、演算デバイスとインタコネクトデバイス間でのダイレクトメモリアクセスを行う固定メモリ領域の間に、優先度の高いメモリアクセスを優先的にダイレクトメモリアクセスさせる通信コントローラをハードウェア回路で実現することで、レイテンシや帯域特性を劣化させることなく、優先度の高いジョブが発生した場合は、優先度の低いジョブのデータ転送を待機させ、優先度の高いジョブのデータ転送が完了してから、優先度の低いジョブのデータ転送を処理するといった処理が可能となり、優先度の異なる複数のジョブがある場合においても優先度の高いジョブの処理効率を向上させることができる。
 なお、通信コントローラを実現するハードウェア回路としては、ジョブと送信するデータを紐づける識別子の付与機能をダイレクトメモリアクセスの送信側の通信コントローラ109に設けて、どのジョブのダイレクトメモリアクセスかを識別する識別機能を受信側の通信コントローラ111に設けることで、送信側で優先処理などの複雑な制御が行われた場合でも、受信側でジョブ毎の識別を高速に行えるので、ユーザを紐づける識別子付与機能や識別機能をダイレクトメモリアクセスのメモリ間に設けることも、効率的で、高信頼な制御に好適である。
 尚、インタコネクトデバイス104から演算デバイス103にデータが送信される場合においても、インタコネクトデバイス104のスケジューラ110、通信コントローラ111、109により同様の処理が行われる。
 本発明は、多量の情報処理を行う大規模な分散処理システムや、負荷の異なる複数のジョブを同時に処理する分散処理システムに利用することができる。特に、ニューラルネットワークの機械学習や大規模な演算(大規模行列演算など)、あるいは大量なデータ情報処理を行うシステムに適用することができる。
101…分散処理システム、102…分散ノード、103-1~103-4…演算デバイス、104…インタコネクトデバイス、105、105-1~105-4…演算部、106、106-1~106-4…メモリ領域(演算デバイス)、107、107-1~107-2…メモリ領域(インタコネクトデバイス)、

Claims (7)

  1.  複数の演算デバイスとインタコネクトデバイスとを備えた複数の分散ノードが接続されている分散処理システムにおいて、
     1つの前記分散ノードにおける前記インタコネクトデバイス及び/または前記演算デバイスにおいて、前記分散処理システムが処理するジョブ毎にメモリ領域が割当てられ、前記インタコネクトデバイスの間、前記演算デバイスの間、前記インタコネクトデバイスと前記演算デバイスの間の少なくとも何れかにおいて、前記ジョブを処理するための前記メモリ領域の間のダイレクトメモリアクセスが実行される
     分散処理システム。
  2.  請求項1記載の分散処理システムにおいて、
     1つの前記演算デバイスに、複数のジョブのそれぞれを処理するための前記メモリ領域が割当てられる
     分散処理システム。
  3.  請求項2に記載の分散処理システムにおいて、
     前記演算デバイスは、特定のジョブのための処理が実行されていない時間に、前記特定のジョブと異なる他のジョブのための処理を実行する
     分散処理システム。
  4.  請求項1に記載の分散処理システムにおいて、
     1つの前記インタコネクトデバイスに、複数のジョブのそれぞれを処理するための前記メモリ領域が割当てられる
     分散処理システム。
  5.  請求項4に記載の分散処理システムにおいて、
     1つの前記インタコネクトデバイスに、複数のジョブのそれぞれを処理するための前記メモリ領域が時間分割に割当てられる
     分散処理システム。
  6.  請求項1~5のいずれか1項に記載の分散処理システムにおいて、
     前記分散ノードは、複数のジョブにおける前記ダイレクトメモリアクセスの中から、前記ジョブの優先度に応じて実行する前記ダイレクトメモリアクセスを選択する
     分散処理システム。
  7.  請求項6に記載の分散処理システムにおいて
     前記ダイレクトメモリアクセスにより転送されるデータは、前記ジョブ毎に異なる識別子を備え、
     前記インタコネクトデバイスは、前記識別子に基づいて、前記ダイレクトメモリアクセスにより転送されるデータを選択する
     分散処理システム。
PCT/JP2019/047633 2019-12-05 2019-12-05 分散処理システム WO2021111586A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021562285A JP7347537B2 (ja) 2019-12-05 2019-12-05 分散処理システム
US17/782,131 US20230004425A1 (en) 2019-12-05 2019-12-05 Distributed Processing System
PCT/JP2019/047633 WO2021111586A1 (ja) 2019-12-05 2019-12-05 分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/047633 WO2021111586A1 (ja) 2019-12-05 2019-12-05 分散処理システム

Publications (1)

Publication Number Publication Date
WO2021111586A1 true WO2021111586A1 (ja) 2021-06-10

Family

ID=76221832

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/047633 WO2021111586A1 (ja) 2019-12-05 2019-12-05 分散処理システム

Country Status (3)

Country Link
US (1) US20230004425A1 (ja)
JP (1) JP7347537B2 (ja)
WO (1) WO2021111586A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014225088A (ja) * 2013-05-15 2014-12-04 オリンパス株式会社 演算装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014225088A (ja) * 2013-05-15 2014-12-04 オリンパス株式会社 演算装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FUJII, HISASHI ET AL.: "Implementations Using TCA Architecture in QCD Library QUDA for GPUs", IPSJ SIG TECHNICAL REPORT. HIGH PERFORMANCE COMPUTING (HPC, vol. 2014 -HP, no. 35, 24 February 2014 (2014-02-24), pages 1 - 7, Retrieved from the Internet <URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=98721&item_no=1&attribute_id=1&file_no=1> [retrieved on 20200729] *
SATO, KENTA: "Implementation and Evaluation of GASNet for CPU using Tightly Coupled Accelerators (TCA", ISPJ SYMPOSIUM. HIGH PERFORMANCE COMPUTING AND COMPUTATIONAL SCIENCE SYMPOSIUM (HPCS, 30 May 2016 (2016-05-30), pages 68 - 76, XP055834682, Retrieved from the Internet <URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=163694&file_id=1&file_no=1> [retrieved on 20200729] *

Also Published As

Publication number Publication date
US20230004425A1 (en) 2023-01-05
JPWO2021111586A1 (ja) 2021-06-10
JP7347537B2 (ja) 2023-09-20

Similar Documents

Publication Publication Date Title
US12001681B2 (en) Distributed storage system and data processing method
CN104580396B (zh) 一种任务调度方法、节点及系统
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
US10715587B2 (en) System and method for load balancing computer resources
CA2982975A1 (en) Method, device and system for creating a massively parallelised executable object
EP2930619A2 (en) System and method for shared utilisation of virtualised computing resources
CN109154897B (zh) 分布式处理方法、存储介质、和分布式处理系统
US9158713B1 (en) Packet processing with dynamic load balancing
WO2017185285A1 (zh) 图形处理器任务的分配方法和装置
CN112817728B (zh) 任务调度方法、网络设备和存储介质
US20190272201A1 (en) Distributed database system and resource management method for distributed database system
CN111309488B (zh) 无人机集群的计算资源共享方法与系统及计算机存储介质
JP2023511467A (ja) 機械学習ワークロードのためのタスクスケジューリング
CN109729113B (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
Ranganath et al. Speeding up collective communications through inter-gpu re-routing
Pereira et al. Increasing the efficiency of fog nodes through of priority-based load balancing
CN114721818A (zh) 一种基于Kubernetes集群的GPU分时共享方法和系统
US9584594B2 (en) Dynamic provisioning of processing resources in a virtualized computational architecture
WO2021111586A1 (ja) 分散処理システム
US10877800B2 (en) Method, apparatus and computer-readable medium for application scheduling
JP2012038275A (ja) 取引計算シミュレーションシステム、方法及びプログラム
JP7396463B2 (ja) 分散処理ノードおよび分散処理システム
CN118012796B (zh) 中断资源管理方法、计算机设备及介质
Fan et al. Shuffle scheduling for MapReduce jobs based on periodic network status
CN111813562B (zh) 具有ooda多分区io资源池机制的服务器主机

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: 19954832

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021562285

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19954832

Country of ref document: EP

Kind code of ref document: A1