JP7074017B2 - 分散処理システムおよび分散処理方法 - Google Patents
分散処理システムおよび分散処理方法 Download PDFInfo
- Publication number
- JP7074017B2 JP7074017B2 JP2018198230A JP2018198230A JP7074017B2 JP 7074017 B2 JP7074017 B2 JP 7074017B2 JP 2018198230 A JP2018198230 A JP 2018198230A JP 2018198230 A JP2018198230 A JP 2018198230A JP 7074017 B2 JP7074017 B2 JP 7074017B2
- Authority
- JP
- Japan
- Prior art keywords
- distributed processing
- node
- aggregated data
- processing node
- communication port
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Description
近年、深層学習がより複雑な問題に適用されるようになってきており、重みの総数が増加する傾向にある。このため、分散データや集計データのデータ量が増大し、集約通信時間と分配通信時間が増大している。
互いに接続されたN個(Nは2以上の整数)の分散処理ノードを備え、n番目(n=1,・・・,N)の分散処理ノードは、n+番目(n+=n+1、ただしn=Nの場合はn+=1)の分散処理ノードと双方向の通信が同時に可能な第1の通信ポートと、n-番目(n-=n-1、ただしn=1の場合はn-=N)の分散処理ノードと双方向の通信が同時に可能な第2の通信ポートとを備え、各分散処理ノードは、学習対象のニューラルネットワークの学習用のサンプルデータが入力されたときに、前記ニューラルネットワークのM個(Mは2以上の整数)の重みw[m](m=1,・・・,M)の各々について、前記ニューラルネットワークの損失関数の勾配をサンプルデータ毎に計算し、サンプルデータ毎の前記勾配を集計した数値である分散データD[m,n](m=1,・・・,M)を重みw[m]毎に生成し、N個の分散処理ノードのうち、予め指定された1番目の分散処理ノードは、自ノードで生成された前記分散データを第1の集計データとして、この第1の集計データを重みw[m]の番号mの順番にパケット化して、自ノードの前記第1の通信ポートから2番目の分散処理ノードに向けて送信し、N個の分散処理ノードのうち、前記1番目を除くk番目(k=2,・・・,N)の分散処理ノードは、(k-1)番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データと自ノードで生成された前記分散データとの和を、対応する重みw[m]毎に求めて更新後の第1の集計データを生成し、この第1の集計データを前記番号mの順番にパケット化して、自ノードの前記第1の通信ポートからk+番目(k+=k+1、ただしk=Nの場合はk+=1)の分散処理ノードに向けて送信し、前記1番目の分散処理ノードは、N番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データを第2の集計データとして、この第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから前記N番目の分散処理ノードに向けて送信し、前記k番目の分散処理ノードは、k+番目の分散処理ノードから自ノードの前記第1の通信ポートを介して受信した第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから(k-1)番目の分散処理ノードに向けて送信し、前記1番目の分散処理ノードは、2番目の分散処理ノードから自ノードの前記第1の通信ポートを介して第2の集計データを受信し、各分散処理ノードは、受信した前記第2の集計データに基づいて前記ニューラルネットワークの重みw[m]を更新することを特徴とするものである。
また、本発明の分散処理システムの1構成例において、各分散処理ノードは、前記1番目の分散処理ノードが前記第2の集計データを正常に受信できなかった場合に、前記第1の集計データの送信以降の処理を再度行うことを特徴とするものである。
k=2,・・・,N)の分散処理ノードが、(k-1)番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データと自ノードで生成された前記分散データとの和を、対応する重みw[m]毎に求めて更新後の第1の集計データを生成し、この第1の集計データを前記番号mの順番にパケット化して、自ノードの前記第1の通信ポートからk+番目(k+=k+1、ただしk=Nの場合はk+=1)の分散処理ノードに向けて送信する第3のステップと、前記1番目の分散処理ノードが、N番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データを第2の集計データとして、この第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから前記N番目の分散処理ノードに向けて送信する第4のステップと、前記k番目の分散処理ノードが、k+番目の分散処理ノードから自ノードの前記第1の通信ポートを介して受信した第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから(k-1)番目の分散処理ノードに向けて送信する第5のステップと、前記1番目の分散処理ノードが、2番目の分散処理ノードから自ノードの前記第1の通信ポートを介して第2の集計データを受信する第6のステップと、各分散処理ノードが、受信した前記第2の集計データに基づいて前記ニューラルネットワークの重みw[m]を更新する第7のステップとを含むことを特徴とするものである。
また、本発明の分散処理方法の1構成例において、各分散処理ノードは、前記第6のステップにおいて前記1番目の分散処理ノードが前記第2の集計データを正常に受信できなかった場合に、前記第2のステップ以降の処理を再度行うことを特徴とするものである。
以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係る深層学習用分散処理システムの構成例を示すブロック図である。図1の分散処理システムは、N個(Nは2以上の整数)の分散処理ノード1[n](n=1,・・・,N)と、番号nの分散処理ノード1[n](n=1,・・・,N)が次の番号n+(n+=n+1、ただしn=Nの場合はn+=1)の分散処理ノード1[n+]と互いに双方向に通信するための通信路2[n](n=1,・・・,N)とを備えている。なお、任意の通信路2[n](n=1,・・・,N)には、伝送路の他に、通信を中継する中継処理ノードが任意に介在することも可能である。
図3は分散処理ノード1[n]の集約通信処理とノード間集計処理と分配通信処理とを説明するフローチャートである。
Rt[m,1]=D[m,1] ・・・(2)
Rt[m,i]=Rt[m,i-1]+D[m,i] ・・・(3)
Rt[m,N]=Rt[m,N-1]+D[m,N] ・・・(4)
1番目の分散処理ノード1[1]は、分散処理ノード1[N]から中間集計データRt[m,N]を自ノードの通信ポート11および通信路2[N]を介して受信する(図3ステップS113,S114)。
集約通信は、分散処理ノード1[1]→分散処理ノード1[2]→・・・→分散処理ノード1[N]→分散処理ノード1[1]という経路で行われる。分配通信は、分散処理ノード1[1]→分散処理ノード1[N]→・・・→分散処理ノード1[2]→分散処理ノード1[1]という経路で行われる。
次に、本発明の第2の実施例について説明する。本実施例は、第1の実施例をより具体的に説明するものである。図5は本実施例に係る分散処理ノード1[1]の構成例を示すブロック図、図6は本実施例に係る分散処理ノード1[k](k=2,・・・,N)の構成例を示すブロック図である。
Claims (6)
- リング状に配置され、隣接するノードと通信路を介して互いに接続されたN個(Nは2以上の整数)の分散処理ノードを備え、
n番目(n=1,・・・,N)の分散処理ノードは、n+番目(n+=n+1、ただしn=Nの場合はn+=1)の分散処理ノードと双方向の通信が同時に可能な第1の通信ポートと、n-番目(n-=n-1、ただしn=1の場合はn-=N)の分散処理ノードと双方向の通信が同時に可能な第2の通信ポートとを備え、
各分散処理ノードは、学習対象のニューラルネットワークの学習用のサンプルデータが入力されたときに、前記ニューラルネットワークのM個(Mは2以上の整数)の重みw[m](m=1,・・・,M)の各々について、前記ニューラルネットワークの損失関数の勾配をサンプルデータ毎に計算し、サンプルデータ毎の前記勾配を集計した数値である分散データD[m,n](m=1,・・・,M)を重みw[m]毎に生成し、
N個の分散処理ノードのうち、予め指定された1番目の分散処理ノードは、自ノードで生成された前記分散データを第1の集計データとして、この第1の集計データを重みw[m]の番号mの順番にパケット化して、自ノードの前記第1の通信ポートから2番目の分散処理ノードに向けて送信し、
N個の分散処理ノードのうち、前記1番目を除くk番目(k=2,・・・,N)の分散処理ノードは、(k-1)番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データと自ノードで生成された前記分散データとの和を、対応する重みw[m]毎に求めて更新後の第1の集計データを生成し、この第1の集計データを前記番号mの順番にパケット化して、自ノードの前記第1の通信ポートからk+番目(k+=k+1、ただしk=Nの場合はk+=1)の分散処理ノードに向けて送信し、
前記1番目の分散処理ノードは、N番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データを第2の集計データとして、この第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから前記N番目の分散処理ノードに向けて送信し、
前記k番目の分散処理ノードは、k+番目の分散処理ノードから自ノードの前記第1の通信ポートを介して受信した第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから(k-1)番目の分散処理ノードに向けて送信し、
前記1番目の分散処理ノードは、2番目の分散処理ノードから自ノードの前記第1の通
信ポートを介して第2の集計データを受信し、
各分散処理ノードは、受信した前記第2の集計データに基づいて前記ニューラルネットワークの重みw[m]を更新することを特徴とする分散処理システム。 - 請求項1記載の分散処理システムにおいて、
各分散処理ノードは、
前記分散データを生成するノード内集計処理部と、
自ノードが前記1番目の分散処理ノードとして機能する場合に、前記第1の集計データを重みw[m]の番号mの順番にパケット化して、自ノードの前記第1の通信ポートから2番目の分散処理ノードに向けて送信し、自ノードが前記k番目の分散処理ノードとして機能する場合に、前記更新後の第1の集計データを前記番号mの順番にパケット化して、自ノードの前記第1の通信ポートからk+番目の分散処理ノードに向けて送信する第1の送信部と、
自ノードの前記第2の通信ポートから受信するパケットから前記第1の集計データを取得する第1の受信部と、
自ノードが前記1番目の分散処理ノードとして機能する場合に、前記第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから前記N番目の分散処理ノードに向けて送信し、自ノードが前記k番目の分散処理ノードとして機能する場合に、受信した前記第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから(k-1)番目の分散処理ノードに向けて送信する第2の送信部と、
自ノードの前記第1の通信ポートから受信するパケットから前記第2の集計データを取得する第2の受信部と、
自ノードが前記k番目の分散処理ノードとして機能する場合に、前記更新後の第1の集計データを生成する集計データ生成部と、
受信した前記第2の集計データに基づいて前記ニューラルネットワークの重みw[m]を更新する重み更新処理部とを備えることを特徴とする分散処理システム。 - 請求項1または2記載の分散処理システムにおいて、
各分散処理ノードは、前記1番目の分散処理ノードが前記第2の集計データを正常に受信できなかった場合に、前記第1の集計データの送信以降の処理を再度行うことを特徴とする分散処理システム。 - リング状に配置され、隣接するノードと通信路を介して互いに接続されたN個(Nは2以上の整数)の分散処理ノードを備え、n番目(n=1,・・・,N)の分散処理ノードが、n+番目(n+=n+1、ただしn=Nの場合はn+=1)の分散処理ノードと双方向の通信が同時に可能な第1の通信ポートと、n-番目(n-=n-1、ただしn=1の場合はn-=N)の分散処理ノードと双方向の通信が同時に可能な第2の通信ポートとを備えたシステムにおける分散処理方法であって、
各分散処理ノードが、学習対象のニューラルネットワークの学習用のサンプルデータが入力されたときに、前記ニューラルネットワークのM個(Mは2以上の整数)の重みw[m](m=1,・・・,M)の各々について、前記ニューラルネットワークの損失関数の勾配をサンプルデータ毎に計算し、サンプルデータ毎の前記勾配を集計した数値である分散データD[m,n](m=1,・・・,M)を重みw[m]毎に生成する第1のステップと、
N個の分散処理ノードのうち、予め指定された1番目の分散処理ノードが、自ノードで生成された前記分散データを第1の集計データとして、この第1の集計データを重みw[m]の番号mの順番にパケット化して、自ノードの前記第1の通信ポートから2番目の分散処理ノードに向けて送信する第2のステップと、
N個の分散処理ノードのうち、前記1番目を除くk番目(k=2,・・・,N)の分散
処理ノードが、(k-1)番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データと自ノードで生成された前記分散データとの和を、対応する重みw[m]毎に求めて更新後の第1の集計データを生成し、この第1の集計データを前記番号mの順番にパケット化して、自ノードの前記第1の通信ポートからk+番目(k+=k+1、ただしk=Nの場合はk+=1)の分散処理ノードに向けて送信する第3のステップと、
前記1番目の分散処理ノードが、N番目の分散処理ノードから自ノードの前記第2の通信ポートを介して受信した第1の集計データを第2の集計データとして、この第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから前記N番目の分散処理ノードに向けて送信する第4のステップと、
前記k番目の分散処理ノードが、k+番目の分散処理ノードから自ノードの前記第1の通信ポートを介して受信した第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから(k-1)番目の分散処理ノードに向けて送信する第5のステップと、
前記1番目の分散処理ノードが、2番目の分散処理ノードから自ノードの前記第1の通信ポートを介して第2の集計データを受信する第6のステップと、
各分散処理ノードが、受信した前記第2の集計データに基づいて前記ニューラルネットワークの重みw[m]を更新する第7のステップとを含むことを特徴とする分散処理方法。 - 請求項4記載の分散処理方法において、
前記第3のステップは、前記k番目の分散処理ノードが、自ノードの前記第2の通信ポートから受信するパケットから前記第1の集計データを取得するステップと、前記更新後の第1の集計データを生成するステップと、前記更新後の第1の集計データを前記番号mの順番にパケット化して、自ノードの前記第1の通信ポートからk+番目の分散処理ノードに向けて送信するステップとを含み、
前記第4のステップは、前記1番目の分散処理ノードが、自ノードの前記第2の通信ポートから受信するパケットから前記第1の集計データを取得するステップと、取得した第1の集計データを第2の集計データとして、この第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから前記N番目の分散処理ノードに向けて送信するステップとを含み、
前記第5のステップは、前記k番目の分散処理ノードが、自ノードの前記第1の通信ポートから受信するパケットから前記第2の集計データを取得するステップと、受信した前記第2の集計データを前記番号mの順番にパケット化して、自ノードの前記第2の通信ポートから(k-1)番目の分散処理ノードに向けて送信するステップとを含み、
前記第6のステップは、前記1番目の分散処理ノードが、自ノードの前記第1の通信ポートから受信するパケットから前記第2の集計データを取得するステップを含むことを特徴とする分散処理方法。 - 請求項4または5記載の分散処理方法において、
各分散処理ノードは、前記第6のステップにおいて前記1番目の分散処理ノードが前記第2の集計データを正常に受信できなかった場合に、前記第2のステップ以降の処理を再度行うことを特徴とする分散処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018198230A JP7074017B2 (ja) | 2018-10-22 | 2018-10-22 | 分散処理システムおよび分散処理方法 |
PCT/JP2019/039449 WO2020085058A1 (ja) | 2018-10-22 | 2019-10-07 | 分散処理システムおよび分散処理方法 |
US17/287,413 US20220004842A1 (en) | 2018-10-22 | 2019-10-07 | Distributed Processing System and Distributed Processing Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018198230A JP7074017B2 (ja) | 2018-10-22 | 2018-10-22 | 分散処理システムおよび分散処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020067687A JP2020067687A (ja) | 2020-04-30 |
JP7074017B2 true JP7074017B2 (ja) | 2022-05-24 |
Family
ID=70330326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018198230A Active JP7074017B2 (ja) | 2018-10-22 | 2018-10-22 | 分散処理システムおよび分散処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220004842A1 (ja) |
JP (1) | JP7074017B2 (ja) |
WO (1) | WO2020085058A1 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04290155A (ja) * | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | 並列データ処理方式 |
JP3136088B2 (ja) * | 1996-02-22 | 2001-02-19 | シャープ株式会社 | データ処理装置及びデータ処理方法 |
-
2018
- 2018-10-22 JP JP2018198230A patent/JP7074017B2/ja active Active
-
2019
- 2019-10-07 US US17/287,413 patent/US20220004842A1/en active Pending
- 2019-10-07 WO PCT/JP2019/039449 patent/WO2020085058A1/ja active Application Filing
Non-Patent Citations (1)
Title |
---|
SERGEEV, Alexander, DEL BALSO, Mike,"Horovod: fast and easy distributed deep learning in TensorFlow",arXiv,米国,arXiv,2018年02月21日,pp.1-10,https://arxiv.org/abs/1802.05799v3 |
Also Published As
Publication number | Publication date |
---|---|
WO2020085058A1 (ja) | 2020-04-30 |
US20220004842A1 (en) | 2022-01-06 |
JP2020067687A (ja) | 2020-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6753874B2 (ja) | 分散深層学習システム | |
JP6981329B2 (ja) | 分散深層学習システム | |
CN108111335A (zh) | 一种调度和链接虚拟网络功能的方法及系统 | |
JP7010153B2 (ja) | 分散処理システムおよび分散処理方法 | |
WO2020003849A1 (ja) | 分散深層学習システム、分散深層学習方法、およびコンピューティングインタコネクト装置 | |
JP7135743B2 (ja) | 分散処理システムおよび分散処理方法 | |
CN106302170B (zh) | 一种无线云计算系统的资源分配方法 | |
JP7074017B2 (ja) | 分散処理システムおよび分散処理方法 | |
JP2015164245A (ja) | フロー経路変更計算装置、フロー経路変更計算システムおよびフロートラヒック量計算装置 | |
JP7192984B2 (ja) | 分散処理システムおよび分散処理方法 | |
WO2019159784A1 (ja) | 分散処理システムおよび分散処理方法 | |
JP7074018B2 (ja) | 分散処理システムおよび分散処理方法 | |
CN110300168A (zh) | 一种基于多边缘服务器协作的并发任务优化方法 | |
JP7135468B2 (ja) | 分散処理システムおよび分散処理方法 | |
KR101913745B1 (ko) | 소프트웨어 정의 네트워크에서 데이터 평면 애플리케이션을 활용하여 전송 경로를 설정하는 장치 및 방법 | |
JP7420228B2 (ja) | 分散処理システムおよび分散処理方法 | |
JP2020003860A (ja) | 学習システム、処理装置、処理方法、およびプログラム | |
JP7272460B2 (ja) | 分散深層学習システム | |
CN114626523A (zh) | 训练深度学习模型的方法、装置、设备以及存储介质 | |
JP7248110B2 (ja) | 分散深層学習システム | |
US20220391666A1 (en) | Distributed Deep Learning System and Distributed Deep Learning Method | |
TW202416188A (zh) | 聯邦學習方法及系統 | |
WO2021111491A1 (ja) | 分散深層学習システムおよび分散深層学習方法 | |
JP2023179168A (ja) | サーバ装置 | |
CN117763376A (zh) | 一种数据聚合方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220203 |
|
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: 20220412 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220425 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7074017 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |