(57)【特許請求の範囲】
【請求項１】
共有メモリーと、該共有メモリーに複数接続される中央演算装置から構成される複数のセルコンピュータと、該複数のセルコンピュータを結合するバスより構成される超並列コンピュータの処理方法において、
前記バスに接続されている２次記憶装置に予め格納されている、交信に必要なデータ複写情報と、前記中央演算装置間の送受信を行うプロセスとを、コンピュータの立ち上げ時に前記共有メモリー上にアップロードし、
送信プロセスは周期的にタイマーより動作指令を受けると、前記共有メモリーが持つ自己のノードから他のノードへターゲットデータの転送が必要な場合は、自己のノードのアイドル状態の中央演算装置を用いて、前記データ複写情報に従い複写先ノードの所定のアドレスに所定のデータ量をノード毎に設定される所定周期で送信して、複写先ノードの受信プロセスに依頼し、
依頼を受けた受信プロセスは、指定されたアドレスから指定された容量分のデータを転写することを特徴とする超並列コンピュータの処理方法。
【請求項２】
共有メモリーと、該共有メモリーに複数接続される中央演算装置から構成され、任意のタイミングで動作を開始、終了できるオペレーティングシステムを有する複数のセルコンピュータと、複数の前記セルコンピュータを結合するための並列バスと、該並列バスに接続されて、プログラムとデータを記憶するための２次記憶装置と、該２次記憶装置内に格納され、前記セルコンピュータの初期立上げ時に前記セルコンピュータの共有メモリー上に読み上げられ、指定されたデータを一定周期で目標のセルコンピュータに送信する送信プロセスと、受信したデータを自身が存在する共有メモリー上に設定する受信プロセスと、データ複写情報を備え、前記データ複写情報として、ノード番号、アドレス、バイト数及び転送周期を含む複写元情報と、ノード番号、アドレスを含む複写先情報を含むデータ複写情報ファイルが、前記２次記憶装置に格納されていて、前記プロセスの各々は複数の前記中央演算装置のうち、アイドル状態にある中央演算装置で動作するように前記オペレーティングシステムによって制御されることを特徴とする超並列コンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の中央演算装置（以下、ＣＰＵと称する）と、複数のオペレーティングシステム（以下、ＯＳと称する）及び、それらを接続する通信手段を有する並列コンピュータの処理方法に関し、特にＣＰＵ間でのデータ交信効率の向上に関する。
【０００２】
【従来の技術】
並列コンピュータはＳＭＰ（対称型並列処理）タイプと、ＭＰ（マッシブリー並列処理）タイプの２種類に大別される。ＳＭＰタイプは、図１５に示す様に、１つの共有メモリー上に複数のＣＰＵを接続し、このメモリーを介してＣＰＵ同士が交信を行なう。装置構成が簡単で、コストパフォーマンスが高い為、ビジネス用コンピュータとして広く使用されている。しかし、共有メモリーへのデータのアクセス処理能力に限界がある為、処理遅れ無しに交信できる条件での最大のＣＰＵ数は、１６程度にすぎない。
【０００３】
一方、特開平７−１４１３１８号に見られるＭＰタイプの並列コンピュータは、各ＣＰＵにそれぞれメモリーが接続され、かつ、図４に示す様に、各ＣＰＵ同士が高速の通信回線で相互に、１対１で結合されている。従って、任意の２つのＣＰＵ間の交信は、他のＣＰＵ間の交信に全く影響を受けない。このため、ＣＰＵ交信処理による待ち時間は極めて小さい。しかし、メモリーが膨大に必要となり、かつ、ＣＰＵ間の接続回路が複雑になることから、コストパフォーマンス、スケーラビリティ、エキスパンダビリティが低下するという欠点を有する。
【０００４】
【発明が解決しようとする課題】
以上の様な欠点は、ＣＰＵの並列度が大きくなる程大きなものとなり、現実的には、１００本以下のＣＰＵによる、並列コンピュータ程度しか、実用に供することは出来なかった。しかし、近年の産業・経済の動向等より、並列度が１０００を超える様な大型の構成の並列コンピュータであっても、処理性が低下しない様な方法と手段が必要になってきている。
【０００５】
本発明の目的は、複数のＣＰＵを共通の母線で結合している並列コンピュータにおいて、ＣＰＵ間のデータ交信における処理間の同期により生じていた待ち時間を無くし、超並列コンピュータのスループットを最大にすることにある。
【０００６】
【課題を解決するための手段】
本発明は、ＳＭＰタイプとＭＰタイプの並列コンピュータの利点を活かし、かつ欠点を無くす様に構成されたハードウェアと、ソフトウェアの処理方式を実現するものである。
【０００７】
基本的には、複数のＳＭＰコンピュータを高速のバスまたはＬＡＮで接続した、複数ＯＳを有するクラスタ・コンピュータを構築し、同一の共有メモリー上のＣＰＵ間のデータ交信は、メモリーアクセス時間以内の高速方式で実現し、同一の共有メモリー上に交信するＣＰＵが無い場合は、交信データを必要とする応用プロセス毎に定められた非同期定周期で転写されているターゲットデータを、自身のメモリー上から取り込む。これにより、バスまたはＬＡＮによる交信に要する、長時間の同期による遅れ時間を無くすことができる。
【０００８】
これを実現する為には、交信に必要な情報をＣＰＵ間で送受信するプロセスを、予め２次記憶装置上に格納しておき、コンピュータの立上げ時に各共有メモリー上に、それらをアップロードする。送信プロセスは、周期的にタイマーより動作指令を受け、共有メモリーが持つ自己のノードから他のノードへデータの転送が必要な場合、応用プログラムが稼動していないアイドル状態のＣＰＵを用いて、複写先ノードの所定のアドレスに所定のデータ量を転写するように、複写先ノードの受信プロセスに依頼をする。受信プロセスは依頼を受けると、指定されたアドレスから指定された容量分のデータを転写する。また、前記送信・受信プロセスは複数の前記中央演算装置のうち、アイドル状態にあるもので動作するように前記ＯＳによって制御される。
【０００９】
このように、送信・受信プロセスは、応用プロセス（プログラム）とは全く独立に、非同期に動作するので、応用プロセスがターゲットプロセスと交信を行なう場合は、物理的な通信回線を通じてのデータ交信は行なわず、自身が接続されている所定のアドレスよりデータを取り込むように動作する。
【００１０】
以上のように、どの様なＣＰＵと交信する場合であっても、実時間での物理的なデータ交信が不要になる為、ＣＰＵ間を結合する通信回線のスループットに関わりなく、メモリーアクセスに要する時間だけで、ＣＰＵ間のデータ交換が可能となる。
【００１１】
【発明の実施の形態】
図１に、本発明の一実施例による超並列コンピュータの装置構成を示す。本装置は複数のＣＰＵ１０１、共有メモリー１０２、並列接続バス１０３、２次記憶装置１０４、マンマシン装置１０５により構成されている。図２から図４を用いて、本装置の概略を説明する。
【００１２】
図２は一実施例による超並列コンピュータの外観図である。複数のキャビネットとパソコンやワークステーションにより実現できるマンマシン装置により成っている。各キャビネットの中にはセルコンピュータ１０６がセットされている。セルコンピュータは上記したＳＭＰコンピュータである。本例では、３キャビネットが有り、各々のキャビネットは６台のセルコンピュータを有し、各セルコンピュータには４台のＣＰＵ１０１が装着されている。
【００１３】
図３は、セルコンピュータ１０６の構成を示しており、４個のＣＰＵ１０１がメモリーコントローラーを介して、共有メモリー１０２に接続され、かつ並列接続バス１０３がバス（ＬＡＮ）コントローラーを介して接続されている。ここでは、４個のＣＰＵが同時に共有メモリーをアクセスした場合でも、単独でのメモリーアクセス時間より大きな処理時間を要しないように、メモリーアクセスのスイッチ機構がメモリーコントローラーの中に装備されている。
【００１４】
図４は、図３における２つのコントローラーを除いて表現した模式図であり、図３と等価である。図１は、図４の図法を用いて本実施例の構成を表現したものである。
【００１５】
図５は、本実施例によるソフトウェアプログラムファイルの存在場所と動作場所への転送の説明図である。各セルコンピュータ１０６は、独自のＯＳを有しており、それぞれが任意のタイミングで動作を開始、終了できる。
【００１６】
動作開始タイミング、すなわちシステム初期化タイミングで、２次記憶装置１０４に格納されている送信プロセス、受信プロセス及びデータ複写情報ファイルが、超並列接続バス１０３を介して該当セルコンピュータの共有メモリー１０２上にアップロード（転写）される。各プロセスは、共有メモリに接続されている複数のＣＰＵ１０１のうち、応用プログラムが動作していないアイドル状態のＣＰＵで動作するように、ＯＳにより制御される。すなわち、本来の業務処理が動作しているＣＰＵの動作に影響を与えないように、空き状態のＣＰＵを用いる。
【００１７】
図６は、データ複写情報ファイルの構成を示している。本ファイルは、Ｎケースの情報を有しており、各ケース内には、大別するとＣＰＵ交信時の相手方のＣＰＵ、つまり複写元情報（from）と交信元のＣＰＵ、つまりデータを必要とするＣＰＵ側である複写先情報（to）を有している。
【００１８】
複写元情報は、該当セルコンピュータのノード番号fn1、データの存在している先頭アドレスfad1、転送バイト数fbt1及び転送周期tc1で構成される。また、複写先情報は、複写先セルコンピュータのノードtn1と、複写先頭アドレスtad1で成っている。なお、複写元情報及び複写先情報は応用プロセス毎の周期ｔｃ１を有し、各情報は非同期定周期で動作する。また、各ケースは、１つのプログラム（プロセス）がシステムに新たに設定される場合に追加され、削除されるつど、消去される。
【００１９】
図７は、本実施例の動作例を説明したものである。例えば、ノードfn1内の送信プロセスSprfn1はタイマーにより、一定周期時間毎に起動される。そして、先述のデータ複写情報ファイルを参照して、自身からデータを転送するタイミングの場合、共有メモリーのアドレスfad1からfbt1バイトのデータをノードtn1のセルコンピュータ内の受信プロセスに対して、周期tc1で送信する。ノードtn1内の受信プロセスRprtn1はデータを受信した後、自身の共有メモリー上のアドレスtad1からfbt1バイト分のデータを設定する。
【００２０】
図８は、送信プロセスSprfniの処理の流れ図である。一定周期時間で起動され、登録されているデータを全て参照し、自ノードからの送信が必要なデータか、否かを判定し（処理Ｂ）、送信が必要な場合は、自身の共有メモリーのアドレスfadiからfbtiバイトを、ノードtniの共有メモリーのアドレスtadiへセットする様な依頼を送信する。ここで起動周期時間tciは、並列接続バス３のデータ通信能力に応じて適正に定めることができる。
【００２１】
図９は、受信プロセスRprtniの処理の流れ図である。データを受信（処理Ｄ）した後、自身の共有メモリーのアドレスtadiにfbtiバイトのデータをセットする様に動作する（処理Ｅ）。
【００２２】
以下、図１０〜図１２を用いて、具体例により説明する。図１０は表示装置に画面を表示するアプリケーションで、従来の処理動作である。本例では「プロセス状態表示」という画面を表示するため、操作者は表示要求ボタンを押し下げする。このタイミングで、ノード▲１▼上のＣＰＵ＝１に存在しているアプリケーションプログラムが起動される。
【００２３】
まず、処理ａで要求を受け付け、どの画面を表示するか決定する。次に、処理ｂで取り込むべき情報を取得するために、ノード▲２▼上のＣＰＵ＝５で動作するプログラム２に、プロセス状態情報の取り込みをＬＡＮまたはバスを介して依頼する。依頼されたプログラム２はプロセス入出力装置を介して、プロセス入出力値を取り込む。取り込まれたデータは再びＬＡＮなどを介して、待ち状態にあったプログラム１に転送する。これを受信したプログラム１の処理ｂは再び動作を始め、次ぎの処理ｃにデータを渡す。処理ｃで該当データを編集し、処理ｄで図示のような「プロセス状態表示」を画面に表示する。
【００２４】
以上の動作をタイミングチャートに示すと、図１２（ａ）のようになる。ＣＰＵ＝１上のプログラム１は、処理ｂがＣＰＵ＝５上のプログラム２に情報取り込み依頼を行った後、データが返送されるまで待ち状態となる。つまり、データ取り込み・転送における同期により、待ち時間が発生することを示している。この待ち時間はプロセス状態転送時間ｔ１と、ノード▲２▼からノード▲１▼への転送時間ｔ２により構成される。
【００２５】
一方、図１１は本実施例によるもので、図１０と同じ機能を実現する場合の処理動作である。本実施例では、ノード間の情報の送信・受信プロセスにより、所定のプロセス状態情報はノード▲１▼のサーバー内の共有メモリー上にセットされている。従って、見かけ上、アプリケーションプログラムは自己の接続する共有メモリからプロセス状態情報を読み込むだけである。
【００２６】
すなわち、立上げ時に２次記憶装置から読み出した送信プロセス、受信プロセス及びデータ複写情報ファイルにより、ノード１、ノード２の送受信関係が図示のように設定されている。なお、点線は非同期通信を表している。ノード２はプロセス状態の取込を行い、送信プロセスがアプリケーションから定義された所定周期で送信し、プロセス状態を受信した受信プロセスはノード１の共有メモリーに設定している。ノード１は表示要求の発生した時に処理を開始するので、処理ｂは自己の共有メモリーを読み込むだけとなり、待ち時間なしとなる。
【００２７】
図１２（ｂ）に本実施例による処理タイミングチャートを示す。本実施例ではボタンを押下げてから表示が完了するまでに必要な時間Ｔは、Ｔ＝ｔａ＋ｔｂ＋ｔｃ＋ｔｄであり、従来のようにｔ１＋ｔ２の待ち時間は無くなる。
【００２８】
図１３は、応用プログラムの一般的な流れ図で、従来方式と、本実施例によるＣＰＵ間交信に要する処理時間を比較して示したものである。他ノードで動作するＣＰＵとの交信処理として、交信１（処理Ｇ）と交信２（処理Ｉ）が含まれている。従来方式は、他ノードとの実際の交信時間と他ＣＰＵ間の交信競合により、処理Ｇと処理Ｉはそれぞれ５００（ms）程度の処理中断が発生している。これに対し、本実施例の装置と方法を用いると、それぞれメモリーアクセス時間の１０（μs）程度しか要していない。すなわち、見かけ上の他ＣＰＵとの交信時間がゼロに近ずいていることがわかる。
【００２９】
ここで重要なことは、交信する先のＣＰＵでの実時間の情報が本当に必要か、否かということである。例えば、ノード１のＣＰＵ１の処理Ａの▲１▼という処理結果を、ノード２のＣＰＵ２の処理Ｂの▲２▼という処理が取込んで処理をして、再びＣＰＵ１へ…というように、いわゆる同期が絶対に必要な処理の場合、処理プロセスを分割して、並列コンピュータで動作させること自体が無意味である。つまり、同期が必要な処理はプログラムを分割してはいけないのである。
【００３０】
逆に、他のプロセスの結果については、少し位の時間のズレ等があっても、個々のプロセスには影響を与えないように設計されたシステムでは、本発明の非同期のデータ交信が可能になり、スループット、レスポンス、信頼性が圧倒的に高くなる。何故ならば、この様な非同期のデータ交信を行うことにより、システム全体が協調して処理できるコンピュータシステムであれば、いくらでも任意にＣＰＵやＯＳを増やすことができ、この結果、必要とするスループットを容易に獲得できるからである。
【００３１】
図１４は、超並列動作のタイミングチャートを示したものである。（ａ）は従来の同期型超並列動作で、縦軸がノードとＣＰＵ番号、横軸が時間軸を示している。このグラフ内の実線は、プロセスが有効に動作している状態を示しており、破線は、何らかの要因で待状態になっていることを示している。
【００３２】
従来の様にＣＰＵ交信要求のつど、実際にデータ交信を行なうと、図示の例では、３／４以上の処理可能ＣＰＵ時間が「待」あるいは「アイドル」で浪費されてしまっている。超並列クラスタ構成を採用しても、ほとんど並列効率が向上していないことがわかる。
【００３３】
（ｂ）は本実施例による超並列処動作のタイミングチャートで、従来方式と同じ座標軸による。ファイルの競合による、プロセスの待時間の発生が所々に見られるが、ＣＰＵ交信による大きな待時間が全く無くなることが分かる。つまり、本実施例により低価格で簡単な構成による、ＣＰＵが１０００以上にもなるクラスタ接続の超並列コンピュータが、従来のＭＰ型コンピュータと同等のスループットで動作させることができることを示している。
【００３４】
【発明の効果】
本発明によれば、共有メモリーとＳＭＰクラスタによる超並列コンピュータのスループットを最大にできる効果がある。また、費用や複雑性の極めて大きなＭＰ型超並列コンピュータと同等のスループットを、数百〜数万分の１の費用で簡単に実現できる効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例による超並列コンピュータの構成図。
【図２】本実施例の超並列コンピュータの外観図。
【図３】セルコンピュータの概略構成図。
【図４】セルコンピュータの構成の模式図。
【図５】送信プロセス、受信プロセス、データ複写情報ファイルの格納位置と動作位置の説明図。
【図６】データ複写情報ファイルの構成図。
【図７】本実施例による処理動作の説明図。
【図８】送信プロセスの処理フロー図。
【図９】受信プロセスの処理フロー図。
【図１０】従来の画面表示動作の説明図。
【図１１】本実施例による画面表示動作の説明図。
【図１２】画面表示動作の処理タイミングチャート。
【図１３】応用プロセスの他ＣＰＵとの交信フロー図。
【図１４】従来の同期型超並列動作及び本実施例による非同期型超並列動作のタイミングチャート。
【図１５】従来の超並列コンピュータの密結合構造図。
【符号の説明】
１０１…ＣＰＵ、１０２…共有メモリー、１０３…並列接続バス、１０４…２次記憶装置、１０５…マンマシン装置、１０６…セルコンピュータ。
【図１】
0003745597.tif 000002
【図２】
0003745597.tif 000003
【図３】
0003745597.tif 000004
【図４】
0003745597.tif 000005
【図５】
0003745597.tif 000006
【図６】
0003745597.tif 000007
【図７】
0003745597.tif 000008
【図８】
0003745597.tif 000009
【図９】
0003745597.tif 000010
【図１０】
0003745597.tif 000011
【図１１】
0003745597.tif 000012
【図１２】
0003745597.tif 000013
【図１３】
0003745597.tif 000014
【図１４】
0003745597.tif 000015
【図１５】
0003745597.tif 000016