(57)【要約】【課題】ユーザが使用するクライアントに対して特別なソフトウエアを導入する必要もなく、簡便な手順で並列コンピューティング環境を利用できる並列計算処理システム等を提供すること。【解決手段】少なくとも入力用データを格納する共有フォルダ１５０と、入力用データに対して所定の演算処理を行う演算処理部（グリッド１１０、クラスタ１２０、単一サーバ１３０）と、いずれか一つの演算処理部を選択し、入力用データを引き渡すための受付サーバプログラム１４４と、を有し、受付サーバプログラム１４４は、選択された演算処理部に応じて入力用データのデータ形式及び／または入力手順を変換する。【選択図】図１
2008276346.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも処理対象データを格納するデータ記録部と、
前記処理対象データに対して所定の演算処理を行う少なくとも２つの演算処理部と、
いずれか一つの前記演算処理部を選択し、前記処理対象データを引き渡すための引渡し処理部と、を有し、
前記引渡し処理部は、選択された前記演算処理部に応じて前記処理対象データのデータ形式及び／または入力手順を変換することを特徴とする並列計算処理システム。
【請求項２】
前記引渡し処理部は、選択された前記演算処理部からの演算処理結果を前記データ記録部へ格納することを特徴とする請求項１に記載の並列計算処理システム。
【請求項３】
前記演算処理部は、それぞれ複数のサブ演算処理部を有することを特徴とする請求項１または２に記載の並列計算処理システム。
【請求項４】
前記データ記録部は、共有フォルダを用いることを特徴とする請求項１〜３のいずれか一項に記載の並列計算処理システム。
【請求項５】
少なくとも処理対象データを格納するデータ記録ステップと、
少なくとも２つの演算処理部のうち、前記処理対象データに対して所定の演算処理を行ういずれか一つの前記演算処理部を選択し、前記処理対象データを引き渡すための選択・引渡しステップと、
選択された前記演算処理部に応じて前記処理対象データのデータ形式及び／または入力手順を変換する変換ステップ、とを有することを特徴とする並列計算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算処理システム及び並列計算処理方法に関するものである。
【背景技術】
【０００２】
従来、例えば、数値計算では計算時間短縮のため処理を並列化することが行われている。並列化の処理については、例えば、非特許文献１、２に提案されている。並列コンピューティングの環境には、様々なミドルウェアが存在している。そして、ユーザが計算を行いたい場合、例えば、ウェブで操作するもの、コマンドラインから実行するものなどがある。
【０００３】
【非特許文献１】日本アイビーエムシステムズエンジニアリング（著）、グリッド・コンピューティングとは何か―Ｇｌｏｂｕｓ  Ｔｏｏｌｋｉｔではじめるグリッドの基礎、ソフトバンククリエイティブ、２００４年３月
【非特許文献２】Ｐ．パチェコ（著）、秋葉博（翻訳）、ＭＰＩ並列プログラミング、培風館
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ユーザが利用したミドルウェアの違いのために、ユーザの操作は、異なることになってしまう。従って、ユーザは、並列コンピューティング環境の実装内容、構成ごとに異なる手順を認識している必要がある。このため、ユーザは、簡便に統一された手順を行うことができずに、煩雑である。
【０００５】
本発明は、上記に鑑みてなされたものであって、ユーザが使用するクライアントに対して特別なソフトウエアを導入する必要もなく、簡便な手順で並列コンピューティング環境を利用できる並列計算処理システム及び並列計算処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明によれば、少なくとも処理対象データを格納するデータ記録部と、処理対象データに対して所定の演算処理を行う少なくとも２つの演算処理部と、いずれか一つの演算処理部を選択し、処理対象データを引き渡すための引渡し処理部と、を有し、引渡し処理部は、選択された演算処理部に応じて処理対象データのデータ形式及び／または入力手順を変換することを特徴とする並列計算処理システムを提供できる。
【０００７】
また、本発明の好ましい態様によれば、引渡し処理部は、選択された演算処理部からの演算処理結果をデータ記録部へ格納することが望ましい。
【０００８】
また、本発明の好ましい態様によれば、演算処理部は、それぞれ複数のサブ演算処理部を有することが望ましい。
【０００９】
また、本発明の好ましい態様によれば、データ記録部は、共有フォルダを用いることが望ましい。
【００１０】
また、本発明によれば、少なくとも処理対象データを格納するデータ記録ステップと、少なくとも２つの演算処理部のうち、処理対象データに対して所定の演算処理を行ういずれか一つの演算処理部を選択し、処理対象データを引き渡すための選択・引渡しステップと、選択された演算処理部に応じて処理対象データのデータ形式及び／または入力手順を変換する変換ステップ、とを有することを特徴とする並列計算処理方法を提供できる。
【発明の効果】
【００１１】
本発明に係る並列計算処理システムは、ユーザが使用するクライアントに対して特別なソフトウエアを導入する必要もなく、簡便な手順で並列コンピューティング環境を利用できるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかる並列計算処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
図１は、本発明の実施例に係る並列計算処理システムの概略構成を示している。ここで、グリッド１１０、クラスタ１２０、単一サーバ１３０の３種類が計算資源として与えられているとする。また、グリッド１１０は、３つの計算ノード１１０ａ、１１０ｂ、１１０ｃと、一つのグリッドポータル１１０ｄを有している。グリッド１１０、クラスタ１２０、単一サーバ１３０を、以下、適宜、計算サーバ１０５と呼ぶ。計算サーバ１０５では以下に示す表１に掲げる構成でアプリケーションが提供されているとする。
【００１４】
（表１）
計算サーバ      ＯＳ                ミドルウェア          アプリケーション
グリッド        Windows(登録商標)   Globus Toolkit        アプリケーションＡ
アプリケーションＢ
クラスタ        Ｌｉｎｕｘ          ＭＰＩ                アプリケーションＣ
ＰＢＳ                アプリケーションＤ
単一サーバ      Ｌｉｎｕｘ          独自                  アプリケーションＥ
【００１５】
グリッド１１０、クラスタ１２０、単一サーバ１３０は、入力用データ（処理対象データに対応）に対して所定の演算処理を行う演算処理部に対応する。また、計算ノード１１０ａ、１１０ｂ、１１０ｃは、サブ演算処理部に対応する。
【００１６】
クライアント群１６０は、複数のクライアント・コンピュータ１６０ａ、１６０ｂ、１６０ｃ、１６０ｄ、１６０ｅから構成されている。クライアント群１６０は、計算サーバ１０５で動作するアプリケーションに計算を依頼する。クライアント群１６０からは、計算サーバ１０５に直接アクセスできない。そして、クライアント群１６０からは、受付サーバ１４０内に設けられている共有フォルダ１５０のみアクセスできる。なお、受付サーバ１４０は、データ記録部及び引渡し処理部に対応する。
【００１７】
また、計算サーバ１０５も、クライアント群１６０には直接アクセスできない。計算サーバ１０５からは、受付サーバ１４０内に設けられている共有フォルダ１５０のみアクセスできる。クライアント群１６０と計算サーバ１０５は、共有フォルダ１５０を介して、計算を依頼すること、及び／又は計算結果を受け取ることができる。
【００１８】
クライアント群１６０のＯＳは、共有フォルダ１５０を扱える構成であれば、その種別は問わない。例えば、代表的なＯＳには、Ｗｉｎｄｏｗｓ（登録商標)  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（マイクロソフト社製）、Ｌｉｎｕｘ（登録商標）、ＭａｃＯＳ（登録商標）等を挙げることができる。
【００１９】
次に、受付サーバ１４０の動作について説明する。受付サーバ１４０は、共有フォルダ１５０を扱える構成であれば、ＯＳの種類は問わない。受付サーバ１４０では、クライアント群１６０からの依頼を受け付けて、計算サーバ１０５に計算を実行させる受付サーバプログラム１４４が動作している。図２は、受付サーバ１４０の概略構成を示している。また、図３は、共有フォルダ１５０の概略構成を示している。なお、受付サーバプログラム１４４は、引渡し処理部に対応する。
【００２０】
各アプリケーションは、入力ファイルを受け取り、所定の演算処理を実行する。そして、演算処理結果をファイルとして出力するものとする。クライアント群１６０側には、前もって受付サーバ１４０のネットワークアドレスと、扱うことができるアプリケーションの種類（例えば図２におけるアプリケーションＡ〜Ｅ）とを伝えておく。
【００２１】
クライアント群１６０側には、アプリケーションに与えるための入力データ（入力用データ）と、計算要求ファイルを作成しておく。計算要求ファイルは、テキスト形式で、例えば以下に示す形式で記述する。
【００２２】
app＝app_name
data＝data_name
option＝option_name
【００２３】
ここで、
app：処理をさせたいアプリケーション名を指定する。
data：アプリケーションに与えるファイル名である。共有フォルダ内のdataフォルダ１５１ｃに置くファイルまたはフォルダ名を指定する。
option：アプリケーションに依存するパラメータである。アプリケーションごとに指定する内容が異なる。例えば、アプリケーションＡに対する計算要求として以下のように記述してreqA.txtに保存する。
【００２４】
app＝appA
data＝inA.dat
【００２５】
入力データのinA.datの内容は、アプリケーションＡに依存する。クライアント群１６０側で、inA.datを準備し、inA.datを共有フォルダ内のdataフォルダ１５１ｃにコピーする。次に、reqA.txtをrequestフォルダ１５１ｂにコピーする。これで、クライアント群１６０からアプリケーションＡへの計算依頼は終了する。
【００２６】
図２に示すように受付サーバプログラム１４４は、受付サーバプログラムメイン部１４５と、プラグイン部１４６とから構成される。受付サーバプログラムメイン部１４５は、アプリケーションに依存しない。これに対して、プラグイン部１４６は、アプリケーションに依存する。
【００２７】
受付サーバプログラム１４４は、いずれか一つのシステム部（グリッド１１０、クラスタ１２０、単一サーバ１３０）を選択し、入力用データを引き渡すためのプログラム部に対応する。そして、プログラム部は、後述する手順に従って、選択されたシステム部に応じて入力用データのデータ形式及び／または入力手順を変換する。
【００２８】
プラグイン部１４６は、例えば、アプリケーションＡプラグイン１４６ａ、アプリケーションＢプラグイン１４６ｂ、アプリケーションＣプラグイン１４６ｃ、アプリケーションＤプラグイン１４６ｄ、アプリケーションＥプラグイン１４６ｅから構成されている。
【００２９】
受付サーバプログラムメイン部１４５が実行する手順を図３と、図４のフローチャートとを参照して説明する。ステップＳ４００において、受付サーバプログラムメイン部１４５は、requestフォルダ１５１ｂを常時監視している。そして、計算要求ファイルが作成されるのを待っている。
【００３０】
ステップＳ４００の判断結果が真（ＹＥＳ）のとき、ステップＳ４０１において、計算要求ファイルが作成されると、その内容を認識して、解析する。例えば、appの行の情報に基づいて、アプリケーションＡに対する処理であるということを認識する。ステップＳ４００の判断結果が偽（ＮＯ）のとき、ステップＳ４００を繰り返す。
【００３１】
ステップＳ４０２において、対応するプラグインが存在するか否かが判断される。ステップＳ４０２の判断結果が偽のとき、ステップＳ４０４において、計算要求ファイルをerrorフォルダ１５１ｅに移動する。ステップＳ４０２の判断結果が真のとき、data行を参照して、アプリケーションＡに与えるファイル名を取得する。また、option行を参照して、内容を取得する。
【００３２】
次に、登録されているプラグイン１４６を調べて対応するプラグイン１４６ａ〜１４６ｅにファイル名とオプションを引き渡す。引き渡し後に、再度、フォルダの監視ステップに戻る。そして、対応するプラグインが存在しなければ、ステップＳ４０４において、計算要求ファイルをerrorに移動する。このステップを繰り返し実行する。
【００３３】
プラグイン１４６は、Ｗｉｎｄｏｗｓ（登録商標）の場合は、ＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）、Ｌｉｎｕｘの場合は、共有ライブラリとして提供される。一つのアプリケーションついて、一つのプラグインを作成する。
【００３４】
プラグイン１４６は、受付サーバプログラムメイン部１４５から計算するための情報(ファイル名とオプション)を受け取る。そして、受取った情報を、対応する計算サーバ１０５に解釈できるデータ形式に変換して計算を行わせる。受付サーバプログラムメイン部１４５とプラグイン１４６間の通信手順はＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）により定められている。
【００３５】
プラグイン１４６からアプリケーションを使う方法はミドルウェアに依存する。例えばクラスタ１２０上で動くアプリケーションＣの場合、ＭＰＩを使用している。このため、プラグイン１４６がマシンファイルを作成し、mpirunコマンドでアプリケーションＣを実行する。グリッド１１０上で動くアプリケーションＡの場合、例えばＧｌｏｂｕｓのＡＰＩを使用して計算ノード１１０ａ、１１０ｂ、１１０ｃにアクセスして計算を行わせる。
【００３６】
また、クライアント１６０ａ〜１６０ｅ側で処理の進捗状況を知るために、計算要求ファイルは以下のようにフォルダを移動する。
【００３７】
図３において、プラグイン１４６に引き渡した情報に誤りがなく、実行可能であればrequestフォルダ１５１ｂに格納されている計算要求ファイルは、acceptedフォルダ１５１ｄに移動される。acceptedフォルダ１５１ｄは、実行開始待ちの計算要求ファイルが格納される場所である。計算サーバ１０５に空きがあり、すぐに実行可能な場合、acceptedフォルダ１５１ｄの計算要求ファイルは、processingフォルダ１５１ｆに移動される。
【００３８】
計算が終了すると計算要求ファイルは、completedフォルダ１５１ｇに移動される。また、その前にアプリケーションの出力結果がoutフォルダ１５１ｈに作成されている。出力結果に関しては、アプリケーションがoutフォルダ１５１ｈに直接出力すること、またはアプリケーションからプラグイン１４６に結果を引き渡して、プラグイン１４６がoutフォルダ１５１ｈに出力することが行われる。出力結果の手順については、アプリケーションに依存する。
【００３９】
クライアントは、計算要求ファイルがcompletedフォルダ１５１ｇに移動したことを確認することで計算終了を知る。そして、outフォルダ１５１ｈから結果を取得する。処理の各段階でエラーが発生すると、計算要求ファイルがerrorフォルダ１５１ｅに移動される。
【００４０】
以上説明したように、本発明では、クライアント群１６０を用いるユーザと、計算サーバ１０５とのインタフェイスとしては、共有フォルダを用いる。そして、システムの種類（グリッド、クラスタ等）、ＯＳの種類というような情報はユーザに対しては隠されている。受付サーバプログラムは、システムの相違を吸収する機能を有する。これにより、クライアントから単にネットワーク上の共有フォルダにファイルをコピーするだけで、所望の計算を行わせること及び／または受取ることができる。
【産業上の利用可能性】
【００４１】
以上のように、本発明にかかる並列計算処理システムは、複数のシステムを有する場合に有用である。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施例に係る並列計算処理システムの概略構成を示す図である。
【図２】実施例における受付サーバの概略構成を示している。
【図３】実施例における共有フォルダの概略構成を示している。
【図４】実施例における受付サーバプログラムメイン部が実行する手順を示すフローチャートである。
【符号の説明】
【００４３】
１００  並列計算処理システム
１０５  計算サーバ
１１０  グリッド
１１０ａ〜１１０ｃ  計算ノード
１１０ｄ  グリッドポータル
１２０  クラスタ
１３０  単一サーバ
１４０  受付サーバ
１４４  受付サーバプログラム
１４５  受付サーバプログラムメイン部
１４６  プラグイン
１４６ａ〜１４６ｅ  各アプリケーションプラグイン
１４７ａ〜１４７ｅ  各アプリケーション
１５０  共有フォルダ
１６０  クライアント群
１６０ａ〜１６０ｅ  クライアント
【図１】
2008276346.tif 000003
【図２】
2008276346.tif 000004
【図３】
2008276346.tif 000005
【図４】
2008276346.tif 000006