(57)【要約】【課題】  分散並列環境で実行されるシミュレーションにて障害が発生してもシミュレーションデータの整合性を保障できるようにする。【解決手段】  シミュレーションに係るタスクオブジェクト１３−ｉのなかにシミュレーションデータをカプセル化して、複数のワーカーノード１２−ｉに分散させ、多数のシミュレーションを並列して実行する。これらのワーカーノードはマスターノード１１に設けたタスクオブジェクト１３−ｉのプロキシを介して制御する。このようにマスターノードにシミュレーション全体を管理制御させることで、障害が発生してもマスターノードからタスクオブジェクトにカプセル化されたデータ更新処理を呼び出してシミュレーションデータの整合性を取り戻すことができるようにする。【選択図】  図１
2006285474.tif 000002
【特許請求の範囲】
【請求項１】
多数のシミュレーションを並列して実行する並列計算機であって、
上記多数のシミュレーションの計算処理を行う複数のワーカーノードと、
上記複数のワーカーノードを制御し、シミュレーション全体を管理制御するマスターノードとを備え、
上記シミュレーションに係るタスクオブジェクトにシミュレーションデータをカプセル化して上記複数のワーカーノードに分散させるとともに、上記タスクオブジェクトのプロキシを上記マスターノードに設けることを特徴とする並列計算機。
【請求項２】
上記マスターノードは、一連のシミュレーションデータの解析、又は上記タスクオブジェクトからの例外オブジェクトの通知の少なくとも一方に基づいて、障害を検知することを特徴とする請求項１記載の並列計算機。
【請求項３】
上記多数のシミュレーションは、バーチャルスクリーニングのための分子動力学シミュレーションであり、
上記障害を検知した場合には、検知した障害に応じた回復処理を上記マスターノードが実行することを特徴とする請求項２記載の並列計算機。
【請求項４】
分子動力学シミュレーションにおける任意の種類の分子動力学計算プログラムに対応可能なインタフェースを有することを特徴とする請求項３記載の並列計算機。
【請求項５】
シミュレーション全体を管理制御するマスターノードと、上記マスターノードによる制御に従って、多数のシミュレーションの計算処理を並列して実行可能な複数のワーカーノードとを有する並列計算機の制御方法であって、
シミュレーションデータをタスクオブジェクトにカプセル化して上記複数のワーカーノードに分散させるとともに、上記マスターノードに設けた当該タスクオブジェクトのプロキシを介して、上記シミュレーションをそれぞれ制御することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機及びその制御方法に関し、詳しくは分散並列計算環境でのデータ保護技術に関する。
【背景技術】
【０００２】
医薬品開発においては、例えば特許文献１等に示されるように、コンピュータ・シミュレーションを利用し、その結果に基づいて薬物候補分子（薬物候補物質）のスクリーニングを行う方法がある。これは、バーチャルスクリーニングと呼ばれ、新薬等の開発期間を短縮するための有効な手法の１つである。
【０００３】
近年、分散並列環境で、様々なパラメーターの組み合わせに対し分子動力学（Molecular Dynamics、以下「ＭＤ」とも称す。）シミュレーションを繰り返し実行し、その結果に基づいて薬物候補分子のランク付けを行うバーチャルスクリーニングが試みられている。こうした多数のシミュレーションを効率的に実行し、利用者の待ち時間を短縮するためには、シミュレーションにおいて発生する障害（エラー等）に対して、それからの回復及び分子構造データの保護が即時的に行われる必要がある。
【０００４】
図８は、分散並列環境でＭＤシミュレーションを繰り返し実行してバーチャルスクリーニングを行うための従来の並列計算機の構成を概念的に示した図である。図８において、８１は並列計算機にて全てのシミュレーションを制御するとともに結果解析を行うマスターノードであり、８２−ｉ（ｉは添え字であり、ｉ＝１、２、３、…）はマスターノード８１に従属してＭＤ計算をもっぱら行うワーカーノードである。
【０００５】
図８に示すように従来の並列計算機では、例えばシミュレーションに係るタスク８３−ｉをワーカーノード８２−ｉにそれぞれ分散して並列実行する。このように多数のシミュレーションに係る処理を分散並列環境で実行することにより、高速化を図ることが可能である。
【０００６】
【特許文献１】国際公開第０２／４０９９０号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、分散並列環境でシミュレーションに係る処理実行中、すなわちバーチャルスクリーニングの途上で障害（エラー等）が発生した場合には、図８に示したマスターノード８１とワーカーノード８２−ｉとの間でデータの整合性が失われやすい。そのため、図８に示したような従来の並列計算機においては、障害からの回復が煩雑であった。
【０００８】
また、従来の並列計算機では、図８に示したようにエラー感知とエラー処理とをプログラムの別々の箇所で、薬物候補分子のランク付けに影響を及ぼさないようにして行わなければならないことが、シミュレーションデータである分子構造データの保護を難しくしている。エラーの多くは、ＭＤ計算の途上で検出されるのに対して、エラーへの対処方法はＭＤ計算を呼び出す側で、収集された分子構造データ間の整合性が保たれるように決めなければならない。
【０００９】
例えば、シミュレーションデータである分子構造データの保護を従来技術により実現しようとすると、回復処理（エラー処理）が複雑になってしまい、かえってエラー等が発生する頻度を高くしてしまう。
【００１０】
本発明は、このような事情に鑑みてなされたものであり、分散並列環境で実行されるシミュレーションにて障害が発生してもシミュレーションデータの整合性を保障できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の並列計算機は、多数のシミュレーションの計算処理を並列して実行する複数のワーカーノードと、それらを制御してシミュレーション全体を管理制御するマスターノードとを備え、シミュレーションに係るタスクオブジェクトにシミュレーションデータをカプセル化して複数のワーカーノードに分散させるとともに、そのプロキシをマスターノードに設けることを特徴とする。
また、本発明の並列計算機の制御方法は、マスターノードと複数のワーカーノードとを有する並列計算機にて、マスターノードによる制御に従って多数のシミュレーションの計算処理を並列して実行可能な複数のワーカーノードにシミュレーションデータをタスクオブジェクトにカプセル化して分散させるとともに、マスターノードに設けたタスクオブジェクトのプロキシを介して全てのシミュレーションを管理することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、シミュレーションデータをタスクオブジェクトにカプセル化して複数のワーカーノードに分散させ、そのプロキシをマスターノードに設けることにより、シミュレーションにおけるデータ更新処理をカプセル化し、障害が発生してもシミュレーションデータの整合性を容易に保つことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面に基づいて説明する。
以下に説明する本発明の実施形態による並列計算機は、バーチャルスクリーニングのための多数のＭＤ（分子動力学）シミュレーションを分散並列環境で実行し、エラーやハードウェアの故障などの障害からの迅速な回復を可能とし、薬物候補分子のランク付けの一意性を保障するものである。さらに、様々なタイプの（任意の種類の）ＭＤ計算プログラムに適用可能なように、後述するマスターノードに実装されるシミュレーションを統合する機能及び障害対処機能については共通化されたインタフェースを提供し、ＭＤ計算の実装方法に依存しない一般性を有するものである。
【００１４】
図１は、本発明の実施形態による並列計算機１の構成例を示す概念図である。
図１に示すように並列計算機１は、複数のＣＰＵ（プロセッサエレメント：ＰＥ）を有する。１つのＣＰＵ（ＰＥ）がマスターノード１１として機能し、他のＣＰＵ（ＰＥ）がワーカーノード１２−ｉ（ｉは添え字であり、ｉ＝１、２、３、…）としてそれぞれ機能する。
【００１５】
マスターノード１１は、並列計算機１にてシミュレーション全体を制御するとともに、ワーカーノード１２−ｉから結果を集めて最終的な結果解析（一連のシミュレーションデータ解析を含む。）を行う。つまり、マスターノード１１は、分散並列環境で実行されるシミュレーション全体を統合するものである。
【００１６】
ワーカーノード１２−ｉは、マスターノード１１に従属してＭＤ計算を行う。すなわち、各ワーカーノード１２−ｉは、マスターノード１１による制御に従って、多数のシミュレーションにおける実際の計算処理を行う。
【００１７】
ここで、本実施形態による並列計算機１は、いわゆる分散オブジェクト技術を利用して、シミュレーションデータ（分子構造データ）の保護を図っている。具体的には、図１に示すように、シミュレーションデータを、シミュレーションに係るタスクオブジェクト１３−ｉのなかにカプセル化して、ワーカーノード１２−ｉに分散させる。また、ワーカーノード１２−ｉに分散させた各タスクオブジェクト１３−ｉのプロキシ（代理オブジェクト）１４−ｉをマスターノード１１に配置する。
【００１８】
そして、タスクオブジェクト１２−ｉとその代理オブジェクト１３−ｉとの間でのシミュレーションデータ等の整合性を保つために、トランザクション（コマンド）パターンを使用し、所定のタイミングでタスクオブジェクト１２−ｉと代理オブジェクト１３−ｉとの同期をとる。
【００１９】
このようにタスクオブジェクト１２−ｉのなかにシミュレーションデータをカプセル化してワーカーノード１２−ｉに分散させ、その代理オブジェクト１４−ｉをマスターノード１１に置くことで、シミュレーションデータの更新処理をカプセル化でき、エラーやハードウェア故障などの障害が発生してもシミュレーションデータの整合性を保ち、かつ障害から迅速に回復させることができる。
【００２０】
図２は、本実施形態による並列計算機のハードウェア構成の一例を示すブロック図である。この図２において、図１に示した構成要素と同一の構成要素には同一の符号を付している。
【００２１】
マスターノード１１は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、及び外部インタフェース（ＩＦ）２４を有する。ＣＰＵ２１は、ＲＯＭ２２およびＲＡＭ２３に記憶された処理プログラムを実行することでバス２５を介して接続されたマスターノード１１内部の各構成部を制御する。また、ＣＰＵ２１は、後述する図４及び図５に示すような動作を行うための処理プログラムを、ＲＯＭ２２から読み出して実行することで、その動作を実現するための制御を行う。ＲＡＭ２３は、ＣＰＵ２１の主メモリあるいはワークエリア等としても機能する。
【００２２】
同様に、ワーカーノード１２−ｉのそれぞれは、ＣＰＵ２６、ＲＯＭ２７、ＲＡＭ２８、及び外部インタフェース（ＩＦ）２９を有する。ＣＰＵ２６は、マスターノード１１からの指示等に基づいてＲＯＭ２７およびＲＡＭ２８に記憶された処理プログラム等を実行しバス３０を介して接続されたワーカーノード１２−ｉ内部の各構成部を制御する。つまり、ＣＰＵ２６は、マスターノード１１からの指示等に基づいてＲＯＭ２７に記憶された処理プログラム等を実行することでＭＤ計算を行う。ＲＡＭ２８は、ＣＰＵ２６の主メモリあるいはワークエリア等としても機能する。
【００２３】
また、マスターノード１１と各ワーカーノード１２−ｉとは、それぞれが有する外部インタフェース２４、２９によりバス等を用いて構成された通信線ＣＯＭを介して通信可能に接続されている。なお、マスターノード１１及びワーカーノード１２−ｉの構成はこれに限定されるものではなく、必要に応じて入力装置や出力装置等を備えていても良い。
【００２４】
本実施形態では図３のようにコマンドパターンに基づくソフトウェアフレームワークを利用する。図３に示す構成により、ＭＤ計算プログラムの違いを吸収することで、ＭＤ計算の実装方法に依存することなく、様々なタイプのＭＤ計算プログラムに対して本発明を実施することが可能となる。
【００２５】
図３に示すように、本実施形態による並列計算機で行われるバーチャルスクリーニングをトランザクションの集まりとするために、薬物候補分子のランク付けを行うプログラム（Ｓｃｒｅｅｎｉｎｇパッケージ）３１、既存のＭＤプログラム３２を、コマンドパターンとして知られるクラス階層（Ｔａｓｋ３３、Ｃｏｎｃｒｅｔｅ  Ｔａｓｋ３４、Ｃｌｉｅｎｔ３５、及びＲｅｃｅｉｖｅｒ３６）のなかに組み込んでいる。
【００２６】
Ｔａｓｋクラス３３は、ＭＤシミュレーションを起動するために共通化されたインタフェースを提供する。Ｃｏｎｃｒｅｔｅ  Ｔａｓｋクラス３４は、異なったタイプのＭＤプログラムとフレームワークとの繋がりを保持し、タスクへの要求に応じてそれに該当するトランザクションを呼び出す機能を有する。このクラスのインスタンス（タスクオブジェクト）はワーカーノードへ、その代理オブジェクトはマスターノードに配置される。
【００２７】
Ｃｌｉｅｎｔクラスは３５は、マスターノードで様々なタスクのインスタンスを生成し、それらとＭＤシミュレーションの対応関係を設定する機能を有する。Ｒｅｃｅｉｖｅｒ３６は、分子構造データを保持し、タスクから受信した要求に応じてＭＤシミュレーションを実行し、データを更新する機能を有する。
【００２８】
ここで、Ｓｃｒｅｅｎｉｎｇパッケージ３１は、マスターノードでタスクオブジェクトのプロキシを呼び出してバーチャルスクリーニングを開始し、そのスクリーニング途上においてシミュレーションデータの整合性を保つために以下の機能（ａ）〜機能（ｅ）を有する。
機能（ａ）…シミュレーションデータの整合性を保つために、タスクオブジェクトの起動順序を制御する機能。
機能（ｂ）…一連のシミュレーションデータを解析する、あるいは低位のライブラリからの例外オブジェクトを受け取ることで、障害を検知する機能。
機能（ｃ）…障害を検知した場合、タスクオブジェクトに計算の取り消しと再計算を要求する機能。
機能（ｄ）…再計算中のタスクオブジェクトから例外オブジェクトを受け取った場合、そのタスクオブジェクトを別のワーカーノードに移動させて、計算の取り消しと再計算を要求する機能。
機能（ｅ）…タスクオブジェクトの移動回数が所定の閾値を超えた場合、一連のシミュレーションデータの整合性が回復されるまでタスクの実行を取り消し、バーチャルスクリーニングの処理を停止する機能。
【００２９】
このような機能を備え、上述したソフトウェアフレームワークに従って処理を行うことで、様々なタイプのＭＤ計算プログラムを用いたバーチャルスクリーニングシステムに対して、シミュレーションデータである分子構造データの整合性を保障し、データ保護及び障害からの即時的な回復が実現される。また、本実施形態におけるシミュレーションデータの保護機構を一般的なフレームワークとして提供することができる。
【００３０】
次に、動作について説明する。
図４は、本実施形態による並列計算機の動作の一例を示すフローチャートである。
まず、動作を開始すると、マスターノード１１（Ｓｃｒｅｅｎｉｎｇパッケージ３１）の制御に基づいて、タスクオブジェクトが起動され、バーチャルスクリーニングのためのシミュレーションが開始される（ステップＳ１）。
【００３１】
次に、マスターノード１１は、エラーやハードウェア故障などのＭＤ計算に影響しうる障害に係る例外オブジェクトを受け取ったか否かを判断する（ステップＳ２）。その結果、例外オブジェクトを受け取った場合（ステップＳ２のＹＥＳ）には、例外オブジェクトのタイプ（障害の種別）に応じた回復処理を例外処理として実行する（ステップＳ３）。そうでない場合（ステップＳ２のＮＯ）には、ステップＳ３をスキップする。
【００３２】
続いて、マスターノード１１は、バーチャルスクリーニングを行うためのすべてのシミュレーションが終了したか否かを判断する（ステップＳ４）。その判断の結果、すべてのシミュレーションが終了していない、すなわち未終了のシミュレーションがある場合（ステップＳ４のＮＯ）には、ステップＳ２に戻る。
【００３３】
一方、ステップＳ４での判断の結果、すべてのシミュレーションが終了している場合（ＹＥＳ）には、シミュレーションにより得られた結果に基づいて最終的な結果解析を行い（ステップＳ５）、バーチャルスクリーニングに係る動作を終了する。
【００３４】
なお、上述した説明では、例外オブジェクトを受け取ることにより障害を検知する場合を示しているが、一連のシミュレーションデータを解析することにより障害が検知される場合もあり、その場合に検知された障害に応じた回復処理を実行すればよい。
【００３５】
図５は、図４のステップＳ３における回復処理の一例を示すフローチャートである。
回復処理では、まず、マスターノード１１は、発生した障害の種別を判断する（ステップＳ１１）。
【００３６】
その結果、障害がＭＤ計算における運動方程式の積分失敗である場合には、その直前までのトラジェクトリーをマスターノード１１に保存する（ステップＳ１２）。トラジェクトリーはワーカーノード１２−ｉからタスクオブジェクト１３−ｉのプロキシ１４−ｉを介してマスターノード１１に転送される。ここで、トラジェクトリーとは、ＭＤ計算により得られた一連の分子構造の時系列であり、複数のトラジェクトリーをまとめて解析することで、候補分子がどの位薬物として有用であるか（結合エネルギー）を評価することができる。
【００３７】
次に、マスターノード１１は、ユーザーの設定に応じて、例外を投げてシミュレーション全体を停止させる、あるいは初期条件を変えてトラジェクトリーを再計算（ＭＤ計算を再試行）させ（ステップＳ１３）、回復処理を終了する。
【００３８】
一方、ステップＳ１１での判断の結果、発生した障害がワーカーノードのＣＰＵからの不正な結果に由来する場合には、当該タスクオブジェクトを実行前の状態に戻す＜ｕｎｄｏ＞（ステップＳ１４）。そして、マスターノード１１は、そのタスクオブジェクトを他のワーカーノード１２−ｉに転送し、トラジェクトリーを再計算（ＭＤ計算を再実行）させる＜ｒｅｄｏ＞（ステップＳ１５）。
【００３９】
ステップＳ１５での再計算の結果、同じような不正な結果が得られたか否か、言い換えれば再計算により結果が変わったか否かを判定する。その結果、再計算で同じような不正な結果が得られなかった、すなわち結果が変わった場合（ステップＳ１６のＮＯ）には、不正な結果を応答したワーカーノード１２−ｉが故障したと判断し、当該ワーカーノード１２−ｉへのタスクオブジェクトの割付を禁止し（ステップＳ１７）、回復処理を終了する。
【００４０】
一方、ステップＳ１６での判定の結果、再計算で同じような不正な結果が得られた、すなわち結果が変わらなかった場合（ステップＳ１６のＹＥＳ）には、ユーザーの設定に応じて、例外を投げてシミュレーション全体を停止させる、あるいは初期条件を変えてトラジェクトリーを再計算（ＭＤ計算を再試行）させ（ステップＳ１３）、回復処理を終了する。
【００４１】
図６は、本実施形態による並列計算機での障害発生時の処理例を示す図である。なお、図６においては、ＭＤ計算における運動方程式の積分失敗に対応する障害が発生した場合について示している。
【００４２】
まず、ワーカーノード１２−ｉのタスクオブジェクト１３−ｉにてエラーが検知されると（Ｐ１）、ワーカーノード１２−ｉのタスクオブジェクト１３−ｉからマスターノード１１の代理オブジェクト１４−ｉに例外オブジェクトが投げられる（Ｐ２）。さらに、代理オブジェクト１４−ｉからスクリーニングオブジェクトに例外オブジェクトが投げられる（Ｐ３）。
【００４３】
マスターノード１１のスクリーニングオブジェクトは、投げられた例外オブジェクトを受け取ると、その例外オブジェクトの種別を判断し、判断結果に基づいて以下の処理を実行する。ここでは、上述したように運動方程式の積分失敗に対応する例外オブジェクトであるとする。
【００４４】
マスターノード１１のスクリーニングオブジェクトが代理オブジェクト１４−ｉに対してタスクオブジェクトの状態を実行前に戻すように指示する＜ｕｎｄｏ＞ことで（Ｐ４）、ワーカーノード１２−ｉのタスクオブジェクト１３−ｉの状態が実行前の状態に戻る＜ｕｎｄｏ＞（Ｐ５）。その後、マスターノード１１のスクリーニングオブジェクトが代理オブジェクト１４−ｉに対してＭＤ計算の初期条件を僅かに変えるように指示する＜ｅｒｒｏｒ−ｈａｎｄｌｅ＞ことで（Ｐ６）、ワーカーノード１２−ｉにて実行されるＭＤ計算の初期条件が変更される＜ｅｒｒｏｒ−ｈａｎｄｌｅ＞（Ｐ７）。
【００４５】
以上のようにしてＭＤ計算の初期条件を変更した後、マスターノード１１のスクリーニングオブジェクトが代理オブジェクト１４−ｉに対してＭＤ計算の再実行を指示する＜ｒｅｄｏ＞ことで（Ｐ８）、ワーカーノード１２−ｉにて初期条件を変えた状態でのＭＤ計算が再実行される＜ｒｅｄｏ＞（Ｐ９）。
【００４６】
図７は、本実施形態による並列計算機の動作を説明するための図である。図７（Ａ）〜図７（Ｃ）においては、ＭＤ計算が実行される様子を模式的に示している。
図７（Ａ）は、何ら障害が発生することなくＭＤ計算が完了する場合を示している。ワーカーノードＮ１〜Ｎ３にて実行されるＭＤ計算の結果として得られる複数のトラジェクトリー７１Ａ〜７１Ｃをまとめて解析することで、候補分子の薬物としての有用性が評価される。
【００４７】
図７（Ｂ）は、ＭＤ計算における運動方程式の積分失敗による障害が発生した場合を示している。図７（Ｂ）に示した例では、障害が発生した時点でその直前のトラジェクトリー７２Ａ〜７２Ｃを保存し、ワーカーノードＮ１〜Ｎ３にて実行されるＭＤ計算を停止することでシミュレーション全体を停止している。なお、上述したように初期条件を僅かにずらすことで変更し、ＭＤ計算を再実行するようにしても良い。
【００４８】
図７（Ｃ）は、ワーカーノードに障害が発生した場合、例えばワーカーノードのタスクオブジェクトから不正結果が応答として返された場合を示している。図７（Ｃ）に示した例では、ワーカーノードＮ１にて障害が発生し、そのタスクオブジェクトをワーカーノードＮ４に転送してＭＤ計算を継続している。このようにすれば、効率的にＭＤ計算によるシミュレーションを実行することが可能となる。
【００４９】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００５０】
（付記１）多数のシミュレーションを並列して実行する並列計算機であって、
上記多数のシミュレーションの計算処理を行う複数のワーカーノードと、
上記複数のワーカーノードを制御し、シミュレーション全体を管理制御するマスターノードとを備え、
上記シミュレーションに係るタスクオブジェクトにシミュレーションデータをカプセル化して上記複数のワーカーノードに分散させるとともに、上記タスクオブジェクトのプロキシを上記マスターノードに設けることを特徴とする並列計算機。
（付記２）上記マスターノードは、一連のシミュレーションデータの解析、又は上記タスクオブジェクトからの例外オブジェクトの通知の少なくとも一方に基づいて、障害を検知することを特徴とする付記１記載の並列計算機。
（付記３）上記多数のシミュレーションは、バーチャルスクリーニングのための分子動力学シミュレーションであり、
上記障害を検知した場合には、検知した障害に応じた回復処理を上記マスターノードが実行することを特徴とする付記２記載の並列計算機。
（付記４）上記回復処理として、シミュレーション全体を停止させる、あるいは初期条件を変更してシミュレーションに係る計算処理を再実行させることを特徴とする付記３記載の並列計算機。
（付記５）上記回復処理として、障害が発生したタスクオブジェクトを実行前の状態に戻し、当該タスクオブジェクトに係る処理を他のワーカーノードで再実行させることを特徴とする付記３記載の並列計算機。
（付記６）分子動力学シミュレーションにおける任意の種類の分子動力学計算プログラムに対応可能なインタフェースを有することを特徴とする付記３〜５の何れか１項に記載の並列計算機。
（付記７）シミュレーション全体を管理制御するマスターノードと、上記マスターノードによる制御に従って、多数のシミュレーションの計算処理を並列して実行可能な複数のワーカーノードとを有する並列計算機の制御方法であって、
シミュレーションデータをタスクオブジェクトにカプセル化して上記複数のワーカーノードに分散させるとともに、上記マスターノードに設けた当該タスクオブジェクトのプロキシを介して、上記シミュレーションをそれぞれ制御することを特徴とする方法。
（付記８）上記多数のシミュレーションは、バーチャルスクリーニングのための分子動力学シミュレーションであり、
上記マスターノードにて上記シミュレーションの実行中に障害を検知した場合には、検知した障害に応じた回復処理が実行されることを特徴とする付記７記載の制御方法。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施形態による並列計算機の構成例を示す概念図である。
【図２】本実施形態の並列計算機におけるハードウェア構成を示す図である。
【図３】本実施形態の並列計算機におけるソフトウェアフレームワークを示す図である。
【図４】本実施形態の並列計算機における動作の一例を示すフローチャートである。
【図５】回復処理の一例を示すフローチャートである。
【図６】本実施形態の並列計算機における障害発生時の処理の一例を示す図である。
【図７】本実施形態の並列計算機における動作を説明するための図である。
【図８】従来の並列計算機の構成を示す概念図である。
【符号の説明】
【００５２】
１  並列計算機
１１  マスターノード
１２−ｉ  ワーカーノード
１３−ｉ  タスクオブジェクト
１４−ｉ  代理オブジェクト
２１、２６  ＣＰＵ
２２、２７  ＲＯＭ
２３、２８  ＲＡＭ
２４、２９  外部インタフェース
２５、３０  バス
【図１】
2006285474.tif 000003
【図２】
2006285474.tif 000004
【図３】
2006285474.tif 000005
【図４】
2006285474.tif 000006
【図５】
2006285474.tif 000007
【図６】
2006285474.tif 000008
【図７】
2006285474.tif 000009
【図８】
2006285474.tif 000010