JP2005346563A - 並列処理システムおよび並列処理方法 - Google Patents

並列処理システムおよび並列処理方法 Download PDF

Info

Publication number
JP2005346563A
JP2005346563A JP2004167409A JP2004167409A JP2005346563A JP 2005346563 A JP2005346563 A JP 2005346563A JP 2004167409 A JP2004167409 A JP 2004167409A JP 2004167409 A JP2004167409 A JP 2004167409A JP 2005346563 A JP2005346563 A JP 2005346563A
Authority
JP
Japan
Prior art keywords
parallel processing
computer
parallel
network
simulation
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.)
Pending
Application number
JP2004167409A
Other languages
English (en)
Inventor
Takanari Yamamoto
隆也 山本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004167409A priority Critical patent/JP2005346563A/ja
Publication of JP2005346563A publication Critical patent/JP2005346563A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】 ネットワークに接続されている計算機を並列処理の計算リソースとして活用できる並列処理システムを得る。
【解決手段】 プライベートIPアドレスで定義されるネットワークをそれぞれ1つの並列計算機1、3、5、〜とし、並列計算機内の計算機1a、1b、1c、・・・、3a、3b、3c、・・・、5a、5b、5c、・・・、〜は、システムの構成に応じてサーバノードまたは計算ノードとして動作し、ネットワークを接続する接続計算機2、4、6、〜は、上位の並列計算機内では計算ノード2a、4a、6a、〜、下位の並列計算機内ではサーバノード2b、4b、6b〜として動作し、並列計算機間の通信は接続計算機内部で計算ノード2a、4a、6a、〜とサーバノード2b、4b、6b、〜の間でプロセス間通信する。
【選択図】 図1

Description

この発明は、相互に接続された複数の計算機ネットワークに接続された計算機を計算リソースとして構成される並列処理システムと、この並列処理システムを用いて実行する並列シミュレーションに適用するための並列処理方法に関するものである。
従来の並列シミュレーションを実行する並列計算機は、1つの計算機に複数のプロセッサを持つ共有メモリ型計算機、あるいは複数の計算機を並列計算機専用に使うネットワーク装置で接続した分散型並列計算機(例えば、PCクラスタ)が用いられていた。
近年、これに加えてグリッドコンピューティングのように、計算機ネットワークに接続されたあらゆる計算機を計算リソースにして、並列シミュレーションを実行しようという試みが始まってきた。
並列処理プログラムを記述するプログラミング言語としては、世界標準の規格であるMPI(Message Passing Interface)通信ライブラリの実装の1つであるmpich(米国アルゴンヌ国立研究所開発のフリーソフトウェア)が最も広く使用されている。
上述のmpichで記述された並列処理プログラムを実行するとき、並列化されたプロセスを実行する全計算機は、IPアドレスにより相互に認識されていなければならない。すなわち、4台の計算機(これをPC0、PC1、PC2、PC3とする)からなる並列計算機で並列処理プログラムを実行するとき、すべての計算機PC0、PC1、PC2、PC3は、自身を含めた全ての計算機PC0、PC1、PC2、PC3のIPアドレスを認識していなければならない。これは、mpichでは並列処理用関数の初期化の段階で、全計算機間の通信のために相互にソケットを張り合うという処理の実行が必要であるからである。
従来の並列計算機に関する先行技術としては、1台の計算機を複数のプロセッサで構成した並列計算機で、そのプロセッサ間通信のレイティング性能改善等で並列処理の向上を図る技術などがある(例えば、特許文献1参照)。
しかし、この発明が課題としている問題に対しては、これを解決する先行例は存在しない。
特開平11−66022号公報
今、図17で示すような、プライベートIPアドレスで定義されたローカルな計算機ネットワーク100、300、500、700、900が、ゲートウェイなどの接続計算機200、400、600、800を介して接続した計算機ネットワークを考える。以下では、これらローカルな計算機ネットワークをサブネットワークと記述する。このような一般的な計算機ネットワークでは、必ずしも全ての計算機が、他の全ての計算機のIPアドレスを認識しているとは限らない。
通常、計算機ネットワークは、複数のサブネットワークがゲートウェイを介して接続したシステムである。各サブネットワーク内部における計算機間の通信においては、通信相手の計算機をそのサブネットワーク内でのみ通用する各計算機固有のプライベートIPアドレスにより認識され、計算機間通信が行われる。あるサブネットワーク内の計算機から別のサブネットワーク内の計算機への通信は、ゲートウェイとなる計算機で適切なルーティング設定をするなど、ネットワーク設定をすることにより行うことができる。
例えば、2つのサブネットワーク100、300は、接続計算機200を介して接続しているが、これら2つのサブネットワーク同士は接続計算機200を除いて相互にIPアドレスによる認識ができない。PCクラスタ(PCによる分散並列計算機)も同様である。残りの計算ノードはPCクラスタ内部のプライベートIPアドレスしかもたない。すなわち、サブネットワーク300上の計算機は、PCクラスタのサーバノード600についてはIPアドレスを認識しているが、計算ノードのIPアドレスは認識していない。
MPIによる並列シミュレーションは、一般的にいう並列計算機で実行するのが普通であるが、そうでなくても、計算機ネットワークに接続した計算機を計算リソースとして使用することができる。しかしながら、前述のように、全計算機がIPアドレスを相互に認識し合わなければならないという制約により、計算リソースとして使用できるのは、通常同一のサブネットワーク上の計算機に限定される。
もちろん、ネットワーク設定を適切に行ってIPアドレスを認識させることにより、他のサブネットワーク上の計算機も計算リソースとして使用可能である。
しかし、このようにして通信を可能にした場合でも、MPIでは、実際には決して使用することのないソケットを全ての計算機間ではろうとするため、セキュリティ上の問題が発生する。
例えば図17で、サブネットワーク700のある計算機とサブネットワーク900のある計算機の間のソケットをはる場合、サブネットワーク300、100、500を経由しているため、この間のネットワーク設定、例えばルーティング設定・セキュリティの問題などをクリアにしておかなければならない。ネットワークの観点からみた計算機同士の距離が離れれば離れるほど、上記ネットワーク設定が煩雑になる。現実問題として考えると、セキュリティ上の問題からこのような、あちこちに分散した計算機間の全ての通信は、許可されない場合が多い。
また、並列処理に使う計算機の数が増えれば増えるほどソケットの数も増加してしまう、という問題も発生する。
一方、並列シミュレーションの種類によっては、必ずしも他の全ての計算機とのデータ通信を必要としないものがある。すなわち、シミュレーション中に通信が行われる計算機の組が決まっていて、それ以外の計算機間でソケットをはる必要がない場合がある。
このようなシミュレーションの代表的な例として、モンテカルロシミュレーションがある。図18に、モンテカルロシミュレーションを並列計算機で実行する場合の一般的な方法の概略を示す。モンテカルロシミュレーションでは、数多くのシミュレーションケースを完全に独立に実行できるので、ある1つの計算機PC0がサーバとなり、他の全ての計算機PC1、PC2、PC3にシミュレーションケースを与え、これら計算機PC1、PC2、PC3が与えられたケースを実行し、その結果を計算機PC0に返す。計算機PC0では、全ケースの結果をまとめて分析・評価する、ということができる。
このような場合、計算機PC0は他の全ての計算機PC1、PC2、PC3と通信が必要であるが、計算機PC1と計算機PC2の間、計算機PC2と計算機PC3の間、計算機PC3と計算機PC1の間には通信が発生しないので、ソケットをはる必要がない。
また、IPアドレス重複の問題もある。サブネットワーク内の計算機のIPアドレスはプライベートに設定されるので、ある計算機のプライベートIPアドレスと同一のプライベートIPアドレスを、別のサブネットワーク内の計算機がもっている可能性がある。
図17の例では、サブネットワーク100、300、500、900は、それぞれIPアドレス192.168.10.xxx/192.168.20.xxx/192.168.30.xxx/192.168.40.xxxを持っているとしたが、例えばサブネットワーク300、500が同一のIPアドレス、例えば192.168.100.xxxをもっている可能性もある。したがって、計算リソースの候補となる計算機のIPアドレスが、他の計算機のIPアドレスと重複していないかを必ず調査しなければならず、重複していた場合には、この計算機を計算リソースとして使用することはできないという問題がある。
この発明は、上述のような問題を解決するためになされたもので、計算機ネットワークに接続された全ての計算機を計算リソースとして利用することができる並列処理システムと並列処理方法を提供するものである。
この発明に係る並列処理システムにおいては、第1の並列処理プログラムを実装した第1のネットワークに収容され、シミュレーション全体を管理する1つの計算機メインサーバと、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、第2の並列処理プログラムとの間のデータ通信を実行するという機能をもち前記第1のネットワークと第2のネットワーク双方に属する接続計算機クラスタクライアントからなる第1の並列計算機と、前記第2の並列処理プログラムを実装した前記第2のネットワークに収容され、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、前記第2の並列処理プログラムでサーバとして動作するとともに前記第1の並列処理プログラムとの間のデータ通信を実行するという機能をもつ前記接続計算機クラスタサーバからなる第2の並列計算機を備える。
この発明は、複数のサブネットワークが階層的に接続した計算機ネットワークにおいて、各サブネットワークがそれぞれ個別の並列処理プログラムを実行し、サブネットワーク同士を接続している計算機において両サブネットワークで実行する並列処理プログラム間で適切な通信を行い、全並列処理プログラムを協調して実行できるようにすることで、ネットワーク全体を一つの並列処理システムとなるよう構成しているので、計算機ネットワークに接続されている全ての計算機を並列処理の計算リソースとして利用できるという効果がある。
実施の形態1.
図1は、この発明を実施するための実施の形態1における並列処理システムのブロック図であり、図17に示した一般的な計算機ネットワークと同一の構成をもつ。図17の計算機ネットワーク全体は、サブネットワーク100、300、500、700、900がゲートウェイ200、400、600、800を介して接続したネットワークである。この発明では、個々のサブネットワークを並列計算機として動作させるので、必要に応じて並列計算機と記述する。例えば、図1の並列処理システムでは、図17のサブネットワーク100、300、500、700、900に対応して、並列計算機1、3、5、7、9をもつ。
図1において、並列計算機1は、サーバノード1aと、複数の計算ノード1b、1c、1dと、ネットワーク接続計算機2、4からなり、この接続計算機2、4で並列計算機3、5に接続されている。さらに、並列計算機3、5は、ネットワーク接続計算機6、8で並列計算機7、9に接続されている。接続計算機2、4、6、8は、それぞれ1つの計算機であり、その内部で、上位の並列計算機で実行する第1の並列処理プログラムと、下位の並列計算機で実行する第2の並列処理プログラムの2つの並列処理プログラムが実行される。そして、第1の並列処理プログラムでは計算ノードとして動作し、下位の並列計算機において実行する並列処理プログラムではサーバノードとして動作する。したがって、これら接続計算機2、4、6、8は、上位並列計算機から見たときには計算ノード2a、4a、6a、8a、下位並列計算機から見たときにはサーバノード2b、4b、6b、8bのように必要に応じて表す。
このように、この発明の並列処理システムは、プライベートIPアドレスで定義され分割されるサブネットワークをそれぞれ1つの並列計算機とみなして、これら並列計算機を階層構造で接続した構成をとるシステムである。なお、PCクラスタもプライベートIPアドレスで定義されるシステムであるので一つのサブネットワークとみなすことができる。
図2は、この発明の説明をするために、図1の並列処理システムから2階層のみを抽出したシステム構成図である。図において、並列計算機1には、サーバノードとなる計算機PC1aと、計算ノードとなる計算機PC1b、PC1cと、接続計算機PC2が収容されている。また、並列計算機3には、サーバとなる接続計算機PC2と計算ノードとなる計算機PC3a、PC3b、PC3cが収容されている。接続計算機PC2は、上位並列計算機1の計算ノードとしてクラスタクライアント2a、下位並列計算機3のサーバノードとしてクラスタサーバ2bとして動作する。そして、上位並列計算機1と下位並列計算機3の双方に属するので、図のように並列計算機1および並列計算機3とオーバーラップする位置付けで表す。
ここで、この発明の並列処理方法を適用する実際の並列処理プログラムでは、その計算機が並列処理システムのどの位置にあるかによって、4つの関数main_server(メインサーバ)/cluster_server(クラスタサーバ)/cluster_client(クラスタクライアント)/single_client(シングルクライアント)のいずれかを実行する。各並列計算機で実行する並列処理プログラムは、これら4つの関数を適切に組み合わせることにより、任意の階層構造をもつ並列処理システムに適用することができる。
図2における並列計算機1が実行するプログラムの例を図3に、並列計算機3が実行するプログラムの例を図4に示す。図3、4では、並列計算機1、3内の各計算機における実行命令を、その計算機のランク(my_rank)と接続計算機であるのかの情報(cluster_flag)にもとづいて示している。ここでランクとは、MPI並列処理プログラムにおいて、並列計算機全体の中で自計算機が何番目の計算機であるかを識別する整数である。
図3では、並列計算機1の各計算機において、ランクが0(ゼロ)の計算機はmain_serverを実行し、ランクが0(ゼロ)でない計算機については、クラスタフラグが1の計算機はcluster_clientを実行し、その他の計算機はsingle_clientを実行するということを表している(以降、この処理を並列処理プログラムMPI#1という)。すなわち、並列計算機1では、計算機PC1aがmain_serverを実行し、計算機PC2aがcluster_clientを実行し、計算機PC1b、PC1cがsingle_clientを実行する。図4では、並列計算機1に対し下位にある並列計算機3の各計算機において、ランクが0(ゼロ)の計算機はcluster_severを実行し、その他の計算機はsingle_clientを実行するということを表している(以降、この処理を並列処理プログラムMPI#2という)。すなわち、並列計算機3では、計算機PC2bがcluster_serverを実行し、計算機PC3a、PC3b、PC3cがsingle_clientを実行する。
なお、計算機PC1aにランク0、接続計算機PC2aにクラスタフラグ1、接続計算機PC2bにランク0が予め付与されているものとする。実際には、MPI#1を起動する計算機が計算機PC1aであり、起動時に自動的にMPI#1におけるランク0となる。また、MPI#2に関しては、接続計算機PC2bがMPI#2を起動することになるので、接続計算機PC2bが自動的にMPI#2におけるランク0となる。クラスタフラグについては、上位の並列計算機における接続計算機がフラグ1、非接続計算機がフラグ0となるよう設定する。
以上説明したように、この発明の並列処理方法では、個々の計算機が並列処理システムのどの部分にあるかによって、メインサーバ、クラスタサーバ、クラスタクライアント、シングルクライアントのいずれかで動作する。ここで、それぞれの役割を説明する。
メインサーバ:この並列処理システムの最上位の並列計算機におけるサーバノードで実行する。並列シミュレーション全体を管理する。
クラスタサーバ:並列計算機を接続する計算機で実行する。下位の並列計算機における並列処理プログラム内で実行され、この並列処理プログラムでのシミュレーションを管理するとともに、上位の並列処理プログラムとデータ通信を行う。
クラスタクライアント:並列計算機を接続する計算機で実行する。上位の並列計算機における並列処理プログラム内で実行され、下位の並列処理プログラムとデータ通信を行う。
シングルクライアント:全並列計算機の末端ノードで実行する。シミュレーションケースを実行する。
これを、図2を例にして考えると以下のようになる。最上位の並列計算機1のサーバノードPC1aでmain_serverを実行し、全てのシミュレーションを管理する。各シミュレーションケースの実行は、全並列計算機1、3の末端ノードPC1b、PC1c、PC3a、PC3b、PC3cでsingle_clientにより行う。並列計算機を接続する計算機PC2は、上位の並列処理プログラムMPI#1内ではcluster_clientを、下位の並列処理プログラムMPI#2内ではcluster_serverを実行する。両プログラム間は、UDP/IPソケット通信により必要なデータを送受信する。例えば、cluster_clientからcluster_serverにシミュレーションケースを、cluster_serverからcluster_clientにシミュレーション結果を送信する(詳細については、後述する)。
ここで、「UDP/IPソケット通信」と記述したが、これはMPI#1とMPI#2の間のデータ通信方法の1例である。MPI#1とMPI#2の通信方法はUDP/IPに限定する必要はなく、例えばTCP/IP通信でもよい。以下では、UDP/IP通信を使用していると仮定して記述する。
つぎに、各並列処理プログラムがもつ処理手順を図5に示す。並列計算機1で実行する並列処理プログラムMPI#1は、図5(a)に示す実行タイプ判定手順、初期化手順、メインサーバ実行手順、クラスタクライアント実行手順およびシングルクライアント実行手順から成る。実行タイプ判定手順により、自計算機が階層構造のどの位置にいるかに応じて、どの実行手順(メインサーバ実行手順/クラスタクライアント実行手順/シングルクライアント実行手順)を実行するかを判定する。そして、初期化手順により、各種定数の初期化、必要に応じてUDP/IPソケット通信用のソケットを生成し、実行タイプ判定手順の結果に従い、3つの実行手順のいずれかを実行する。
また、下位の並列計算機3で実行する並列処理プログラムMPI#2は、図5(b)に示す実行タイプ判定手順、初期化手順、クラスタサーバ実行手順およびシングルクライアント実行手順から成る。実行タイプ判定手順により、自計算機が階層構造のどの位置にいるかに応じて、どの実行手順(クラスタサーバ実行手順/シングルクライアント実行手順)を実行するかを判定する。そして、初期化手順により、各種定数の初期化、必要に応じてUDP/IPソケット通信用のソケットを生成し、実行タイプ判定手順の結果に従い、2つの実行手順のいずれかを実行する。
並列処理システムが図2の2階層でなくさらに下位に並列計算機がある場合には、中位の並列計算機の並列処理プログラムMPI#3は、図5(c)に示すように図5(b)の構成にクラスタクライアント実行手順を加えた構成となる。
上記4つの実行手順の詳細について、以下で説明する。
まず、図6にもとづきメインサーバの構成と動作について説明する。メインサーバは、上位の並列計算機1におけるサーバノードで実行する。図2の例では、計算機PC1aである。図において、メインサーバは、シミュレーション条件データ生成手段10、シミュレーション条件データ送信手段11、制御信号送信手段12、シミュレーション共通データ生成手段13、シミュレーション共通データ送信手段14、シミュレーションケース生成手段15、シミュレーションケース送信手段16、シミュレーション結果受信手段17、ループ終了判定手段18、シミュレーション終了判定手段19、シミュレーション結果保存手段20およびシミュレーション結果評価手段21から構成される。
シミュレーション条件データ生成手段10は、全シミュレーションで共通の条件データを生成する機能を持つ。ここで生成されたシミュレーション条件データはシミュレーション条件データ送信手段11により、クラスタクライアントおよびシングルクライアントにブロードキャスト送信される。
制御信号送信手段12は、シミュレーションの中断信号、終了信号などの実行制御するための信号を、クラスタクライアントおよびシングルクライアントに送信する機能をもつ。
シミュレーション共通データ生成手段13は、ループごとに共通に使用する共通データを生成する機能をもつ。ここで生成されたシミュレーション共通データは、シミュレーション共通データ送信手段14により、クラスタクライアントおよびシングルクライアントにブロードキャスト送信される。
ここで、上記「ループ」について簡単に説明する。全シミュレーションケースは複数の組に分割でき、その組ごとに共通のデータを持っている。「ループ」とはこの分割した組をさす。
シミュレーションケース生成手段15は、ループごとにシングルクライアントに実行させる全シミュレーションケースを生成する機能を持つ。ここで生成されたシミュレーションケースは、シミュレーションケース送信手段16により、クラスタクライアントおよびシングルクライアントに送信される。
シミュレーション結果受信手段17は、クラスタクライアントおよびシングルクライアントから送信されたシミュレーション結果を受信する。
ループ終了判定手段18は、シミュレーションケース生成手段15が生成したそのループで実行する全ケースの結果が、シミュレーション結果受信手段17により受信が完了したかを判定する。
シミュレーション終了判定手段19は、全ループが完了し、全てのシミュレーションが終了したかを判定する。
シミュレーション結果保存手段20は、シミュレーション結果受信手段17が受信したシミュレーション結果を保存する。
シミュレーション結果評価手段21は、シミュレーション結果保存手段20に保存されたシミュレーション結果を評価する。
つぎに、図7にもとづきクラスタクライアントの構成と動作について説明する。クラスタクライアントは、上位の並列計算機1における接続計算機2で実行する。図2の例では、計算機PC2aである。図において、クラスタクライアントは、シミュレーション条件データ受信手段23、シミュレーション条件データ送信手段24、メッセージ受信手段25、メッセージタイプ判定手段26、シミュレーションケース送信手段27、制御信号送信手段28、シミュレーション共通データ受信手段29、シミュレーション共通データ送信手段30、シミュレーション結果受信手段31およびシミュレーション結果送信手段32から構成される。
シミュレーション条件データ受信手段23は、メインサーバ(PC1a)からブロードキャスト送信されたシミュレーション条件データを受信する。ここで受信したシミュレーション条件データは、シミュレーション条件データ送信手段24により、UDP/IP通信によりクラスタサーバ(PC2b)に送信される。
メッセージ受信手段25は、メインサーバ(PC1a)から送信されたメッセージを受信する。ここで受信したメッセージは、メッセージタイプ判定手段26により、シミュレーションケース/終了/中断のいずれであるかが判定される。
シミュレーションケース送信手段27は、メッセージタイプ判定手段26で判定した結果がシミュレーションケースであるときに、メッセージ受信手段25で受信したメッセージをUDP/IP通信によりクラスタサーバ(PC2b)に送信する。制御信号送信手段28は、メッセージタイプ判定手段26で判定した結果が終了/中断であるときに、終了信号/中断信号をUDP/IP通信によりクラスタサーバ(PC2b)に送信する。
シミュレーション共通データ受信手段29は、メッセージタイプ判定手段26で判定した結果が中断であるときに、制御信号送信手段28が中断信号を送信終了後、メインサーバ(PC1a)からブロードキャスト送信されたシミュレーション共通データを受信する。ここで受信したシミュレーション共通データは、シミュレーション共通データ送信手段30により、UDP/IP通信によりクラスタサーバ(PC2b)に送信される。
シミュレーション結果受信手段31は、下位の並列計算機3で実行したシミュレーション結果を、UDP/IP通信によりクラスタサーバ(PC2b)から受信する。ここで受信したシミュレーション結果は、シミュレーション結果送信手段32により、メインサーバ(PC1a)に送信される。
つぎに、図8にもとづきクラスタサーバの構成と動作について説明する。クラスタサーバは、下位の並列計算機3におけるサーバノードで実行する。下位の並列計算機のサーバノードは常に接続計算機であり、図2の例では、計算機PC2bである。図において、クラスタサーバは、シミュレーション条件データ受信手段34、シミュレーション条件データ送信手段35、メッセージ受信手段36、メッセージタイプ判定手段37、シミュレーションケース送信手段38、制御信号送信手段39、シミュレーション共通データ受信手段40、シミュレーション共通データ送信手段41、シミュレーション結果受信手段42、シミュレーション結果保存手段43、シミュレーション結果送信手段44および全結果受信判定手段45から構成される。
シミュレーション条件データ受信手段34は、クラスタクライアント(PC2a)から送信されたシミュレーション条件データをUDP/IP通信により受信する。ここで受信したシミュレーション条件データは、シミュレーション条件データ送信手段35により、シングルクライアントにブロードキャスト送信される。
メッセージ受信手段36は、クラスタクライアント(PC2a)から送信されたメッセージをUDP/IP通信により受信する。ここで受信したメッセージは、メッセージタイプ判定手段37により、シミュレーションケース/終了/中断のいずれであるかが判定される。
シミュレーションケース送信手段38は、メッセージタイプ判定手段37で判定した結果がシミュレーションケースであるときに、メッセージ受信手段36で受信したメッセージをシングルクライアントに送信する。制御信号送信手段39は、メッセージタイプ判定手段37で判定した結果が終了/中断であるときに、終了信号/中断信号をシングルクライアントにブロードキャスト送信する。
シミュレーション共通データ受信手段40は、メッセージタイプ判定手段37で判定した結果が中断であるときに、制御信号送信手段39が中断信号を送信終了後、クラスタクライアント(PC2a)から送信されたシミュレーション共通データをUDP/IP通信により受信する。ここで受信したシミュレーション共通データは、シミュレーション共通データ送信手段41により、シングルクライアントにブロードキャスト送信される。
シミュレーション結果受信手段42は、シングルクライアントで実行したシミュレーション結果を受信する。ここで受信したシミュレーション結果は、シミュレーション結果保存手段43により保存される。
全結果受信判定手段45は、メッセージ受信手段36で受信した全シミュレーションケースの結果が、シミュレーション受信手段42により受信が完了したかを判定する。
シミュレーション結果送信手段44は、全結果受信判定手段45で判定した結果が、全結果を受信済みであるときに、シミュレーション結果保存手段43に保存されているシミュレーション結果をUDP/IP通信によりクラスタクライアント(PC2a)に送信する。
つぎに、図9にもとづきシングルクライアントの構成と動作について説明する。シングルクライアントは、各並列計算機の末端の計算機で実行する。図2の例では、計算機PC1b、PC1c、PC3a、PC3b、PC3cである。図において、シングルクライアントは、シミュレーション条件データ受信手段47、メッセージ受信手段48、メッセージタイプ判定手段49、シミュレーション実行手段50、シミュレーション結果送信手段51およびシミュレーション共通データ受信手段52から構成される。
シミュレーション条件データ受信手段47は、メインサーバまたはクラスタサーバからブロードキャスト送信されたシミュレーション条件データを受信する。
メッセージ受信手段48は、メインサーバまたはクラスタサーバから送信されたメッセージを受信する。ここで受信したメッセージは、メッセージタイプ判定手段49により、シミュレーションケース/終了/中断のいずれであるかが判定される。
シミュレーション実行手段50は、メッセージタイプ判定手段49で判定した結果がシミュレーションケースであるときに、メッセージ受信手段48で受信したシミュレーションケースを実行する。ここで実行したシミュレーション結果は、シミュレーション結果送信手段51により、メインサーバまたはクラスタサーバに送信される。
シミュレーション共通データ受信手段52は、メッセージタイプ判定手段49で判定した結果が中断であるときに、メインサーバまたはクラスタサーバからブロードキャスト送信されたシミュレーション共通データを受信する。
つぎに、メインサーバ、クラスタクライアント、クラスタサーバおよびシングルクライアントの動作について、図10、図11、図12、図13のフローチャートを用いて説明する。ただし、以下の動作は図3、図4に示したプログラム内の関数main_server、cluster_client、cluster_serverおよびsingle_clientの動作であり、図5で示した「実行タイプ判定手順」と「初期化手順」のフローチャートは省略してある。UDP/IP通信を行うクラスタサーバとクラスタクライアントでは、通信用のソケット生成を「初期化手順」で行う。
まず、図10のフローチャートにもとづき、メインサーバの動作を説明する。
全シミュレーションで共通のシミュレーション条件データ(Condition_data)を生成し(ステップST100)、生成したデータを並列計算機1でブロードキャスト送信する(ステップST101)。この後、並列計算機1で中断信号をブロードキャスト送信し(ステップST102)、シミュレーションループに入る。
ループの最初に、ループごとに共通に使用するシミュレーション共通データ(Bcast_data)を生成し(ステップST103)、生成したデータを並列計算機1でブロードキャスト送信する(ステップST104)。
つぎに、このループで実行するシミュレーションケースを生成する(ステップST105)。生成したシミュレーションケースのうち、計算ノード数に応じて数が決まる最初の複数のシミュレーションケースを全計算ノードに送信する(ステップST106)。送信するシミュレーションケースは計算機ごとに異なり、1つの計算ノードに複数まとめて送信してもよい。つぎに、計算ノードからシミュレーション結果が送信されてくるのを待ち、受信し(ステップST107)、受信したシミュレーション結果を保存する(ステップST108)。
このループでシミュレーションする全ケースのシミュレーション結果が受信済みかを判定し(ステップST109)、受信済みでなければ全ケースを送信済みかを判定する(ステップST110)。全ケース送信済みであれば、シミュレーション結果受信待ち(ステップST107)に戻る。全ケース送信済みでなければ、直前にシミュレーション結果を送信してきた計算ノードに次ケースを送信し(ステップST111)、シミュレーション結果受信待ち(ステップST107)に戻る。
また、このループでシミュレーションする全ケースのシミュレーション結果が受信済みかの判定(ステップST109)で、全ケース受信済みであれば、このループの全受信結果の評価を行い(ステップST112)、シミュレーションを終了するかを判定する(ステップST113)。判定した結果が終了であるときには、並列計算機1で終了信号をブロードキャスト送信し(ステップST114)、最終結果を評価し(ステップST115)、シミュレーションを終了する。
また、シミュレーション終了判定(ステップST113)で判定した結果が終了でないときには、並列計算機1で中断信号をブロードキャスト送信し(ステップST116)、シミュレーション共通データ生成(ステップST103)に戻る。
つぎに、図11のフローチャートにもとづき、クラスタクライアントの動作を説明する。クラスタクライアントの動作説明においては、クラスタクライアントとクラスタサーバの間のデータ送受信は全てUDP/IP通信により行う。
まず、メインサーバからブロードキャスト送信されたシミュレーション条件データ(Condition_data)を受信し(ステップST200)、受信したデータをクラスタサーバに送信する(ステップST201)。
つぎに、メインサーバからのメッセージを待ち、受信する(ステップST202)。受信したメッセージのメッセージタイプが、シミュレーションケース/終了/中断のいずれであるかを判定する(ステップST203)。メッセージタイプの判定結果が終了であるときには、終了信号をクラスタサーバに送信し(ステップST204)、終了する。
メッセージタイプの判定結果がシミュレーションケースであるときには、受信したシミュレーションケースをクラスタサーバに送信する(ステップST205)。送信後、クラスタサーバからシミュレーション結果が送信されてくるのを待ち、受信し(ステップST206)、受信したシミュレーション結果をメインサーバに送信する(ステップST207)。そして、つぎのメッセージ受信待ち(ステップST202)に戻る。
メッセージタイプの判定結果が中断であるときには、中断信号をクラスタサーバに送信する(ステップST208)。送信後、メインサーバからシミュレーション共通データ(Bcast_data)がブロードキャスト送信されてくるのを待ち、受信し(ステップST209)、受信したデータをクラスタサーバに送信する(ステップST210)。そして、つぎのメッセージ受信待ち(ステップST202)に戻る。
つぎに、図12のフローチャートにもとづき、クラスタサーバの動作を説明する。クラスタサーバの動作説明においては、クラスタサーバとクラスタクライアントの間のデータ送受信は全てUDP/IP通信により行う。
まず、クラスタクライアントから送信されたシミュレーション条件データ(Condition_data)を受信し(ステップST300)、受信したデータを並列計算機3でブロードキャスト送信する(ステップST301)。
つぎに、クラスタクライアントからのメッセージを待ち、受信する(ステップST302)。受信したメッセージのメッセージタイプが、シミュレーションケース/終了/中断のいずれであるかを判定する(ステップST303)。メッセージタイプの判定結果が終了であるときには、並列計算機3で終了信号をブロードキャスト送信し(ステップST304)、終了する。
メッセージタイプの判定結果がシミュレーションケースであるときには、受信したシミュレーションケースのうち、計算ノード数に応じて数が決まる最初の複数のシミュレーションケースを全計算ノードに送信する(ステップST305)。送信するシミュレーションケースは計算機ごとに異なり、1つの計算ノードに複数まとめて送信してもよい。つぎに、計算ノードからシミュレーション結果が送信されてくるのを待ち、受信し(ステップST306)、受信したシミュレーション結果を保存する(ステップST307)。
クラスタクライアントから受信した全ケースのシミュレーション結果が受信済みかを判定し(ステップST308)、受信済みでなければ全ケースを送信済かを判定する(ステップST310)。全ケース送信済みであれば、シミュレーション結果受信待ち(ステップST306)に戻る。全ケース送信済みでなければ、直前にシミュレーション結果を送信してきた計算ノードに次ケースを送信し(ステップST311)、シミュレーション結果受信待ち(ステップST306)に戻る。
また、クラスタクライアントから受信した全ケースのシミュレーション結果が受信済みかの判定(ステップST308)で、全ケース受信済みであれば、保存したシミュレーション結果をクラスタクライアントに送信する(ステップST309)。そして、つぎのメッセージ受信待ち(ステップST302)に戻る。
メッセージタイプの判定結果が中断であるときには、並列計算機3で中断信号をブロードキャスト送信する(ステップST312)。送信後、クラスタクライアントからシミュレーション共通データ(Bcast_data)が送信されてくるのを待ち、受信し(ステップST313)、受信したデータを並列計算機3でブロードキャスト送信する(ステップST314)。そして、つぎのメッセージ受信待ち(ステップST302)に戻る。
つぎに、図13のフローチャートにもとづき、シングルクライアントの動作を説明する。
並列計算機1ではメインサーバから、並列計算機3ではクラスタサーバからブロードキャスト送信されたシミュレーション条件データ(Condition_data)を受信する(ステップST400)。
つぎに、メッセージを待ち、受信する(ステップST401)。受信したメッセージのメッセージタイプがシミュレーションケース/終了/中断のいずれかであるかを判定する(ステップST402)。メッセージタイプの判定結果が終了であるときには、終了する。
メッセージタイプの判定結果がシミュレーションケースであるときには、シミュレーションを実行し(ステップST403)、シミュレーション結果を、並列計算機1のシングルクライアントであればメインサーバに、並列計算機3のシングルクライアントであればクラスタサーバに送信する(ステップST404)。そして、つぎのメッセージ受信待ち(ステップST401)に戻る。
メッセージタイプの判定結果が中断であるときには、シミュレーション共通データ(Bcast_data)がブロードキャスト送信されてくるのを待ち、受信する(ステップST405)。そして、つぎのメッセージ受信待ち(ステップST401)に戻る。
以上の説明では、メインサーバ、クラスタサーバ、クラスタクライアント、シングルクライアントの個々の構成と動作について説明してきたが、以降では、図2の2階層の並列処理システム全体の動作を、図14と図15のシーケンス図をもとに説明する。
図14において、上位の並列計算機1で実行する並列処理プログラムをMPI#1とし、下位の並列計算機3で実行する並列処理プログラムをMPI#2とする。並列計算機1は、メインサーバPC1a、末端の計算ノードとなるシングルクライアントPC1b、PC1c、接続計算機2でクラスタクライアントとなるPC2aからなる。並列計算機3は、接続計算機2でクラスタサーバとなるPC2b、末端の計算ノードとなるシングルクライアントPC3a、PC3b、PC3cからなる。
まず、シミュレーションのメイン部分を開始する前に、全シミュレーションで共通のシミュレーション条件データを並列計算機1と並列計算機3のすべての計算機に送信する。これは、つぎのようにして行う。並列処理プログラムMPI#1で、メインサーバPC1aがシミュレーション条件データを生成し(図中のA)、ブロードキャストする(図中のB)。クラスタクライアントPC2aは、このシミュレーション条件データを並列処理プログラムMPI#2にUDP/IP通信により送信する(図中のC)。並列処理プログラムMPI#2では、クラスタサーバPC2bがこのシミュレーション条件データをUDP/IP通信により受信し、受信したデータをブロードキャストする(図中のD)。これで、シミュレーション条件データは全シングルクライアントに送信されたことになる。シミュレーションのメイン部分終了後、上位の並列計算機1のメインサーバPC1aが全シミュレーション結果を評価し、終了する。メインサーバPC1aを除く全計算機は、シミュレーションのメイン部分終了後、終了する。
つぎに、図15をもとにシミュレーションのメイン部分を説明する。
まず、各ループの最初に、ループごとに共通に使用するシミュレーション共通データを並列計算機1と並列計算機3の全ての計算機に送信する。並列処理プログラムMPI#1で、メインサーバPC1aがシミュレーション共通データを生成し(図中のE)、ブロードキャストする(図中のF)。クラスタクライアントPC2aは、このシミュレーション共通データを並列処理プログラムMPI#2にUDP/IP通信により送信する(図中のG)。並列処理プログラムMPI#2では、クラスタサーバPC2bがこのシミュレーション共通データをUDP/IP通信により受信し、受信したデータをブロードキャストする(図中のH)。これでシミュレーション共通データは、全シングルクライアントに送信されたことになる。そして、このループのシミュレーション実行に入る。
まず、並列処理プログラムMPI#1の動作について説明する。
メインサーバPC1aは、このループで実行する全シミュレーションケースを生成し(図中のI)、最初のシミュレーションケースを各計算ノードPC1b、PC1c、PC2aに送信する(図中のJ)。送信後、これらの結果が計算ノードから送信されてくるのを待つ。
シングルクライアントPC1b、PC1cは、シミュレーションケースを受信し、シミュレーションを実行し、シミュレーション結果をメインサーバPC1aに送信する(図中のK)。送信後、つぎのシミュレーションケースが送信されてくるのを待つ。
クラスタクライアントPC2aは、シミュレーションケースを受信し、これを並列処理プログラムMPI#2にUDP/IP通信により送信する(図中のL)。送信後、これらのシミュレーション結果が並列処理プログラムMPI#2からUDP/IP通信により送信されてくるのを待つ。シミュレーション結果を受信したら、これをメインサーバPC1aに送信する(図中のN)。
メインサーバPC1aは、シミュレーション結果を計算ノードから受信したら、もしこのループで実行する全シミュレーションケースを計算ノードに送信済みでなければ、シミュレーション結果を送信してきた計算ノードに、つぎのシミュレーションケースを送信する(図中のO)。
並列処理プログラムMPI#1は、メインサーバPC1aがループの全シミュレーション結果を受信するまで前述の動作を繰り返す(図中のP)。そして、全シミュレーション結果受信後、次のループに入る。
つぎに、並列処理プログラムMPI#2の動作について説明する。
クラスタサーバPC2bは、シミュレーションケースを並列処理プログラムMPI#1からUDP/IP通信により受信し、このうち最初のシミュレーションケースを各計算ノードPC3a、PC3b、PC3cに送信する(図中のQ)。
シングルクライアントPC3a、PC3b、PC3cは、シミュレーションケースを受信し、シミュレーションを実行し、シミュレーション結果をクラスタサーバPC2bに送信する(図中のR)。送信後、つぎのシミュレーションケースが送信されてくるのを待つ。
クラスタサーバPC2bは、シミュレーション結果を計算ノードから受信したら、もしMPI#1からUDP/IP通信により送信されてきた全シミュレーションケースを計算ノードに送信済みでなければ、シミュレーション結果を送信してきた計算ノードに、つぎのシミュレーションケースを送信する(図中のS)。
並列処理プログラムMPI#2は、MPI#1からUDP/IP通信により送信されてきた全シミュレーションケース終了まで上記を繰り返す(図中のT)。終了後、全シミュレーション結果をUDP/IP通信により並列処理プログラムMPI#1に送信する(図中のM)。送信後、つぎのシミュレーションケースがMPI#1から送信されてくるのを待つ。
並列処理プログラムMPI#2は、並列処理プログラムMPI#1から送信されてきたシミュレーションケースを実行し結果を返すだけである。したがって、並列処理プログラムMPI#2は、並列処理プログラムMPI#1のループとは関係なく動作する。
並列処理プログラムMPI#1とMPI#2は、全ループが終了するまで、すなわちメイン部分分が終了するまで前述の動作を繰り返す。
以上説明してきたとおり、計算機ネットワーク上の複数のサブネットワークをそれぞれ1つの並列計算機と定義し、それぞれで独立に実行する並列処理プログラムにおいて個々の計算機が他のサブネットワークとの接続位置にあるかを基準に、シングルクライアント、クラスタクライアントまたはクラスタサーバに分類し、それに応じた動作を実行させ、これによって複数の並列処理プログラムを協調動作させることにより、計算機ネットワーク全体に接続された全ての計算機を大規模な並列処理プログラムの計算リソースとして活用することができる。
また、2つのサブネットワークを接続する接続計算機を、それぞれのサブネットワークで実行する2つの並列処理プログラムにおいて、クラスタクライアントとクラスタサーバと位置付け、クラスタクライアントとクラスタサーバがもつ機能により並列処理プログラム間でプロセス間通信を行うので、サブネットワークを超えて実行する1つの並列処理プログラムを実装する必要がなく、両サブネットワーク上の計算機同士の通信で一般に発生するセキュリティ上の問題が解消される。
また、上記のプロセス間通信を行うようにしたことで、独立した2つの並列処理プログラムを協調させて実行することができる。
また、並列計算機は、プライベートIPアドレスで定義されるサブネットワークを単位としているので、サブネットワーク上の任意の計算機を計算リソースとする並列計算機を構成できる。
また、サブネットワーク同士を接続する計算機を、各サブネットワークで構成される2つの並列計算機双方に属するノードとして位置付けるようにしたので、2つの並列計算機の階層的構成が可能となる。
また、サブネットワークがさらに増えてネットワークが大きな階層構造となっている場合には、それに応じた並列計算機の階層構造が可能となり、ネットワーク全体を1つの並列処理システムと定義することができる。
実施の形態2.
実施の形態1では、独立に実行可能な複数のシミュレーションケースを扱うシミュレーションであり、各ケースを末端ノードの計算機が実行した。実施の形態2では、図16に示すようなシミュレーション対象を複数の領域に分割して並列処理する熱、流体、電気などの時間とともに状態変化する現象解析を行う並列シミュレーションについて説明する。
図16において、シミュレーション対象は、領域11〜領域33の9つの領域からなるものとして、それぞれ1つの領域を1つの計算ノードがシミュレーションを実行する。領域23については、さらに詳細なシミュレーションが必要な領域で領域23−11〜23−33の9つの領域からなる。そして、図において隣接する各領域間の矢印は、領域間でデータの授受が必要なことを示している。
このようなシミュレーション対象では、領域23以外の領域については、並列計算機1の各計算ノード(図19のPC11、PC12・・・、PC19)は、担当する領域のある時間刻みのシミュレーションを実行し、隣接する領域を担当する計算ノードとの間でデータ授受し、次の時間刻みのシミュレーションに移る。時間刻みの管理など、シミュレーション全体の管理は、サーバノード(図19のPC10)で行う。領域23については、下位の並列計算機3が担当する。並列計算機3の各計算ノード(図19のPC31、PC32・・・、PC39)は、細分化された領域21−11〜21−33のうち、担当する領域のある時間刻みのシミュレーションを実行し、隣接する領域を担当する計算ノードとの間でデータ授受し、次の時間刻みのシミュレーションに移る。
接続計算機(図19のPC16=PC30)において、各時間刻みで以下の動作を行うことにより、並列計算機1と並列計算機3の協調動作を実現する。並列計算機1内では(図19のPC16)、隣接する領域(図16の領域13、22、33)の結果をUDP/IP通信により並列計算機3に送信する。並列計算機3内では(図19のPC30)、並列計算機3で実行した結果をUDP/IP通信により並列計算機1に送信する。これら送受信が完了後、次の時間刻みに移る。
以上のように、シミュレーション対象を適切に領域分割し、各領域を担当する計算機を指定し、これら計算機をグループ分けして構成される複数の並列計算機を指定することにより、通信が必要ないのにはらなければならないソケットの数を減らせることができる。そして、各並列計算機で自身が担当する領域をシミュレーションする並列処理プログラムを実行し、並列処理プログラム同士は接続計算機でデータ通信することで、複数の並列計算機を用いて全体のシミュレーションを実行できるという効果がある。
この発明の実施の形態1を示す並列処理システムのブロック図である。 この発明の実施の形態1の階層構造をもつ並列処理システムのブロック図である。 この発明の上位並列計算機の並列処理プログラムを表す図である。 この発明の下位並列計算機の並列処理プログラムを表す図である。 この発明の並列処理方法の構成を示す図である。 この発明の並列計算機のメインサーバの構成を示す図である。 この発明の並列計算機のクラスタクライアントの構成を示す図である。 この発明の並列計算機のクラスタサーバの構成を示す図である。 この発明の並列計算機のシングルクライアントの構成を示す図である。 この発明のメインサーバの動作を示すフローチャート図である。 この発明のクラスタクライアントの動作を示すフローチャート図である。 この発明のクラスタサーバの動作を示すフローチャート図である。 この発明のシングルクライアントの動作を示すフローチャート図である。 この発明の並列処理システムの全体動作を示すシーケンス図である。 図14の内部の詳細を示すシーケンス図である。 この発明の実施の形態2の並列処理を表す図である。 計算機ネットワークを説明する図である。 モンテカルロシミュレーションを説明する図である。 この発明の実施の形態2を実現する並列処理システムのブロック図である。
符号の説明
1,3,5,7,9 並列計算機、2,4,6,8 接続計算機、10 シミュレーション条件データ生成手段、11,24,35 シミュレーション条件データ送信手段、12,28,39 制御信号送信手段、13 シミュレーション共通データ生成手段、14,30,41 シミュレーション共通データ送信手段、15 シミュレーションケース生成手段、16,27,38 シミュレーションケース送信手段、17,31,42 シミュレーション結果受信手段、18 ループ終了判定手段、19 シミュレーション終了判定手段、20,43 シミュレーション結果保存手段、21 シミュレーション結果評価手段、23,34,47 シミュレーション条件データ受信手段、25,36,48 メッセージ受信手段、26,37,49 メッセージタイプ判定手段、29,40,52 シミュレーション共通データ受信手段、32,44,51 シミュレーション結果送信手段、45 全結果受信判定手段、50 シミュレーション実行手段。

Claims (12)

  1. 第1の並列処理プログラムを実装した第1のネットワークに収容され、シミュレーション全体を管理する1つの計算機メインサーバと、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、第2の並列処理プログラムとの間のデータ通信を実行するという機能をもち前記第1のネットワークと第2のネットワーク双方に属する接続計算機クラスタクライアントを含む第1の並列計算機と、前記第2の並列処理プログラムを実装した前記第2のネットワークに収容され、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、前記第2の並列処理プログラムでサーバとして動作するとともに前記第1の並列処理プログラムとの間のデータ通信を実行するという機能をもつ接続計算機クラスタサーバを含む第2の並列計算機を備える並列処理システム。
  2. 前記第1のネットワーク内ではクラスタクライアントとして位置付けされ、前記第2のネットワーク内ではクラスタサーバとして位置付けされた、前記第1のネットワークと前記第2のネットワークを接続する接続計算機は、クラスタクライアントとクラスタサーバが有する機能により、前記第1の並列処理プログラムと前記第2の並列処理プログラム間のプロセス間通信を行うことを特徴とする請求項1記載の並列処理システム。
  3. 前記第1の並列計算機と前記第2の並列計算機は、それぞれプライベートIPアドレスで定義されるネットワークであることを特徴とする請求項1記載の並列処理システム。
  4. 前記第1の並列計算機で動作する並列処理プログラムと前記第2の並列計算機で動作する並列処理プログラムは、それぞれ独立して実行し、それぞれの並列処理プログラムが処理したデータをデータ通信することで協調動作することを特徴とする請求項1記載の並列処理システム。
  5. 前記並列処理システムは、前記並列計算機を構成する前記ネットワークの接続形態に基づく階層構造を有することを特徴とする請求項1記載の並列処理システム。
  6. 第1の並列処理プログラムを実装した第1のネットワークに収容され、シミュレーション全体を管理する1つの計算機メインサーバと、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、第2の並列処理プログラムとの間のデータ通信を実行するという機能をもち前記第1のネットワークと第2のネットワーク双方に属する接続計算機クラスタクライアントを含む第1の並列計算機と、前記第2の並列処理プログラムを実装した前記第2のネットワークに収容され、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、前記第2の並列処理プログラムでサーバとして動作するとともに前記第1の並列処理プログラムとの間のデータ通信を実行するという機能をもつ接続計算機クラスタサーバと、第3の並列処理プログラムとの間のデータ通信を実行するという機能をもち前記第2のネットワークと第3のネットワーク双方に属する接続計算機クラスタクライアントを含む第2の並列計算機と、前記第3の並列処理プログラムを実装した第3のネットワークに収容され、個々のシミュレーションケースを実行する複数の計算機シングルクライアントと、前記第3の並列処理プログラムでサーバとして動作するとともに前記第2の並列処理プログラムとの間のデータ通信を実行するという機能をもつ接続計算機クラスタサーバを含む第3の並列計算機を備える並列処理システム。
  7. 請求項6の並列処理システムにおいて、前記第1の並列計算機と、ネットワークの階層構造に基づいて設けられた複数の前記第2の並列計算機と、前記第2の並列計算機のいずれかに接続された複数の第3の並列計算機を備える並列処理システム。
  8. 複数のネットワークが階層的に接続され、それぞれのネットワークが、メインサーバ、クラスタサーバ、クラスタクライアントまたはシングルクライアントとして動作する複数の計算機からなる並列計算機を構成し、ネットワークの階層構造に応じてこれら複数の並列計算機が任意の階層構造をもって接続されていることを特徴とする並列処理システム。
  9. 第1のネットワークに収容される計算機に対しメインサーバまたはシングルクライアントまたはクラスタクライアントのいずれの動作タイプであるかを判定し、判定結果に基づいて実行手順を決める実行タイプ判定手順と、前記実行手順を実行するために前記計算機間に必要な通信ソケットを生成する初期化手順と、前記各実行タイプを実行するメインサーバ実行手順と、シングルクライアント実行手順と、クラスタクライアント実行手順を有する第1の並列処理方法と、第2のネットワークに収容される計算機に対しシングルクライアントまたはクラスタサーバのいずれの動作タイプであるかを判定し、判定結果に基づいて実行手順を決める実行タイプ判定手順と、前記実行手順を実行するために前記計算機間に必要な通信ソケットを生成する初期化手順と、前記各実行タイプを実行するシングルクライアント実行手順と、クラスタサーバ実行手順を有する第2の並列処理方法とを備え、前記第1の並列処理方法と前記第2の並列処理方法の間でプロセス間通信を行う並列処理方法。
  10. 前記初期化手順は、前記第1の並列処理方法と前記第2の並列処理方法の間でプロセス間通信を行うための通信ソケット生成する手順を含むことを特徴とする請求項7記載の並列処理方法。
  11. 第1のネットワークに収容される計算機に対しメインサーバまたはシングルクライアントまたはクラスタクライアントのいずれかの動作タイプであるかを判定し、判定結果に基づいて実行手順を決める実行タイプ判定手順と、前記実行手順を実行するために前記計算機間に必要な通信ソケットを生成する初期化手順と、前記各実行タイプを実行するメインサーバ実行手順と、シングルクライアント実行手順と、クラスタクライアント実行手順を有する第1の処理方法と、第2のネットワークに収容される計算機に対しシングルクライアントまたはクラスタサーバまたはクラスタクライアントのいずれの動作タイプであるかを判定し、判定結果に基づいて実行手順を決める実行タイプ判定手順と、前記実行手順を実行するために前記計算機間に必要な通信ソケットを生成する初期化手順と、前記各実行タイプを実行するシングルクライアント実行手順と、クラスタサーバ実行手順と、クラスタクライアント実行手順を有する第2の並列処理方法と、第3のネットワークに収容される計算機に対しシングルクライアントまたはクラスタサーバのいずれかの動作タイプであるかを判定し、判定結果に基づいて実行手順を決める実行タイプ判定手順と、前記実行手順を実行するために前記計算機間に必要な通信ソケットを生成する初期化手順と、前記各実行タイプを実行するシングルクライアント実行手順と、クラスタサーバ実行手順を有する第3の処理方法とを備え、第1の並列処理方法と第2の並列処理方法との間および第2の並列処理方法と第3の並列処理方法との間でプロセス間通信を行う並列処理方法。
  12. 請求項11の並列処理方法において、前記第2の並列処理方法はネットワークの階層構造に対応して複数備えることを特徴とする並列処理方法。
JP2004167409A 2004-06-04 2004-06-04 並列処理システムおよび並列処理方法 Pending JP2005346563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004167409A JP2005346563A (ja) 2004-06-04 2004-06-04 並列処理システムおよび並列処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004167409A JP2005346563A (ja) 2004-06-04 2004-06-04 並列処理システムおよび並列処理方法

Publications (1)

Publication Number Publication Date
JP2005346563A true JP2005346563A (ja) 2005-12-15

Family

ID=35498859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004167409A Pending JP2005346563A (ja) 2004-06-04 2004-06-04 並列処理システムおよび並列処理方法

Country Status (1)

Country Link
JP (1) JP2005346563A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198025A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 並列処理制御プログラム、並列処理制御システムおよび並列処理制御方法
JP2015222476A (ja) * 2014-05-22 2015-12-10 富士通株式会社 並列計算機システム,プロセス制御プログラム,及び並列計算機システムの制御方法
CN110569252A (zh) * 2018-05-16 2019-12-13 杭州海康威视数字技术股份有限公司 一种数据处理系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198025A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 並列処理制御プログラム、並列処理制御システムおよび並列処理制御方法
US8495090B2 (en) 2007-02-14 2013-07-23 Fujitsu Limited Storage medium containing parallel process control program, parallel processs control system, and parallel process control method
JP2015222476A (ja) * 2014-05-22 2015-12-10 富士通株式会社 並列計算機システム,プロセス制御プログラム,及び並列計算機システムの制御方法
CN110569252A (zh) * 2018-05-16 2019-12-13 杭州海康威视数字技术股份有限公司 一种数据处理系统及方法
CN110569252B (zh) * 2018-05-16 2023-04-07 杭州海康威视数字技术股份有限公司 一种数据处理系统及方法

Similar Documents

Publication Publication Date Title
CN112104517B (zh) 一种基于区块链网络的数据处理方法及相关装置
US9544362B2 (en) System and method for processing information via networked computers including request handlers, process handlers, and task handlers
KR101455434B1 (ko) 에지 라우팅을 갖는 피어-투-피어 협업 시스템
Mikic-Rakic et al. Improving availability in large, distributed component-based systems via redeployment
JPWO2020202126A5 (ja)
US20080155520A1 (en) Peer-to-peer overlay graph construction
CN103973785B (zh) 一种基于p2p的日志读取系统及其方法
US20180176178A1 (en) System for mediating connection
CA3152892A1 (en) Method and system for distributed edge cloud computing
JP2024010228A (ja) ランダム差動リレー及びネットワークコーディングのシステム及び方法
CN110324415B (zh) 一种对等网络的路由实现方法、装置、设备和介质
JP2005346563A (ja) 並列処理システムおよび並列処理方法
Porras et al. Dynamic resource management and cyber foraging
Budakoti et al. IoT gateway middleware for SDN managed IoT
CN112491935A (zh) 一种用于区块链的水波式广播方法及系统
Khan et al. Software architecture and algorithm for reliable RPC for geo-distributed mobile computing systems
JP2002354019A (ja) 通信装置、宛先変更装置、通信方法及び通信制御プログラム
JPWO2015004859A1 (ja) 通信端末
US11310310B2 (en) Communication device for peer-to-peer communication and a communication network using the same
US8397094B2 (en) Node-to-node synchronizing apparatus, node-to-node synchronizing method, and computer product
KR101730403B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
KR20150112127A (ko) M2m 컴포넌트에서의 로컬 자원 공유 방법 및 장치
CN114124957B (zh) 一种应用于机器人的分布式节点互联方法
Rahman Secure Lifecycle Management of BLE Nodes
US20230044281A1 (en) Protocol state fuzzing method and system for security of distributed software-defined network control plane

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061107

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071015

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090310