(57)【特許請求の範囲】
【請求項１】
複数のクライアント計算機とデータ送受信可能で、前記複数のクライアント計算機に最適化計算を実行させる際に、計算を打ち切るチェックポイント時間を決定するホスト計算機であって、
前記複数のクライアント計算機のそれぞれに、計算終了時間及びそれぞれ異なる初期値を与え、少なくとも前記計算終了時間まで前記それぞれ異なる初期値を含んだ最適化計算の試行計算を実行させる手段と、
前記各クライアント計算機によって計算された、前記計算終了時間までの決められた時間ごとの試行計算結果の入力を受け付ける手段と、
前記決められた時間における、各試行計算結果の順序関係を計算する順序計算手段と、
前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとする重み計算手段と、
前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算する順位保持率計算手段と、
前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するチェックポイント決定手段と、
を具備することを特徴とするホスト計算機。
【請求項２】
前記順位保持率計算手段は、前記決められた時間における各試行結果の順序関係と前記計算終了時間における各試行結果の順序関係とが一致した試行間の重みの和を、全ての重みの和で除して、順位保持率を計算し、
前記チェックポイント決定手段は、計算開始から、前記順位保持率が０．５より大きく、決められた閾値以上となるまでの時間を、チェックポイント時間とすることを特徴とする請求項１記載のホスト計算機。
【請求項３】
最適化計算を実行する計算システムであって、
ホスト計算機と、
前記ホスト計算機とデータ送受信可能である複数のクライアント計算機と、
を備え、
前記クライアント計算機は、
前記ホスト計算機から送信された計算終了時間及びそれぞれ異なる初期値に基づいて、少なくとも前記計算終了時間まで前記それぞれ異なる初期値を含んだ最適化計算の試行計算を実行する手段と、
前記計算終了時間までの決められた時間ごとの試行計算結果を、前記ホスト計算機に送信する手段と、
を備え、
前記ホスト計算機は、
前記各クライアント計算機から送信された決められた時間ごとの試行計算結果の入力を受け付ける手段と、
前記決められた時間における、各試行計算結果の順序関係を計算する順序計算手段と、
前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとする重み計算手段と、
前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算する順位保持率計算手段と、
前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するチェックポイント決定手段と、
前記チェックポイント時間を含めた最適化計算の実行ファイルを生成する手段と、
を備えることを特徴とする計算システム。
【請求項４】
ホスト計算機と、前記ホスト計算機とデータ送受信可能である複数のクライアント計算機を用いて最適化計算を実行する計算方法であって、
前記ホスト計算機は、前記複数のクライアント計算機のそれぞれに、計算終了時間及びそれぞれ異なる初期値を含んだ最適化計算プログラムを送信するステップと、
前記クライアント計算機が、前記ホスト計算機から送信された最適化計算プログラムを実行し、前記計算終了時間までの決められた時間ごとの最適化計算の試行計算結果を、前記ホスト計算機に送信するステップと、
前記ホスト計算機が、前記各クライアント計算機から送信された決められた時間ごとの試行計算結果の入力を受け付けるステップと、
前記ホスト計算機が、前記決められた時間における、各試行計算結果の順序関係を計算するステップと、
前記ホスト計算機が、前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとするステップと、
前記ホスト計算機が、前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算するステップと、
前記ホスト計算機が、前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するステップと、
前記ホスト計算機が、前記チェックポイント時間を含めた最適化計算の実行ファイルを生成するステップと、
を備えることを特徴とする計算方法。
【請求項５】
複数のクライアントコンピュータとデータ送受信可能なコンピュータを、
前記複数のクライアントコンピュータに、計算終了時間及びそれぞれ異なる初期値を与え、少なくとも前記計算終了時間まで前記それぞれ異なる初期値を含んだ最適化計算の試行計算を実行させる手段と、
前記各クライアントコンピュータによって計算された、前記計算終了時間までの決められた時間ごとの試行計算結果の入力を受け付ける手段と、
前記決められた時間における、各試行計算結果の順序関係を計算する順序計算手段と、
前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとする重み計算手段と、
前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算する順位保持率計算手段と、
前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するチェックポイント決定手段と、
して動作させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機が複数のクライアント計算機にそれぞれ異なる初期条件で最適化計算を実行させる際に、最適化計算を打ち切るチェックポイント時間を決定する技術に関する。
【背景技術】
【０００２】
組み合わせ最適化問題などを解く探索的なアルゴリズムでは、多くの初期値を発生させて長時間探索計算を行うことにより、より良い解が求められることが期待される。そこで、従来では、複数のパーソナルコンピュータ（ＰＣ）に処理を分散し、それぞれのＰＣで異なる初期値で最適化計算を行い、より多くの初期値を用いて計算を実行することで探索計算の効率化を図っていた。さらに、探索計算の効率化を図るために、各初期値を用いた計算において、予め決められた処理時間後（以降、チェックポイント時間という）の解を比較し、その時点での解が他の初期値によるチェックポイント時間における解に比べて悪い結果である場合には、その後得られる解も良い解でないとみなして計算をそこで打ち切り、別の初期値を与えて計算を行う方法がとられている（特許文献１等）。
【特許文献１】特開２００５−２５４４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載されるような方法では、チェックポイント時間が人手によって試行錯誤で設定されているため、設定されたチェックポイント時間が短すぎて最適解にたどり着く可能性の高い計算を途中で止めてしまったり、逆にチェックポイント時間が長すぎて、計算の効率化が図れないという問題があった。
本発明は、以上の点に鑑みてなされたものであり、最適なチェックポイント時間を自動的に決め、最適化計算の精度向上と高効率化を実現する計算システム、計算方法、ホスト計算機、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
前述した目的を達成するために本発明は、複数のクライアント計算機とデータ送受信可能で、前記複数のクライアント計算機に最適化計算を実行させる際に、計算を打ち切るチェックポイント時間を決定するホスト計算機であって、前記複数のクライアント計算機のそれぞれに、計算終了時間及びそれぞれ異なる初期値を与え、少なくとも前記計算終了時間まで前記それぞれ異なる初期値を含んだ最適化計算の試行計算を実行させる手段と、前記各クライアント計算機によって計算された、前記計算終了時間までの決められた時間ごとの試行計算結果の入力を受け付ける手段と、前記決められた時間における、各試行計算結果の順序関係を計算する順序計算手段と、前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとする重み計算手段と、前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算する順位保持率計算手段と、前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するチェックポイント決定手段と、を具備することを特徴とする。
【０００５】
また、本発明は、順位保持率計算手段が、決められた時間における各試行結果の順序関係と計算終了時間における各試行結果の順序関係とが一致した試行間の重みの和を、全ての重みの和で除して、順位保持率を計算し、チェックポイント決定手段が、計算開始から、前記順位保持率が０．５より大きく、決められた閾値以上となるまでの時間を、チェックポイント時間とすることを特徴とする。
【０００６】
また、本発明は、最適化計算を実行する計算システムであって、ホスト計算機と、前記ホスト計算機とデータ送受信可能である複数のクライアント計算機と、を備え、前記クライアント計算機は、前記ホスト計算機から送信された計算終了時間及びそれぞれ異なる初期値に基づいて、少なくとも前記計算終了時間まで前記それぞれ異なる初期値を含んだ最適化計算の試行計算を実行する手段と、前記計算終了時間までの決められた時間ごとの試行計算結果を、前記ホスト計算機に送信する手段と、を備え、前記ホスト計算機は、前記各クライアント計算機から送信された決められた時間ごとの試行計算結果の入力を受け付ける手段と、前記決められた時間における、各試行計算結果の順序関係を計算する順序計算手段と、前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとする重み計算手段と、前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算する順位保持率計算手段と、前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するチェックポイント決定手段と、前記チェックポイント時間を含めた最適化計算の実行ファイルを生成する手段と、を備えることを特徴とする。
【０００７】
また、本発明は、ホスト計算機と、前記ホスト計算機とデータ送受信可能である複数のクライアント計算機を用いて最適化計算を実行する計算方法であって、前記ホスト計算機は、前記複数のクライアント計算機のそれぞれに、計算終了時間とそれぞれ異なる初期値を含んだ最適化計算プログラムを送信するステップと、前記クライアント計算機が、前記ホスト計算機から送信された最適化計算プログラムを実行し、前記計算終了時間までの決められた時間ごとの最適化計算の試行計算結果を、前記ホスト計算機に送信するステップと、前記ホスト計算機が、前記各クライアント計算機から送信された決められた時間ごとの試行計算結果の入力を受け付けるステップと、前記ホスト計算機が、前記決められた時間における、各試行計算結果の順序関係を計算するステップと、前記ホスト計算機が、前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとするステップと、前記ホスト計算機が、前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算するステップと、前記ホスト計算機が、前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するステップと、前記ホスト計算機が、前記チェックポイント時間を含めた最適化計算の実行ファイルを生成するステップと、を備えることを特徴とする。
【０００８】
また、本発明は、複数のクライアントコンピュータとデータ送受信可能なコンピュータを、前記複数のクライアントコンピュータに、計算終了時間及びそれぞれ異なる初期値を与え、少なくとも前記計算終了時間まで前記それぞれ異なる初期値を含んだ最適化計算の試行計算を実行させる手段と、前記各クライアントコンピュータによって計算された、前記計算終了時間までの決められた時間ごとの試行計算結果の入力を受け付ける手段と、前記決められた時間における、各試行計算結果の順序関係を計算する順序計算手段と、前記計算終了時間における各試行間の試行計算結果の差の絶対値を計算し、重みとする重み計算手段と、前記計算された順序関係と、前記計算された重みから、前記決められた時間における順位保持率を計算する順位保持率計算手段と、前記順位保持率を用いて、最適化計算を打ち切るチェックポイント時間を決定するチェックポイント決定手段と、して動作させることを特徴とする。
このプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録して流通させても良いし、或いは、ネットワークを介して流通させてもよい。
【発明の効果】
【０００９】
本発明によれば、複数のクライアント計算機に分散させて計算させる最適化計算のチェックポイント時間を自動的に決めることができ、最適化計算の精度向上、高効率化を実現することが可能となる。
また、本発明によれば、決められた時間における複数の試行計算結果の順序関係と、計算終了時間における各試行間の計算結果の差の絶対値とから求める順位保持率により、チェックポイント時間を決定するため、チェックポイント時間における順序関係が、計算終了時刻における順序関係と異なる場合でも、計算終了時刻における試行計算結果の値の差が小さいものであれば、大きな問題とはならず、最適化計算の分散化を効率よく実現することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下に、添付図面を参照しながら、本発明に係る計算システムの好適な実施形態について詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【００１１】
図１は、計算システム１のブロック構成図である。
計算システム１は、組み合わせ最適化問題などの計算処理（以下、「最適化計算」という）を行うためのシステムであり、ホスト計算機３と複数のクライアント計算機５−１、５−２、…、５−ｎから構成される。ホスト計算機３とクライアント計算機５は、有線或いは無線の通信路でデータ送受信可能に接続される。ホスト計算機３は、初期値の異なる最適化計算を複数のクライアント計算機５のそれぞれに実行させ、その結果を受信して、最適化計算のチェックポイント時間を自動的に決定する。
【００１２】
ホスト計算機３は、入力装置１１、記憶部１２、チェックポイント決定部１３、コンパイラ１４、送受信装置１５、出力装置１６等を有する。
入力装置１１は、キーボード、マウス等であり、最適化計算に必要なデータ等の入力を受け付ける装置である。
記憶部１２は、メモリ、ハードディスク等の記憶装置であり、ソースファイル２１、データファイル２２、結果記録ファイル２３等を記憶する。
ソースファイル２１は最適化計算のプログラム等が記録されたファイルである。
データファイル２２は、最適化計算の初期値や計算終了時刻等のデータが記録されたファイルである。
結果記録ファイル２３は、クライアント計算機５から受信した最適化計算等の計算結果等やホスト計算機３が算出したチェックポイント時間等の計算結果を記録したファイルである。
【００１３】
チェックポイント決定部１３は、後述する手順に従って、最適化計算を途中で打ち切るチェックポイント時間を決定する。
図２は、チェックポイント決定部１３のブロック構成図を示す図である。
チェックポイント決定部１３は、入力部５１、順序関係計算部５２、重み計算部５３、順位保持率計算部５４、チェックポイント算出部５５、出力部５６等から構成される。各部の機能及び動作については、後述するチェックポイント時間決定処理の説明で行う。
【００１４】
また、図１に示すコンパイラ１４は、決定されたチェックポイント時間をパラメータとして含んだソースファイル２１を機械語に変換し、クライアント計算機５で計算可能な実行ファイルを生成する。
送受信装置１５は、クライアント計算機５に対して、実行ファイルや初期値等のデータを送信し、その計算結果等を受信する。
出力装置１６は、ディスプレイ等であり、計算の経過や結果等を表示する。
【００１５】
クライアント計算機５−１は、記憶装置３１、計算実行部３２、送受信装置３３等を有する。
記憶装置３１は、メモリ、ハードディスク等の記憶装置であり、データファイル４１、結果記録ファイル４２等を記憶する。
データファイル４１は、ホスト計算機３から送信された最適化計算の実行ファイルやデータ等を記憶するファイルである。
結果記録ファイル４２は、最適化計算の結果等を記録するファイルである。
計算実行部３２は、ホスト計算機３から送信された最適化計算の実行ファイルを実行する。
送受信装置３３は、ホスト計算機３から実行ファイルや初期値等のデータを受信し、計算結果等をホスト計算機３に送信する。
なお、クライアント計算機５−２、…、５−ｎも、クライアント計算機５−１と同様の構成である。
【００１６】
次に、計算システム１の動作について説明する。
ホスト計算機３は、複数のクライアント計算機５に異なる初期値と計算終了時間を与えて、最適化計算の試行計算を実行させ、その試行計算結果からチェックポイント時間を決定する。
図３は、計算システム１の動作を示すシーケンス図である。
ホスト計算機３は、最適化計算の初期値や計算終了時間Ｌ(秒)といった試行用パラメータを決定し（ステップＳ２０１）、クライアント計算機５に送信する（ステップＳ２０２）。このとき、複数のクライアント計算機５のそれぞれには異なる初期値の最適化計算の実行ファイルが送信される。
【００１７】
クライアント計算機５は、受け取った初期値を基に、計算終了時刻Ｌ(秒)まで最適化計算の試行計算を実行し、決められた時間ごとの試行計算結果を記憶し（ステップＳ２０３）、ホスト計算機３に対して、決められた時間ごとの試行計算結果を送信する（ステップＳ２０４）。ホスト計算機３は、試行計算結果から順位保持率を算出し、チェックポイント時間を決定する（ステップＳ２０５）。ホスト計算機３は、算出したチェックポイント時間を含むパラメータを設定した実行ファイルを生成する（ステップＳ２０５）。
【００１８】
以下、各ステップの動作について、具体的な例を挙げて詳細に説明する。ここでは、ホスト計算機３が、３台のクライアント計算機５−１、５−２、５−３に最適化計算の試行計算を行わせ、チェックポイント時間を決定する場合を例に取る。
【００１９】
（ステップＳ２０１〜ステップＳ２０４）
図４は、ホスト計算機３と３台のクライアント計算機５−１、５−２、５−３とのやり取りを説明するためのブロック図である。
図４に示すように、ホスト計算機３は、クライアント計算機５−１に初期値Ｓ１で計算終了時間がＬ秒となるまで最適化計算実行させ（試行１）、計算機５−２に初期値Ｓ２で計算終了時間がＬ秒となるまで最適化計算実行させ（試行２）、計算機５−３に初期値Ｓ３で計算終了時間がＬ秒となるまで最適化計算実行させる（試行３）。
【００２０】
図５は、それぞれの初期値による最適化計算の試行結果を示す図である。
試行結果が図５に示すようになる場合、図５中の矢印で示した時間Ｔ0(秒)以降は最適化値の順位に変動が見られないため、時間Ｔ0付近にチェックポイント時間を設定することが計算時間の観点で効率的であると考えられる。非常に多くの試行を繰り返し、最適化値の順位が変動しなくなる時間を求めれば、最適なチェックポイント時間が得られるが、それを行うことは、チェックポイント時間を設定せず、計算修了時間まで試行を繰り返すことと同じなので意味がない。
そこで、少ない回数の計算終了時間Ｌ(秒)までの試行結果から、最適なチェックポイント時間を推定する必要がある。
最適なチェックポイント時間を推定するために、計算終了時間Ｌまで試行した結果すべてについて単位時間ごとの最適値を元にＬ(秒)時の最適値の順位に対する順位保持率を各単位時間で計算し、順位保持率が高い値（理想的には１００（％）であるのがよいが、現実的には１００（％）は困難であることが多いので、例えば８０（％）程度）を取る時間をチェックポイント時間とする。
クライアント計算機５−１、５−２、５−３は、決められた時間ごと、例えば１秒ごとの試行計算結果を結果記録ファイル４２に記憶し、計算終了時刻Ｌ秒まで試行計算を行い、ホスト計算機３にそれらの試行計算結果を送信する。ホスト計算機３の送受信装置１５は、各クライアント計算機５−１、５−２、５−３から送信された試行計算結果を受信し、記憶部１２の結果記録ファイル２３に記憶する。
【００２１】
（ステップＳ２０５、ステップＳ２０６）
ホスト計算機３は、各クライアント計算機５−１、５−２、５−３から送信された試行計算結果からチェックポイント時間を決定する。
図６は、チェックポイント決定部１３によるチェックポイント時間決定処理のフローチャートである。
チェックポイント決定部１３の入力部５１は、結果記録ファイル２３から試行計算結果を、そして、予め決められてデータファイル２２に記憶された順位保持率の閾値を読み出す（ステップＳ３０１）。順序関係計算部５２は、各時間における各試行の順序関係を計算し（ステップＳ３０２）、重み計算部５３は、計算終了時間Ｌにおける各試行間の値の差の絶対値を計算する（ステップＳ３０３）。
【００２２】
順位保持率計算部５４は、決められた各時間における順位保持率を計算する（ステップＳ３０４）。チェックポイント算出部５５は、順位保持率が順位保持率閾値以上となる時間をチェックポイント時間とする（ステップＳ３０５）。出力部５６は、チェックポイント時間を出力し（ステップＳ３０６）、ソースファイルに書き込む。
【００２３】
計算終了時間Ｌ秒までの試行１、試行２、試行３の決められた時間（この場合１秒とする）ごとの最適化計算の試行計算結果が、クライアント計算機から送信され、結果記録ファイル２３に記録される。
図７は、クライアント５−１，５−２、５−３によって実行された各試行の各時間における試行計算結果の順位を示す図である。ここでは、より良い解に収束している順に、順位を１位、２位、３位とする。
【００２４】
順序関係計算部５２は各時間の試行計算結果の順序関係を計算し、重み計算部５３は、計算終了時間Ｌにおける各試行間の値の差の絶対値を計算する。
図８は、計算時間Ｔ＝Ｌ(秒)、即ち、計算終了時間Ｌにおける順序関係と各試行間の順序関係を示す図である。
図７に示すように、計算終了時間Ｌにおける各試行計算結果の順位は、試行１が「２位」、試行２が「１位」、試行３が「３位」となる。したがって、計算終了時間Ｌにおける各試行の順序関係は、図８に示すように、
（試行２）＜（試行１）＜（試行３）
となり、各試行間の順序関係は、
（試行１）＞（試行２）
（試行１）＜（試行３）
（試行２）＜（試行３）
となる。
【００２５】
また、例えば、計算終了時間Ｌにおける試行１の試行計算結果の値を「４２５０」、試行２の試行計算結果の値を「４１００」、試行３の試行計算結果の値を「４３００」であったとすると、図８に示すように、重み計算部５３によって計算された各試行間の試行計算結果の差の絶対値は
｜（試行１）−（試行２）｜＝｜４２５０−４１００｜＝１５０
｜（試行１）−（試行３）｜＝｜４２５０−４３００｜＝５０
｜（試行２）−（試行３）｜＝｜４１００−４３００｜＝２００
となる。本計算システム１では、この差の絶対値を、各試行間の重みとする。
【００２６】
図９は、計算時間Ｔ＝２(秒)における各試行の計算結果の順序関係と各試行間の順序関係を示す図である。
図７に示すように、Ｔ＝２(秒)における各試行計算結果の順位は、試行１が「３位」、試行２が「１位」、試行３が「２位」となる。したがって、Ｔ＝２(秒)における各試行の順序関係は、図９に示すように、
（試行２）＜（試行３）＜（試行１）
となり、２項間の順序関係は、
（試行１）＞（試行２）
（試行１）＞（試行３）
（試行２）＜（試行３）
となる。
【００２７】
順序関係計算部５２は、上記のような順序関係を、決められた時間ごとに算出し、重み計算部５３によって計算された重み（計算終了時間における差の絶対値）を用いて順位保持率を算出する。決められた時間の順位保持率は、「決められた時間における各試行間の順序関係と計算終了時間における各試行間の順序関係とが一致した試行間の重みの和」を「全ての試行間の重みの和」で除することによって求められる。
【００２８】
図１０は、Ｔ＝２（秒）の順位保持率を計算するための説明図である。
図１０に示すように、計算時間Ｔ＝２（秒）における各試行間の順序関係と、Ｔ＝Ｌ（秒）における各試行間の順序関係とを比較すると、（試行１）と（試行２）及び（試行２）と（試行３）の順序関係が一致し、（試行１）と（試行３）の順序関係が一致しない。そして、（試行１）と（試行２）の重みは「１５０」、（試行１）と（試行３）の重みは「５０」、（試行２）と（試行３）の重みは「２００」である。したがって、Ｔ＝２（秒）における順位保持率は、
（１５０＋２００）／（１５０＋５０＋２００）＝０．８７５
となる。
【００２９】
以上述べた方法によって、順序関係計算部５２は、決められた時間ごとの順位保持率を算出する。
図１１は、決められた時間（１秒）ごとに算出された順位保持率の値を示す図であり、図１２は、算出された順位保持率の変化を示す図である。
順位保持率が「０．５」以下であるとその時刻における順位と計算終了時刻における順位とが無関係であることを意味するので、順位保持率閾値は０．５より大きな値とし、チェックポイント算出部５５は、順位保持率が順位保持率閾値以上となる時間をチェックポイント時間とする。順位保持率閾値は、入力装置１１からユーザによる入力を受け付けても良い。例えば、順位保持率閾値が、「０．８」と決められ、入力部５１に入力された場合、チェックポイント算出部５５は、チェックポイント時間Ｔｃを図１１、図１２の順位保持率の算出結果から「２秒」以上と決定する。
【００３０】
こうして決定されたチェックポイント時間（例えば、２秒）は、出力部５６によって出力され、記憶部１２のソースファイル２１に記憶された最適化計算のプログラムにパラメータとして書き込まれる。コンパイラ１４は、決められたチェックポイント時間（２秒）を含むプログラムを機械語に変換し、実行ファイルを生成する。ホスト計算機３は、各クライアント計算機５に、チェックポイント時間（２秒）を含む実行ファイルと異なる初期値を送信し、最適化計算を実行させ、チェックポイント時間（２秒）における計算結果を自身に送信させる。
【００３１】
ホスト計算機３は、複数のクライアント計算機５−１、５−２、…、５−ｎのチェックポイント時間での計算結果のうち、例えば、最適な解に近い上位ｍ位に入っている計算を行うクライアント計算機に対しては、決められた計算終了時間まで計算を続けさせ、上位ｍ位に入らない計算を行うクライアント計算機に対しては、現在の計算を停止させ、新たな初期値を与えた最適化計算をさせることも可能である。
こうして、ホスト計算機３が複数のクライアント計算機５に処理を分散させて実行する最適化計算の精度及び効率が向上する。
なお、本発明におけるホスト計算機３では、チェックポイント時間をソースファイルに設定し、コンパイルして実行ファイルを作成し、各クライアント計算機５上で計算を実行させているが、事前に実行ファイルを送付しておき、チェックポイント時間の設定や初期値などのパラメータを別ファイルに記載し、クライアント計算機５に配布して計算を実行させても良い。
【００３２】
また、図１におけるホスト計算機３及びクライアント計算機５の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより最適化計算を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００３３】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００３４】
以上、添付図面を参照しながら、本発明に係る計算システムの好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００３５】
このように、本発明によれば、膨大な初期値による検討が必要な組み合わせ最適化などの最適化計算において、ホスト計算機が複数のクライアント計算機に処理を分散させて実行する最適化計算において、最適計算結果の収束の目安となるチェックポイント時間を自動的に決めることができる。また、本発明では、決められた時間における複数の試行計算結果の順序関係と、計算終了時間における各試行間の計算結果の差の絶対値とから求める順位保持率により、チェックポイント時間を決定するため、チェックポイント時間における順序関係が、計算終了時間における順序関係と異なる場合でも、計算終了時間における試行計算結果の値の差が小さいものであれば、大きな問題とはならない。よって、計算量の多い最適化計算の分散化を効率よく精度良く実現することが可能である。
【図面の簡単な説明】
【００３６】
【図１】計算システム１のブロック構成図
【図２】チェックポイント決定部１３のブロック構成図
【図３】計算システム１による処理の流れを示すシーケンス図
【図４】ホスト計算機３とクライアント計算機５のやり取りを説明するための図
【図５】最適化計算の各試行の計算結果を示す図
【図６】チェックポイント決定部１３によるチェックポイント時間の決定処理の流れを示すフローチャート
【図７】決められた時間における各試行の試行計算結果の順位を示す図
【図８】計算終了時刻Ｌにおける各試行間の順序関係と重みを示す図
【図９】計算時間Ｔ＝２（秒）における各試行間の順序関係を示す図
【図１０】順位保持率の算出方法を説明するための図
【図１１】決められた時間における順位保持率の算出結果を示す図
【図１２】算出された順位保持率とチェックポイント時間との関係を示す図
【符号の説明】
【００３７】
１………計算システム
３………ホスト計算機
５、５−１、５−２、５−３、…、５−ｎ………クライアント計算機
１１………入力装置
１２………記憶部
１３………チェックポイント決定部
１４………コンパイラ
１５………送受信装置
１６………出力装置
３１………記憶装置
３２………計算実行部
３３………送受信装置
５１………入力部
５２………順序関係計算部
５３………重み計算部
５４………順位保持率計算部
５５………チェックポイント算出部
５６………出力部
【図１】
0005173511.tif 000002
【図２】
0005173511.tif 000003
【図３】
0005173511.tif 000004
【図４】
0005173511.tif 000005
【図５】
0005173511.tif 000006
【図６】
0005173511.tif 000007
【図７】
0005173511.tif 000008
【図８】
0005173511.tif 000009
【図９】
0005173511.tif 000010
【図１０】
0005173511.tif 000011
【図１１】
0005173511.tif 000012
【図１２】
0005173511.tif 000013