(57)【要約】【課題】マスター・ワーカー方式で並列化されたシミュレーションのスループットを最適化し、また、シミュレーション結果が収束した後の余分なタスク投入を抑制し、更に、様々なシミュレーションプログラムに適用可能にする。【解決手段】複数のシミュレーションを並列して実行する並列計算機システムは、複数のシミュレーションを実行する複数のワーカーノード２と、この複数のワーカーノード２を制御し複数のシミュレーションを管理制御するマスターノード１とを備える。マスターノード１は、シミュレーションの実行結果を解析する解析モジュール５と、この解析モジュール５による解析結果に基づいて複数のシミュレーションの実行順序を決定するスケジューラとを有する。【選択図】図１
2007249786.tif 000002
【特許請求の範囲】
【請求項１】
複数のシミュレーションを並列して実行する並列計算機システムであって、
前記複数のシミュレーションを実行する複数のワーカーノードと、
前記複数のワーカーノードを制御し、前記複数のシミュレーションを管理制御するマスターノードと、
を備え、
前記マスターノードは、前記シミュレーションの実行結果を解析する解析手段と、前記解析手段による解析結果に基づいて前記複数のシミュレーションの実行順序を決定するスケジュール手段とを有する、
ことを特徴とする並列計算機システム。
【請求項２】
前記複数のシミュレーションは、分子状態の熱力学的平均を求めるための分子動力学シミュレーションであり、
前記スケジュール手段は、前記シミュレーションを次の時間ステップに進めて分子状態の統計サンプルを生成する操作を、前記解析手段により必要とされるまで、関数オブジェクトとして保持する、
ことを特徴とする請求項１記載の並列計算機システム。
【請求項３】
前記スケジュール手段は、前記複数のシミュレーションの実行終了を、前記解析手段による解析結果に基づいて判定し、
前記解析手段は、前記スケジュール手段による判定の際に必要となる前記統計サンプルに対応する関数オブジェクトから先に評価する、
ことを特徴とする請求項２記載の並列計算機システム。
【請求項４】
前記解析手段は、前記複数のシミュレーションの実行結果の解析処理を、前記スケジュール手段による判定を行うまで、関数オブジェクトとして保持する、
ことを特徴とする請求項３記載の並列計算機システム。
【請求項５】
複数のシミュレーションを複数のワーカーノードに割り振り、前記複数のシミュレーションを並列して実行する並列計算機システムの制御方法であって、
前記複数のシミュレーションを前記複数のワーカーノードに割り振る順序を、前記シミュレーションの実行結果を解析する処理における関数オブジェクトの遅延評価によって決定する、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散並列計算環境のスループットを最適化するのに好適な並列計算機システム及びその制御方法に関する。
【背景技術】
【０００２】
近年、分散並列計算環境において、様々なパラメーターの組み合わせに対し分子シミュレーションを繰り返し実行し、シミュレーションの各時間ステップで生成される分子状態の統計サンプリングに基づいて熱力学量が求められている。この熱力学量として薬物候補分子とレセプター蛋白の結合自由エネルギーを求めた場合には、薬物候補分子のランク付けを行うことにより、シミュレーションを医薬品開発の支援、加速に役立てることができると期待されている。医薬品開発においては、特許文献１等に記載されているように、コンピュータシミュレーションを利用し、その結果に基づいて薬物候補分子（薬物候補物質）のスクリーニングを行う方法がある。これは、バーチャルスクリーニングと呼ばれ、新薬等の開発期間を短縮するための有効な手法の１つである。
【０００３】
シミュレーションから熱力学量を求める際には、分子状態について統計サンプリングを行い、動力学変数の熱力学平均をとる。非特許文献１に記載されているように薬物候補分子の結合自由エネルギーを求める際には、シミュレーションとして分子動力学法（Molecular Dynamics、以下「ＭＤ」とも称す。）を用い、統計サンプリングの対象となる分子状態は、シミュレーションに含まれるすべての原子の位置と速度、および、薬物候補分子とレセプター蛋白の間の結合パラメーターを変化させるために必要となる力学的仕事である。
【０００４】
このシミュレーションを並列化するための計算機システムの構成例を図７に示す。同図に示したように、この計算機システムは、マスターノード３１と、複数のワーカーノード３２と、フロントエンド３３を有する。マスターノード３１で動作するスケジューラー３４は、ワーカーノード３２に割り振られた全てのＭＤシミュレーションを制御し、ＭＤシミュレーションから得られた力学的仕事を自由エネルギー解析モジュール（以下単に「解析モジュール」という）３５に渡して解析を行わせる。ワーカーノード３２では、様々な結合パラメーターと初期条件についてのＭＤシミュレーション（ＭＤ計算）が行われ、そこで生成された分子状態がマスターノード３１に送られる。解析モジュール３５による解析処理は、シミュレーションの進行に沿って即時的に行われ、その解析結果がフロントエンド３３で表示される。この表示は、フロントエンド３３が備えるＧＵＩ（Graphical User Interface）３６により解析結果に同期するように更新されるので、ユーザは解析結果を通してシミュレーションの進行をモニターすることができる。
【０００５】
このように、並列計算機システムでは、多数のシミュレーションを複数のワーカーノードで並列に走らせることにより高速化が図られている。
また、並列計算機システムに関し、例えば特許文献２には、並列演算処理の電子計算機を用いてシミュレーションを行う場合の解析を高速に行う方法が提案されている。
【特許文献１】国際公開第２００２／４０９９０号パンフレット
【特許文献２】特開平１０−０９７５１８号公報
【非特許文献１】“Direct calculation of the binding free energies of FKBP ligands”, H.Fujitani, Y.Tanida, M.Ito, G.Jayachandran, C.D.Snow, M.R.Shirts, E.J.Sorin, and V.S.Pande,  Journal of Chemical Physics, 123, 84108(2005)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した並列計算機システムにおいて、多数のシミュレーションを効率よく実行し（スループットを向上させ）、利用者が必要とする熱力学量を得るまでの待ち時間を短縮する（パフォーマンスを向上させる）には、シミュレーションの解析結果に基づいて、継続する必要のなくなったシミュレーションを打ち切り、ワーカーノードの有効利用を図る必要がある。
【０００７】
しかしながら、このようなスループットおよびパフォーマンスの向上を引き出すと同時に、スケジューラーは正確な解析結果を得るために解析プログラム（解析モジュール）に統計データを渡す順序を制御する必要がある（これを「課題１」とする）。並列化されたシミュレーションでは統計データが生成される順序が変わることがあるため、この順序が解析アルゴリズムの前提と食い違っている場合には、間違った解析結果が得られ、時として解析プログラムが停止してしまう虞がある。
【０００８】
従来技術における上記課題１を満たそうとする場合の典型的な実装例を図８に示す。同図において、中央に示す破線の左側はマスターノードを示し、その右側は複数のワーカーノードを示している。この実装例では、２つのパラメーターの様々な組み合わせについてシミュレーションが行われ、シミュレーションで生成された分子状態の統計サンプルは、ワーカーノードからマスターノードへ転送されて解析される。同図においては、１つ目のパラメーターを変更してシミュレーションを行わせるループ処理をループ処理４１として示し、２つ目のパラメーターを変更してシミュレーションを行わせるループ処理をループ処理４２として示している。同図に示したような典型的な実装では、統計サンプルを解析プログラム（解析モジュール）に渡す順序を制御するために、スケジューラーが所定の順序でシミュレーションを実行させ、解析処理に必要な統計データから先に解析プログラムに渡ることを期待している。もし期待通りであるならば、同図において、あるパラメーターに関する統計サンプルが揃ってから行われる解析処理Ａを遅延無く実行することができ、同様に、別のパラメーターに関する統計サンプルが揃ってから行われる解析処理Ｂを遅延無く実行することができる。このように即時的な解析処理を効率化するためには、一定の順序で統計サンプルが処理される必要がある。しかしながら、同図に示したような従来技術における単純なスケジューリングによって統計データが解析プログラムに渡される順序が制御されるのは、一種類の解析プログラムだけが使われ、ワーカーノードに掛かる負荷が常に一定である場合に限られる。これに対して、実際には、複数のユーザーが並列計算機システムを同時に使っているために、ワーカーノードに掛かる負荷が均一でなく動的に変化し、また、グリッド環境のような計算機システムではシミュレーションごとに割り振られるワーカーノードの性能が異なっていることもある。このように、実際のマルチユーザー、ヘテロジニアスなシステム環境では、上記課題１を満たすのは困難であり、従来技術には無い新たな仕組みが必要である。
また、スケジューラーは、待ち行列にシミュレーションを投入する順序、すなわちワーカーノードにシミュレーションを割り振る順序を制御して、シミュレーションを打ち切るタイミングを決定するために必要となる解析結果がなるべく早く得られるようにする必要がある（これを「課題２」とする）。さもなければ、解析結果が得られれば打ち切ることのできるシミュレーションが余分に実行されてしまう。
更に、別の熱力学量を求めるために分子シミュレーションと解析のプログラムを変更する場合でも、スケジューラーのプログラムには変更が及ばないようにする必要がある（これを「課題３」とする）。
【０００９】
これまでに分子シミュレーションとして様々な方法が提案されており、求めることのできる熱力学量も、反応に伴う内部エネルギー変化、エンタルピー変化（反応熱）、自由エネルギー変化など多岐にわたっている。そのため、従来技術では、上記課題３を解決できる汎用的なスケジューラーがないために、特定のシミュレーションプログラムのスループットを向上させるために他のプログラムを犠牲にするか、あるいは、シミュレーションの解析結果を参照しないために無駄なタスクが実行されてしまう、といった問題を抱えていた。
【００１０】
本発明は、上記実情に鑑み、マスター・ワーカー方式で並列化されたシミュレーションのスループットを最適化し、また、シミュレーション結果が収束した後の余分なタスク投入を抑制することができ、更に、様々なシミュレーションプログラムに適用可能な並列計算機システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の第１の態様に係る並列計算機システムは、  複数のシミュレーションを並列して実行する並列計算機システムであって、前記複数のシミュレーションを実行する複数のワーカーノードと、前記複数のワーカーノードを制御し、前記複数のシミュレーションを管理制御するマスターノードと、を備え、前記マスターノードは、前記シミュレーションの実行結果を解析する解析手段と、前記解析手段による解析結果に基づいて前記複数のシミュレーションの実行順序を決定するスケジュール手段とを有する、ことを特徴とする。
【００１２】
また、本発明の第２の態様に係る並列計算機システムは、前記第１の態様において、前記複数のシミュレーションは、分子状態の熱力学的平均を求めるための分子動力学シミュレーションであり、前記スケジュール手段は、前記シミュレーションを次の時間ステップに進めて分子状態の統計サンプルを生成する操作を、前記解析手段により必要とされるまで、関数オブジェクトとして保持する、ことを特徴とする。
【００１３】
また、本発明の第３の態様に係る並列計算機システムは、前記第２の態様において、前記スケジュール手段は、前記複数のシミュレーションの実行終了を、前記解析手段による解析結果に基づいて判定し、前記解析手段は、前記スケジュール手段による判定の際に必要となる前記統計サンプルに対応する関数オブジェクトから先に評価する、ことを特徴とする。
【００１４】
また、本発明の第４の態様に係る並列計算機システムは、前記第３の態様において、前記解析手段は、前記複数のシミュレーションの実行結果の解析処理を、前記スケジュール手段による判定を行うまで、関数オブジェクトして保持する、ことを特徴とする。
【００１５】
本発明の第５の態様に係る並列計算機システムの制御方法は、複数のシミュレーションを複数のワーカーノードに割り振り、前記複数のシミュレーションを並列して実行する並列計算機システムの制御方法であって、前記複数のシミュレーションを前記複数のワーカーノードに割り振る順序を、前記シミュレーションの実行結果を解析する処理における関数オブジェクトの遅延評価によって決定する、ことを特徴とする。
【００１６】
上記の並列計算機システム及びその制御方法によれば、複数のシミュレーションの実行が複数のワーカーノードに分散して割り当てられ、シミュレーションから生成される統計サンプルがマスターノードの解析手段に渡されて解析処理が行われ、この解析結果に基づいてマスターノードのスケジュール手段によりシミュレーションの実行順序が決定される。
【００１７】
本発明では、スケジュール手段が個々のシミュレーションの打ち切りを判定する際に遅延評価を用いる。遅延評価とは、評価しなければならない量が存在するとき、実際の計算を値が必要となるまで行わないことであり、本発明では、解析処理の結果と、統計サンプリングされる分子状態を関数オブジェクトして保持し、これらの値を作り出す処理を関数オブジェクトに対する評価がなされるまで遅らすことで遅延評価が実現されている。
【００１８】
これにより、解析手段の中で分子状態が所定のアルゴリズムに沿って遅延評価されるため、シミュレーションの並列実行により分子状態が生成される順序が入れ替わったとしても、解析手段はその影響を受けることなく正確な結果を返すことができる。（上記課題１が解決される。）
また、分子状態に加えて解析結果もスケジュール手段により遅延評価されているため、シミュレーションに必要な解析結果から先に計算され、この計算に必要な分子状態から先にシミュレーションによって生成されることになる。シミュレーションは実行される前にスケジュール手段の待ち行列に投入されるため、つまりは、終了条件判定に必要なシミュレーションから先に待ち行列に投入されることになる。（上記課題２が解決される。）
遅延評価は関数オブジェクトによって実現されているため、解析処理の内容やシミュレーション方法はその中にカプセル化されることになる。したがって、スケジュール手段に係るコードは解析処理やシミュレーション方法に依存しない一般的な表現となることが保障されるため、解析プログラムやシミュレーションプログラムを差し替えてもスケジュール手段はそのままで動作することになる。（上記課題３が解決される。）
【発明の効果】
【００１９】
本発明によれば、マスター・ワーカー方式で並列化されたシミュレーションのスループットを最適化し、また、シミュレーション結果が収束した後の余分なタスク投入を抑制することができ、更に、様々なシミュレーションプログラムに適用可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照しながら説明する。
図１は、本発明の一実施の形態に係る並列計算機システムの構成例を示す図である。本実施形態においては、この並列計算機システムにより、レセプター蛋白と薬物候補分子について多数のＭＤシミュレーションを並列実行し、ＭＤシミュレーションから生成される分子状態から結合自由エネルギーを求める。この形態は、マルチユーザーやヘテロジニアスなシステム環境であっても解析結果の正確さと並列化効率を保持でき、また、解析方法に応じてスループット及びパフォーマンスの最適化がなされ、更に、解析方法やＭＤシミュレーションの実装方法に依存しない一般性を有するものである。
図１に示したように、本実施形態に係る並列計算機システムは、複数のＭＤシミュレーションを実行する複数のワーカーノード２と、この複数のワーカーノード２を制御し複数のＭＤシミュレーションを管理制御するマスターノード１と、複数のフロントエンド３とを有し、マスターノード１には、複数のワーカーノード２と複数のフロントエンド３とが接続されている。
【００２１】
マスターノード１で動作するスケジューラ（スケジュール手段）４は、様々な結合パラメーターと初期条件の組み合わせについてのＭＤシミュレーション（ＭＤ計算）を各ワーカーノード２に分散して割り振り、その実行順序を制御する。各ワーカーノード２は、割り振られた個々のＭＤシミュレーションを実行する。各ワーカーノード２で実行されたＭＤシミュレーションから生成される分子状態は、マスターノード１へ送られる。ここで、マスターノード１に送られる分子状態は、結合パラメーターを変化させるために必要な力学的仕事である。マスターノード１で動作する自由エネルギー解析モジュール（解析手段）（以下単に「解析モジュール」という）５は、各ワーカーノード２から送られる分子状態に基づいて結合自由エネルギーを解析する。解析モジュール５による解析結果は、ユーザのフロントエンド３に送られ、そのフロントエンドが備えるＧＵＩ６によって表示される。
【００２２】
次に、この並列計算機システムの動作を詳しく説明する。
本実施形態において、統計サンプルとして収集される分子状態ｘのセットは、次のように、初期条件と結合パラメーターに対応する添え字（１つ目の添え字が初期条件，２つ目の添え字が結合パラメーター）でグループ分けされ、各ワーカーノード２で処理される。
【００２３】
ｘ00, ｘ01, ｘ02, …
ｘ10, ｘ11, ｘ12, …
ｘ20, ｘ21, ｘ22, …
：    ：    ：
ここで、各ワーカーノード２で処理された分子状態ｘを引数として次の時刻の分子状態を求めるＭＤ計算は遅延評価され、後で必要となるまで関数オブジェクトｆ（ｘ）として保持される。解析モジュール５による解析処理では、シミュレーションの終了を判定する際に必要となる解析結果が依存する分子状態の統計サンプル（本実施形態では１つ目の添え字が０のサブセットとする）から先に計算し、その解析結果（０番目の初期条件に関する結合自由エネルギーを含む）も関数オブジェクトＱとして保持される。
【００２４】
分子状態に対してＭＤ計算が適用されていくと、新たな時間ステップの分子状態が求まり、解析結果の時系列Ｑ1，Ｑ2，Ｑ3，…が得られる。
この解析結果の時系列のうちで特に重要な量の時系列ｑ10，ｑ20，ｑ30，…が収束したかを調べることで、ＭＤ計算を終了させることができる。尚、このｑに関して、ｑabとしたときは、時刻ａにおける、ｘb0，ｘb1，ｘb2，…（１つ目の添え字がbのサブセット）についての解析結果を表しているものとする。
【００２５】
図２は、この並列計算機システムの動作のアルゴリズムを示すフローチャートである。
同図に示したように、まず、Ｓ１では、ひとつめの時間ステップ（時刻ｔ＝Δt、Δtは時間ステップの刻み幅）について、解析モジュール５は、関数オブジェクトＱtを用意し、これをスケジューラー４に渡す。これにより、関数オブジェクトＱ1が、スケジューラに渡される。
【００２６】
Ｓ２では、スケジューラー４は、Ｑtのうちでまず、ｑt0を実際に計算するために、ｑt0が依存する状態変数に対応する関数オブジェクトｆ（ｘ）を待ち行列に投入する。これにより、関数オブジェクトＱ1のうちのｑ10が依存する状態変数に対応する関数オブジェクトｆ（ｘ）が待ち行列に投入される。
【００２７】
Ｓ３では、スケジューラー４は、Ｑtのうちで残りの量ｑt1，ｑt2，ｑt3，…を計算するために、その残りの量が依存する状態変数に対応する関数オブジェクトｆ（ｘ）を待ち行列に投入する。これにより、Ｑ1のうちで残りの量ｑ11，ｑ12，ｑ13，…が依存する状態変数に対応する関数オブジェクトｆ（ｘ）が待ち行列に投入される。
【００２８】
Ｓ４では、解析モジュール５は、次の時間ステップ（時刻ｔ＝ｔ＋Δt）について、関数オブジェクトＱtを用意し、これをスケジューラー４に渡す。例えば、時刻ｔ＝2Δtであるならば、関数オブジェクトＱ2がスケジューラー４に渡される。
【００２９】
Ｓ５では、スケジューラー４は、Ｑtのうちでまず、ｑt0を実際に計算するために、ｑt0が依存する状態変数に対応する関数オブジェクトｆ（ｘ）を待ち行列に投入する。例えば、時刻ｔ＝2Δtであるならば、関数オブジェクトＱ2のうちのｑ20が依存する状態変数に対応する関数オブジェクトｆ（ｘ）が待ち行列に投入される。
【００３０】
Ｓ６では、スケジューラー４は、別スレッドにおいて、関数オブジェクトｆ（ｘ）を計算するために必要な前の時刻の分子状態ｘが送られてくるのを待って、関数オブジェクトｆ（ｘ）に対応するＭＤシミュレーションを空いているワーカーノード２で実行する。ここでは、先に待ち行列に投入された関数オブジェクトｆ（ｘ）から優先的に計算される。
【００３１】
Ｓ７では、遅延評価によって評価された各時刻ｔの解析結果ｑt0が収束判定条件を満たすか否かを判定し、それを満たしていた場合には、待ち行列に投入されている関数オブジェクトｆ（ｘ）を消去し、ワーカーノード２のＭＤシミュレーションを停止して、全体の処理を終了する。一方、それを満たしていない場合には、Ｓ８へ進む。例えば、遅延評価によって評価された各時刻ｔの解析結果ｑt0として、時刻ｔ＝Δtの解析結果ｑ10と時刻ｔ＝2Δtの解析結果ｑ20とが得られていた場合には、これらが収束判定条件を満たすか否かが判定される。
【００３２】
Ｓ８では、Ｑtのうちで残りの量ｑt1，ｑt2，ｑt3，…を計算するために、その量が依存する状態変数に対応する関数オブジェクトｆ（ｘ）を待ち行列に投入する。例えば、時刻ｔ＝2Δtであるならば、Ｑ2のうちで残りの量ｑ21，ｑ22，ｑ23，…が依存する状態変数に対応する関数オブジェクトｆ（ｘ）が待ち行列に投入される。
【００３３】
そして、Ｓ８の後はＳ４へ戻り、上述と同様にして次の時刻についての処理が繰り返される。
図３は、上述のアルゴリズムのＳ６でＭＤシミュレーションの実行順序が決定する様子を示すシーケンス図である。同図において、中央に示す破線の左側はマスターノード１を示し、その右側は複数のワーカーノード２を示している。
【００３４】
ひとつめの時間ステップ（時刻ｔ＝Δt）のＭＤシミュレーションは、上記Ｓ２及びＳ３で待ち行列に投入されているため、上記Ｓ６では初めに実行される。このＭＤシミュレーション（同図の最初のステップの処理）で生成された分子状態ｘi（例えばｘ00）はマスターノード１に送られ、スケジューラー４の待ち行列では、この分子状態ｘiを必要とする関数オブジェクトｆ（ｘi）が評価され、対応するＭＤシミュレーション（同図の次のステップの処理）が実行される。
【００３５】
更に、別のワーカーノード２から分子状態ｘj（例えばｘ01）が送られてくると、別の関数オブジェクトｆ（ｘj）が評価され、対応するＭＤシミュレーションが実行される。分子状態ｘi，ｘjは、スケジューラー４と解析モジュール５にも送られ、これらに依存する量を遅延評価するために使われる。
【００３６】
上記待ち行列の中で評価されるのを待つ関数オブジェクトｆ（ｘ）には、別々のスレッドが割り振られる。
図４は、このスレッドの動作を示すフローチャートである。
【００３７】
同図に示したように、まず、待ち行列に投入された関数オブジェクトｆ（ｘ）は、その引数となる分子状態ｘがワーカーノード２から送られてくるまで待ち（Ｓ１１）、その分子状態ｘが送られてくると、自分より優先順位の高い（自分より先に待ち行列に投入された）関数オブジェクトｆ（ｘ）が評価待ちであるか否かが判定され（Ｓ１２）、評価待ちであればＳ１１に戻り、評価待ちでなければ評価される。関数オブジェクトｆ（ｘ）が評価されると、対応するＭＤシミュレーションが空いているワーカーノード２で実行され（Ｓ１３）、このスレッドはこのＭＤシミュレーションが終了するのを待つ。それが終了すると、評価された関数オブジェクトｆ（ｘ）は破壊され（Ｓ１４）、そのＭＤシミュレーションから生成された新たな分子状態ｘはスケジューラー４に返される（Ｓ１５）。そして、この時に、スレッドは終了する。
【００３８】
以上、本実施形態によれば、遅延評価を用いることで、解析モジュール５は分子状態の実際の値がＭＤシミュレーションによって生成されるのを待つことなく、それに対応する関数オブジェクトを受け取った時点で解析結果の関数オブジェクトを作る処理に進むことができる。このため、並列化されたＭＤシミュレーションから分子状態が生成される順序が変わっても、解析モジュール５による処理の正確さは影響を受けず、また、分子状態が解析アルゴリズムの前提となる順序で揃うのを待つためのオーバーヘッドも生じない。
【００３９】
また、解析結果が終了条件を満たせば直ぐにＭＤシミュレーションが打ち切られるために、余分なＭＤシミュレーションの投入は抑制され、ワーカーノード２を有効活用することができ、スループットを向上させることができる。また、終了条件に関わる重要な解析結果から先に得られるために、ユーザーの待ち時間が短縮され、並列処理のパフォーマンスを向上させることもできる。
【００４０】
さらに、スケジューラー４が解析プログラムに依存しない一般的な形で実装されているため、解析方法が変更された場合でも、スケジューラー４を変更することなく自動的に上記効果を得ることができる。また、本実施形態は分子シミュレーションプログラムにも依存しない形で実現されているため、様々なシミュレーション方法、解析法が当該システムの中に混在していたとしても、スループットおよびパフォーマンスを最適化することができる。
【００４１】
ところで、図１のマスターノード１、ワーカーノード２、フロントエンド３は、例えば、図５に示すような情報処理装置 （コンピュータ）を用いて構成される。図５の情報処理装置 は、ＣＰＵ（中央処理装置）１１、メモリ１２、入力装置１３、出力装置１４、外部記憶装置１５、媒体駆動装置１６、ネットワーク接続装置１７を備え、それらはバス１８により互いに接続されている。
【００４２】
メモリ１２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムおよびデータを格納する。ＣＰＵ１１は、メモリ１２を利用してプログラムを実行することにより、必要な処理を行う。この情報処理装置がマスターノード１である場合には、スケジューラー４及び解析モジュール５は、メモリ１２に格納されたプログラムの実行により実現され、マスターノード１上の動作は、メモリ１２に格納されたプログラムの実行により行われる。また、この情報処理装置がワーカーノード２である場合には、ＭＤシミュレーションを含むワーカーノード２上の動作は、メモリ１２に格納されたプログラムの実行により行われる。また、この情報処理装置がフロントエンド３である場合には、ＧＵＩ６は、メモリ１２に格納されたプログラムの実行により実現され、フロントエンド３上の動作は、メモリ１２に格納されたプログラムの実行により行われる。
【００４３】
入力装置１３は、例えば、キーボード、ポインティングデバイス、タッチパネル等である。出力装置１４は、例えば、ディスプレイ、プリンタ等である。尚、この情報処理装置が、マスターノード１又はワーカーノード２である場合には、入力装置１３又は及び出力装置１４は無くても良い。
【００４４】
外部記憶装置１５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置 は、この外部記憶装置１５に、上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１２にロードして使用する。
【００４５】
媒体駆動装置１６は、可搬記録媒体１９を駆動し、その記録内容にアクセスする。可搬記録媒体１９は、メモリカード、フレキシブルディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。情報処理装置 は、この可搬記録媒体１９に、上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１２にロードして使用する。
【００４６】
ネットワーク接続装置１７は、ＬＡＮ（local area network）やインターネット等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。情報処理装置 は、必要に応じて、上記プログラムおよびデータを外部の装置からネットワーク接続装置１７を介して受け取り、それらをメモリ１２にロードして使用する。
【００４７】
図６は、図５の情報処理装置 にプログラムおよびデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体１９やサーバ２１のデータベース２２に格納されたプログラムおよびデータは、情報処理装置２３のメモリ１２にロードされる。サーバ２１は、そのプログラムおよびデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して情報処理装置２３に送信する。ＣＰＵ１１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【００４８】
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
【００４９】
（付記１）
複数のシミュレーションを並列して実行する並列計算機システムであって、
前記複数のシミュレーションを実行する複数のワーカーノードと、
前記複数のワーカーノードを制御し、前記複数のシミュレーションを管理制御するマスターノードと、
を備え、
前記マスターノードは、前記シミュレーションの実行結果を解析する解析手段と、前記解析手段による解析結果に基づいて前記複数のシミュレーションの実行順序を決定するスケジュール手段とを有する、
ことを特徴とする並列計算機システム。
（付記２）
前記複数のシミュレーションは、分子状態の熱力学的平均を求めるための分子動力学シミュレーションであり、
前記スケジュール手段は、前記シミュレーションを次の時間ステップに進めて分子状態の統計サンプルを生成する操作を、前記解析手段により必要とされるまで、関数オブジェクトとして保持する、
ことを特徴とする付記１記載の並列計算機システム。
（付記３）
前記スケジュール手段は、前記複数のシミュレーションの実行終了を、前記解析手段による解析結果に基づいて判定し、
前記解析手段は、前記スケジュール手段による判定の際に必要となる前記統計サンプルに対応する関数オブジェクトから先に評価する、
ことを特徴とする付記２記載の並列計算機システム。
（付記４）
前記解析手段は、前記複数のシミュレーションの実行結果の解析処理を、前記スケジュール手段による判定を行うまで、関数オブジェクトとして保持する、
ことを特徴とする付記３記載の並列計算機システム。
（付記５）
複数のシミュレーションを複数のワーカーノードに割り振り、前記複数のシミュレーションを並列して実行する並列計算機システムの制御方法であって、
前記複数のシミュレーションを前記複数のワーカーノードに割り振る順序を、前記シミュレーションの実行結果を解析する処理における関数オブジェクトの遅延評価によって決定する、
ことを特徴とする制御方法。
（付記６）
複数のシミュレーションを複数のワーカーノードに割り振り、前記複数のシミュレーションを並列して実行する並列計算機システムの制御方法であって、
シミュレーションの実行結果の解析結果と、当該解析結果を得るのに必要な前記シミュレーションの実行結果とを、関数オブジェクトとして保持し、
前記シミュレーションの実行結果に係る関数オブジェクトを、前記複数のシミュレーションの実行終了の判定の際に必要となる解析結果を得るのに必要なシミュレーションの実行結果に係る関数オブジェクトから順に待ち行列に投入し、
前記待ち行列に投入されている関数オブジェクトに対応するシミュレーションを、前記待ち行列に投入された関数オブジェクトの順に前記ワーカーノードに実行させる、
ことを特徴とする制御方法。
（付記７）
複数のシミュレーションを複数のワーカーノードに割り振り、前記複数のシミュレーションを並列して実行する並列計算機システムの制御プログラムであって、
コンピュータに、
シミュレーションの実行結果の解析結果と、当該解析結果を得るのに必要な前記シミュレーションの実行結果とを、関数オブジェクトとして保持する機能と、
前記シミュレーションの実行結果に係る関数オブジェクトを、前記複数のシミュレーションの実行終了の判定の際に必要となる解析結果を得るのに必要なシミュレーションの実行結果に係る関数オブジェクトから順に待ち行列に投入する機能と、
前記待ち行列に投入されている関数オブジェクトに対応するシミュレーションを、前記待ち行列に投入された関数オブジェクトの順に前記ワーカーノードに実行させる機能と、
を実現させるための制御プログラム。
（付記８）
複数のシミュレーションを複数のワーカーノードに割り振り、前記複数のシミュレーションを並列して実行する並列計算機システムの制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
コンピュータに、
シミュレーションの実行結果の解析結果と、当該解析結果を得るのに必要な前記シミュレーションの実行結果とを、関数オブジェクトとして保持する機能と、
前記シミュレーションの実行結果に係る関数オブジェクトを、前記複数のシミュレーションの実行終了の判定の際に必要となる解析結果を得るのに必要なシミュレーションの実行結果に係る関数オブジェクトから順に待ち行列に投入する機能と、
前記待ち行列に投入されている関数オブジェクトに対応するシミュレーションを、前記待ち行列に投入された関数オブジェクトの順に前記ワーカーノードに実行させる機能と、
を実現させるための制御プログラムを記録した記録媒体。
【図面の簡単な説明】
【００５０】
【図１】並列計算機システムの構成例を示す図である。
【図２】並列計算機システムの動作のアルゴリズムを示すフローチャートである。
【図３】Ｓ６でＭＤシミュレーションの実行順序が決定する様子を示すシーケンス図である。
【図４】待ち行列の中で評価されるのを待つ関数オブジェクトに割り振られたスレッドの動作を示すフローチャートである。
【図５】情報処理装置の構成図である。
【図６】記録媒体を示す図である。
【図７】シミュレーションを並列化するための計算機システムの構成例を示す図である。
【図８】従来技術における典型的な実装例を示す図である。
【符号の説明】
【００５１】
１      マスターノード
２      ワーカーノード
３      フロントエンド
４      スケジューラー
５      自由エネルギー解析モジュール
６      ＧＵＩ
１１      ＣＰＵ
１２      メモリ
１３      入力装置
１４      出力装置
１５      外部記憶装置
１６      媒体駆動装置
１７      ネットワーク接続装置
１８      バス
１９      可搬記録媒体
２１      サーバー
２２      データベース
２３      情報処理装置
３１      マスターノード
３２      スケジューラ
３３      ワーカーノード
３４      自由エネルギー解析モジュール
３５      フロントエンド
３６      ＧＵＩ
【図２】
2007249786.tif 000003
【図３】
2007249786.tif 000004
【図４】
2007249786.tif 000005
【図５】
2007249786.tif 000006
【図６】
2007249786.tif 000007
【図８】
2007249786.tif 000008
【図１】
2007249786.tif 000009
【図７】
2007249786.tif 000010