JP3569341B2 - Parallel computer system - Google Patents
Parallel computer system Download PDFInfo
- Publication number
- JP3569341B2 JP3569341B2 JP07494195A JP7494195A JP3569341B2 JP 3569341 B2 JP3569341 B2 JP 3569341B2 JP 07494195 A JP07494195 A JP 07494195A JP 7494195 A JP7494195 A JP 7494195A JP 3569341 B2 JP3569341 B2 JP 3569341B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- control processor
- processor
- processing
- master
- 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
Images
Landscapes
- Multi Processors (AREA)
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】
本発明は,複数のプロセッサエレメントとコントロールプロセッサとがネットワークで結合された計算機システムにおいて,I/O装置を持たないプロセッサエレメントからの,I/O装置を持つコントロールプロセッサを経由したI/O処理を,高速に効率よく実行できるようにした並列型計算機システムに関するものである。
【0002】
【従来の技術】
図8は従来技術の説明図である。
図8(A),(C)に示す並列型計算機システムにおいて,プロセッサエレメントPE〔PE(0),PE(1),…〕は,演算を専門に行うプロセッサである。コントロールプロセッサCPは,プロセッサエレメントPEを管理する装置であり,これには記憶装置80のようなI/O装置が接続されている。また,コントロールプロセッサCPと,各プロセッサエレメントPEとは,クロスバネットワークXBで接続されている。
【0003】
各プロセッサエレメントPEが記憶装置80上に格納されているデータを参照する場合,プロセッサエレメントPEには記憶装置80が接続されていないため,コントロールプロセッサCPに存在するサーバにI/O要求を出す。I/O要求を受けたコントロールプロセッサCPのサーバは,記憶装置80へのI/Oを実行し,読み込んだデータをクロスバネットワークXBを経由して要求元のプロセッサエレメントPEに転送する。
【0004】
【発明が解決しようとする課題】
図8において,記憶装置80とコントロールプロセッサCPとの間のデータ転送速度が800Mbyte/秒,コントロールプロセッサCPと各プロセッサエレメントPEとの間のデータ転送速度が400Mbyte/秒であるとする。
【0005】
従来,図8(A)に示すように,プロセッサエレメントPE(0)が,I/O(1)の要求と,I/O(2)の要求を行い,プロセッサエレメントPE(1)がI/O(3)の要求と,I/O(4)の要求をこの順序で行った場合,コントロールプロセッサCPは,これらのI/O要求を1つずつ順番に処理していた。そのため,記憶装置80からコントロールプロセッサCPへの1つのI/O処理によるデータ転送に例えば6秒かかるとすると,図8(B)に示すように,記憶装置80からコントロールプロセッサCPへの全部のデータ転送では,6秒×4=24秒かかることになった。
【0006】
また,図8(C)に示すように,プロセッサエレメントPEのクライアントから1つのread要求が出された場合に,記憶装置80からコントロールプロセッサCPへのデータ転送に例えば6秒かかると,そのI/O処理が完了してからI/O要求元のプロセッサエレメントPEへのI/O処理を開始するので,さらにコントロールプロセッサCPからプロセッサエレメントPEへのデータ転送に12秒かかり,1つのI/O要求が完了するまで,図8(D)に示すように,全部で18秒の時間がかかっていた。
【0007】
以上のように,従来技術では,プロセッサエレメントPEからのI/O要求の処理に時間がかかるという問題があった。
また,コントロールプロセッサCPでは,プロセッサエレメントPEを管理するための処理や,運用に関する処理,ジョブに関する処理等,いろいろな処理が動いており,プロセッサエレメントPEが例えば100台〜200台の規模になった場合,I/O要求が1台のコントロールプロセッサCPに集中し,コントロールプロセッサCPの負荷が非常に高くなることがあるという問題があった。
【0008】
本発明は上記問題点の解決を図り,I/O処理の分散化とI/O分割並列化により,I/O処理の高速化を可能にするとともに,コントロールプロセッサの負荷を軽減することを目的とする。
【0009】
【課題を解決するための手段】
図1は本発明の構成例を示す。
プロセッサエレメント(PE)10−0,10−1,…は,演算を専門に行うプロセッサである。記憶装置31のようなI/O装置が接続されているコントロールプロセッサが複数台設けられ,その中の1台がマスタコントロールプロセッサ(以下,マスタCPという)12として設定され,その他がスレーブコントロールプロセッサ(以下,スレーブCPという)26として設定される。
【0010】
マスタCP12,スレーブCP26およびプロセッサエレメントPEは,クロスバネットワーク(XB)11で接続されている。
マスタCP12には,プロセッサエレメントPEの管理,運用に関する処理,ジョブに関する処理などのために,オペレーション用の入力装置13が接続されている。
【0011】
I/O分割指示入力手段14は,I/O要求を複数のI/O実行単位に分割する分割数を,入力装置13からのコマンド等により入力する手段である。I/O分散指示入力手段15は,I/O要求を複数のコントロールプロセッサに分散するか否か,または各コントロールプロセッサに何%分散させるかを,入力装置13からのコマンド等により入力する手段てある。
【0012】
I/O要求受付け手段16は,各プロセッサエレメントPEからのI/O要求を受け付ける手段である。分散判定処理手段17は,マスタCP12およびスレーブCP26の負荷状況およびI/O分散指示入力手段15からの分散指示情報に基づいて,I/O要求の実行を複数のコントロールプロセッサに分散させるか,または特定のコントロールプロセッサで行うかを決定する手段である。
【0013】
I/O要求転送手段20は,分散判定処理手段17の判定結果に従い,I/O要求をスレーブCP26で実行する場合に,I/O要求をスレーブCP26へ転送する手段である。I/O処理結果受信手段21は,スレーブCP26でI/O要求を実行した場合に,そのI/O処理結果を受け取る手段である。
【0014】
I/O分割処理手段18は,I/O分割指示入力手段14の指示に従い,プロセッサエレメントPEからのI/O要求を,複数のI/O実行単位に分割する手段である。I/O並列実行手段19は,分割されたI/O実行単位について,記憶装置31とマスタCP12との間のデータの入出力と,マスタCP12とI/O要求元のプロセッサエレメントPEとの間のデータの転送とを,並列に実行する手段である。
【0015】
I/O処理完了通知手段22は,マスタCP12で実行したI/O処理結果もしくはスレーブCP26で実行したI/O処理結果またはそれらの双方のI/O処理結果をI/O要求元のプロセッサエレメントPEへ通知する手段である。
【0016】
異常検出手段23は,要求したI/Oのタイムアウトまたは所定の運転制御等により,スレーブCP26の異常を検出する手段である。分散抑止手段24は,異常検出手段23によってスレーブCP26に異常が検出された場合に,そのスレーブCP26にI/O要求の実行を分担させないように分散判定処理手段17に指示を出す手段である。
【0017】
リカバリ処理手段25は,I/O要求を分担して実行していたスレーブCP26の異常を検出した場合に,このスレーブCP26が処理していたI/O要求を再実行する手段である。
【0018】
スレーブCP26におけるI/O要求受信手段27は,I/Oの分散化のために,マスタCP12から送られてきたI/O要求を受信する手段である。I/O分割処理手段28は,I/O分割指示入力手段14からの指示に従い,マスタCP12からのI/O要求を,複数のI/O実行単位に分割する手段である。I/O並列実行手段29は,分割されたI/O実行単位について,記憶装置31とスレーブCP26との間のデータの入出力と,スレーブCP26からプロセッサエレメントPEまたはマスタCP12へのデータ転送とを並列に実行する手段である。I/O処理結果転送手段30は,スレーブCP26で実行したI/O処理結果を,マスタCP12またはI/O要求元のプロセッサエレメントPEへ転送する手段である。
【0019】
図1では,スレーブCP26が1台であるが,スレーブCPは2台以上存在してもよい。
【0020】
【作用】
本発明では,コントロールプロセッサの数を増やし,マスタCP12以外にスレーブCP26を設ける。そして,各プロセッサエレメントPEからのI/O要求を,複数のコントロールプロセッサで分担して処理を行う。ここでは,これをI/Oの分散化と呼ぶ。
【0021】
また,記憶装置31とコントロールプロセッサ間,コントロールプロセッサとプロセッサエレメントPE間でデータ転送が行われることに着目して,プロセッサエレメントPEから発行された1つのI/O要求を,複数に分割する。これによってトータルのI/O処理のスピードアップを図る。ここでは,これをI/Oの分割並列化と呼ぶ。
【0022】
以上のようなI/Oの分散化とI/Oの分割並列化とによって,コントロールプロセッサの負荷分散およびI/O性能の向上が可能になる。これにより,ジョブのスループット性能,I/Oのピーク性能が向上し,システム全体としてのスピードアップが図れる。
【0023】
プロセッサエレメントPEからのI/O要求を,すべてマスタCP12が受け取り,それを1台または複数台のスレーブCP26に分担させるので,マスタCP12におけるデータの排他制御等を簡単に実現することができる。
【0024】
また,スレーブCP26に異常があった場合,I/Oの分散化を自動抑止し,さらにスレーブCP26がI/Oを実行中に異常になった場合には,マスタCP12でI/O処理をリトライすることにより,信頼性の向上も可能になる。
【0025】
【実施例】
図2は本発明の実施例によるI/Oの分散化を説明する図である。
図2(A)に示すように,複数台のコントロールプロセッサは,マスタCP12とスレーブCP26とに分かれて動作する。プロセッサエレメントPEからI/O要求を受けるのは,マスタCP12だけである。プロセッサエレメントPEからI/O要求を受けたマスタCP12では,所定の負荷アルゴリズムにより,自分でI/O処理を行うか,スレーブCP26にI/O処理を任せるかを判断する。
【0026】
あるコントロールプロセッサでI/Oの分散化を行うかどうかは,オペレータが,図2(C)に示すような分散化コマンドによって指定することができる。コマンド名は“balance”であり,−sは分散化の指定である。CP識別番号は,どのコントロールプロセッサに対して本コマンドを適用するかを指定するものである。on/offは分散化の開始/終了を表す。分散する場合には,例えばマスタCP12が30%,スレーブCP26が70%というように分散率を指定することができる。分散率を省略した場合,ディフォルト値としてマスタCP12とスレーブCP26の分担が1対2となる分散率が与えられる。ディフォルト値でマスタCP12の負担を少なくしているのは,プロセッサエレメントPEからの要求の受け付け,完了の通知等,スレーブCP26に比べて処理負担が大きいためである。
【0027】
分散化コマンドが投入されている状態で,図1に示す分散判定処理手段17が用いる負荷アルゴリズムは,以下のとおりである。
▲1▼ マスタCP12が全くI/O処理を行っていないならば,マスタCP12がI/Oを実行する。スレーブCP26に処理を依頼するには通信コストがかかるからである。
【0028】
▲2▼ マスタCP12がある量のI/O処理を行っている最中で,負荷の低い,I/O処理を行っていないスレーブCP26があれば,このスレーブCP26にI/O処理を依頼する。
【0029】
▲3▼ マスタCP12およびスレーブCP26が共にI/O処理中であれば,I/O量で分担し,マスタCP12,スレーブCP26でバランシングする。マスタCP12およびスレーブCP26が1台ずつで,1対2の分散率の場合には,マスタCP12が1/3のI/O量を分担し,スレーブCP26が2/3のI/O量を分担する。
【0030】
図2(A)において,例えばプロセッサエレメント10−0がI/O(1),I/O(3)の要求を出し,プロセッサエレメント10−1がI/O(2),I/O(4)の要求を出したとする。前述した負荷アルゴリズムにより,マスタCP12はI/O(2),I/O(4)の要求をスレーブCP26に転送し,2つのコントロールプロセッサで記憶装置31へのI/Oを実行する。
【0031】
これによって,記憶装置31から各コントロールプロセッサへのデータ転送は,図2(B)に示すように行われ,1つのI/O処理に6秒かかったとすると,トータルで12秒となる。従来技術では,図8(B)に示すように24秒かかっていたので,分散化の効果が現れていることが分かる。
【0032】
図3は本発明の実施例によるI/Oの分割並列化を説明する図である。
図3(A)に示すように,マスタCP12がプロセッサエレメント10−0からのI/O要求(read要求)を処理する場合,I/Oの実行単位をいくつかに分割する。例えば,I/O(1)とI/O(2)の2つに分割したとすると,まず,I/O(1)を実行し,そのI/O(1)によって読み取ったデータをプロセッサエレメント10−0に転送している間に,I/O(2)による残りの読み出しを行う。すなわち,記憶装置31からマスタCP12へのデータ入力と,マスタCP12からプロセッサエレメント10−0へのデータ転送とを並列に行う。
【0033】
スレーブCP26がI/Oを実行する場合にも,同様に分割して実行することができる。
このI/O要求の分割は,例えばプロセッサエレメント10−0からのI/O要求パケットが図3(B)のP1のような場合に,分割数が2であるとすると,要求されたデータサイズを1/2にしたパケットP2と,アドレスをデータサイズの1/2だけ進めて,データサイズを1/2にしたパケットP3とを作成することによって,行うことができる。
【0034】
例えば,記憶装置31とマスタCP12間のデータ転送速度が800Mbyte/秒,マスタCP12とプロセッサエレメント10−0間のデータ転送速度が400Mbyte/秒であるとして,I/O要求を2つに分割した場合のタイムチャートは,図3(C)に示すようになる。なお,データ転送以外の時間については,非常に小さいので無視している。I/Oの分割並列化によって,I/O完了までのトータルの時間は,15秒となっている。従来技術では,図8(D)に示すように18秒かかっていたので,分割並列化の効果が現れているのが分かる。
【0035】
この分割並列化を行うか否かは,例えば図3(D)に示す分割並列化コマンドによって指定することができる。コマンド名は“balance”であり,−pは分割並列化の指定である。CP識別番号は,どのコントロールプロセッサに対して本コマンドを適用するかを指定するものである。on/offは分割並列化を行うか否かを表す。分割並列化を行う場合には,分割数を指定することができる。分割数を省略した場合,ディフォルト値は2である。理論的には分割数を増やすと効率がよくなるように思えるが,通信回数などのオーバーヘッドも同時に大きくなるため,そのコストも無視できなくなる。
【0036】
図4は本発明の実施例による全体のI/O処理の流れを示している。
記憶装置31は半導体記憶装置であり,転送速度は比較的大きい。プロセッサエレメントPEは3台である。プロセッサエレメント10−0,10−1,10−2がそれぞれI/O要求(1),I/O要求(2),I/O要求(3)を出したとすると,マスタCP12では,それらの要求をキューイングし,要求順に処理していく。I/O要求の実行では,まずデータの排他制御を行い,各コントロールプロセッサの負荷を考慮して,分散判定処理を行う。
【0037】
この結果,自プロセッサでI/O処理を行う場合には,指定に応じてI/Oの実行単位を分割して,記憶装置31のデータにアクセスする。一方,スレーブCP26でI/O処理を行う場合には,スレーブCP26に処理を依頼する。その後,マスタCP12は,スレーブCP26のI/O完了を待ち合わせる。スレーブCP26では,マスタCP12からのI/O要求を受信すると,指定に応じてI/Oの実行単位を分割して,記憶装置31のデータにアクセスする。I/O処理が完了すると,その処理結果をマスタCP12に通知する。
【0038】
マスタCP12では,自プロセッサによるI/O処理およびスレーブCP26からのI/O処理完了の報告を受けると,I/O要求元のプロセッサエレメントPEにI/O処理完了を通知する。
【0039】
例えば,記憶装置31からデータをreadするI/O要求に対して,そのI/OをスレーブCP26だけで行った場合には,スレーブCP26から直接I/O要求元のプロセッサエレメントPEへreadしたデータを転送する。ただし,スレーブCP26がダウンした場合等のリカバリ処理のために,マスタCP12はスレーブCP26からのI/O処理の完了通知を待っているので,スレーブCP26は,マスタCP12にもI/Oが終了したことを通知する。
【0040】
また,データをreadするI/Oを,マスタCP12とスレーブCP26とが分担して処理する場合には,スレーブCP26が読み出したデータをマスタCP12が集め,それをマスタCP12から自プロセッサが読み出したデータとともに,プロセッサエレメントPEへ転送する。
【0041】
上記処理において,マスタCP12がスレーブCP26にI/Oを依頼した後,スレーブCP26に異常が発生した場合,またはスレーブCP26から所定の時間以上の応答がなく,I/Oの依頼がタイムアウトになった場合,マスタCP12は,スレーブCP26へ依頼したI/Oを自プロセッサが実施し,リカバリ処理を行う。
【0042】
図5はマスタCP12におけるI/O分散化処理フローチャートである。
まず,ステップ51では,I/O要求のキューを調べ,I/O要求があればそれをキューから取り外す。ステップ52では,データの排他制御を行う。このデータの排他制御については,従来から種々の方式が知られているので,ここでは詳しい説明を省略する。
【0043】
ステップ53では,マスタCP12の分散化フラグがonになっているかどうかを判定する。この分散化フラグは,分散化コマンドまたはその他の環境設定手段によりon/offされるシステム運用制御のためのフラグである。マスタCP12の分散化フラグがoffの場合,ステップ55へ進む。
【0044】
マスタCP12の分散化フラグがonの場合,ステップ54では,マスタCP12がI/O処理中であるか否かを判定する。I/O処理中でない場合,I/O実行装置をマスタCP12とする。I/O処理中の場合,次のステップ55へ進む。
【0045】
ステップ55では,スレーブCP26が使用可能かどうかを判定する。故障等によりスレーブCP26が使用できない場合,I/O実行装置をマスタCP12とする。
【0046】
スレーブCP26が使用可能である場合,ステップ56では,スレーブCP26の分散化フラグがonになっているかどうかを判定する。スレーブCP26の分散化フラグがoffであれば,I/O実行装置をマスタCP12とする。なお,通常の運用時には,スレーブCP26の分散化フラグは常時onであることが一般的に望ましいと考えられる。
【0047】
スレーブCP26の分散化フラグがonであれば,ステップ57では,スレーブCP26がI/O処理中であるか否かを判定する。I/O処理中でない場合,I/O実行装置をスレーブCP26とする。I/O処理中の場合,所定の分散率に従ってマスタCP12とスレーブCP26とでI/Oを分担し実行する。この場合,I/O要求の個数ごとに分散させてもよく,また,1つのI/O要求を分割して分散率に応じてマスタCP12とスレーブCP26とが処理を分担するようにしてもよい。
【0048】
図6は,本発明の実施例によるI/O実行装置におけるI/O分割化処理フローチャートである。
マスタCP12またはスレーブCP26においてI/Oを実行する場合,まず図6(A)のステップ61では,指定されたI/O分割数が2以上かどうかを判定する。I/Oの実行単位を分割しない場合,すなわち分割数が1の場合,ステップ63へ進む。
【0049】
分割数が2以上であれば,ステップ62により,指定された分割数になるようにI/O要求の実行単位を分割する。
ステップ63では,現在,記憶装置31に対しI/O発行可能であるかどうかを調べ,発行可能であればステップS64へ進む。発行可能でなければ,発行可能になるのを待つ。
【0050】
ステップ64では,記憶装置31に対して分割したI/O要求のI/Oを発行する。ステップ65の判定により,全I/O発行が終了するまで,ステップ63〜65を繰り返す。
【0051】
以上のI/O発行に対するI/O割込みがあった場合,またはマスタCP12がスレーブCP26からI/Oの処理結果を受信した場合には,図6(B)に示す転送処理を行う。
【0052】
まず,ステップ71では,自コントロールプロセッサ(CP)がマスタCP12かスレーブCP26かを判定し,スレーブCP26であれば,ステップ74へ進む。
【0053】
自CPがマスタCP12であれば,ステップ72により,I/O要求元のプロセッサエレメントPEへI/Oの処理結果を転送可能であるかどうかを判定し,転送可能であれば,ステップ73により,プロセッサエレメントPEへI/O処理結果を転送する。プロセッサエレメントPEへ転送可能でなければ,一旦,割込み元へ復帰し,次の転送契機を待つ。
【0054】
自CPがスレーブCP26の場合,ステップ74により,マスタCP12へI/O処理結果を転送可能であるかどうかを判定し,転送可能であれば,ステップ75により,マスタCP12へI/O処理結果を転送する。マスタCP12へ転送可能でなければ,一旦,割込み元へ復帰し,次の転送契機を待つ。
【0055】
図7は,本発明の一実施例においてI/O分散化と分割並列化を併用したときのタイムチャートを示す。
マスタCP12が1台とスレーブCP26が1台あり,指定されたI/O分割数が2であるとする。また,分散率はマスタ:スレーブ=1:2であるとする。プロセッサエレメントPEからのI/O要求のreadデータは,図7(A)に示すように,マスタCP12およびスレーブCP26によって実行される。すなわち,マスタCP12では,データA,Bのreadが実行され,スレーブCP26では,データC,Dのreadが実行される。
【0056】
時間的な流れは,図7(B)に示すようになる。まず,マスタCP12から記憶装置31へのデータAに関するI/O実行により,記憶装置31からマスタCP12へ時間A1だけデータが転送される。A1の転送が終了すると,マスタCP12はデータBに関するI/Oを実行するとともに,A1で入力したデータAをI/O要求元のプロセッサエレメントPEへ,時間A2をかけて転送する。この間,記憶装置31からマスタCP12へのデータ転送が時間B1の間,並列に実行されることになる。時間A2の後,マスタCP12からプロセッサエレメントPEへ時間B2分のデータ転送が行われる。
【0057】
スレーブCP26においても,データC,Dのそれぞれについて,図7(B)に示すようにデータ転送が行われる。まず,記憶装置31からスレーブCP26へのデータ転送が時間C1,D1のように行われ,スレーブCP26からマスタCP12へのデータ転送が時間C2,D2のように行われ,マスタCP12からプロセッサエレメントPEへ時間C3,D3のように行われる。
【0058】
本実施例において,スレーブCP26のI/O処理に異常があった場合,マスタCP12がそのI/O処理を引き継いでリカバリ処理を行う。マスタCP12に異常があった場合には,他のスレーブCPの1台がマスタCPになって,同様に処理を引き継ぐことができる。
【0059】
【発明の効果】
以上説明したように,本発明によれば,I/Oの分散化,I/Oの分割並列化により,コントロールプロセッサの負荷が分散され,またプロセッサエレメントが要求したI/Oの実行完了までの時間が短縮される。したがって,ジョブのスループット性能,I/Oのピーク性能が向上し,システム全体としてのスピードアップが可能になる。また,スレーブCPのI/O処理に何らかの異常があった場合,マスタCPがリカバリするので,信頼性の維持も可能である。
【図面の簡単な説明】
【図1】本発明の構成例を示す図である。
【図2】本発明の実施例によるI/Oの分散化を説明する図である。
【図3】本発明の実施例によるI/Oの分割並列化を説明する図である。
【図4】本発明の実施例による全体のI/O処理の流れを示す図である。
【図5】マスタCPにおけるI/O分散化処理フローチャートである。
【図6】本発明の実施例によるI/O分割化処理フローチャートである。
【図7】本発明の一実施例においてI/O分散化と分割並列化を併用したときのタイムチャートである。
【図8】従来技術の説明図である。
【符号の説明】
10−0,10−1,… プロセッサエレメント
11 クロスバネットワーク
12 マスタCP
13 入力装置
14 I/O分割指示入力手段
15 I/O分散指示入力手段
16 I/O要求受付け手段
17 分散判定処理手段
18 I/O分割処理手段
19 I/O並列実行手段
20 I/O要求転送手段
21 I/O処理結果受信手段
22 I/O処理完了通知手段
23 異常検出手段
24 分散抑止手段
25 リカバリ処理手段
26 スレーブCP
27 I/O要求受信手段
28 I/O分割処理手段
29 I/O並列実行手段
30 I/O処理結果転送手段
31 記憶装置[0001]
[Industrial applications]
According to the present invention, in a computer system in which a plurality of processor elements and a control processor are connected by a network, I / O processing from a processor element having no I / O device via a control processor having an I / O device is performed. The present invention relates to a parallel computer system which can be executed at high speed and efficiently.
[0002]
[Prior art]
FIG. 8 is an explanatory diagram of the prior art.
In the parallel computer system shown in FIGS. 8A and 8C, a processor element PE [PE (0), PE (1),...] Is a processor that specializes in operations. The control processor CP is a device that manages the processor element PE, and is connected to an I / O device such as a storage device 80. Further, the control processor CP and each processor element PE are connected by a crossbar network XB.
[0003]
When each processor element PE refers to data stored in the storage device 80, since the storage device 80 is not connected to the processor element PE, an I / O request is issued to a server existing in the control processor CP. The server of the control processor CP that has received the I / O request executes I / O to the storage device 80 and transfers the read data to the requesting processor element PE via the crossbar network XB.
[0004]
[Problems to be solved by the invention]
In FIG. 8, it is assumed that the data transfer speed between the storage device 80 and the control processor CP is 800 Mbyte / sec, and the data transfer speed between the control processor CP and each processor element PE is 400 Mbyte / sec.
[0005]
Conventionally, as shown in FIG. 8A, a processor element PE (0) makes an I / O (1) request and an I / O (2) request, and the processor element PE (1) issues an I / O (2) request. When the request of O (3) and the request of I / O (4) are made in this order, the control processor CP processes these I / O requests one by one. Therefore, if it takes, for example, 6 seconds to transfer data from the storage device 80 to the control processor CP by one I / O process, as shown in FIG. 8B, all data from the storage device 80 to the control processor CP are transferred. In transfer, it took 6 seconds × 4 = 24 seconds.
[0006]
Further, as shown in FIG. 8C, when one read request is issued from the client of the processor element PE and the data transfer from the storage device 80 to the control processor CP takes, for example, 6 seconds, the I / O After the completion of the O processing, the I / O processing to the processor element PE of the I / O request source starts, so that it takes 12 seconds to transfer data from the control processor CP to the processor element PE, and one I / O request It took a total of 18 seconds until the process was completed, as shown in FIG.
[0007]
As described above, the conventional technology has a problem that it takes time to process an I / O request from the processor element PE.
In the control processor CP, various processes such as a process for managing the processor elements PE, a process related to operation, and a process related to a job are performed, and the number of the processor elements PE is, for example, 100 to 200. In such a case, there is a problem that I / O requests are concentrated on one control processor CP, and the load on the control processor CP may be extremely high.
[0008]
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above-mentioned problems, and to speed up I / O processing and reduce the load on a control processor by dispersing I / O processing and parallelizing I / O division. And
[0009]
[Means for Solving the Problems]
FIG. 1 shows a configuration example of the present invention.
Processor elements (PE) 10-0, 10-1,... Are processors that specialize in operations. A plurality of control processors to which an I / O device such as a
[0010]
The
An
[0011]
The I / O division instruction input means 14 is a means for inputting the number of divisions for dividing an I / O request into a plurality of I / O execution units by a command from the
[0012]
The I / O request receiving means 16 is a means for receiving an I / O request from each processor element PE. The distribution
[0013]
The I / O request transfer unit 20 is a unit that transfers the I / O request to the
[0014]
The I / O
[0015]
The I / O processing
[0016]
The
[0017]
The recovery processing means 25 is means for re-executing the I / O request being processed by the
[0018]
The I / O
[0019]
In FIG. 1, there is one
[0020]
[Action]
In the present invention, the number of control processors is increased, and a
[0021]
Focusing on data transfer between the
[0022]
By distributing the I / O and dividing and parallelizing the I / O as described above, it is possible to distribute the load of the control processor and improve the I / O performance. As a result, the throughput performance of the job and the peak performance of the I / O are improved, and the speed of the entire system can be increased.
[0023]
Since the
[0024]
In addition, if there is an abnormality in the
[0025]
【Example】
FIG. 2 is a diagram illustrating I / O decentralization according to an embodiment of the present invention.
As shown in FIG. 2A, the plurality of control processors operate in a
[0026]
Whether a certain control processor performs I / O decentralization can be designated by an operator by a decentralization command as shown in FIG. The command name is "balance", and -s is a designation of decentralization. The CP identification number specifies to which control processor this command is applied. on / off indicates the start / end of decentralization. In the case of dispersing, for example, the dispersing rate can be specified such that the
[0027]
The load algorithm used by the distribution determination processing means 17 shown in FIG. 1 when the distribution command is input is as follows.
(1) If the
[0028]
{Circle around (2)} While the
[0029]
{Circle around (3)} When both the
[0030]
In FIG. 2A, for example, the processor element 10-0 issues a request for I / O (1) and I / O (3), and the processor element 10-1 issues a request for I / O (2) and I / O (4). ). According to the load algorithm described above, the
[0031]
As a result, the data transfer from the
[0032]
FIG. 3 is a diagram for explaining the parallel division of I / O according to the embodiment of the present invention.
As shown in FIG. 3A, when the
[0033]
When the
This division of the I / O request is performed by, for example, assuming that the number of divisions is 2 when the I / O request packet from the processor element 10-0 is P1 in FIG. Can be performed by creating a packet P2 in which the data size is reduced to 1/2 and a packet P3 in which the address is advanced by 1/2 of the data size and the data size is reduced to 1/2.
[0034]
For example, assuming that the data transfer speed between the
[0035]
Whether or not to perform the split parallelization can be designated by, for example, a split parallelization command shown in FIG. The command name is "balance", and -p is a designation of division parallelization. The CP identification number specifies to which control processor this command is applied. on / off indicates whether or not to perform split parallelization. When performing parallel division, the number of divisions can be specified. If the number of divisions is omitted, the default value is 2. Theoretically, increasing the number of divisions seems to improve efficiency, but the overhead, such as the number of communications, also increases at the same time, so the cost cannot be ignored.
[0036]
FIG. 4 shows the flow of the entire I / O processing according to the embodiment of the present invention.
The
[0037]
As a result, when the I / O processing is performed by the own processor, the execution unit of the I / O is divided according to the specification and the data in the
[0038]
Upon receiving the report of the I / O processing by the own processor and the completion of the I / O processing from the
[0039]
For example, when an I / O request for reading data from the
[0040]
When the I / O for reading data is processed by the
[0041]
In the above processing, if an abnormality occurs in the
[0042]
FIG. 5 is a flowchart of the I / O decentralization process in the
First, at step 51, the I / O request queue is checked, and if there is an I / O request, it is removed from the queue. In step 52, exclusive control of data is performed. Various methods for exclusive control of the data are conventionally known, and a detailed description thereof will be omitted.
[0043]
In step 53, it is determined whether the decentralization flag of the
[0044]
When the decentralization flag of the
[0045]
In step 55, it is determined whether the
[0046]
If the
[0047]
If the decentralization flag of the
[0048]
FIG. 6 is an I / O division processing flowchart in the I / O execution device according to the embodiment of the present invention.
When executing I / O in the
[0049]
If the number of divisions is two or more, at step 62, the execution unit of the I / O request is divided so as to have the designated number of divisions.
In
[0050]
In step 64, I / O of the divided I / O request is issued to the
[0051]
When there is an I / O interrupt for the above I / O issuance, or when the
[0052]
First, in step 71, it is determined whether the own control processor (CP) is the
[0053]
If the own CP is the
[0054]
If the own CP is the
[0055]
FIG. 7 is a time chart when the I / O decentralization and the split parallelization are used in one embodiment of the present invention.
It is assumed that there is one
[0056]
The temporal flow is as shown in FIG. First, data is transferred from the
[0057]
In the
[0058]
In this embodiment, when there is an abnormality in the I / O processing of the
[0059]
【The invention's effect】
As described above, according to the present invention, the load of the control processor is distributed by dispersing the I / O and dividing and parallelizing the I / O, and the execution of the I / O requested by the processor element is completed. Time is reduced. Therefore, the throughput performance of the job and the peak performance of the I / O are improved, and the speed of the entire system can be increased. Further, if there is any abnormality in the I / O processing of the slave CP, the master CP recovers, so that the reliability can be maintained.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration example of the present invention.
FIG. 2 is a diagram illustrating I / O decentralization according to an embodiment of the present invention.
FIG. 3 is a diagram for explaining I / O division and parallelization according to an embodiment of the present invention.
FIG. 4 is a diagram showing a flow of an entire I / O process according to an embodiment of the present invention.
FIG. 5 is a flowchart of an I / O decentralization process in a master CP.
FIG. 6 is a flowchart of an I / O division process according to an embodiment of the present invention.
FIG. 7 is a time chart when the I / O decentralization and the split parallelization are used together in one embodiment of the present invention.
FIG. 8 is an explanatory diagram of a conventional technique.
[Explanation of symbols]
10-0, 10-1,...
13 input device 14 I / O division instruction input means 15 I / O distribution instruction input means 16 I / O request receiving means 17 distribution determination processing means 18 I / O division processing means 19 I / O parallel execution means 20 I / O request Transfer means 21 I / O processing result receiving means 22 I / O processing
27 I / O request receiving means 28 I / O division processing means 29 I / O parallel execution means 30 I / O processing result transfer means 31 Storage device
Claims (5)
前記コントロールプロセッサの中の1台がマスタコントロールプロセッサとなり,
このマスタコントロールプロセッサは,
前記各プロセッサエレメントからのI/O要求を受け付ける手段と,
前記各コントロールプロセッサの負荷状況および所定の分散指示情報に基づいてI/O要求の実行を複数のコントロールプロセッサに分散させるか,または特定のコントロールプロセッサで行うかを決定する分散判定処理手段と,
他のコントロールプロセッサでI/O要求を実行する場合に,I/O要求をそのコントロールプロセッサへ転送するI/O要求転送手段と,
他のコントロールプロセッサでI/O要求を実行した場合に,そのI/O処理結果を受け取るI/O処理結果受信手段と,
自コントロールプロセッサで実行したI/O処理結果もしくは他のコントロールプロセッサで実行したI/O処理結果またはそれらの双方のI/O処理結果をI/O要求元の前記プロセッサエレメントへ通知するI/O処理完了通知手段とを備えた
ことを特徴とする並列型計算機システム。A plurality of processor elements for performing operations, a plurality of control processors for processing I / O requests from each of the processor elements, a network connecting the processor elements and the control processor, and an I / O connected to the control processor. In a parallel computer system having a storage device or an input / output device targeted for / O,
One of the control processors is a master control processor,
This master control processor
Means for receiving an I / O request from each of the processor elements;
Distribution determination processing means for determining whether to distribute the execution of the I / O request to a plurality of control processors or a specific control processor based on the load status of each control processor and predetermined distribution instruction information;
I / O request transfer means for transferring an I / O request to another control processor when executing the I / O request;
An I / O processing result receiving means for receiving an I / O processing result when another I / O request is executed by another control processor;
I / O for notifying the processor element of an I / O request source of an I / O processing result executed by its own control processor, an I / O processing result executed by another control processor, or both of them. A parallel computer system comprising a processing completion notifying means.
前記I/O要求を複数のコントロールプロセッサに分散するか否か,または各コントロールプロセッサに前記I/O要求を分散する割合を,外部から入力するI/O分散指示入力手段を備えた
ことを特徴とする並列型計算機システム。The parallel computer system according to claim 1 ,
I / O distribution instruction input means for externally inputting whether to distribute the I / O request to a plurality of control processors or externally input a ratio of distributing the I / O request to each control processor. And a parallel computer system.
前記マスタコントロールプロセッサは,
他のコントロールプロセッサの異常を検出する異常検出手段と,
異常が検出された他のコントロールプロセッサにI/O要求の実行を分担させないように抑止する分散抑止手段とを備えた
ことを特徴とする並列型計算機システム。 In the parallel computer system according to claim 1 or 2 ,
The master control processor comprises:
Abnormality detection means for detecting an abnormality of another control processor;
A parallel computer system, comprising: a distribution inhibiting unit that inhibits another control processor in which an abnormality has been detected from sharing execution of an I / O request.
前記マスタコントロールプロセッサは,
I/O要求を分担して実行していた他のコントロールプロセッサの異常を検出した場合に,このコントロールプロセッサが処理していたI/O要求を再実行するリカバリ処理手段を備えた
ことを特徴とする並列型計算機システム。 In the parallel computer system according to claim 1, claim 2, or claim 3 ,
The master control processor comprises:
When an abnormality is detected in another control processor that has been executing the I / O request in a shared manner, recovery processing means for re-executing the I / O request being processed by the control processor is provided. Parallel computer system.
前記コントロールプロセッサの中の1台がマスタコントロールプロセッサとなり,
このマスタコントロールプロセッサは,
I/O要求を複数のコントロールプロセッサに分散するか否かを外部から入力するI/O分散指示入力手段と,
I/O要求を複数のI/O実行単位に分割する分割数を,外部から入力するI/O分割指示入力手段と,
前記各プロセッサエレメントからのI/O要求を受け付ける手段と,
前記各コントロールプロセッサの負荷状況および前記I/O分散指示入力手段からの分散指示情報に基づいてI/O要求の実行を複数のコントロールプロセッサに分散させるか,または特定のコントロールプロセッサで行うかを決定する分散判定処理手段と,
他のコントロールプロセッサでI/O要求を実行する場合に,I/O要求をそのコントロールプロセッサへ転送するI/O要求転送手段と,
他のコントロールプロセッサでI/O要求を実行した場合に,そのI/O処理結果を受け取るI/O処理結果受信手段と,
自コントロールプロセッサで実行したI/O処理結果もしくは他のコントロールプロセッサで実行したI/O処理結果またはそれらの双方のI/O処理結果をI/O要求元の前記プロセッサエレメントへ通知するI/O処理完了通知手段と,
前記I/O分割指示入力手段の指示に従い,前記プロセッサエレメントからのI/O要求を,複数のI/O実行単位に分割する処理手段と,
分割された複数のI/O実行単位について,前記記憶装置または入出力装置と前記コントロールプロセッサとの間のデータの入出力と,前記コントロールプロセッサとI/O要求元の前記プロセッサエレメントとの間のデータの転送とを,並列に実行するI/O並列実行手段とを備えた
ことを特徴とする並列型計算機システム。A plurality of processor elements for performing operations, a plurality of control processors for processing I / O requests from each of the processor elements, a network connecting the processor elements and the control processor, and an I / O connected to the control processor. In a parallel computer system having a storage device or an input / output device targeted for / O,
One of the control processors is a master control processor,
This master control processor
I / O distribution instruction input means for externally inputting whether to distribute an I / O request to a plurality of control processors,
I / O division instruction input means for externally inputting a division number for dividing an I / O request into a plurality of I / O execution units;
Means for receiving an I / O request from each of the processor elements;
Based on the load status of each control processor and the distribution instruction information from the I / O distribution instruction input means, it is determined whether the execution of the I / O request is distributed to a plurality of control processors or performed by a specific control processor. Dispersion determination processing means
I / O request transfer means for transferring an I / O request to another control processor when executing the I / O request;
An I / O processing result receiving means for receiving an I / O processing result when another I / O request is executed by another control processor;
I / O for notifying the processor element of an I / O request source of an I / O processing result executed by its own control processor, an I / O processing result executed by another control processor, or both of them. Processing completion notification means,
Processing means for dividing an I / O request from the processor element into a plurality of I / O execution units in accordance with an instruction from the I / O division instruction input means;
For a plurality of divided I / O execution units, input / output of data between the storage device or the input / output device and the control processor, and communication between the control processor and the processor element of an I / O request source I / O parallel execution means for executing data transfer in parallel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07494195A JP3569341B2 (en) | 1995-03-31 | 1995-03-31 | Parallel computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07494195A JP3569341B2 (en) | 1995-03-31 | 1995-03-31 | Parallel computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08272729A JPH08272729A (en) | 1996-10-18 |
JP3569341B2 true JP3569341B2 (en) | 2004-09-22 |
Family
ID=13561884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07494195A Expired - Fee Related JP3569341B2 (en) | 1995-03-31 | 1995-03-31 | Parallel computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3569341B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5038589B2 (en) | 2004-10-04 | 2012-10-03 | 株式会社日立製作所 | Disk array device and load balancing method thereof |
JP6503945B2 (en) * | 2015-07-13 | 2019-04-24 | 富士通株式会社 | INFORMATION PROCESSING APPARATUS, PARALLEL COMPUTER SYSTEM, FILE SERVER COMMUNICATION PROGRAM, AND FILE SERVER COMMUNICATION METHOD |
-
1995
- 1995-03-31 JP JP07494195A patent/JP3569341B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08272729A (en) | 1996-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5991797A (en) | Method for directing I/O transactions between an I/O device and a memory | |
US5924097A (en) | Balanced input/output task management for use in multiprocessor transaction processing system | |
US7401154B2 (en) | Pipelined high speed data transfer mechanism | |
US6044415A (en) | System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection | |
US20080229320A1 (en) | Method, an apparatus and a system for controlling of parallel execution of services | |
EP2618257B1 (en) | Scalable sockets | |
US6012121A (en) | Apparatus for flexible control of interrupts in multiprocessor systems | |
US6256660B1 (en) | Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts | |
JP3569341B2 (en) | Parallel computer system | |
EP1218823A1 (en) | Method and apparatus for handling invalidation requests to processors not present in a computer system | |
JPH09282288A (en) | Plural-computer operation system | |
JPH11175485A (en) | Distributed system and prallel operation control method | |
JPH07334468A (en) | Load distribution system | |
JPH09179834A (en) | Scheduling method of parallel system for process | |
JPS63211060A (en) | Load distribution control system for multiprocessor system | |
JPS6125181B2 (en) | ||
CN115774521A (en) | Data migration method, system, device and storage medium of PCIE SSD | |
Barman et al. | Dynamic load balancing algorithm in homogeneously distributed systems using donor-acceptor policy | |
JPH09259091A (en) | Host load decentralization system for transaction processing | |
JP3785741B2 (en) | Remote file input / output method | |
JPH05165700A (en) | File server | |
JPH09319708A (en) | On-line control process substitution system | |
JPH03246740A (en) | Communication bus managing system in network | |
JPH04274524A (en) | System for controlling inter-process communication | |
JPH05216792A (en) | System for controlling service request between processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040223 |
|
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: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040618 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |