JP3524430B2 - 並列計算機におけるリダクション処理方法 - Google Patents
並列計算機におけるリダクション処理方法Info
- Publication number
- JP3524430B2 JP3524430B2 JP14526299A JP14526299A JP3524430B2 JP 3524430 B2 JP3524430 B2 JP 3524430B2 JP 14526299 A JP14526299 A JP 14526299A JP 14526299 A JP14526299 A JP 14526299A JP 3524430 B2 JP3524430 B2 JP 3524430B2
- Authority
- JP
- Japan
- Prior art keywords
- computer
- computers
- data
- power
- processing
- 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.)
- Expired - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
Description
するN個の計算機が持つデータに対して、各計算機内の
同位置にある全てのデータを演算する並列計算機におけ
るリダクション処理方法に係り、特に、前記N個の計算
機が高速に同一の演算結果を得ることを可能にした並列
計算機におけるリダクション処理方法に関する。
の計算機で同一の演算結果を得るためのリダクション処
理に関する従来技術として、特開平9−81530号公
報等に記載された技術が知られている。この従来技術
は、ハイパーキューブアルゴリズムを用いたコンビネー
ション処理部(以下、演算部という)と、演算部での処
理後の演算を省いた処理(以下、収集部という)とを使
用することにより行われている。
ューブアルゴリズムは、並列計算機を構成する計算機の
個数が2のべき乗個の場合にしか適用することができな
いものである。このため、前述のハイパーキューブアル
ゴリズムを使用する従来技術は、計算機の個数が2のべ
き乗個でない場合、全計算機個数より小さい最大の2の
べき乗(=2k )個の計算機(以下、2のべき乗個の計
算機という)と、最大の2のべき乗(=2k )個を超え
る計算機(以下、端数計算機という)とに分け、端数計
算機が、2のべき乗個の計算機に全データを転送し、2
のべき乗個の計算機が、演算を行い(以下、転入ステッ
プという)、端数計算機のデータを保持する状態で演算
部及び収集部での処理を行う必要があり、また、収集部
での処理終了後、2のべき乗個の計算機が端数計算機に
演算結果を転送する(以下、転出ステップという)必要
があるものである。
並列計算機を構成する計算機の個数が2のべき乗個の場
合に、最適なリダクション処理を行うことができるもの
であるが、計算機個数が2のべき乗個でない場合、端数
計算機の処理だけで2のべき乗個の計算機による処理と
同一の時間が余分にかかってしまうという問題点を有し
ている。このため、前述した従来技術は、全体の計算時
間を短縮するために並列計算機を構成する計算機個数を
増加させても、前述した従来技術によるリダクション処
理を行うと、計算機を増加したメリットが損なわれてし
まうという問題点を生じる。
解決し、並列計算機を構成する計算機個数をNとし、N
が、2n <N<2n+1−1(nは自然数)となる場合
に、端数計算機の処理にかかる時間を短縮することがで
きる並列計算機におけるリダクション処理方法を提供す
ることにある。
は、固有の識別番号を有する複数個の計算機がネットワ
ークで結合され、演算に関わる計算機が保持するデータ
を、演算部と収集部とにより演算し、演算に関わる計算
機で同一の演算結果を得る並列計算機におけるリダクシ
ョン処理方法において、演算に関わる計算機個数をNと
し、Nが2n <N<2n+1 であり、かつ、N−2n (n
は自然数)が2m (mは自然数)で割り切れる場合、2
n 個の計算機を2のべき乗の計算機とし、残りのN−2
n 個の計算機を端数計算機とし、前記端数計算機は、前
記2のべき乗の計算機と同時に演算部を行い、途中で前
記2のべき乗の計算機に演算済みのデータを転入して演
算させる演算部を実行することにより達成される。
数をNとし、Nが2n <N<2n+1−1であり、かつ、
N−2n (nは自然数)が2m (mは自然数)で割り切
れない場合、2n 個の計算機を2のべき乗の計算機と
し、残りのN−2n 個の計算機のうち2m (mは自然
数)で割り切れる数の計算機を端数計算機とし、残りの
計算機を余り計算機とし、前記余り計算機を除く計算機
は、データを転入して演算し、途中で、余り計算機が、
2のべき乗の計算機にデータを分割して転入して演算さ
せる演算部を実行することにより達成される。
おけるリダクション処理方法の一実施形態を図面により
詳細に説明する。
に基づいて、各計算機に適用する処理方法を決定する手
順を説明するフローチャート、図5は本発明が適用され
る並列計算機の構成例、各計算機の構成例を示すブロッ
ク図及び記憶装置に格納される演算データの例を説明す
る図である。図5において、501はネットワーク、5
02〜507は計算機“1”〜“n−1”、508は通
信装置、509は演算処理装置、510は記憶装置であ
る。
ョン処理方法は、ペアとなる計算機との間で異なる部分
データをお互いに転送し、相手計算機から受信する部分
データと自計算機が持つ同位置の部分データとに対して
加算等の演算を行うコンビネーション処理を使用するも
のである。
用される並列計算機の構成を説明する。本発明が適用さ
れる並列計算機は、n台の計算機502〜507がネッ
トワーク501によって結合されて構成される。そし
て、各計算機は、計算機“0”502を例に示している
ように、ネットワーク501を介して計算機相互間で通
信を行う通信装置508と、演算を行う演算処理装置5
09と、データを保持する記憶装置510とにより構成
されている。
“0”502の記憶装置510の例として、図5(B)
に示すように、初期データ511と、演算結果512と
が格納される。初期データ511は、分割された複数の
部分データ513により構成され、図示例における初期
データ511の配列は、計算機上で初期データを4分割
した部分データの配列の例であり、例えば、図5(B)
におけるS1{0}は、計算機“0”上で4分割した2
番目の部分データである。また、演算結果512の配列
は、計算機“0”〜計算機“n−1”において、部分デ
ータを演算して得られた部分データ514の配列であ
り、S1{01234...n−1}は、計算機“0”〜
計算機“n−1”の各計算機の2番目の部分データを演
算して得られた演算結果を示している。すなわち、Si
{j}は、計算機“j”のi+1番目の部分データを意
味しており、Si{jk}は、部分データSi{j}
と、Si{k}とを演算した結果を意味している。
計算機を構成する計算機の個数に基づいて、各計算機に
適用する処理方法を決定する手順を説明する。
が2のべき乗個であるか否か、計算機の個数が2のべき
乗個でない場合、端数計算機の個数が偶数か否か、端数
計算機の個数が偶数でない場合、計算機の個数が2のべ
き乗個−1であるか否かをチェックして並列計算機を構
成している計算機の個数を判定する(ステップ101〜
103)。
2のべき乗個であると判定された場合、従来技術による
ハイパーキューブアルゴリズムにより演算部での処理を
行い、また、従来技術によるハイパーキューブアルゴリ
ズムにより収集部での処理を行う(ステップ104)。
で、端数計算機の個数が2のべき乗個−1であると判定
された場合、従来技術の場合と同様に、演算部での処理
の前に転入ステップを行い、端数計算機のデータを2の
べき乗の計算機に転送し、従来技術によるハイパーキュ
ーブアルゴリズムにより演算部での処理を行い、従来技
術によるハイパーキューブアルゴリズムにより収集部で
の処理を行う。処理後、2のべき乗計算機内の演算結果
を端数計算機に転送する転出ステップを行う(ステップ
105)。
で、端数計算機の個数が奇数で、2のべき乗個−1でな
いと判定された場合、演算部、収集部を行うとき、余り
計算機がそれぞれ異なる2のべき乗の計算機に対して、
余り計算機が持つ異なる1/2のデータを対象に転入ス
テップ、転出ステップを2回に別けて行う。すなわち、
余り計算機を除く計算機がハイパーキューブアルゴリズ
ムによりデータの転送と演算を行う。その途中で、余り
計算機が2のべき乗の計算機にデータを分割して転送し
演算する演算部の処理を行う。ままた、余り計算機を除
く計算機が、ハイパーキューブアルゴリズムにより演算
結果の転送を行う。その途中で、2のべき乗の計算機か
ら余り計算機へ演算結果を分割して転送する収集部の処
理を行う。なお、この処理の詳細は、図3、図4により
後述する(ステップ106)。
数が偶数個であると判定された場合、全ての計算機がハ
イパーキューブアルゴリズムにより演算部、収集部の処
理を行うが、途中で端数計算機の演算済みデータのみを
対象に転入ステップ、転出ステップを行う。すなわち、
全ての計算機がハイパーキューブアルゴリズムによりデ
ータの転送、演算を行う、その途中で、端数計算機の演
算済みデータを2のべき乗の計算機に転送、演算する演
算部の処理を行う。また、全ての計算機がハイパーキュ
ーブアルゴリズムにより演算結果の転送を行う。その途
中で、2のべき乗の計算機の演算済み結果を端数計算機
に転送する収集部の処理を行う。なお、この処理の詳細
は、図2により後述する(ステップ107)。
の従来技術によるデータの流れを、計算機個数が6の場
合を例として、転入ステップと演算部とについて説明す
る図、図7は計算機個数が2のべき乗でない場合の従来
技術によるデータの流れを、計算機個数が6の場合を例
として、転出ステップと収集部とについて説明する図で
あり、本発明によるデータの流れを説明する前に、従来
技術によるデータの流れについて説明する。なお、この
例では計算機“4”、“5”が端数計算機となる。
計算機とその計算機が持つデータを表しており、矢印6
08はデータ転送とデータを受信した計算機が演算を行
うことを表している。また、矢印701は演算結果の転
送を表している。
ータ転送の内容と転送相手及び演算後に各計算機が持つ
演算済みデータについて説明する。
各計算機が持つ初期データを示している。
は、次のように処理が行われる。 (a)端数計算機“4”のデータS0{4}、S1{4}、S2
{4}、S3{4}(以下、これらの各部分データを纏めてS012
3{4}と記述する)を計算機“0”へ転送する。計算機
“0”では、対応するデータS0123{0}との演算を行い、
S0123{04}を得る(以下、データの転送部分を「計算機
“4”S0123{4}⇒計算機“0”」等と記述し、その後得
た演算結果を「計算機“0”S0123{04}」等と記述す
る)。 (b)計算機“5”S0123{5}⇒計算機“1” 計算機“1”S0123{15} このような転入ステップにより端数計算機“4”、
“5”のデータが計算機“0”、“1”に含まれること
になり、以降2のべき乗の計算機のみで処理を行うこと
ができる。
では、次のような処理が行われる。 (a)計算機“0”の部分データS23{04}と計算機
“1”の部分データS01{15}をお互いに転送し、
各計算機が持つ同位置の部分データとの演算を行い、そ
れぞれ、S01{0145}、S23{0145}を得る(以
下、データをお互いに転送する部分を「計算機“0”S2
3{04}⇔計算機“1”S01{15}」等と記述し、その後得た
演算結果を「計算機“0”S01{0145}:計算機“1”S23
{0145}」等と記述する)。 (b)計算機“2”S23{2}⇔計算機“3”S01{3} 計算機“2”S01{23}:計算機“3”S23{23}
では、次のような処理が行われる。 (a)計算機“0”S1{0145}⇔計算機“2”S0{23} 計算機“0”S0{012345}:計算機“2”S1{012345} (b)計算機“1”S3{0145}⇔計算機“3”S2{23} 計算機“1”S2{012345}:計算機“3”S3{012345} 以上で、演算部による処理が完了し、2のべき乗の計算
機が全ての演算結果を分散して保持したことになる。
では、次のような処理が行われる。 (a)計算機“0”S0{012345}⇔計算機“2”S1{01234
5} 計算機“0”S01{012345}:計算機“2”S01{012345} (b)計算機“1”S2{012345}⇔計算機“3”S3{01234
5} 計算機“1”S23{012345}:計算機“3”S23{012345}
では、次のような処理が行われる。 (a)計算機“0”S01{012345}⇔計算機“1”S23{012
345} 計算機“0”S0123{012345}:計算機“1”S0123{01234
5} (b)計算機“2”S01{012345}⇔計算機“3”S23{012
345} 計算機“2”S0123{012345}:計算機“3”S0123{01234
5} 以上で、収集部の処理が完了し、2のべき乗の計算機が
全ての演算結果を得ることができる。
は、次のような処理が行われる。 (a)計算機“0”S0123{012345}⇒計算機“4”計算
機“4”S0123{012345} (b)計算機“1”S0123{012345}⇒計算機“5”計算
機“5”S0123{012345}
端数計算機を含めて全ての計算機は全ての演算結果を得
ることができるが、転入ステップ、転出ステップで転送
するデータが端数計算機が持つデータの全てを対象とし
ているため、転入ステップ、転出ステップが、それぞれ
演算部、収集部と同じくらいの処理時間を要してしまう
ことになる。
n+1 かつN−2n が2m (n、mは自然数)で割り切れ
る任意のN台の計算機による本発明の実施形態によるリ
ダクション処理を説明するフローチャートであり、以
下、図2を参照して、本発明の実施形態による処理を演
算部と収集部に分けて説明する。
算機の個数をN2、端数計算機の個数を割り切れる最大
の2m (mは自然数)をNHとする。また、Rを自計算
機の識別番号とする。Shiftはハイパーキューブアルゴ
リズムを使用するための変数であり、1に初期設定する
(ステップ201)。
数計算機であるか、2のべき乗の計算機であるか判定す
る。R≧N2の場合、自計算機が端数計算機であると判
定し、N2>Rの場合、自計算機が2のべき乗の計算機
であると判定して処理を分ける(ステップ202)。
計算機であると判定した場合、通信相手となる計算機の
番号を、RとShiftとのビット毎の論理積をとった値が
1であればR−Shiftとして、論理積の値が0であれば
R+Shiftとして求める(ステップ203)。
とShiftとのビット毎の論理積をとった値が1であれ
ば、演算済み部分データ(演算前は全てのデータ)の上
位1/2を送信し下位1/2を受信してデータをお互い
に転送する。また、論理積の値が0であれば下位1/2
を送信し上位1/2を受信してデータをお互いに転送す
る。その後、受信した部分データに対して演算を行う
(ステップ204)。
のShiftとNHとを比較する。ShiftがNHより小さい
間、ステップ203以降の処理を繰り返す。また、Shi
ftがNH以上になると、端数計算機は、R−N2を識別
番号とする2のべき乗の計算機に演算済み部分データを
送信する。このとき送信するデータ量は、1つの計算機
が持つデータ量の1/NHとなる(ステップ205〜2
07)。
が2のべき乗の計算機であると判定した場合、2のべき
乗の計算機は、端数計算機の場合のステップ203での
方法と同様にして通信相手となる計算機を求め、また、
ステップ204での方法と同様にして部分データをお互
いに転送し受信した部分データに対して演算を行う(ス
テップ208、209)。
のShiftがNHと等しくなく、かつ、N2より小さい
間、ステップ208からの処理を繰り返す(ステップ2
10、211、213)。
しく、N−RがN2より大きいと判別された場合、Shi
ftがNHと等しく、N−RがN2より大きい識別番号を
持つ計算機は、R+N2を識別番号とする端数計算機よ
り、前述のステップ207で送信された1/NHの部分
データを受信して演算を行う(ステップ212)。
了したとき演算部での処理が終了し、全ての計算機のデ
ータを演算した結果が2のべき乗の計算機に1/N2ず
つ分散して保持された状態になる。
収集部の処理が開始され、2のべき乗の計算機は、Shi
ftを1/2にしてShiftとし、ステップ208の場合と
同一の方法により通信相手の計算機の番号を求め、求め
た番号の計算機が保持する演算済み部分データと自計算
機が保持する演算済み部分データとをお互いに転送する
(ステップ214〜216)。
1より大きい間、ステップ214からの処理を繰り返す
(ステップ217、219)。
しく、N−RがN2より大きいと判別された場合、Shi
ftがNHと等しく、N−RがN2より大きい識別番号を
持つ計算機は、R+N2を識別番号とする端数計算機に
1/NHの演算済み部分データを送信する(ステップ2
18)。
なるとき処理を終了し、2のべき乗の計算機で同じ演算
結果を得ることができる。
別番号とする2のべき乗の計算機よりステップ218で
送信された1/NHの演算済み部分データを受信する
(ステップ220)。
/2にしてShiftとし、ステップ203の場合と同一の
方法により通信相手を求め、求めた計算機と自計算機が
保持する演算済み部分データをお互いに転送する(ステ
ップ221〜223)。
221からの処理を繰り返し、Shiftが1以下になった
ときに処理を終了する。これにより、端数計算機内で2
のべき乗の計算機と同じ演算結果を得ることができる
(ステップ224)。
れば、端数計算機内でステップ203から206、及
び、ステップ221から224の処理を行うことによ
り、ステップ207で端数計算機が2のべき乗の計算機
へ送信するデータと、ステップ218で2のべき乗の計
算機が端数計算機へ送信するデータを1/NHに削減す
ることができ、処理時間の短縮を図ることができる。
の本発明の実施形態によるデータの流れを、転入ステッ
プと演算部とについて説明する図、図9は計算機個数が
2のべき乗でない場合の本発明の実施形態によるデータ
の流れを、転出ステップと収集部とについて説明する図
であり、図8、図9を参照して本発明の実施形態による
前述した図2に示すフローによるデータの流れについて
説明する。なお、この例は、端数計算機個数が2m (m
は自然数)で割り切れる6台とした場合の例である。
各計算機が持つ初期データを示している。
では、次のように処理が行われる。 (a)計算機“0”S23{0}⇔計算機“1”S01{1} 計算機“0”S01{01}:計算機“1”S23{01} (b)計算機“2”S23{2}⇔計算機“3”S01{3} 計算機“2”S01{23}:計算機“3”S23{23} (c)計算機“4”S23{4}⇔計算機“5”S01{5} 計算機“4”S01{45}:計算機“5”S23{45} 前述の演算部ステップ1では、2のべき乗の計算機(計
算機0〜3)の処理と同時に端数計算機(計算機4、
5)も同様な処理を行っている。
プでは、次のように処理が行われる。 (a)計算機“4”S01{45}⇒計算機“0”:計算機
“0”S01{0145} (b)計算機“5”S23{45}⇒計算機“1”:計算機
“1”S23{0145} 前述の転入ステップでは、端数計算機がステップ1によ
り得た演算結果のみを2のべき乗の計算機に転送し、2
のべき乗の計算機が演算を行っている。この転入ステッ
プにより、端数計算機が持つデータが2のべき乗の計算
機内に保持されることになる。
では、次のように処理が行われる。 (a)計算機“0”S1{0145}⇔計算機“2”S0{23} 計算機“0”S0{012345}:計算機“2”S1{012345} (b)計算機“1”S3{0145}⇔計算機“3”S2{23} 計算機“1”S2{012345}:計算機“3”S3{012345} 前述の演算部ステップ2で演算部が完了し、2のべき乗
の計算機内に演算結果が分割されて保持されることにな
る。
では、次のように処理が行われる。 (a)計算機“0”S0{012345}⇔計算機“2”S1{01234
5} 計算機“0”S01{012345}:計算機“2”S01{012345} (b)計算機“1”S2{012345}⇔計算機“3”S3{01234
5} 計算機“1”S23{012345}:計算機“3”S23{012345}
プでは、次のように処理が行われる。 (a)計算機“0”S01{012345}⇒計算機“4”:計算
機“4”S01{012345} (b)計算機“1”S23{012345}⇒計算機“5”:計算
機“5”S23{012345}
では、次のように処理が行われる。 (a)計算機“0”S01{012345}⇔計算機“1”S23{012
345} 計算機“0”S0123{012345}:計算機“1”S0123{01234
5} (b)計算機“2”S01{012345}⇔計算機“3”S23{012
345} 計算機“2”S0123{012345}:計算機“3”S0123{01234
5} (c)計算機“4”S01{012345}⇔計算機“5”S23{012
345} 計算機“4”S0123{012345}:計算機“5”S0123{01234
5}
し、全ての計算機が全ての演算結果を得ることができ
る。前述した例の場合、転入ステップ、転出ステップで
のデータ転送は、端数計算機の個数が21 で割り切れる
ため、データの転送量を従来の1/2として行うことが
できる。
N<2n+1−1 かつN−2n が2m(n、mは自然数)
で割り切れない任意のN台の計算機による本発明の実施
形態によるリダクション処理を説明するフローチャート
であり、以下、図3、図4を参照して、本発明の実施形
態による処理を演算部と収集部に分けて説明する。
算機の個数をN2とする。また、Rを自計算機の識別番
号とする。Shiftはハイパーキューブアルゴリズムを使
用するための変数であり、1に初期設定する(ステップ
301)。
数計算機であるか、2のべき乗の計算機であるか判定す
る。R≧N2の場合、自計算機が端数計算機であると判
定し、N2>Rの場合、自計算機が2のべき乗の計算機
であると判定して処理を分ける(ステップ302)。
計算機であると判定した場合、その端数計算機は、さら
に、RとN−1とを比較し、余り計算機と他の端数計算
機とに処理を分ける(ステップ303)。
1を識別番号とする余り計算機であった場合、0を識別
番号とする2のべき乗の計算機へ上位1/2の部分デー
タを送信し、N2−1を識別番号とする2のべき乗の計
算機へ下位1/2の部分データを送信する(ステップ3
04、305)。
計算機を除く端数計算機であった場合、通信相手となる
計算機の番号を求める。すなわち、Rと1とのビット毎
の論理積をとった値が1であればR−1を識別番号とす
る計算機を、論理積の値が0であればR+1を識別番号
とする計算機を通信相手としての計算機として求める
(ステップ306)。
計算機とRと1とのビット毎の論理積をとった値が1で
あれば、データの上位1/2を送信し下位1/2を受信
して部分データをお互いに転送し、また、論理積の値が
0であれば、下位1/2を送信し上位1/2を受信して
部分データをお互いに転送して、受信した部分データに
対して演算を行う(ステップ307)。
する2のべき乗の計算機に演算済み部分データを送信す
る(ステップ308)。
が2のべき乗の計算機であると判定した場合、その2の
べき乗の計算機は、計算機の識別番号が0の場合にのみ
N−1を識別番号とする計算機から上位1/2の部分デ
ータを受信して演算を行う。この部分データは、余り計
算機がステップ304で送信する部分データである(ス
テップ309、310)。
ステップ309で、計算機の識別番号が0でない場合、
通信相手となる計算機の番号を求める。すなわち、Rと
Shiftとのビット毎の論理積をとった値が1であれば、
通信相手の計算機をR−Shiftとして、論理積の値が0
であれば、通信相手の計算機をR+Shiftとして求める
(ステップ311)。
とShiftとのビット毎の論理積をとった値が1であれ
ば、演算済み部分データ(演算前はすべてのデータ)の
上位1/2を送信し下位1/2を受信してデータをお互
いに転送し、受信した部分データに対して演算を行い、
また、論理積の値が0であれば下位1/2を送信し上位
1/2を受信してデータをお互いに転送し、受信した部
分データに対して演算を行う(ステップ312)。
hiftが2と等しくなく、N2より小さい場合、ステップ
311からの処理を繰り返す(ステップ313、31
4、319)。
2−1と等しい場合、N−1を識別番号とする余り計算
機より下位1/2の部分データを受信して演算を行い、
その後、ステップ311からの処理に戻る(ステップ3
14〜316)。
Rが2以上N−N2以下の場合、N2+R−2を識別番
号とする端数計算機より演算済み部分データを受信し演
算を行い、その後、ステップ311からの処理を繰り返
す(ステップ315、317、318)。
2以下でない場合、ステップ319の処理を行い、ステ
ップ319の処理でループが終了したとき演算部の処理
を終了する。このとき、全ての計算機のデータを演算し
た結果が、2のべき乗の計算機に1/N2ずつ分散した
状態で保持されることになる。
収集部の処理が開始され、2のべき乗の計算機は、Shi
ftを1/2にしてShiftとし、ステップ311の場合と
同一の方法により通信相手の計算機の番号を求め、求め
た番号の計算機が保持する演算済み部分データと自計算
機が保持する演算済み部分データとをお互いに転送する
(ステップ320〜322)。
hiftが1より大きい場合、ステップ320からの処理を
繰り返す(ステップ323、328)。
2−1と等しい場合、N−1を識別番号とする余り計算
機へ下位1/2の演算済み部分データを送信し、その
後、ステップ320からの処理を繰り返す(ステップ3
23〜325)。
Rが2以上N−N2以下の場合、N2+R−2を識別番
号とする端数計算機へ1/2の演算済み部分データを送
信し、その後、ステップ320からの処理を繰り返す
(ステップ324、326、327)。
2以下でない場合、ステップ328の処理を行い、ステ
ップ328でShiftが1以下になるときループが終了
し、2のべき乗の計算機内に同一の演算結果を得ること
ができる。
き、さらに、識別番号0の計算機は、N−1を識別番号
とする余り計算機に上位1/2の演算済み部分データを
送信する(ステップ329、330)。
比較して、処理を余り計算機と他の端数計算機とに分け
る。端数計算機は、自計算機が余り計算機であった場
合、N2−1を識別番号とする2のべき乗の計算機から
ステップ325の処理で送られてくる下位1/2の演算
済み部分データを受信する。その後、余り計算機は、識
別番号0の計算機からステップ330の処理で送られて
くる上位1/2の演算済み部分データを受信する(ステ
ップ331〜333)。
より、余り計算機は、全ての演算結果を得ることができ
る。
−N2+2を識別番号とする2のべき乗の計算機からス
テップ327で送られてくる1/2の演算済み部分デー
タを受信する。その後、ステップ306と同様な方法に
より通信相手となる計算機の識別番号を求め、その計算
機との間で自計算機が保持する演算済み部分データをお
互いに転送する(ステップ334〜336)。
数計算機は、2のべき乗の計算機と同一の演算結果を得
ることができる。
れば、余り計算機が、自計算機持つデータを1/2ずつ
に分割して(ステップ304、305)2のべき乗の計
算機に送信し、また、2のべき乗の計算機からの分割さ
れたデータ受信する(ステップ332、333)ことに
より、余り計算機がデータ転送を行う時間を1/2に削
減することができ、処理時間の短縮を図ることができる
という効果を得ることができる。
がデータを転送する2のべき乗の計算機は、最小と最大
との識別番号をもつ2のべき乗の計算機となっている
が、余り計算機がデータを転送する2のべき乗の計算機
は、他の端数計算機が演算済みデータを転送する2のべ
き乗の計算機と異なっていれば、識別番号が最小と最大
との2のべき乗の計算機に限定する必要はない。
数)で割り切れない場合の本発明の実施形態によるデー
タの流れを、転入ステップと演算部とについて説明する
図、図11は計算機個数が2m (mは自然数)で割り切
れない場合の本発明の実施形態によるデータの流れを、
転出ステップと収集部とについて説明する図であり、図
10、図11を参照して本発明の実施形態による前述し
た図3、図4に示すフローによるデータの流れについて
説明する。なお、この例は、端数計算機個数が2m (m
は自然数)で割り切れない5台とした場合の例である。
各計算機が持つ初期データを示している。
1−1と転入ステップ1では、次のように処理が行われ
る。 (a)計算機“4”S01{4}⇒計算機“0”:計算機
“0”S01{04} (b)計算機“2”S23{2}⇔計算機“3”S01{3} 計算機“2”S01{23}:計算機“3”S23{23} 前述では、計算機“4”が計算機“0”に1/2のデー
タを転送、演算する転入ステップ1と、計算機“2”と
“3”とがデータをお互いに転送し、演算を行うステッ
プ1−1とが同時に行われている。
1−2と転入ステップ2では、次のように処理が行われ
る。 (a)計算機“0”S23{0}⇔計算機“1”S01{1} 計算機“0”S01{014}:計算機“1”S23{01} (b)計算機“4”S23{4}⇒計算機“3”:計算機
“3”S23{234} 前述では、計算機“0”と“1”とがデータをお互いに
転送し、演算を行うステップ1−2と、計算機“4”が
計算機“3”に前述の1001とは異なる1/2のデー
タを転送、演算する転入ステップ2とが同時に行われ
る。このステップの完了により、端数計算機が持つデー
タは、2のべき乗の計算機内に保持されることになる。
2では、次のように処理が行われる。 (a)計算機“0”S1{014}⇔計算機“2”S0{23} 計算機“0”S0{01234}:計算機“2”S1{01234} (b)計算機“1”S3{01}⇔計算機“3”S2{234} 計算機“1”S2{01234}:計算機“3”S3{01234} 以上のステップの処理の終了で演算部での処理が完了
し、2のべき乗の計算機内に全ての演算結果が分割され
て保持されることになる。
1では、次のように処理が行われる。 (a)計算機“0”S0{01234}⇔計算機“2”S1{01234} 計算機“0”S01{01234}:計算機“2”S01{01234} (b)計算機“1”S2{01234}⇔計算機“3”S3{01234} 計算機“1”S23{01234}:計算機“3”S23{01234}
2−1と転出ステップ1では、次のように処理が行われ
る。 (a)計算機“0”S01{01234}⇔計算機“1”S23{0123
4} 計算機“0”S0123{01234}:計算機“1”S0213
{01234} (b)計算機“3”S23{01234}⇒計算機
“4”:計算機“4”S23{01234} 前述では、計算機“0”と“1”とが演算結果をお互い
に転送するステップ2−1と、計算機“3”が計算機
“4”に演算結果の1/2を転送する転出ステップ1と
が同時に行われる。
2−2と転出ステップ2では、次のように処理が行われ
る。 (a)計算機“0”S01{01234}⇒計算機“4”:計算機
“4”S0123{01234} (b)計算機“2”S01{01234}⇔計算機“3”S23{0123
4} 計算機“2”S0123{01234}:計算機“3”S0123{01234} 前述では、計算機“1”が計算機“4”に前述の110
2とは異なる演算結果の1/2を転送する転出ステップ
2と、計算機“2”と“3”とが演算結果をお互いに転
送するステップ2−2とが同時に行われる。
処理が完了し、全ての計算機で全ての演算結果を得るこ
とができる。前述の例によれば、転入ステップ、転出ス
テップでのデータ転送は、2回に分割して、演算部及び
収集部のステップと同時に行うことができ、データ転送
を行う時間を従来の1/2とすることができる。
数計算機の個数が2m (mは自然数)で割り切れる場
合、従来、端数計算機の処理にかかっていた時間を1/
2m に短縮することができ、端数計算機の個数が2m で
割り切れない場合、1/2に短縮することができ、これ
により、リダクション処理を高速に行うことができる。
て、各計算機に適用する処理方法を決定する手順を説明
するフローチャートである。
−2n が2m (n、mは自然数)で割り切れる任意のN
台の計算機による本発明の実施形態によるリダクション
処理を説明するフローチャートである。
つN−2n が2m (n、mは自然数)で割り切れない任
意のN台の計算機による本発明の実施形態によるリダク
ション処理を説明するフローチャートである。
−2n が2m (n、mは自然数)で割り切れない任意の
N台の計算機による本発明の実施形態によるリダクショ
ン処理を説明するフローチャートである。
算機の構成例を示すブロック図及び記憶装置に格納され
る演算データの例を説明する図である。
によるデータの流れを計算機個数が6の場合を例とし
て、転入ステップと演算部とについて説明する図であ
る。
によるデータの流れを計算機個数が6の場合を例とし
て、転出ステップと収集部とについて説明する図であ
る。
れる場合の本発明の実施形態によるデータの流れを、転
入ステップと演算部とについて説明する図である。
れる場合の本発明の実施形態によるデータの流れを、転
出ステップと収集部とについて説明する図である。
切れない場合の本発明の実施形態によるデータの流れ
を、転入ステップと演算部とについて説明する図であ
る。
ない場合の本発明の実施形態によるデータの流れを、転
出ステップと収集部とについて説明する図である。
Claims (4)
- 【請求項1】 固有の識別番号を有する複数個の計算機
がネットワークで結合され、演算に関わる計算機が保持
するデータを、演算部と収集部とにより演算し、演算に
関わる計算機で同一の演算結果を得る並列計算機におけ
るリダクション処理方法において、演算に関わる計算機
個数をNとし、Nが2n <N<2n+1であり、かつ、N
−2n (nは自然数)が2m (mは自然数)で割り切れ
る場合、2n 個の計算機を2のべき乗の計算機とし、残
りのN−2n 個の計算機を端数計算機とし、前記端数計
算機は、前記2のべき乗の計算機と同時に演算部を行
い、途中で前記2のべき乗の計算機に演算済みのデータ
を転入して演算させる演算部を実行することを特徴とす
る並列計算機におけるリダクション処理方法。 - 【請求項2】 全ての計算機が前記収集部を実行する途
中で、前記2のべき乗の計算機が、その演算済み結果を
端数計算機に転出する収集部を実行することを特徴とす
る請求項1記載の並列計算機におけるリダクション処理
方法。 - 【請求項3】 固有の識別番号を有する複数個の計算機
がネットワークで結合され、演算に関わる計算機が保持
するデータを、演算部と収集部とにより演算し、演算に
関わる計算機で同一の演算結果を得る並列計算機におけ
るリダクション処理方法において、演算に関わる計算機
個数をNとし、Nが2n <N<2n+1−1であり、か
つ、N−2n (nは自然数)が2m (mは自然数)で割
り切れない場合、2n 個の計算機を2のべき乗の計算機
とし、残りのN−2n 個の計算機のうち2m (mは自然
数)で割り切れる数の計算機を端数計算機とし、残りの
計算機を余り計算機とし、前記余り計算機を除く計算機
は、データを転入して演算し、途中で、余り計算機が、
2のべき乗の計算機にデータを分割して転入して演算さ
せる演算部を実行することを特徴とする並列計算機にお
けるリダクション処理方法。 - 【請求項4】 余り計算機を除く計算機が前記収集部を
実行する途中で、前記2のべき乗の計算機が、その演算
結果を分割して余り計算機に転出する収集部を実行する
ことを特徴とする請求項3記載の並列計算機におけるリ
ダクション処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14526299A JP3524430B2 (ja) | 1999-05-25 | 1999-05-25 | 並列計算機におけるリダクション処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14526299A JP3524430B2 (ja) | 1999-05-25 | 1999-05-25 | 並列計算機におけるリダクション処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000339278A JP2000339278A (ja) | 2000-12-08 |
JP3524430B2 true JP3524430B2 (ja) | 2004-05-10 |
Family
ID=15381071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14526299A Expired - Fee Related JP3524430B2 (ja) | 1999-05-25 | 1999-05-25 | 並列計算機におけるリダクション処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3524430B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7238376B2 (ja) * | 2018-12-14 | 2023-03-14 | 富士通株式会社 | 情報処理システム及び情報処理システムの制御方法 |
JP7230683B2 (ja) | 2019-05-21 | 2023-03-01 | 富士通株式会社 | 演算処理装置、プログラム、及び演算処理装置の制御方法 |
-
1999
- 1999-05-25 JP JP14526299A patent/JP3524430B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000339278A (ja) | 2000-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200285634A1 (en) | System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system | |
WO2021244354A1 (zh) | 神经网络模型的训练方法和相关产品 | |
JPS628817B2 (ja) | ||
JP2020077298A (ja) | プロセッサおよびプロセッサの制御方法 | |
JPH11259441A (ja) | 並列計算機における全対全通信方法 | |
CN112070222A (zh) | 用于联邦学习的处理架构、加速器及方法 | |
JPH07253954A (ja) | 並列コンピュータ | |
CN110413561B (zh) | 数据加速处理系统 | |
JP3524430B2 (ja) | 並列計算機におけるリダクション処理方法 | |
JPH05324586A (ja) | マルチプロセッサ・コンピュータ・システムおよびそのデータ割振り方法 | |
JPWO2015177917A1 (ja) | 演算回路、符号化回路及び復号回路 | |
JP3329921B2 (ja) | 演算装置 | |
JPS5833933A (ja) | 電力系統の過渡状態演算装置 | |
WO2021184143A1 (zh) | 一种数据处理装置以及数据处理方法 | |
JP3231713B2 (ja) | 巡回冗長検査計算方法および装置 | |
JPH03116327A (ja) | 乗算方式 | |
JP2531103B2 (ja) | ジョブ間デ―タ通信システム | |
JPS62130467A (ja) | 高速フ−リエ変換装置 | |
CN114880982A (zh) | 时钟树生成方法、装置、设备、存储介质和芯片 | |
CN116048458A (zh) | 基于量子计算的数值划分方法、装置、设备及存储介质 | |
CN115936127A (zh) | 一种基于量子技术的数值比较方法、装置及量子计算机 | |
JPS61222313A (ja) | 時変デイジタルフイルタ | |
JPS58146921A (ja) | バス結合システムの高速デ−タ転送装置 | |
JPH0981530A (ja) | 並列計算機のリダクション処理方法 | |
JPH09330209A (ja) | ディジタル加算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040212 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090220 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090220 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100220 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |