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
Application number
JP14526299A
Other languages
English (en)
Other versions
JP2000339278A (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.)
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
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 Hitachi Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP14526299A priority Critical patent/JP3524430B2/ja
Publication of JP2000339278A publication Critical patent/JP2000339278A/ja
Application granted granted Critical
Publication of JP3524430B2 publication Critical patent/JP3524430B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列計算機を構成
するN個の計算機が持つデータに対して、各計算機内の
同位置にある全てのデータを演算する並列計算機におけ
るリダクション処理方法に係り、特に、前記N個の計算
機が高速に同一の演算結果を得ることを可能にした並列
計算機におけるリダクション処理方法に関する。
【0002】
【従来の技術】並列計算機において、演算に関わる全て
の計算機で同一の演算結果を得るためのリダクション処
理に関する従来技術として、特開平9−81530号公
報等に記載された技術が知られている。この従来技術
は、ハイパーキューブアルゴリズムを用いたコンビネー
ション処理部(以下、演算部という)と、演算部での処
理後の演算を省いた処理(以下、収集部という)とを使
用することにより行われている。
【0003】しかし、従来技術で使用されるハイパーキ
ューブアルゴリズムは、並列計算機を構成する計算機の
個数が2のべき乗個の場合にしか適用することができな
いものである。このため、前述のハイパーキューブアル
ゴリズムを使用する従来技術は、計算機の個数が2のべ
き乗個でない場合、全計算機個数より小さい最大の2の
べき乗(=2k )個の計算機(以下、2のべき乗個の計
算機という)と、最大の2のべき乗(=2k )個を超え
る計算機(以下、端数計算機という)とに分け、端数計
算機が、2のべき乗個の計算機に全データを転送し、2
のべき乗個の計算機が、演算を行い(以下、転入ステッ
プという)、端数計算機のデータを保持する状態で演算
部及び収集部での処理を行う必要があり、また、収集部
での処理終了後、2のべき乗個の計算機が端数計算機に
演算結果を転送する(以下、転出ステップという)必要
があるものである。
【0004】
【発明が解決しようとする課題】前述した従来技術は、
並列計算機を構成する計算機の個数が2のべき乗個の場
合に、最適なリダクション処理を行うことができるもの
であるが、計算機個数が2のべき乗個でない場合、端数
計算機の処理だけで2のべき乗個の計算機による処理と
同一の時間が余分にかかってしまうという問題点を有し
ている。このため、前述した従来技術は、全体の計算時
間を短縮するために並列計算機を構成する計算機個数を
増加させても、前述した従来技術によるリダクション処
理を行うと、計算機を増加したメリットが損なわれてし
まうという問題点を生じる。
【0005】本発明の目的は、前記従来技術の問題点を
解決し、並列計算機を構成する計算機個数をNとし、N
が、2n <N<2n+1−1(nは自然数)となる場合
に、端数計算機の処理にかかる時間を短縮することがで
きる並列計算機におけるリダクション処理方法を提供す
ることにある。
【0006】
【課題を解決するための手段】本発明によれば前記目的
は、固有の識別番号を有する複数個の計算機がネットワ
ークで結合され、演算に関わる計算機が保持するデータ
を、演算部と収集部とにより演算し、演算に関わる計算
機で同一の演算結果を得る並列計算機におけるリダクシ
ョン処理方法において、演算に関わる計算機個数をNと
し、Nが2n <N<2n+1 であり、かつ、N−2n (n
は自然数)が2m (mは自然数)で割り切れる場合、2
n 個の計算機を2のべき乗の計算機とし、残りのN−2
n 個の計算機を端数計算機とし、前記端数計算機は、前
記2のべき乗の計算機と同時に演算部を行い、途中で前
記2のべき乗の計算機に演算済みのデータを転入して演
算させる演算部を実行することにより達成される。
【0007】また、前記目的は、演算に関わる計算機個
数をNとし、Nが2n <N<2n+1−1であり、かつ、
N−2n (nは自然数)が2m (mは自然数)で割り切
れない場合、2n 個の計算機を2のべき乗の計算機と
し、残りのN−2n 個の計算機のうち2m (mは自然
数)で割り切れる数の計算機を端数計算機とし、残りの
計算機を余り計算機とし、前記余り計算機を除く計算機
は、データを転入して演算し、途中で、余り計算機が、
2のべき乗の計算機にデータを分割して転入して演算さ
せる演算部を実行することにより達成される。
【0008】
【発明の実施の形態】以下、本発明による並列計算機に
おけるリダクション処理方法の一実施形態を図面により
詳細に説明する。
【0009】図1は並列計算機を構成する計算機の個数
に基づいて、各計算機に適用する処理方法を決定する手
順を説明するフローチャート、図5は本発明が適用され
る並列計算機の構成例、各計算機の構成例を示すブロッ
ク図及び記憶装置に格納される演算データの例を説明す
る図である。図5において、501はネットワーク、5
02〜507は計算機“1”〜“n−1”、508は通
信装置、509は演算処理装置、510は記憶装置であ
る。
【0010】本発明による並列計算機におけるリダクシ
ョン処理方法は、ペアとなる計算機との間で異なる部分
データをお互いに転送し、相手計算機から受信する部分
データと自計算機が持つ同位置の部分データとに対して
加算等の演算を行うコンビネーション処理を使用するも
のである。
【0011】まず、図5(A)を参照して、本発明が適
用される並列計算機の構成を説明する。本発明が適用さ
れる並列計算機は、n台の計算機502〜507がネッ
トワーク501によって結合されて構成される。そし
て、各計算機は、計算機“0”502を例に示している
ように、ネットワーク501を介して計算機相互間で通
信を行う通信装置508と、演算を行う演算処理装置5
09と、データを保持する記憶装置510とにより構成
されている。
【0012】各計算機内の記憶装置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}とを演算した結果を意味している。
【0013】次に、図1に示すフローを参照して、並列
計算機を構成する計算機の個数に基づいて、各計算機に
適用する処理方法を決定する手順を説明する。
【0014】(1)並列計算機を構成する計算機の個数
が2のべき乗個であるか否か、計算機の個数が2のべき
乗個でない場合、端数計算機の個数が偶数か否か、端数
計算機の個数が偶数でない場合、計算機の個数が2のべ
き乗個−1であるか否かをチェックして並列計算機を構
成している計算機の個数を判定する(ステップ101〜
103)。
【0015】(2)ステップ101で、計算機の個数が
2のべき乗個であると判定された場合、従来技術による
ハイパーキューブアルゴリズムにより演算部での処理を
行い、また、従来技術によるハイパーキューブアルゴリ
ズムにより収集部での処理を行う(ステップ104)。
【0016】(3)ステップ102、ステップ103
で、端数計算機の個数が2のべき乗個−1であると判定
された場合、従来技術の場合と同様に、演算部での処理
の前に転入ステップを行い、端数計算機のデータを2の
べき乗の計算機に転送し、従来技術によるハイパーキュ
ーブアルゴリズムにより演算部での処理を行い、従来技
術によるハイパーキューブアルゴリズムにより収集部で
の処理を行う。処理後、2のべき乗計算機内の演算結果
を端数計算機に転送する転出ステップを行う(ステップ
105)。
【0017】(4)ステップ102、ステップ103
で、端数計算機の個数が奇数で、2のべき乗個−1でな
いと判定された場合、演算部、収集部を行うとき、余り
計算機がそれぞれ異なる2のべき乗の計算機に対して、
余り計算機が持つ異なる1/2のデータを対象に転入ス
テップ、転出ステップを2回に別けて行う。すなわち、
余り計算機を除く計算機がハイパーキューブアルゴリズ
ムによりデータの転送と演算を行う。その途中で、余り
計算機が2のべき乗の計算機にデータを分割して転送し
演算する演算部の処理を行う。ままた、余り計算機を除
く計算機が、ハイパーキューブアルゴリズムにより演算
結果の転送を行う。その途中で、2のべき乗の計算機か
ら余り計算機へ演算結果を分割して転送する収集部の処
理を行う。なお、この処理の詳細は、図3、図4により
後述する(ステップ106)。
【0018】(5)ステップ102で、端数計算機の個
数が偶数個であると判定された場合、全ての計算機がハ
イパーキューブアルゴリズムにより演算部、収集部の処
理を行うが、途中で端数計算機の演算済みデータのみを
対象に転入ステップ、転出ステップを行う。すなわち、
全ての計算機がハイパーキューブアルゴリズムによりデ
ータの転送、演算を行う、その途中で、端数計算機の演
算済みデータを2のべき乗の計算機に転送、演算する演
算部の処理を行う。また、全ての計算機がハイパーキュ
ーブアルゴリズムにより演算結果の転送を行う。その途
中で、2のべき乗の計算機の演算済み結果を端数計算機
に転送する収集部の処理を行う。なお、この処理の詳細
は、図2により後述する(ステップ107)。
【0019】図6は計算機個数が2のべき乗でない場合
の従来技術によるデータの流れを、計算機個数が6の場
合を例として、転入ステップと演算部とについて説明す
る図、図7は計算機個数が2のべき乗でない場合の従来
技術によるデータの流れを、計算機個数が6の場合を例
として、転出ステップと収集部とについて説明する図で
あり、本発明によるデータの流れを説明する前に、従来
技術によるデータの流れについて説明する。なお、この
例では計算機“4”、“5”が端数計算機となる。
【0020】図6、図7において、601〜606は各
計算機とその計算機が持つデータを表しており、矢印6
08はデータ転送とデータを受信した計算機が演算を行
うことを表している。また、矢印701は演算結果の転
送を表している。
【0021】次に、図6、図7に示す各ステップでのデ
ータ転送の内容と転送相手及び演算後に各計算機が持つ
演算済みデータについて説明する。
【0022】(1)607として示すステップ0には、
各計算機が持つ初期データを示している。
【0023】(2)609として示す転入ステップで
は、次のように処理が行われる。 (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のべき乗の計算機のみで処理を行うこと
ができる。
【0024】(3)610として示す演算部ステップ1
では、次のような処理が行われる。 (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}
【0025】(4)611として示す演算部ステップ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のべき乗の計算
機が全ての演算結果を分散して保持したことになる。
【0026】(5)702として示す収集部ステップ1
では、次のような処理が行われる。 (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}
【0027】(6)703として示す収集部ステップ2
では、次のような処理が行われる。 (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のべき乗の計算機が
全ての演算結果を得ることができる。
【0028】(7)704として示す転出ステップで
は、次のような処理が行われる。 (a)計算機“0”S0123{012345}⇒計算機“4”計算
機“4”S0123{012345} (b)計算機“1”S0123{012345}⇒計算機“5”計算
機“5”S0123{012345}
【0029】従来技術においては、以上の処理により、
端数計算機を含めて全ての計算機は全ての演算結果を得
ることができるが、転入ステップ、転出ステップで転送
するデータが端数計算機が持つデータの全てを対象とし
ているため、転入ステップ、転出ステップが、それぞれ
演算部、収集部と同じくらいの処理時間を要してしまう
ことになる。
【0030】図2は計算機個数をNとし、2n <N<2
n+1 かつN−2n が2m (n、mは自然数)で割り切れ
る任意のN台の計算機による本発明の実施形態によるリ
ダクション処理を説明するフローチャートであり、以
下、図2を参照して、本発明の実施形態による処理を演
算部と収集部に分けて説明する。
【0031】(1)計算機の個数をN、2のべき乗の計
算機の個数をN2、端数計算機の個数を割り切れる最大
の2m (mは自然数)をNHとする。また、Rを自計算
機の識別番号とする。Shiftはハイパーキューブアルゴ
リズムを使用するための変数であり、1に初期設定する
(ステップ201)。
【0032】(2)RとN2とを比較し、自計算機が端
数計算機であるか、2のべき乗の計算機であるか判定す
る。R≧N2の場合、自計算機が端数計算機であると判
定し、N2>Rの場合、自計算機が2のべき乗の計算機
であると判定して処理を分ける(ステップ202)。
【0033】(3)ステップ202で、自計算機が端数
計算機であると判定した場合、通信相手となる計算機の
番号を、RとShiftとのビット毎の論理積をとった値が
1であればR−Shiftとして、論理積の値が0であれば
R+Shiftとして求める(ステップ203)。
【0034】(4)求めた通信相手の計算機に対してR
とShiftとのビット毎の論理積をとった値が1であれ
ば、演算済み部分データ(演算前は全てのデータ)の上
位1/2を送信し下位1/2を受信してデータをお互い
に転送する。また、論理積の値が0であれば下位1/2
を送信し上位1/2を受信してデータをお互いに転送す
る。その後、受信した部分データに対して演算を行う
(ステップ204)。
【0035】(5)Shiftを2倍にしてShiftとし、そ
のShiftとNHとを比較する。ShiftがNHより小さい
間、ステップ203以降の処理を繰り返す。また、Shi
ftがNH以上になると、端数計算機は、R−N2を識別
番号とする2のべき乗の計算機に演算済み部分データを
送信する。このとき送信するデータ量は、1つの計算機
が持つデータ量の1/NHとなる(ステップ205〜2
07)。
【0036】(6)一方、ステップ202で、自計算機
が2のべき乗の計算機であると判定した場合、2のべき
乗の計算機は、端数計算機の場合のステップ203での
方法と同様にして通信相手となる計算機を求め、また、
ステップ204での方法と同様にして部分データをお互
いに転送し受信した部分データに対して演算を行う(ス
テップ208、209)。
【0037】(7)Shiftを2倍にしてShiftとし、そ
のShiftがNHと等しくなく、かつ、N2より小さい
間、ステップ208からの処理を繰り返す(ステップ2
10、211、213)。
【0038】(8)ステップ211でShiftがNHと等
しく、N−RがN2より大きいと判別された場合、Shi
ftがNHと等しく、N−RがN2より大きい識別番号を
持つ計算機は、R+N2を識別番号とする端数計算機よ
り、前述のステップ207で送信された1/NHの部分
データを受信して演算を行う(ステップ212)。
【0039】(9)ステップ213を介したループが終
了したとき演算部での処理が終了し、全ての計算機のデ
ータを演算した結果が2のべき乗の計算機に1/N2ず
つ分散して保持された状態になる。
【0040】(10)前述までの処理が終了すると、次に
収集部の処理が開始され、2のべき乗の計算機は、Shi
ftを1/2にしてShiftとし、ステップ208の場合と
同一の方法により通信相手の計算機の番号を求め、求め
た番号の計算機が保持する演算済み部分データと自計算
機が保持する演算済み部分データとをお互いに転送する
(ステップ214〜216)。
【0041】(11)ShiftがNHと等しくなく、かつ、
1より大きい間、ステップ214からの処理を繰り返す
(ステップ217、219)。
【0042】(12)ステップ217でShiftがNHと等
しく、N−RがN2より大きいと判別された場合、Shi
ftがNHと等しく、N−RがN2より大きい識別番号を
持つ計算機は、R+N2を識別番号とする端数計算機に
1/NHの演算済み部分データを送信する(ステップ2
18)。
【0043】(13)ステップ219でShiftが1以下に
なるとき処理を終了し、2のべき乗の計算機で同じ演算
結果を得ることができる。
【0044】(14)一方、端数計算機は、R−N2を識
別番号とする2のべき乗の計算機よりステップ218で
送信された1/NHの演算済み部分データを受信する
(ステップ220)。
【0045】(15)その後、端数計算機は、Shiftを1
/2にしてShiftとし、ステップ203の場合と同一の
方法により通信相手を求め、求めた計算機と自計算機が
保持する演算済み部分データをお互いに転送する(ステ
ップ221〜223)。
【0046】(16)Shiftが1より大きい間、ステップ
221からの処理を繰り返し、Shiftが1以下になった
ときに処理を終了する。これにより、端数計算機内で2
のべき乗の計算機と同じ演算結果を得ることができる
(ステップ224)。
【0047】前述した本発明の実施形態による処理によ
れば、端数計算機内でステップ203から206、及
び、ステップ221から224の処理を行うことによ
り、ステップ207で端数計算機が2のべき乗の計算機
へ送信するデータと、ステップ218で2のべき乗の計
算機が端数計算機へ送信するデータを1/NHに削減す
ることができ、処理時間の短縮を図ることができる。
【0048】図8は計算機個数が2のべき乗でない場合
の本発明の実施形態によるデータの流れを、転入ステッ
プと演算部とについて説明する図、図9は計算機個数が
2のべき乗でない場合の本発明の実施形態によるデータ
の流れを、転出ステップと収集部とについて説明する図
であり、図8、図9を参照して本発明の実施形態による
前述した図2に示すフローによるデータの流れについて
説明する。なお、この例は、端数計算機個数が2m (m
は自然数)で割り切れる6台とした場合の例である。
【0049】(1)607として示すステップ0には、
各計算機が持つ初期データを示している。
【0050】(2)801として示す演算部ステップ1
では、次のように処理が行われる。 (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)も同様な処理を行っている。
【0051】(3)802として示す演算部転入ステッ
プでは、次のように処理が行われる。 (a)計算機“4”S01{45}⇒計算機“0”:計算機
“0”S01{0145} (b)計算機“5”S23{45}⇒計算機“1”:計算機
“1”S23{0145} 前述の転入ステップでは、端数計算機がステップ1によ
り得た演算結果のみを2のべき乗の計算機に転送し、2
のべき乗の計算機が演算を行っている。この転入ステッ
プにより、端数計算機が持つデータが2のべき乗の計算
機内に保持されることになる。
【0052】(4)803として示す演算部ステップ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のべき乗
の計算機内に演算結果が分割されて保持されることにな
る。
【0053】(5)901として示す収集部ステップ1
では、次のように処理が行われる。 (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}
【0054】(6)902として示す収集部転出ステッ
プでは、次のように処理が行われる。 (a)計算機“0”S01{012345}⇒計算機“4”:計算
機“4”S01{012345} (b)計算機“1”S23{012345}⇒計算機“5”:計算
機“5”S23{012345}
【0055】(7)903として示す収集部ステップ2
では、次のように処理が行われる。 (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}
【0056】以上の処理により収集部での処理が完了
し、全ての計算機が全ての演算結果を得ることができ
る。前述した例の場合、転入ステップ、転出ステップで
のデータ転送は、端数計算機の個数が21 で割り切れる
ため、データの転送量を従来の1/2として行うことが
できる。
【0057】図3、図4は計算機個数をNとし、2n
N<2n+1−1 かつN−2n が2m(n、mは自然数)
で割り切れない任意のN台の計算機による本発明の実施
形態によるリダクション処理を説明するフローチャート
であり、以下、図3、図4を参照して、本発明の実施形
態による処理を演算部と収集部に分けて説明する。
【0058】(1)計算機の個数をN、2のべき乗の計
算機の個数をN2とする。また、Rを自計算機の識別番
号とする。Shiftはハイパーキューブアルゴリズムを使
用するための変数であり、1に初期設定する(ステップ
301)。
【0059】(2)RとN2とを比較し、自計算機が端
数計算機であるか、2のべき乗の計算機であるか判定す
る。R≧N2の場合、自計算機が端数計算機であると判
定し、N2>Rの場合、自計算機が2のべき乗の計算機
であると判定して処理を分ける(ステップ302)。
【0060】(3)ステップ302で、自計算機が端数
計算機であると判定した場合、その端数計算機は、さら
に、RとN−1とを比較し、余り計算機と他の端数計算
機とに処理を分ける(ステップ303)。
【0061】(4)ステップ303で自計算機が、N−
1を識別番号とする余り計算機であった場合、0を識別
番号とする2のべき乗の計算機へ上位1/2の部分デー
タを送信し、N2−1を識別番号とする2のべき乗の計
算機へ下位1/2の部分データを送信する(ステップ3
04、305)。
【0062】(5)ステップ303で自計算機が、余り
計算機を除く端数計算機であった場合、通信相手となる
計算機の番号を求める。すなわち、Rと1とのビット毎
の論理積をとった値が1であればR−1を識別番号とす
る計算機を、論理積の値が0であればR+1を識別番号
とする計算機を通信相手としての計算機として求める
(ステップ306)。
【0063】(6)ステップ306で求めた通信相手の
計算機とRと1とのビット毎の論理積をとった値が1で
あれば、データの上位1/2を送信し下位1/2を受信
して部分データをお互いに転送し、また、論理積の値が
0であれば、下位1/2を送信し上位1/2を受信して
部分データをお互いに転送して、受信した部分データに
対して演算を行う(ステップ307)。
【0064】(7)その後、R−N2+2を識別番号と
する2のべき乗の計算機に演算済み部分データを送信す
る(ステップ308)。
【0065】(8)一方、ステップ302で、自計算機
が2のべき乗の計算機であると判定した場合、その2の
べき乗の計算機は、計算機の識別番号が0の場合にのみ
N−1を識別番号とする計算機から上位1/2の部分デ
ータを受信して演算を行う。この部分データは、余り計
算機がステップ304で送信する部分データである(ス
テップ309、310)。
【0066】(9)ステップ310の処理後、または、
ステップ309で、計算機の識別番号が0でない場合、
通信相手となる計算機の番号を求める。すなわち、Rと
Shiftとのビット毎の論理積をとった値が1であれば、
通信相手の計算機をR−Shiftとして、論理積の値が0
であれば、通信相手の計算機をR+Shiftとして求める
(ステップ311)。
【0067】(10)求めた通信相手の計算機に対してR
とShiftとのビット毎の論理積をとった値が1であれ
ば、演算済み部分データ(演算前はすべてのデータ)の
上位1/2を送信し下位1/2を受信してデータをお互
いに転送し、受信した部分データに対して演算を行い、
また、論理積の値が0であれば下位1/2を送信し上位
1/2を受信してデータをお互いに転送し、受信した部
分データに対して演算を行う(ステップ312)。
【0068】(11)Shiftを2倍にしてShiftとし、S
hiftが2と等しくなく、N2より小さい場合、ステップ
311からの処理を繰り返す(ステップ313、31
4、319)。
【0069】(12)Shiftが2と等しく、かつ、RがN
2−1と等しい場合、N−1を識別番号とする余り計算
機より下位1/2の部分データを受信して演算を行い、
その後、ステップ311からの処理に戻る(ステップ3
14〜316)。
【0070】(13)RがN2−1と等しくなく、かつ、
Rが2以上N−N2以下の場合、N2+R−2を識別番
号とする端数計算機より演算済み部分データを受信し演
算を行い、その後、ステップ311からの処理を繰り返
す(ステップ315、317、318)。
【0071】(14)ステップ317でRが2以上N−N
2以下でない場合、ステップ319の処理を行い、ステ
ップ319の処理でループが終了したとき演算部の処理
を終了する。このとき、全ての計算機のデータを演算し
た結果が、2のべき乗の計算機に1/N2ずつ分散した
状態で保持されることになる。
【0072】(15)前述までの処理が終了すると、次に
収集部の処理が開始され、2のべき乗の計算機は、Shi
ftを1/2にしてShiftとし、ステップ311の場合と
同一の方法により通信相手の計算機の番号を求め、求め
た番号の計算機が保持する演算済み部分データと自計算
機が保持する演算済み部分データとをお互いに転送する
(ステップ320〜322)。
【0073】(16)Shiftが2と等しくなく、かつ、S
hiftが1より大きい場合、ステップ320からの処理を
繰り返す(ステップ323、328)。
【0074】(17)Shiftが2と等しく、かつ、RがN
2−1と等しい場合、N−1を識別番号とする余り計算
機へ下位1/2の演算済み部分データを送信し、その
後、ステップ320からの処理を繰り返す(ステップ3
23〜325)。
【0075】(18)RがN2−1と等しくなく、かつ、
Rが2以上N−N2以下の場合、N2+R−2を識別番
号とする端数計算機へ1/2の演算済み部分データを送
信し、その後、ステップ320からの処理を繰り返す
(ステップ324、326、327)。
【0076】(19)ステップ326でRが2以上N−N
2以下でない場合、ステップ328の処理を行い、ステ
ップ328でShiftが1以下になるときループが終了
し、2のべき乗の計算機内に同一の演算結果を得ること
ができる。
【0077】(20)ステップ328で処理が終了したと
き、さらに、識別番号0の計算機は、N−1を識別番号
とする余り計算機に上位1/2の演算済み部分データを
送信する(ステップ329、330)。
【0078】(21)一方、端数計算機は、RとN−1を
比較して、処理を余り計算機と他の端数計算機とに分け
る。端数計算機は、自計算機が余り計算機であった場
合、N2−1を識別番号とする2のべき乗の計算機から
ステップ325の処理で送られてくる下位1/2の演算
済み部分データを受信する。その後、余り計算機は、識
別番号0の計算機からステップ330の処理で送られて
くる上位1/2の演算済み部分データを受信する(ステ
ップ331〜333)。
【0079】前述したステップ332、333の処理に
より、余り計算機は、全ての演算結果を得ることができ
る。
【0080】(22)余り計算機を除く端数計算機は、R
−N2+2を識別番号とする2のべき乗の計算機からス
テップ327で送られてくる1/2の演算済み部分デー
タを受信する。その後、ステップ306と同様な方法に
より通信相手となる計算機の識別番号を求め、その計算
機との間で自計算機が保持する演算済み部分データをお
互いに転送する(ステップ334〜336)。
【0081】以上により端数計算機の処理が終了し、端
数計算機は、2のべき乗の計算機と同一の演算結果を得
ることができる。
【0082】前述した本発明の実施形態による処理によ
れば、余り計算機が、自計算機持つデータを1/2ずつ
に分割して(ステップ304、305)2のべき乗の計
算機に送信し、また、2のべき乗の計算機からの分割さ
れたデータ受信する(ステップ332、333)ことに
より、余り計算機がデータ転送を行う時間を1/2に削
減することができ、処理時間の短縮を図ることができる
という効果を得ることができる。
【0083】前述した本発明の実施形態は、余り計算機
がデータを転送する2のべき乗の計算機は、最小と最大
との識別番号をもつ2のべき乗の計算機となっている
が、余り計算機がデータを転送する2のべき乗の計算機
は、他の端数計算機が演算済みデータを転送する2のべ
き乗の計算機と異なっていれば、識別番号が最小と最大
との2のべき乗の計算機に限定する必要はない。
【0084】図10は端数計算機個数が2m (mは自然
数)で割り切れない場合の本発明の実施形態によるデー
タの流れを、転入ステップと演算部とについて説明する
図、図11は計算機個数が2m (mは自然数)で割り切
れない場合の本発明の実施形態によるデータの流れを、
転出ステップと収集部とについて説明する図であり、図
10、図11を参照して本発明の実施形態による前述し
た図3、図4に示すフローによるデータの流れについて
説明する。なお、この例は、端数計算機個数が2m (m
は自然数)で割り切れない5台とした場合の例である。
【0085】(1)607として示すステップ0には、
各計算機が持つ初期データを示している。
【0086】(2)1001として示す演算部ステップ
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とが同時に行われている。
【0087】(3)1002として示す演算部ステップ
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のべき乗の計算機内に保持されることになる。
【0088】(4)1003として示す演算部ステップ
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のべき乗の計算機内に全ての演算結果が分割され
て保持されることになる。
【0089】(5)1101として示す収集部ステップ
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}
【0090】(6)1102として示す収集部ステップ
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と
が同時に行われる。
【0091】(7)1103として示す収集部ステップ
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とが同時に行われる。
【0092】以上のステップの処理の終了で収集部での
処理が完了し、全ての計算機で全ての演算結果を得るこ
とができる。前述の例によれば、転入ステップ、転出ス
テップでのデータ転送は、2回に分割して、演算部及び
収集部のステップと同時に行うことができ、データ転送
を行う時間を従来の1/2とすることができる。
【0093】
【発明の効果】以上説明したように本発明によれば、端
数計算機の個数が2m (mは自然数)で割り切れる場
合、従来、端数計算機の処理にかかっていた時間を1/
m に短縮することができ、端数計算機の個数が2m
割り切れない場合、1/2に短縮することができ、これ
により、リダクション処理を高速に行うことができる。
【図面の簡単な説明】
【図1】並列計算機を構成する計算機の個数に基づい
て、各計算機に適用する処理方法を決定する手順を説明
するフローチャートである。
【図2】計算機個数をNとし、2n <N<2n+1 かつN
−2n が2m (n、mは自然数)で割り切れる任意のN
台の計算機による本発明の実施形態によるリダクション
処理を説明するフローチャートである。
【図3】計算機個数をNとし、2n <N<2n+1−1 か
つN−2n が2m (n、mは自然数)で割り切れない任
意のN台の計算機による本発明の実施形態によるリダク
ション処理を説明するフローチャートである。
【図4】計算機個数をNとし、2n <N<2n+1 かつN
−2n が2m (n、mは自然数)で割り切れない任意の
N台の計算機による本発明の実施形態によるリダクショ
ン処理を説明するフローチャートである。
【図5】本発明が適用される並列計算機の構成例、各計
算機の構成例を示すブロック図及び記憶装置に格納され
る演算データの例を説明する図である。
【図6】計算機個数が2のべき乗でない場合の従来技術
によるデータの流れを計算機個数が6の場合を例とし
て、転入ステップと演算部とについて説明する図であ
る。
【図7】計算機個数が2のべき乗でない場合の従来技術
によるデータの流れを計算機個数が6の場合を例とし
て、転出ステップと収集部とについて説明する図であ
る。
【図8】端数計算機個数が2m (mは自然数)で割り切
れる場合の本発明の実施形態によるデータの流れを、転
入ステップと演算部とについて説明する図である。
【図9】端数計算機個数が2m (mは自然数)で割り切
れる場合の本発明の実施形態によるデータの流れを、転
出ステップと収集部とについて説明する図である。
【図10】端数計算機個数が2m (mは自然数)で割り
切れない場合の本発明の実施形態によるデータの流れ
を、転入ステップと演算部とについて説明する図であ
る。
【図11】計算機個数が2m (mは自然数)で割り切れ
ない場合の本発明の実施形態によるデータの流れを、転
出ステップと収集部とについて説明する図である。
【符号の説明】
501 ネットワーク 502〜507 計算機“1”〜“n−1” 508 通信装置 509 演算処理装置 510 記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 樋口 和也 神奈川県横浜市戸塚区戸塚町5030番地 株式会社 日立製作所 ソフトウェア事 業部内 (72)発明者 砂子 俊明 神奈川県横浜市戸塚区戸塚町5030番地 株式会社 日立製作所 ソフトウェア事 業部内 (72)発明者 石崎 知晴 神奈川県横浜市戸塚区戸塚町5030番地 株式会社 日立製作所 ソフトウェア事 業部内 (72)発明者 櫻庭 博之 神奈川県横浜市戸塚区戸塚町5030番地 株式会社 日立製作所 ソフトウェア事 業部内 (72)発明者 木原 均 神奈川県横浜市戸塚区戸塚町5030番地 株式会社 日立製作所 ソフトウェア事 業部内 (72)発明者 田中 敏文 神奈川県横浜市中区尾上町六丁目81番地 日立ソフトウェアエンジニアリング株 式会社内 (72)発明者 佐藤 保 神奈川県横浜市中区尾上町六丁目81番地 日立ソフトウェアエンジニアリング株 式会社内 (56)参考文献 特開 平9−81530(JP,A) 特開 平6−68051(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/80 G06F 15/173

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 固有の識別番号を有する複数個の計算機
    がネットワークで結合され、演算に関わる計算機が保持
    するデータを、演算部と収集部とにより演算し、演算に
    関わる計算機で同一の演算結果を得る並列計算機におけ
    るリダクション処理方法において、演算に関わる計算機
    個数をNとし、Nが2n <N<2n+1であり、かつ、N
    −2n (nは自然数)が2m (mは自然数)で割り切れ
    る場合、2n 個の計算機を2のべき乗の計算機とし、残
    りのN−2n 個の計算機を端数計算機とし、前記端数計
    算機は、前記2のべき乗の計算機と同時に演算部を行
    い、途中で前記2のべき乗の計算機に演算済みのデータ
    を転入して演算させる演算部を実行することを特徴とす
    る並列計算機におけるリダクション処理方法。
  2. 【請求項2】 全ての計算機が前記収集部を実行する途
    中で、前記2のべき乗の計算機が、その演算済み結果を
    端数計算機に転出する収集部を実行することを特徴とす
    る請求項1記載の並列計算機におけるリダクション処理
    方法。
  3. 【請求項3】 固有の識別番号を有する複数個の計算機
    がネットワークで結合され、演算に関わる計算機が保持
    するデータを、演算部と収集部とにより演算し、演算に
    関わる計算機で同一の演算結果を得る並列計算機におけ
    るリダクション処理方法において、演算に関わる計算機
    個数をNとし、Nが2n <N<2n+1−1であり、か
    つ、N−2n (nは自然数)が2m (mは自然数)で割
    り切れない場合、2n 個の計算機を2のべき乗の計算機
    とし、残りのN−2n 個の計算機のうち2m (mは自然
    数)で割り切れる数の計算機を端数計算機とし、残りの
    計算機を余り計算機とし、前記余り計算機を除く計算機
    は、データを転入して演算し、途中で、余り計算機が、
    2のべき乗の計算機にデータを分割して転入して演算さ
    せる演算部を実行することを特徴とする並列計算機にお
    けるリダクション処理方法。
  4. 【請求項4】 余り計算機を除く計算機が前記収集部を
    実行する途中で、前記2のべき乗の計算機が、その演算
    結果を分割して余り計算機に転出する収集部を実行する
    ことを特徴とする請求項3記載の並列計算機におけるリ
    ダクション処理方法。
JP14526299A 1999-05-25 1999-05-25 並列計算機におけるリダクション処理方法 Expired - Fee Related JP3524430B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7238376B2 (ja) * 2018-12-14 2023-03-14 富士通株式会社 情報処理システム及び情報処理システムの制御方法
JP7230683B2 (ja) 2019-05-21 2023-03-01 富士通株式会社 演算処理装置、プログラム、及び演算処理装置の制御方法

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