JPH1091592A - 並列計算機 - Google Patents
並列計算機Info
- Publication number
- JPH1091592A JPH1091592A JP8245930A JP24593096A JPH1091592A JP H1091592 A JPH1091592 A JP H1091592A JP 8245930 A JP8245930 A JP 8245930A JP 24593096 A JP24593096 A JP 24593096A JP H1091592 A JPH1091592 A JP H1091592A
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- nodes
- flag
- access
- 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.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
Abstract
荷を減らす。 【解決手段】 複数のノードに分散されたデータを読み
出すときに、読み出されたデータを受信したことを示す
共通のフラグ37に各データが到着したときに演算回路
56により1を加え、このフラグ37の値が全てのノー
ドからのデータ受信完了を表す値と一致したことを一致
判定回路53で判別し、一致している場合にプロセッサ
24に割込を発生させるアンド回路59を設ける。 【効果】 プロセッサ24は分散されたデータ全体を受
信したときにのみ割込を受信することができ、無駄な割
込により本来処理を阻害しない。
Description
を有する計算機システムにおいて、これらのプロセッサ
により共有されている資源を持つ並列計算機に関し、特
にそれぞれプロセッサを有する複数のノードがネットワ
ークを介して結合されている並列計算機において資源を
複数のノードに分散配置する並列計算機の構成方法に関
する。
サーバとしては、複数のプロセッサから構成される並列
計算機かまたは複数の計算機からなるクライアント・サ
ーバ型の分散処理システムが知られている。本明細書で
は、並列計算機を構成する複数のプロセッサとクライア
ント・サーバ型の分散処理システムを構成する複数の計
算機とを区別することなく言及するするために、分散処
理システムの分散処理を実行する計算機要素を「ノー
ド」と呼ぶ。
スク装置に分散して保持されることが多く、ユーザから
のアクセス処理要求は複数のノードの協調動作により処
理される。
映画などの大量の映像情報を格納し、複数のユーザに映
像情報を供給するビデオオンデマンドサーバがある。映
像情報は供給時間が延びてしまうと画像の途切れや画面
のちらつきが発生するという特徴をもつ。このため、遅
延時間の短縮は重要な課題である。
ては遅延時間の短縮に関して考慮しなければならないこ
とがある。それは、メディア情報へのアクセスパターン
である。つまり、ビデオオンデマンドサーバは、複数の
ユーザが同時に異なるタイトルをアクセスする場合と、
同一のタイトルをアクセスするいずれの場合において
も、高速に映像情報を提供しなければならない。
をタイトル毎に複数のノードに分散配置すればよい。こ
れにより、複数のノードに負荷を分散させることができ
る。ユーザは自分の見たいタイトルを格納しているノー
ドと交信し、映像データを供給して貰えばよい。ユーザ
により同時に要求される複数のタイトルが均等に複数ノ
ードに分散されていれば、処理負荷を分散させることが
できる。
きない。上記のシステム構成において、同一タイトルに
アクセスが集中した場合、分散システムを構成するノー
ド数が大きい場合でも負荷はそのタイトルを格納してい
るノードのみにかかってしまう。これでは1ノードから
なるシステムと性能が変わらない。
データに分割し、セルデータをハッシュ関数等の分配条
件にしたがって、複数のディスクに分散配置を行う方法
がよく用いられる。これは「ストライピング」と呼ばれ
る。例えば、参考文献1:「日経エレクトロニクス」6
02号、1994.2.28号、第13頁〜第14頁参
照。このストライピングをディスクからノードに拡張
し、同一タイトルを複数のノードに分散配置することを
「ノード間ストライピング」と呼ぶ。これにより、たと
え同一タイトルに対して複数のユーザからアクセスがあ
った場合にでも、複数ノードに負荷を分散させることが
でき、分散システムの処理性能を向上させることができ
る。
ノード間ストライピング方法をビデオオンデマンドサー
バに適用した場合には、次ぎの問題が生じる。
るノード(インターフェスノードと呼ぶ)は映像データ
の連続性保証や順序保証を行わなければならず、ノード
間ストライピングにより分散格納されたセルデータを集
めてからユーザに供給する必要がある。
れるデータ交換方法としてTCP/IPを用いた場合に
は、転送されたセルデータを格納するメッセージが到着
するたびに割込やアクノリッジ返送などのソフトウエア
処理が必要である。このソフトウエア処理はインタフェ
ースノードが本来行っているユーザインタフェース処理
を邪魔してしまう。また、このオーバヘッドはノード間
ストライピングを行うノード数に比例して増加するた
め、性能を向上するためデータ供給ノードを増やすとか
えってインタフェースノードはセルの到着確認に忙殺さ
れ、ユーザインタフェース処理がますます邪魔され、ユ
ーザサービスの質が低下する。
ば2時間の映画を見る場合にはデータを格納しているノ
ードからインターフェスノードへのデータ供給性能は、
ユーザに映像の途切れを感じさせない程度に速くなけれ
ばならない。このためにデータを格納しているノードか
らインタフェースノードへ連続的にデータを供給する必
要がある。(以下、ストリーム処理と呼ぶ。)このスト
リーム処理を実現するためにはデータの受取り側と送り
手側でフロー制御を行う必要がある。
ケットを受信する毎に割込を発生し、OS(オペレーテ
ィングシステム)が受信バッファの容量を計算してアク
ノリッジとして返送する。参考文献2:「UNIX
4.3BSDの設計と実装」第374頁〜第397頁、
S.J.Leffler他著(1991)。
の問題が起る。ノード間ストライピングにより1つのイ
ンタフェースノードが相手をしなければならないデータ
供給ノードの数が増えるにしたがって、フロー制御情報
を送信ノードに返送する回数が増大し、本来の処理であ
るユーザインタフェース処理が邪魔されてしまう。
ドに分散している資源(映画情報等のデータ等、またプ
ロセス等もデータと考える)をアクセスする場合に、分
割されたデータが集まったことを高速に確認することが
できる並列計算機を提供することである。
でのデータの転送に関して高速なフロー制御のできる並
列計算機を提供することである。
めに、本発明の並列計算機は、少なくとも1つ以上のプ
ロセッサをそれぞれ有する複数のノードと、上記複数の
ノードの間でメッセージを交換するための上記ノードを
相互に接続するネットワークとからなる並列計算機にお
いて、該複数のノードにより利用可能な少なくとも1つ
の資源と、その資源を複数のノードに分割して格納する
手段を有し、その資源に対してアクセス要求を行うノー
ドは、その資源を分割格納している複数のノードに対し
て一連のアクセス要求を行うときに、該一連のアクセス
要求に対してアクセス結果が返答されたか否かを格納す
る手段(フラグと呼ぶ)を有し、該アクセス要求を受け
付けたノードは、該アクセス要求に対してアクセス結果
を返答するときに、アクセス結果とともに該フラグに対
して自ノードがアクセス結果を返したことを記録するた
めに、該フラグを指定する手段と、該フラグに対する記
録方法を指定する手段とを有し、アクセス要求を行った
ノードは、該アクセス結果を受け取ったときに、付帯す
る該フラグを指定する手段で示されるフラグに対して、
該フラグに対する記録方法で指定された手段で記録を行
い、そのフラグが全てのノードから返答があったことを
示すか否かを判定する手段と、全てのノードから返答が
あったと判定された場合に該プロセッサに割込を発生す
る回路を有する。
の並列計算機は、少なくとも1つ以上のプロセッサをそ
れぞれ有する複数のノードと、上記複数のノードの間で
メッセージを交換するための上記ノードを相互に接続す
るネットワークとからなる並列計算機において、該並列
計算機は該複数のノードにより利用可能な少なくとも一
つの資源を有し、該ノードには、その資源を直接アクセ
スする手段を有する第1のノードと、直接アクセスでき
ない第2のノードがあり、該第2のノードは、該資源を
アクセスする場合に、複数のアクセス結果を格納する手
段を有し、該第1のノードは、該アクセス結果格納手段
の空き数を格納する手段と、該アクセスに対する結果を
第2のノードに返答するときに、上記格納手段に格納さ
れた該空き数を減少させる回路を有し、該第2のノード
は、該アクセス結果を利用することにより、該アクセス
結果格納手段を解放した場合に、該第1のノードにある
該空き数を格納する手段に納められた空き数を増加させ
る回路を有し、該第1のノードは、該第2のノードの該
アクセス結果格納手段に空きがあるか否かを判定する回
路と、該空きの判定の結果が空きがない場合にアクセス
結果の返答を遅延させる手段を有する。
機を図面に示した実施の態様を参照してさらに詳細に説
明する。なお、以下においては、同じ参照番号は同じも
のもしくは類似のものを表わすものとする。なお、以下
では実施の態様の1つの例を実施例と呼ぶ。
算機では、複数のノード2はネットワーク1により結合
され、各ノード2は、少なくとも一つのプロセッサ24
と、ディスク装置25を含み、このディスク装置25内
に、ノード間ストライピングにより分散されたデータが
保持されている。各データは、それを保持するノード
(データ供給ノード)のみからアクセス可能であり、こ
のデータをアクセスしたい他のノード(データ消費ノー
ド)は、このデータ供給ノードにデータ供給要求を行
う。
は同じ構成をとり、同一の処理を行うことができが、本
実施例では説明をわかりやすくするために図1におい
て、ノード#0、ノード#1をデータ供給ノード、ノー
ド#2をデータ消費ノードと位置付ける。そして、ノー
ド#2がノード#0、ノード#1に分散配置されたデー
タをアクセスする場合について説明する。
ディスク装置25に分散格納されたデータ35をノード
#2が読み出すときに、ノード#0が転送したデータと
ノード#1が転送したデータの両方が揃ったことを高速
に判定することが第1の特徴である。そして、データ消
費ノードではデータ供給ノードから連続的にデータを受
信できる様に循環バッファ38を有している。この循環
バッファ38の空き容量をデータ供給ノードが高速に判
定できることが第2の特徴である。これら2つのために
ノード2にはイベント制御回路500と、循環バッファ
へのデータの到着を示すフラグ37とこのフラグを操作
するためのフラグレジスタ58とフロー制御レジスタ群
52が設けられている。循環バッファ38はデータ供給
ノードからのデータ転送と、データ消費ノードが転送さ
れたデータを用いてユーザにサービスを提供する処理を
並行して行うために設けられ、図2に示すような構成を
とる。すなわち、ノード#0、ノード#1からそれぞれ
転送されたデータを格納するバッファエリア、ノード#
0用[m],ノード#1用[m]と、これらが到着して
いるか否かを示すフラグ[m]である。データ供給ノー
ドはm=0から順番にデータをデータ消費ノードに転送
し、データ消費ノードはm=0から順番に消費してい
く。
ジ11を受信したときにローカルメモリ上のフラグ37
を一時的に格納するレジスタである。
ッファ38の空き容量を管理するレジスタでデータ供給
ノードで用いられる。データを転送すべきノード、ここ
ではデータ消費ノードの循環バッファ38の空き容量を
格納する。本実施例では、データ供給ノードがデータを
データ消費ノードに転送した場合に該当するフロー制御
レジスタを減少させ、データ消費ノードが転送されたデ
ータを処理し終えたら、データ供給ノードの該当フロー
制御レジスタを増加させることに特徴がある。これによ
り、データ供給ノードは該当するフロー制御レジスタが
0より大きければ、データを転送することができると判
断可能であるとともに、データ消費ノードはメッセージ
の到着した時ではなく、データを消費する時にフロー制
御を行うことができる。したがって、データ消費ノード
では、ユーザへのサービス処理への無駄な割込が防止で
きる。
説明する。
は、データ供給プログラム31やデータ消費プログラム
32を実行するプロセッサ24と、ローカルメモリ23
と、ノードに分散されたデータ35を格納するディスク
装置25と、本実施例で特徴的な高速フロー制御処理を
行うための送信制御回路21と、受信制御回路22とか
ら構成される。この並列計算機は、いわゆる分散メモリ
型並列計算機で、ローカルメモリ23は他のノードから
はアクセスできず、そのローカルメモリの属するノード
のみアクセス可能である。そして、ローカルメモリ23
にはそのノードで実行されるプログラムやそのプログラ
ムが使用あるいは生成するデータを格納する。さらに、
本実施例ではデータ供給ノードではディスク装置25か
ら読み出したデータ35が一時的に格納された転送デー
タ36が置かれる。一方、データ消費ノードではデータ
を受け取るための循環バッファ38とそのフラグ37が
置かれる。
バス26に接続され、メモリマップドIO方法により、
プロセッサ24からロード命令やストア命令などのメモ
リアクセス命令でローカルメモリ23と区別することな
くアクセスすることができる。
1と、送信パラメータ格納レジスタ42と送信状態レジ
スタST43から構成される。受信制御回路22は入力
バッファ51と、メモリアクセス回路60とフロー制御
レジスタ群52とから構成される。メモリアクセス回路
60はネットワークから受信したデータをローカルメモ
リ23に書き込んだり、フラグ37を読み出してこれを
更新して書き戻す。イベント制御回路500は、2つの
入力が同一か否かを判定する一致制御回路53と、2つ
の入力の大小を比較する大小判定回路54と、2つの入
力の加算、減算、ビットセット、ビットリセット、を行
なう演算回路56と、セレクタ55、57、61と、ア
ンド回路59とからなる。
態は特に規定しないがメッセージ11のノード番号Na
dで示されるノードにメッセージを伝達する。例えば、
特願平6−53405号明細書に記載されたものと同じ
でよい。
スクに格納されたメディアデータ35をノード#2が読
み出す手順を説明する。
ノード2はシステムの起動時にフロー制御レジスタ群5
2を0に初期化する。
はメディアデータを読み出すための循環バッファ38と
その読み出し完了を表すフラグ37をローカルメモり2
3に確保し、フラグ37には初期値として0を書き込
む。この循環バッファ38は図2に示すようにノード#
0用のデータ領域とノード#1用のデータ領域とそのフ
ラグを1組として(m+1)組ある。後から述べるよう
にノード#0、ノード#1はこの循環バッファ38の先
頭からデータ転送の宛先として用い、(m+1)組目ま
で進む。そして、次は0組目へと循環して用いる。この
ように循環して用いることにより、循環バッファ38よ
りも大きなメディアデータを読み出して、例えば表示装
置に表示するなどの処理を行なうことができる。
クエスト)ノード#2はノード#0へ読み出すべきメデ
ィアデータのタイトルと、受信する循環バッファ38の
ノード#0用のエリアのアドレスと、フラグのアドレス
と、循環バッファ38の大きさ(m+1)と、フロー制
御に用いるフロー制御レジスタのIDであるR#を、ネ
ットワークを介して伝える。図1には記載されていない
が、これはイーサネットなどの従来技術を用いても構わ
ない。同様にノード#1へも読み出しリクエストを伝え
る。さらに本実施例で特徴的なノード間ストライプ数を
ノード#2はノード#0とノード#1に伝達する。ここ
ではノード#0とノード#1への2分割であるため2で
ある。一般的にn台のノードに分割されている場合には
nである。またこの時、用いるフロー制御レジスタには
0が設定されている。これは、ノード#0のデータ供給
プログラム31からは循環バッファ38に空きがないこ
とと等価にみえる。このため、ノード#0、ノード#1
はデータの供給を停止して、フロー制御レジスタが0よ
り大きくなることを待つ。
始指示)この段階ではノード#0およびノード#1はノ
ード#2の循環バッファ38に空きがない状態であると
認識しているため待機している。そこで、ノード#2は
自ノードのデータ消費プログラム32の準備が完了した
ところでノード#0およびノード#1に読み出し開始指
示を次の手順にしたがって行う。この開始指示はより具
体的にはノード#0およびノード#1のフロー制御レジ
スタに循環バッファ38の空き容量を設定することであ
る。
セッサ24は送信パラメタ格納レジスタ42に次の値を
設定し、メッセージをノード#0、ノード#1に送信す
る。
ージであることを示す] CTL(R#):=宛先のフロー制御レジスタ識別子 Dad:=0[このメッセージでは参照されない] Dln:=0[このメッセージでは参照されない] Fad:=0[このメッセージでは参照されない] Int:=0[このメッセージでは参照されない] D0:=0[このメッセージでは参照されない] D1:=(m+1)[循環バッファ38の容量] Ct0:=0[このメッセージでは参照されない] Ct1:=値設定を表すコード Tad:=0[このメッセージでは参照されない] このように送信パラメタを設定することにより、メッセ
ージ生成回路41はメッセージ11を生成し、ネットワ
ーク1へ送出する。そして、送信状態レジスタST43
に送信完了を表すコードを書き込む。
が示すノード、ここではノード#0またはノード#1へ
メッセージを配送する。
およびノード#1の動作について説明する。
メッセージ11を一時的に入力バッファ51に格納し、
各フィールドの切出しを行う。本メッセージはCTL
(R)=1であることから本メッセージはフロー制御レ
ジスタに対する更新要求であると判断する。また、Ct
1が「値設定」であることから、イベント制御回路50
0はセレクタ57にD1を選択するように制御し、フロ
ー制御レジスタ群52からCTL(R#)で示されるレ
ジスタに対し、D1に格納された(m+1)を書き込
む。
は循環バッファ58の空き容量として(m+1)が設定
された。
方ノードのプロセッサ2ではデータ供給プログラム31
がシステムバス26を介してフロー制御レジスタ[R
#]を監視し、0より大きくなるまで待機している。上
記ノード#2からの読み出しリクエストによりフロー制
御レジスタ[R#]は(m+1)になっているため、デ
ータ供給プログラム31はデータ転送処理を次の手順に
従い行う。
ータ35をシステムバス26を介して読みだし、ローカ
ルメモリ23に転送データ36として格納する。そし
て、このデータをノード#2に転送する。
26を介して送信パラメタ格納レジスタ42に次のよう
にパラメタを設定する。
メモリ宛であることを示す] Dad:=ノード#0(またはノード#1)用データ格
納領域[i]の先頭アドレス、一番最初はi=0であ
る。 Dln:=データ長[上記データ格納領域[i]の容量
と同一] Fad:=フラグ格納領域[i]の先頭アドレス、一番
最初はi=0である。 Int:=1[割込を発生させることを示す] D0:=2[データのノード間ストライプ数] D1:=1[フラグの増分を表す] Ct0:=0[一致判定を選択することを表す] Ct1:=加算を表すコード Tad:=転送データ36の先頭アドレス これらのパラメタをプロセッサが書き込むことで、メッ
セージ生成回路41はメッセージ11を生成し、ネット
ワーク1へ送出する。このとき、メッセージ11の転送
データフィールドにはTadに格納された先頭アドレ
ス、すなわち転送データ36がパッキングされる。
タの更新)データを一つデータ消費ノードに転送し終え
ると、データ供給ノードではフロー制御レジスタの更新
を行う。即ち、プロセッサ24はシステムバス26を介
してフロー制御レジスタ[R#]から1を引く。この結
果が0に場合、データ供給プログラム31は待機状態に
なる。さらにデータ供給プログラム31は次にデータを
転送すべき循環バッファ38のアドレスをデータ用はノ
ード#0(またはノード#1)用のデータ格納領域[i
+1]、フラグアドレスをフラグ領域[i+1]に更新
する。もしも、これらのアドレスがそれぞれデータ格納
領域[m]、フラグ領域[m]より大きい場合には循環
バッファの先頭アドレスであるデータ格納領域[0]、
フラグ領域[0]に更新する。そして、タイトルで指定
されたデータを全てノード#2に転送し終えるまで、こ
ららの動作を繰り返す。
に上記メッセージを受信したノード#2の動作について
説明する。
メッセージ11を一時的に入力バッファ51に格納し、
各フィールドの切出しを行う。本メッセージはCTL
(R)=0であることから本メッセージはローカルメモ
リ23へのデータ転送であると判断する。メッセージ1
1のDlnで示される長さの転送データを、メモリアク
セス回路60はシステムバス26を介してDadが示す
循環バッファ38のデータ格納領域の先頭アドレスへ書
き込む。次にフラグの更新を行うが、これは本実施例で
特徴的な動作である。メモリアクセス回路60はメッセ
ージ11のFadで示されるアドレスからフラグ格納領
域[i]の内容を読みだし、フラグレジスタ58に格納
する。
送が始めての場合)この場合、フラグ領域[i]に格納
されたフラグは初期値0である。イベント制御回路50
0は、CTL(R)が0であることからセレクタ61で
フラグレジスタ58を選択し、演算回路56の一方に入
力する。そして、演算回路56のもう一方の入力にはD
1すなわちここでは1を入力する。イベント制御回路5
00はCt1が加算を表すコードであることから演算回
路56とセレクタ57を制御してセレクタ57の出力に
演算回路56の二つの入力の加算結果を出力する。ここ
では0+1=1である。そして、フラグレジスタ58に
書き戻す。次に、イベント制御回路500はCt0=0
すなわち、一致判定を示すコードであることから、一致
判定回路53の一方の入力にD0、ここでは2を、他方
にはセレクタ61で選択されている更新済のフラグレジ
スタ58の内容、ここでは1を、入力する。一致判定回
路53は2つの入力線が不一致であるため、出力に0を
出す。このため、セレクタ55で選ばれた出力は0にな
りアンド回路59の出力は0になる。したがって、プロ
セッサ24に対して割込を発生しない。すなわち、デー
タが片側しか到着していなければプロセッサ24に無駄
な割込を発生しない。これにより、データ消費プログラ
ムの実行を阻害しない効果が実現できる。
レジスタ58に格納された更新済みのフラグの値1をF
adが示すフラグ格納領域[i]へシステムバス26を
介して書き戻す。
送が2つ目の場合)同様にフラグの更新を行うが、今回
はローカルメモリ23のフラグ格納領域[i]から読み
出されたフラグの値は1である。したがって、演算回路
56で1を加算されたフラグの値は2になり、この値が
フラグレジスタ58に格納される。そして、一致判定回
路53の2つの入力は今回はどちらも2になるため、一
致判定回路53の出力は1になる。そして、アンド回路
59の2つの入力はIntが1であるため、出力に1を
出す。これにより、イベント制御回路500はプロセッ
サ24に割込をかけることができ、プロセッサは使用可
能なデータを受信したことを無駄なく知ることができ
る。
レジスタ58に格納された更新済みのフラグの値2をF
adが示すフラグ格納領域[i]へシステムバス26を
介して書き戻す。
#2はイベント制御回路500から受け取ったデータ受
信完了割込により、データの受信を知らされると次の手
順でデータを消費する。すなわち、循環バッファ38の
フラグ37をシステムバス26を介して読み、フラグ3
7の値が2のエントリを探索する。ここで値が2とはノ
ード#0、ノード#1に分割されたデータを正しく受信
できたことを示す。データ消費プログラム32は正しく
受信できたデータ格納領域からデータを取りだし、表示
装置へ表示するなどの処理を行う。そして、このエント
リに格納されたデータを消費し切ると次の手順で領域の
解放を行う。すなわち、プロセッサ24はシステムバス
26を介してローカルメモリ23に格納された上記エリ
アに対応するフラグ格納領域に0を書き込む。これは該
当するエリアには有効なデータが存在しないこと、すな
わちこの領域が空き領域であることを表す。そして、循
環バッファ38の空き領域が増えたことをノード#0お
よびノード#1に伝えるために次の手順でメッセージを
送信する。
き領域増加の伝達)すなわち、システムバス26を介し
てプロセッサ24は送信パラメタ格納レジスタ42に次
の値を設定し、メッセージをノード#0、ノード#1に
送信する。
ージであることを示す] CTL(R#):=宛先のフロー制御レジスタ識別子 Dad:=0[このメッセージでは参照されない] Dln:=0[このメッセージでは参照されない] Fad:=0[このメッセージでは参照されない] Int:=0[このメッセージでは参照されない] D0:=0[このメッセージでは参照されない] D1:=1[循環バッファ38の空き容量の増分] Ct0:=0[このメッセージでは参照されない] Ct1:=加算を表すコード Tad:=0[このメッセージでは参照されない] このように送信パラメタを設定することにより、メッセ
ージ生成回路41はメッセージ11を生成し、ネットワ
ーク1へ送出する。そして、送信状態レジスタST43
に送信完了を表すコードを書き込む。
が示すノード、ここではノード#0またはノード#1へ
メッセージを配送する。
およびノード#1の動作について説明する。
メッセージ11を一時的に入力バッファ51に格納し、
各フィールドの切出しを行う。本メッセージはCTL
(R)=1であることから本メッセージはフロー制御レ
ジスタに対する更新要求であると判断する。また、Ct
1が「加算」であることから、イベント制御回路500
は演算回路56とセレクタ57、61を制御してD1に
格納された値1をフロー制御レジスタ[R#]に格納さ
れた値に加算した結果をセレクタ57の出力に出す。そ
して、この出力結果をフロー制御レジスタ[R#」に書
き戻す。また、このときIntは0であることから、ア
ンド回路59の出力は0であり、プロセッサ24に対し
てイベント制御回路500は割込を発生しない。
れた循環バッファ58の空き容量は1つ増えたことにな
る。
データを全て読み終えたデータ供給プログラム31は次
にデータの読み出しリクエストが来るまで待機する。
タを消費すると、次の手順にしたがって、データ供給ノ
ードのフロー制御レジスタの値を初期値0に戻す。すな
わち、システムバス26を介してプロセッサ24は送信
パラメタ格納レジスタ42に次の値を設定し、メッセー
ジをノード#0、ノード#1に送信する。
ージであることを示す] CTL(R#):=宛先のフロー制御レジスタ識別子 Dad:=0[このメッセージでは参照されない] Dln:=0[このメッセージでは参照されない] Fad:=0[このメッセージでは参照されない] Int:=0[このメッセージでは参照されない] D0:=0[このメッセージでは参照されない] D1:=0[初期値] Ct0:=0[このメッセージでは参照されない] Ct1:=値設定を表すコード Tad:=0[このメッセージでは参照されない] このように送信パラメタを設定することにより、メッセ
ージ生成回路41はメッセージ11を生成し、ネットワ
ーク1へ送出する。そして、送信状態レジスタST43
に送信完了を表すコードを書き込む。
が示すノード、ここではノード#0またはノード#1へ
メッセージを配送する。
およびノード#1の動作について説明する。
メッセージ11を一時的に入力バッファ51に格納し、
各フィールドの切出しを行う。本メッセージはCTL
(R)=1であることから本メッセージはフロー制御レ
ジスタに対する更新要求であると判断する。また、Ct
1が「値設定」であることから、イベント制御回路50
0はセレクタ57にD1を選択するように制御し、フロ
ー制御レジスタ群52からCTL(R#)で示されるレ
ジスタに対し、D1に格納された0を書き込む。
は循環バッファ58の空き容量として0が設定された。
これにより、再びこのフロー制御レジスタを利用してフ
ロー制御を行う場合に、読み出し開始要求が来るまでデ
ータ供給プログラムが待機することを保証する。
ノード(ノード#2)では分割されたデータが全て整っ
たときにのみ本来の処理であるデータ消費プログラム3
2に割込がかかり、メッセージの受信処理を行えば良
い。これにより、データ消費プログラムが邪魔されて、
たとえば表示装置への表示処理が途切れて、画像が乱れ
ることを防止できる。
しては、メッセージが到着するごとにデータ消費プログ
ラムが邪魔されることがなく、実際にバッファを解放し
たときにのみ空き容量をデータ供給プログラム31へ伝
達すればよい。本実施例の説明では循環バッファの1つ
のエントリを消費した場合について述べたが、データ消
費プログラム32の構造上の理由により、複数エントリ
を一括して消費しても構わない。この場合、データ消費
ノードからデータ供給ノードに伝えられる循環バッファ
38の空き容量の増分は1より大きくなる。
プログラム31はローカルに配置されたフロー制御レジ
スタの値を調べることにより、送信先の循環バッファ3
8の空き容量を知ることができる。
ルな情報に基づいて動作をできるため、並行処理を行う
ことができ、並列計算機の性能を向上させることができ
る。
例1では分割されたデータの到着確認にデータ分割数を
利用した。また上記実施例1では2分割であったため2
であった。変形例では到着しているデータと到着してい
ないデータを判別できるように上記実施例を変形して実
現する。
ビットに対してデータ供給ノードからデータ到着済とい
う意味を与える。
を割り当て、ノード#1にはビット1を割り当てる。
1との相違点のみを説明する。
実施例1では分割数2を知らせた代わりに変形例1では
2^0+2^1=3、すなわちノード#0とノード#1
の両方からデータが正しく到着したときのフラグの期待
値を知らせる。ここで「^」はべき乗を表す。さらに、
ノード#0に対しては、データを書き込むときに2^0
=1をフラグに加算するように伝え、ノード#1には2
^1=2を加算するように伝える。
ータ供給ノードではデータをノード#2に転送するとき
に送信パラメタ格納レジスタの値を実施例1とは異なり
以下のように設定する。
メモリ宛であることを示す] Dad:=ノード#0(またはノード#1)用データ格
納領域[i]の先頭アドレス 一番最初はi=0である。
[i]の容量と同一] Fad:=フラグ格納領域[i]の先頭アドレス 一番最初はi=0である。
=2^0+2^1] D1:=2^0=1(ノード#0の場合)または2^1
=2(ノード#1の場合)[フラグの増分を表す] Ct0:=0[一致判定を選択することを表す] Ct1:=加算を表すコード Tad:=転送データ36の先頭アドレス (フラグに該当する領域に対するデータ転送が始めての
場合)この場合、フラグ領域[i]に格納されたフラグ
は初期値0である。イベント制御回路500は、CTL
(R)が0であることからセレクタ61でフラグレジス
タ58を選択し、演算回路56の一方に入力する。そし
て、演算回路56のもう一方の入力にはD1すなわちこ
こでは1または2を入力する。イベント制御回路500
はCt1が加算を表すコードであることから演算回路5
6とセレクタ57を制御してセレクタ57の出力に演算
回路56の二つの入力の加算結果を出力する。ここでは
1または2である。そして、フラグレジスタ58に書き
戻す。次に、イベント制御回路500はCt0=0すな
わち、一致判定をしめすコードであることから、一致判
定回路53の一方の入力にD0、ここでは3を他方には
セレクタ61で選択されている更新済のフラグレジスタ
58の内容、ここでは1または2を入力する。一致判定
回路53は2つの入力線が不一致であるため、出力に0
を出す。このため、セレクタ55で選ばれた出力は0に
なりアンド回路59の出力は0になる。したがって、プ
ロセッサ24に対して割込を発生しない。すなわち、デ
ータが片側しか到着していなければプロセッサ24に無
駄な割込を発生しない。これにより、データ消費プログ
ラムの実行を阻害しない効果が得られる。
レジスタ58に格納された更新済みのフラグの値1また
は2をFadが示すフラグ格納領域[i]へシステムバ
ス26を介して書き戻す。
ラグ格納領域[i]を読み出すことにより、この値が0
であればどちらも受信していないことを判別できる。そ
して、1であればノード#0からだけデータを受信した
ことを判別できる。そして、2であればノード#1から
だけデータを受信したことを判別できる。3であれば、
両方を受信していることを判別できる。
送が2つ目の場合)同様にフラグの更新を行うが、今回
はローカルメモリ23のフラグ格納領域[i]から読み
出されたフラグの値は1または2である。したがって、
もう一方のデータを受信すると演算回路56で2または
1を加算されるため、フラグの値はどちらの場合も3に
なり、この値がフラグレジスタ58に格納される。そし
て、一致判定回路53の2つの入力は今回はどちらも3
になるため、一致判定回路53の出力は1になる。そし
て、アンド回路59の2つの入力はIntが1であるた
め、出力に1を出す。これにより、イベント制御回路5
00はプロセッサ24に割込をかけることができ、プロ
セッサは使用可能なデータを受信したことを無駄なく知
ることができる。
ードへアクセスした際、分散されたノードから一連のデ
ータの全体を受信したときに割り込みを発生するので、
一連のデータの個々のデータを受信した時と比べ、割り
込み回数を減らすことができ、当該ノードでの本来の処
理を中断する回数が縁、ノードの処理効率を高めること
ができる。
クセス結果を格納する空き数に応じてアクセス結果の応
答を遅延させる手段を有するので、フロー制御信号をノ
ード間で送受信する場合と比べ、フロー制御信号を送受
信する必要が無く、ノード間の信号送受信に新たな負荷
をかけることなく、高速なフロー制御を行うことができ
る。
Claims (2)
- 【請求項1】少なくとも1つ以上のプロセッサをそれぞ
れ有する複数のノードと、上記複数のノードの間でメッ
セージを交換するための上記ノードを相互に接続するネ
ットワークとからなる並列計算機において、 該複数のノードにより利用可能な少なくとも1つの資源
と、その資源を複数のノードに分割して格納する手段を
有し、 その資源に対してアクセス要求を行うノードは、その資
源を分割格納している複数のノードに対して一連のアク
セス要求を行うときに、該一連のアクセス要求に対して
アクセス結果が返答されたか否かを格納する手段(フラ
グと呼ぶ)を有し、 該アクセス要求を受け付けたノードは、該アクセス要求
に対してアクセス結果を返答するときに、アクセス結果
とともに該フラグに対して自ノードがアクセス結果を返
したことを記録するために、該フラグを指定する手段
と、該フラグに対する記録方法を指定する手段とを有
し、 アクセス要求を行ったノードは、該アクセス結果を受け
取ったときに、付帯する該フラグを指定する手段で示さ
れるフラグに対して、該フラグに対する記録方法で指定
された手段で記録を行い、そのフラグが全てのノードか
ら返答があったことを示すか否かを判定する手段と、全
てのノードから返答があったと判定された場合に該プロ
セッサに割込を発生する回路を有することを特徴とする
並列計算機。 - 【請求項2】少なくとも1つ以上のプロセッサをそれぞ
れ有する複数のノードと、上記複数のノードの間でメッ
セージを交換するための上記ノードを相互に接続するネ
ットワークとからなる並列計算機において、 該並列計算機は該複数のノードにより利用可能な少なく
とも一つの資源を有し、 該ノードには、その資源を直接アクセスする手段を有す
る第1のノードと、直接アクセスできない第2のノード
があり、 該第2のノードは、該資源をアクセスする場合に、複数
のアクセス結果を格納する手段を有し、 該第1のノードは、該アクセス結果格納手段の空き数を
格納する手段と、該アクセスに対する結果を該第2のノ
ードに返答するときに、上記格納手段に格納された該空
き数を減少させる回路を有し、 該第2のノードは、該アクセス結果を利用することによ
り、該アクセス結果格納手段を解放した場合に、該第1
のノードにある該空き数を格納する手段に納められた空
き数を増加させる回路を有し、 該第1のノードは、該第2のノードの該アクセス結果格
納手段に空きがあるか否かを判定する回路と、該空きの
判定の結果が空きがない場合にアクセス結果の返答を遅
延させる手段を有することを特徴とする並列計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24593096A JP3789011B2 (ja) | 1996-09-18 | 1996-09-18 | 並列計算機 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24593096A JP3789011B2 (ja) | 1996-09-18 | 1996-09-18 | 並列計算機 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1091592A true JPH1091592A (ja) | 1998-04-10 |
| JP3789011B2 JP3789011B2 (ja) | 2006-06-21 |
Family
ID=17140977
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP24593096A Expired - Fee Related JP3789011B2 (ja) | 1996-09-18 | 1996-09-18 | 並列計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3789011B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015193164A (ja) * | 2014-03-31 | 2015-11-05 | ブラザー工業株式会社 | 非吐出ノズル検出装置 |
| JP2020198044A (ja) * | 2019-06-05 | 2020-12-10 | 富士通株式会社 | 並列処理装置 |
-
1996
- 1996-09-18 JP JP24593096A patent/JP3789011B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015193164A (ja) * | 2014-03-31 | 2015-11-05 | ブラザー工業株式会社 | 非吐出ノズル検出装置 |
| JP2020198044A (ja) * | 2019-06-05 | 2020-12-10 | 富士通株式会社 | 並列処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3789011B2 (ja) | 2006-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6338095B1 (en) | Data transfer method for reduced number of messages by message passing library and direct intermemory data transfer library and computer system suitable therefor | |
| JP3344345B2 (ja) | 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体 | |
| CN1774699B (zh) | 共享资源的并发访问方法和设备 | |
| JP2809961B2 (ja) | マルチプロセッサ | |
| TW544589B (en) | Loosely coupled-multi processor server | |
| US6029204A (en) | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries | |
| Gelernter et al. | Distributed communication via global buffer | |
| US6484220B1 (en) | Transfer of data between processors in a multi-processor system | |
| TW457437B (en) | Interconnected processing nodes configurable as at least one non-uniform memory access (NUMA) data processing system | |
| JP2633900B2 (ja) | 共通バス制御方法 | |
| US5204954A (en) | Remote storage management mechanism and method | |
| JP2006099731A (ja) | リソース管理装置 | |
| JP3789011B2 (ja) | 並列計算機 | |
| US6189075B1 (en) | Circuit for the management of memories in a multiple-user environment with access request and priority | |
| US5860026A (en) | Information processing system for controlling operations of input/output devices of another clusters according to control instructions issued from a cluster | |
| CN119883970A (zh) | 一种数据读写方法、装置、设备及介质 | |
| JPH11120157A (ja) | 並列コンピュータシステム内の高速通信のための方法及びこの方法によって操作される並列コンピュータシステム | |
| JP2001236335A (ja) | 分散メモリ型並列計算機及びそのデータ転送終了確認方法 | |
| JP4658064B2 (ja) | 相互接続ネットワークでの効率的な順序保存用の方法及び装置 | |
| JP2780662B2 (ja) | マルチプロセッサシステム | |
| JP2984594B2 (ja) | マルチクラスタ情報処理システム | |
| US5875299A (en) | disk access apparatus for performing a stride processing of data | |
| JP2830780B2 (ja) | マルチプロセッサシステム | |
| JPH10171770A (ja) | マルチプロセッサシステム | |
| JP2000137676A (ja) | バッファ制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050826 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050906 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051107 |
|
| 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: 20060322 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060327 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |