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

分散処理システム Download PDF

Info

Publication number
JP7347537B2
JP7347537B2 JP2021562285A JP2021562285A JP7347537B2 JP 7347537 B2 JP7347537 B2 JP 7347537B2 JP 2021562285 A JP2021562285 A JP 2021562285A JP 2021562285 A JP2021562285 A JP 2021562285A JP 7347537 B2 JP7347537 B2 JP 7347537B2
Authority
JP
Japan
Prior art keywords
job
distributed
processing system
distributed processing
memory area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021562285A
Other languages
English (en)
Other versions
JPWO2021111586A1 (ja
Inventor
猛 伊藤
健治 川合
顕至 田仲
勇輝 有川
和彦 寺田
健 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021111586A1 publication Critical patent/JPWO2021111586A1/ja
Application granted granted Critical
Publication of JP7347537B2 publication Critical patent/JP7347537B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/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

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)

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は、本発明の第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 (5)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPWO2021111586A1 JPWO2021111586A1 (ja) 2021-06-10
JP7347537B2 true JP7347537B2 (ja) 2023-09-20

Family

ID=76221832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021562285A Active JP7347537B2 (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
佐藤 賢太,密結合並列演算加速機構TCAによるGPU対応GASNetの実装と評価,情報処理学会 シンポジウム ハイパフォーマンスコンピューティングと計算科学シンポジウム(HPCS) 2016,日本,情報処理学会,2016年05月30日,pp.68-76
藤井 久史,GPU向けQCDライブラリQUDAのTCAアーキテクチャによる実装,情報処理学会 研究報告 ハイパフォーマンスコンピューティング(HPC) ,日本,情報処理学会,2014年02月24日,第2014-HPC-143巻,第35号,pp.1-7

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3239852B1 (en) Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform
KR102253582B1 (ko) Dram 기반 프로세싱 장치를 위한 확장 아키텍처
Cerrato et al. Supporting fine-grained network functions through Intel DPDK
US9501325B2 (en) System and method for shared utilization of virtualized computing resources
US20190121671A1 (en) Flexible allocation of compute resources
EP3082038A1 (en) Method, device and system for creating a massively parallelized executable object
US9158713B1 (en) Packet processing with dynamic load balancing
US20150296002A1 (en) System and method for load balancing computer resources
CN109154897B (zh) 分布式处理方法、存储介质、和分布式处理系统
JP2016503933A (ja) スケジューリングシステム、パケット処理をスケジューリングする方法及びモジュール
WO2017185285A1 (zh) 图形处理器任务的分配方法和装置
KR20150117258A (ko) 분산형 컴퓨팅 아키텍쳐
US20190272201A1 (en) Distributed database system and resource management method for distributed database system
CN111309488B (zh) 无人机集群的计算资源共享方法与系统及计算机存储介质
CN109729113B (zh) 管理专用处理资源的方法、服务器系统和计算机程序产品
CN110187970A (zh) 一种基于Hadoop MapReduce的分布式大数据并行计算方法
JP2024020271A (ja) 機械学習ワークロードのためのタスクスケジューリング
CN114721818A (zh) 一种基于Kubernetes集群的GPU分时共享方法和系统
JP7347537B2 (ja) 分散処理システム
US10157066B2 (en) Method for optimizing performance of computationally intensive applications
US20150296006A1 (en) Dynamic provisioning of processing resources in a virtualized computational architecture
JP7146075B2 (ja) 複数のプロセッサ装置と複数のインターフェースを有するデータ処理装置
JP7396463B2 (ja) 分散処理ノードおよび分散処理システム
JP2012038275A (ja) 取引計算シミュレーションシステム、方法及びプログラム
CN111813562B (zh) 具有ooda多分区io资源池机制的服务器主机

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230501

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230821

R150 Certificate of patent or registration of utility model

Ref document number: 7347537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150