"並列処理を行うノード空間の複数の分割軸に対する分割割合を変更してシミュレーションプログラムを試行し、該分割割合毎に経過時間を取得して記憶部に保存する試行手段と、前記記憶部に保存された前記経過時間の比較によって最適な分割割合を決定する決定手段と、前記ノード空間の分割割合を前記決定手段によって決定された前記最適な分割割合に設定して、前記シミュレーションプログラムを本実行する本実行手段とを有することを特徴とする並列処理最適化装置。前記試行手段は、前記シミュレーションプログラムの初期設定時に前記分割割合に従って該シミュレーションプログラムに係る配列を分割することを特徴とする請求項1記載の並列処理最適化装置。前記試行手段は、異なる分割割合を指定した実行シェルプログラムを実行することによって、該分割割合を変更することを特徴とする請求項1又は2記載の並列処理最適化装置。前記試行手段は、前記シミュレーションプログラムの繰り返しの処理区間毎に前記分割割合を動的に変更しつつ継続して前記シミュレーションプログラムを試行し、前記本実行手段は、前記試行手段から継続して前記シミュレーションプログラムを本実行することを特徴とする請求項1記載の並列処理最適化装置。並列処理を行うノード空間でシミュレーションプログラムであって、前記シミュレーションの実行中、繰り返しの処理区間毎に、前記ノード空間の複数の分割軸に対する分割割合を動的に変更しつつ該実行を継続して試行し、前記分割割合毎に経過時間を取得して記憶部に保存し、前記記憶部に保存された前記経過時間の比較によって最適な分割割合を決定し、前記ノード空間の分割割合を前記決定された最適な分割割合に設定して、継続して本実行されるようにしたことを特徴とするプロセッサによって実行されるシミュレーションプログラム。しかしながら、大規模分散記憶型並列計算機は多数のノード計算機をネットワークを介して接続された構造をもっている。並列度が高くなるに従い、小規模並列計算機で十分であった分割方法では、多数のノードに計算負荷を分散しきれなくなり、並列計算効率を上げることが難しくなってきている。並列計算効率を改善する、また、通信時間の抑制効果を求めて分割軸を増やすことが考えられる。例えば、これまで1軸1次元分割していたものを2軸2次元分割するということが必要になる。ノード数がnの計算機に対して、1次元目の分割をn1、2次元目の分割をn2とするとnn1×n2の関係がある。処理ごとに最適なn1とn2の比は異なる。該当する配列を扱う複数の処理がある場合、最適なn1とn2の組み合わせは、局所的には決定できず、通して実行して探る必要がある。そしてそれは、計算対象の系、計算機の規模、割り当てられるネットワーク構造上のノード配置などに依存しており、容易に決定することが難しい。さらに分割軸が3次元、4次元と増えていくと、その分割割合を決定することはますます困難になる。例えば、10000ノードを使う場合を考える。ひとつの繰り返しの計算ステップ中の処理区間1の中ではn110n21000と分割するのが最も計算効率がよく、処理区間2の中ではn1100n2100と分割するのが最も効率がよいことが分かっていたとしても、ステップを通してどのような組み合わせが最もよいかは、試行してみないと決定できない。しかも、大規模並列計算機で試行するたびに割り当てられるネットワーク構造上のノード配置が異なる場合には、決定した分割割合が本当に最適なものになっていない可能性がある。このような場合、一般には、複数の分割割合に対して、小規模の計算を行い、経過時間を測定し、最適な分割割合を予測する。しかし、こうして決定した最適な分割割合が、大規模並列化した場合の最適な分割割合になっていない可能性がある。また、計算の限られた部分1ステップ以上を、同じ規模の並列計算機で予備的に行い、最適な分割割合を予測することも行われる。しかし、大規模並列計算のジョブを投入してから実行されるまでの待ち時間が大きく、生産性を落とす。また、予備計算を行うときに割り当てられたノード空間プロセッサ空間が、本計算時のものと異なる場合には、予測の信頼性が落ちる。あるいは、計算プログラムの核心部処理の重い部分の演算を抜き出してスケルトンプログラムを作り、性能予測シミュレーションを行うことも考えられる。しかし、これはスケルトンプログラムを作成し、性能予測プログラムを準備しなければならない、と言った問題がある。開示の技術は、並列処理を行うノード空間の複数の分割軸に対する分割割合を変更してシミュレーションプログラムを試行し、該分割割合毎に経過時間を取得して記憶部に保存する試行手段と、前記記憶部に保存された前記経過時間の比較によって最適な分割割合を決定する決定手段と、前記ノード空間の分割割合を前記決定手段によって決定された前記最適な分割割合に設定して、前記シミュレーションプログラムを本実行する本実行手段とを有することを特徴とする並列処理最適化装置のように構成される。開示の技術では、多次元配列の分割割合を変えながらシミュレーションプログラムを試行し、最適な分割割合を自動的に決定すると共に、試行時と同一のノード空間において最適な分割割合で該シミュレーションプログラムを本実行することができる。以下、本発明の実施の形態を図面に基づいて説明する。図1は、本実施例に係る並列計算システムの構成例を示す図である。図1に示す並列計算システム1000は、フロントエンド計算装置100とプロセッサ5を有する複数のノード20とがネットワーク6を介して接続される。フロントエンド計算装置100は、コンピュータ図2であり、分割割合を変えながら確保したノード20に並列計算を行わせ、最適な分割割合を決定する並列計算制御部120を有する。フロントエンド計算装置100は、並列処理最適化装置に相当する。フロントエンド計算装置100に接続される外部記憶装置130には、プログラムA30と、実行シェルプログラム40と、分割割合評価プログラム50とが記憶されている。また、分割割合に応じて処理区間の並列計算にかかった時間を示す経過時間ファイル42が外部記憶装置130に記憶される。更に、分割割合評価プログラム50による評価結果を示す評価結果ファイル52が外部記憶装置130に記憶される。プログラムA30は、複数の並列分割軸を持つ配列多次元配列及び演算処理を持つプログラムであり、所望の結果を得られるか否かを検証するために100回以上の繰り返し計算を行うため10、000台以上のノード20を用いた大規模並列処理によって実行されるシミュレーションプログラムである。処理区間とは、最適な分割割合を決定するためのプログラムA30内の繰り返しループ回数である。また、1回の繰り返しが、1ステップとしてカウントされる。並列計算制御部120は、分割割合に基づく台数のノード20を確保し、並列計算処理を割り当てる。並列計算制御部120は、実行シェルプログラム40をロードして、異なる分割割合で処理区間の並列計算処理を割り付けたノード20に行わせ、分割割合に対応する経過時間ファイル42をノードから受信して外部記憶装置130に格納する。並列計算制御部120は、分割割合に対応する経過時間ファイル42を参照して、最適な分割割合を決定するための評価を行って、最適な分割割合を評価結果ファイル52に記録する。そして、並列計算制御部120は、評価結果ファイル52に記録された最適な分割割合に基づいたプログラムA30の並列計算処理の本実施を最適な分割割合に基づいて割り付けたノード20に実行させる。各ノード20は、プロセッサ5及びメモリ主記憶装置を有するコンピュータ装置であり、フロントエンド計算装置100の並列計算制御部120による制御配下の元で、最適分割割合決定処理を含めて並列計算処理を実行する装置である。各ノード20には、各ノード20がアクセス可能な外部記憶装置22が接続されており、外部記憶装置22には処理に必要なデータが格納される。複数のノード2010、000以上によって並列計算部200クラスター計算機が構成され、その内の一つのノード20がマスターノード20mとなり、他がスレーブノード20として動作する。マスターノード20mは、フロントエンド計算装置100から転送されるプログラムA30と、最適分割割合決定処理によって得られた分割割合に応じた経過時間を記録した経過時間ファイル42とを自身の外部記憶装置22に格納し、フロントエンド計算装置100によって分割割合に従って割り当てられたスレーブにプログラムA30を送信する。マスターノード20mは、分割割合に応じた経過時間を監視して、処理区間ステップ数の実行に要した時間を経過時間ファイル42に記録し、経過時間ファイル42をフロントエンド計算装置100へ転送する。図2は、フロントエンド計算装置のハードウェア構成を示す図である。図2に示すフロントエンド計算装置100は、コンピュータによって制御される装置であって、CPUCentralProcessingUnit11と、メモリユニット12と、表示ユニット13と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し、システムバスBに接続される。CPU11は、メモリユニット12に格納されたプログラムに従ってフロントエンド計算装置100を制御する。メモリユニット12には、RAMRandomAccessMemory及びROMReadOnlyMemory等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。入力ユニット15は、マウス、キーボード等を有し、ユーザがフロントエンド計算装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LANLocalAreaNetwork等に接続し、並列計算部200内のノード20との間の通信制御をするための装置である。通信ユニット16による通信は無線又は有線に限定されるものではない。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。フロントエンド計算装置100の並列計算制御部120によって行われる制御処理を実現するプログラムは、例えば、CD-ROMCompactDiscReadOnlyMemory等の記憶媒体19によってフロントエンド計算装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD-ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。また、外部ネットワークを介してプログラムを記憶装置17に転送してもよい。あるいは、入力ユニット15を使ってプログラムを作成し記憶装置17に保存してもよい。また、メモリユニット12、記憶装置17、及び外部記憶装置130で提供される一部又は全体の記憶領域が、本実施例に係るデータを格納する記憶部に相当する。図3は、並列計算制御部による制御処理を説明するためのフローチャート図である。図3において、フロントエンド計算装置100の並列計算制御部120は、分割方法が決まっているか否かを判断するステップS11。分割方法が決まっている場合、並列計算制御部120は、並列計算ジョブを投入し、並列計算ジョブの終了によりこの制御処理を終了するステップS12-2。一方、分割方法が決まっていない場合、並列計算制御部120は、分割軸が2以上あり、かつ、最適な分割割合が決定済みであるか否かを判断するステップS12。この判断条件が成立する場合、並列計算制御部120は、並列計算ジョブを投入し、並列計算ジョブの終了によりこの制御処理を終了するステップS12-2。一方、ステップS12における判断条件が成立しない場合、並列計算制御部120は、更に、短時間で並列計算ジョブが終わるか、又はステップ数繰り返し数が小さいかを判断するステップS13。この判断条件が成立する場合、並列計算制御部120は、経験値分割割合を用いて、並列計算ジョブを投入し、並列計算ジョブの終了によりこの制御処理を終了するステップS13-2。経験値は、ユーザによって設定された分割割合であり、デフォルト値として記憶装置17又は外部記憶装置130に格納される。ステップS13における判断条件が成立しない場合、並列計算制御部120は、ほぼ同じ内容の処理を100ステップ以上繰り返すか否かを判断するステップS14。このステップS14での判断条件が成立する場合、並列計算制御部120は、更に、ノードの割り付け方及びノード数に依存せずに、最適な分割割合を精度良く予測できるか否かを判断するステップS15。このステップS15での判断条件が成立する場合、並列計算制御部120は、複数の予備小規模計算を行い最適な分割割合を決定しステップS15-2、並列計算ジョブを実行するステップS15-4。一方、ステップS15での判断条件が成立しない場合、並列計算制御部120は、プログラムA30内に分割割合を動的に変更する機構を実現することができるか否かを判断するステップS16。ステップS16での判断条件が成立しない場合、並列計算制御部120は、ジョブの投入により後述される第1並列計算処理を実行しステップS17、第1並列計算処理の終了によって、この制御処理を終了する。第1並列計算処理では、最適分割割合決定処理が行われると共に、最適な分割割合を決定後にはプログラムA30の本実行が行われる。一方、ステップS16での判断条件が成立する場合、並列計算制御部120は、ジョブの投入により後述される第2並列計算処理を実行しステップS18、第2並列計算処理の終了によって、この制御処理を終了する。第2並列計算処理では、ノード20にてプログラムA30に組み込まれた最適分割割合決定処理によって分割割合が動的に変更され、最適な分割割合を決定後にはプログラムA30の本実行が行われる。先ず、並列計算制御部120によって行われる第1並列計算処理について図4から図9で説明する。図4は、第1並列計算処理の一例を説明するためのフローチャート図である。図4において、フロントエンド計算機100の並列計算制御部120に、評価用データ32が予め利用者によって与えられ、評価用データ32に基づく実行シェルプログラム40が生成され、外部記憶装置130に格納される。又は、評価用データ32に基づいて、実行シェルプログラム40を利用者が作成しておいてもよい。評価用データ32に基づく実行シェルプログラム40は、プログラム40a、40b、及び40cを含む。評価用データ32には、予め利用者によって設定された分割割合候補と評価ステップ数とが示されている。分割割合候補には2以上の評価される分割割合が指定されている。例えば、110:1000、2100:100、及び320:500が2軸分割の候補として指定される。また、評価ステップ数には、評価するためのステップ数が指定される。評価用データ32は、記憶装置17又は外部記憶装置130に格納される。並列計算制御部120は、実行シェルプログラム40をメモリユニット12に読み込んで、ノード20に並列計算処理の割り付けを行うステップS30。並列計算制御部120は、実行シェルプログラム40から最初のプログラム40aを実行する。プログラム40aは、例えば、mpiexecn10000programAn110n21000nstep5file1のようなシェルプログラムである。プログラム40aに従って、マスターノード20mにプログラムA30を転送し、10、000台のノード20に候補1の分割割合で5ステップ数分の処理を実行させるステップS31。ステップS31での処理を詳述する。ステップS31において、並列計算制御部120は、分割割合を候補1の10:1000でマスターノード20mに与え、プログラムA30を5ステップ実行させるステップS31-2。その後、並列計算制御部120は、マスターノード20mから5ステップの実行に要した時間t1を含む経過時間ファイルを受信して、外部記憶装置に格納するステップS31-4。この例では、分割割合候補110:1000に対応する経過時間ファイルをファイル名file1で示す。並列計算制御部120は、マスターノード20mにプログラムAの実行を停止させるステップS31-6。また、並列計算制御部120は、実行シェルプログラム40から最初のプログラム40bを実行する。プログラム40bは、例えば、mpiexecn10000programAn1100n2100nstep5file2のようなシェルプログラムである。プログラム40bに従って、マスターノード20mにプログラムA30を転送し、10、000台のノード20に候補2の分割割合で5ステップ数分の処理を実行させるステップS32。ステップS32での処理を詳述する。ステップS32において、並列計算制御部120は、分割割合を候補2の100:100でマスターノード20mに与え、プログラムA30を5ステップ実行させるステップS32-2。その後、並列計算制御部120は、マスターノード20mから5ステップの実行に要した時間t2を含む経過時間ファイルを受信して、外部記憶装置に格納するステップS32-4。この例では、分割割合候補2100:100に対応する経過時間ファイルをファイル名file2で示す。並列計算制御部120は、マスターノード20mにプログラムAの実行を停止させるステップS32-6。更に、並列計算制御部120は、実行シェルプログラム40から最初のプログラム40cを実行する。プログラム40cは、例えば、mpiexecn10000programAn120n2500nstep5file3のようなシェルプログラムである。プログラム40cに従って、マスターノード20mにプログラムA30を転送し、10、000台のノード20に候補3の分割割合で5ステップ数分の処理を実行させるステップS33。ステップS33での処理を詳述する。ステップS33において、並列計算制御部120は、分割割合を候補3の20:500でマスターノード20mに与え、プログラムA30を5ステップ実行させるステップS33-2。その後、並列計算制御部120は、マスターノード20mから5ステップの実行に要した時間t3を含む経過時間ファイルを受信して、外部記憶装置に格納するステップS33-4。この例では、分割割合候補320:500に対応する経過時間ファイルをファイル名file3で示す。並列計算制御部120は、マスターノード20mにプログラムAの実行を停止させるステップS33-6。全ての分割割合で5ステップの処理区間の実行を終了すると、並列計算制御部120は、分割割合評価プログラム50を外部記憶装置130からメモリユニット12に読み込んで、分割割合評価プログラム50に従って、外部記憶装置130に格納された経過時間ファイル42file1、file2、及びfile3に記録されている時間t1、t2、及びt3を評価して最適な分割割合を決定するステップS34。経過時間t1、t2、及びt3のうち最も短い時間を示す分割割合を最適な分割割合として決定してもよい。或いは、経過時間t1、t2、及びt3から最適な分割割合を予測してもよい。この場合、評価のために実行した分割割合候補1から3以外の分割割合となることもある。分割割合評価プログラム50は、例えば、evaluatedivfile1file2file3file4であり、評価した結果は評価結果ファイル52ファイル名file4に出力される。そして、並列計算制御部120は、次元軸毎に出力された最適な分割割合を評価結果ファイル52file4から取得する。この例では、2次元であるので、n1optawkprint1file4n2optawkprint2file4のようなプログラムを実行することにより、次元軸毎の最適な分割割合を取得することができる。並列計算制御部120は、ステップS34で決定した最適な分割割合を用いて、ステップS30で割り付けたノード20にプログラムA30を転送して、プログラムA30の本実行を行わせるステップS35。例えば、mpiexecn10000programAn1n1optn2n2optnstepunlimitのようなプログラム60によって、プログラムA30の本実行が、並列計算部200で行われる。終了条件所定時間経過、又は、定めたステップ数に達したらプログラムA30の実行が終了となり、並列計算制御部120は、マスターノード20mから本実行の結果を取得し、外部記憶領域130に格納した後、この第1並列計算処理を終了する。ノード20での処理を図5で説明する。図5は、ノード20で行われる処理を説明するための図である。図5において、ノード20は、フロントエンド計算装置100から転送されたプログラムA30を外部記憶装置22に格納する。外部記憶装置22に格納されたプログラムA30を実行してシミュレーションが行われる。ノード20は、シミュレーションを行うための前処理を行いステップS71、収束判定の必要な処理核心部を実行するステップS72。前処理とは、プログラムA30の初期設定に係る処理などを含む。初期設定では、フロントエンド計算装置100の並列計算制御部120から与えられる分割割合候補に従って配列の分割が行われる。そして、処理核心部から得た処理結果の収束判定を行うステップS73。処理結果が収束していないと判定した場合、ノード20は、パラメータを修正してステップS74、再度、ステップS72を実行する。そして、処理結果が収束したと判定した場合、ノード20は、この処理を終了する。ノード20は、収束結果をフロントエンド計算装置100へ転送する。この際、スレーブノード20の処理結果はマスターノード20mで集約され、マスターノード20mがフロントエンド計算装置100へ転送するようにする。ステップS72、S73、及びS74が繰り返し部分であり、1ステップ処理区間に相当する。図6から図8は、第1並列計算処理における処理フローを説明するための図である。図6から図8で示す手順によって一連の処理フローが示されている。この処理フローでは、図4に示す評価用データ32の例で説明する。図6を参照すると、開始処理の手順1において、外部記憶装置130から実行シェルプログラムファイル40がフロントエンド計算装置100に読み込まれ、読み込み順プログラム40a、40b、及び40cの順にプログラムが実行される。分割割合候補1でプログラム40aが実行される手順2について、前半部を手順21で後半部を手順22で説明する。手順21において、分割割合候補110:1000に基づいて、並列計算部200の全ノード20のうち、並列計算制御部120によって10、000ノードが確保される。次に、マスターノード20mにプログラムA30が転送され外部記憶装置22に格納される。そして、マスターノード20mからスレーブノード20が起動されることにより、分割割合候補110:1000で分割された10、000ノードにおける各ノード20で、プログラムA30において処理区間の5ステップが実行される。手順22において、マスターノード20mが、分割割合分割割合候補110:1000と、プログラムA30を10、000ノードで5ステップ実行した経過時間前処理の実行時間を含まないと経過時間ファイル42file1に書き出し、経過時間ファイル42file1は外部記憶装置22に格納される。そして、マスターノード20mは、外部記憶装置22から経過時間ファイル42file1をフロントエンド計算機100に転送する。フロントエンド計算機100は、転送された経過時間ファイル42file1を外部記憶装置130に格納する。図7の手順3において、フロントエンド計算機100の並列計算制御部120によって次のプログラム40bが実行される。分割割合候補2でプログラム40aが実行される手順3について、前半部を手順31で後半部を手順32で説明する。手順31において、分割割合候補2100:100に基づいて、並列計算部200の全ノード20のうち、並列計算制御部120によって10、000ノードが確保される。次に、マスターノード20mにプログラムA30が転送され外部記憶装置22に格納される。そして、マスターノード20mからスレーブノード20が起動されることにより、分割割合候補2100:100で分割された10、000ノードにおける各ノード20で、プログラムA30において処理区間の5ステップが実行される。手順32において、マスターノード20mが、分割割合分割割合候補2100:100と、プログラムA30を10、000ノードで5ステップ実行した経過時間前処理の実行時間を含まないと経過時間ファイル42file2に書き出し、経過時間ファイル42file2は外部記憶装置22に格納される。そして、マスターノード20mは、外部記憶装置22から経過時間ファイル42file2をフロントエンド計算機100に転送する。フロントエンド計算機100は、転送された経過時間ファイル42file2を外部記憶装置130に格納する。図8の手順4において、フロントエンド計算機100の並列計算制御部120によって次のプログラム40cが実行される。分割割合候補3でプログラム40aが実行される手順4について、前半部を手順41で後半部を手順42で説明する。手順41において、分割割合候補320:500に基づいて、並列計算部200の全ノード20のうち、並列計算制御部120によって10、000ノードが確保される。次に、マスターノード20mにプログラムA30が転送され外部記憶装置22に格納される。そして、マスターノード20mからスレーブノード20が起動されることにより、分割割合候補320:500で分割された10、000ノードにおける各ノード20で、プログラムA30において処理区間の5ステップが実行される。手順42において、マスターノード20mが、分割割合分割割合候補320:500と、プログラムA30を10、000ノードで5ステップ実行した経過時間前処理の実行時間を含まないと経過時間ファイル42file3に書き出し、経過時間ファイル42file3は外部記憶装置22に格納される。そして、マスターノード20mは、外部記憶装置22から経過時間ファイル42file3をフロントエンド計算機100に転送する。フロントエンド計算機100は、転送された経過時間ファイル42file3を外部記憶装置130に格納する。図9の分割割合を評価する手順5において、並列計算制御部120は、分割割合評価プログラム50を外部記憶装置130から読み込んで実行することによって、経過時間ファイル42のfile1、file2、及びfile3の各々に記録されている分割割合n1,n2と経過時間との関係から最も効率的と考えられる最適な分割割合n1,n2を予測し、評価結果ファイル52file4に記録する。分割割合n1,n2は、2次元の分割を示し、n1は1次元目の分割数、n2は2次元目の分割数を示す。全分割数nは、n1×n2となる。手順5にて、前述した手順2、3、及び4で確保している並列計算部200の10、000ノードは確保したままである。最適な分割割合で実行する手順6において、並列計算制御部120は、手順2、3、及び4で確保している並列計算部200の10、000ノードに、プログラムAを所定の回数を実行させる。終了処理を行う手順7において、マスターノード20mによって、プログラムA30の実行による計算結果を含む計算結果ファイル48fileA、及びログファイル49logが、フロントエンド計算装置100に転送され、外部記憶装置130に格納される。次に、並列計算制御部120によって行われる第2並列計算処理について図10から図14で説明する。図10は、第2並列計算処理の一例を説明するためのフローチャート図である。図10において、並列計算制御部120は、実行シェルプログラム40を外部記憶装置130から読み込んで、マスターノード20mを介して割り付けたノード20にプログラムA30を実行させる。評価用プログラム34を含むプログラムA30と評価用ファイル45ファイル名file5とが、並列計算制御部120によってマスターノード20mに転送される。評価用プログラム34は、候補毎に、分割割合候補と評価ステップ数に基づいて評価を行うプログラムである。評価用ファイル45ファイル名file5には、評価用データ32が含まれている。この例では、11:1000、210:1000、及び325:40が2軸分割の候補として指定される。また、評価ステップ数には、評価するための5ステップが指定される。マスターノード20mの制御によりプログラムA30が実行され、以降、プログラムA30によって評価用プログラム34を含めた第2並列計算処理が実行される。ステップS51からS55までの処理が評価用プログラム34による処理に相当する。マスターノード20mのプログラムA30は、評価用ファイル45file5内の最初の分割割合候補に従って1から5ステップ目までの処理を実行するステップS51。ステップS51において、マスターノード20mのプログラムA30は、フロントエンド計算装置100から転送され外部記憶装置22に格納した評価用ファイル45file5から最初の分割割合候補11:1000を取得して、分割割合を1:1000に設定するステップS51-2。マスターノード20mのプログラムA30は、割り付けられたスレーブノード20にプログラムA30の繰り返し部分において1ステップから5ステップまでを実行させると共に、自身も1ステップから5ステップまでを実行し、経過時間t1を測定し、外部記憶装置22内の経過時間ファイル42に分割割合候補11:1000と経過時間t1の値とを保存するステップS51-4。マスターノード20mのプログラムA30は、評価用ファイル45file5内の次の分割割合候補に従って6から10ステップ目までの処理を実行するステップS52。ステップS52において、マスターノード20mのプログラムA30は、外部記憶装置22に格納されている評価用ファイル45file5から次の分割割合候補210:100を取得して、分割割合を10:100に設定するステップS52-2。マスターノード20mのプログラムA30は、割り付けられたスレーブノード20にプログラムA30の繰り返し部分において6ステップから10ステップまで実行させると共に、自身も6ステップから10ステップまで実行し、経過時間t2を測定し、外部記憶装置22内の経過時間ファイル42に分割割合候補210:100と経過時間t2の値とを保存するステップS52-4。マスターノード20mのプログラムA30は、評価用ファイル45file5内の次の分割割合候補に従って11から15ステップ目までの処理を実行するステップS53。ステップS53において、マスターノード20mのプログラムA30は、外部記憶装置22に格納されている評価用ファイル45file5から次の分割割合候補325:40を取得して、分割割合を25:40に設定するステップS53-2。マスターノード20mのプログラムA30は、割り付けられたスレーブノード20にプログラムA30の繰り返し部分において11ステップから15ステップまで実行させると共に、自身も11ステップから15ステップまで実行し、経過時間t3を測定し、外部記憶装置22内の経過時間ファイル42に分割割合候補325:40と経過時間t3の値とを保存するステップS53-4。マスターノード20mで実行されているプログラムA30は、マスターノード20mの外部記憶装置22に格納されている経過時間ファイル42から、評価のために実行した3タイプの分割割合と、各分割割合に対応する経過時間t1、t2、及びt3から最適な分割割合を決定するステップS54。経過時間t1、t2、及びt3のうち最も短い時間を示す分割割合を最適な分割割合として決定してもよい。或いは、経過時間t1、t2、及びt3から最適な分割割合を予測してもよい。この場合、評価のために実行した分割割合候補1から3以外の分割割合となることもある。マスターノード20mのプログラムA30は、ステップS54で決定した最適な分割割合に従って配列分割形状を変更してステップS55、16ステップ目から終了条件を満たすまで実行するステップS56。そして、マスターノード20mは、第2並列計算処理を終了する。図11から図14は、第2並列計算処理における処理フローを説明するための図である。図11から図14で示す手順によって一連の処理フローが示されている。この処理フローでは、図10に示す評価用データ32の例で説明する。図11を参照すると、手順1において、外部記憶装置130から実行シェルプログラムファイル40がフロントエンド計算装置100に読み込まれ、並列計算部200のマスターノード20mに対してプログラムA30の実行が指示される。プログラムA30と評価用ファイル45file5とがマスターノード20mの外部記憶装置22に転送される。1から5ステップ目までを実行する手順2について、前半部を手順21で後半部を手順22で説明する。手順21において、マスターノード20mは、フロントエンド計算装置100の外部記憶装置130から転送されたプログラムA30を実行する。マスターノード20mのプロセッサ5によって実行されたプログラムA30は、外部記憶装置22に格納されている評価用ファイル45file5から最初の分割割合候補11:1000に従って並列計算部200の1、000ノードを割り付けて分割する。マスターノード20mからスレーブノード20を起動し、各スレーブノード上でもプログラムA30を1から5ステップ目まで実行させる。手順22において、マスターノード20mは、1から5ステップ目までの前処理の実行時間を含まない経過時間の値を外部記憶装置22の経過時間ファイル42に保存する。図12の6から10ステップ目までを実行する手順3について、前半部を手順31で後半部を手順32で説明する。手順31において、マスターノード20mのプロセッサ5によって実行されたプログラムA30は、外部記憶装置22に格納されている評価用ファイル45file5から次の分割割合候補210:100を取得する。プログラムA30は、分割割合候補210:100に従って配列を再分割する。そして、マスターノード20mとスレーブノード20とで、6から10ステップ目までが実行される。手順32において、マスターノード20mは、6から10ステップ目までの前処理の実行時間を含まない経過時間の値を外部記憶装置22の経過時間ファイル42に保存する。図13の11から15ステップ目までを実行する手順4について、前半部を手順41で後半部を手順42で説明する。手順41において、マスターノード20mのプロセッサ5によって実行されたプログラムA30は、外部記憶装置22に格納されている評価用ファイル45file5から3番目の分割割合候補325:40を取得する。プログラムA30は、分割割合候補325:40に従って配列を再分割する。そして、マスターノード20mとスレーブノード20とで、11から15ステップ目までが実行される。手順42において、マスターノード20mは、11から15ステップ目までの前処理の実行時間を含まない経過時間の値を外部記憶装置22の経過時間ファイル42に保存する。図14の分割割合を評価する手順5において、マスターノード20mのプロセッサ5によって実行されているプログラムAが外部記憶装置22内に格納されている経過時間ファイル42file5に記憶されている分割割合候補1、2、及び3の夫々に対応する経過時間の関係から最適な分割割合n1及びn2の組み合せを予測計算して決定し、その値をスレーブノード20に転送する。最適な分割割合で16ステップ目から実行する手順6において、プログラムAが、最適な分割割合n1及びn2の値に従って配列を再分割して、16ステップ目から実行する。終了処理を行う手順7において、マスターノード20mによって、プログラムAの実行による計算結果を含む計算結果ファイル48fileA、及びログファイル49logが、フロントエンド計算装置100に転送され、外部記憶装置130に格納される。第1並列計算処理では、分割割合候補毎に1ステップ目から5ステップ目までを処理し、また、決定した最適な分割割合を用いて、1ステップ目から5ステップ目までを処理するものである。一方、第2並列計算処理では、分割割合候補で実行したステップで得られた処理結果を無駄にすることがないため、並列処理を効率的に行うことができる。また、第1並列計算処理は、第2並列計算処理と比べると、プログラムA30自体の修正箇所が少ないという利点がある。第1及び第2並列計算処理において、並列計算部200の全ノード空間において割り当てられたノード空間を変えることなく、最適な分割割合の予測と本計算又は、残りの計算の大部分を実行することができるので、予測が正確である。また、分割割合候補に従って順に分割割合を変え、最適な分割割合を探索する際に、プログラムの終了及び開始を繰り返さなくても実現できるため、計算時間を無駄にすることがない。上述した処理に加えて、予測値に従って分割割合を決定したあとも経過時間計算時間を追跡し、予測時間と実時間が異なる場合又は、別の分割割合の予測時間の方が短いときには、実測値を用いて再度、最適な分割割合を決定し直すことも可能である。次に、図15及び図16で、本実施例に係る並列計算処理における配列の分割割当状況の変化について説明する。図15は、ノードに割り当てられた配列例を示す図である。図16は、ノードに割り当てられた配列の大きさを矩形で例示した図である。図15及び図16において、分割される配列Aの大きさは1:100、1:1000である。図15A及び図16Aは分割割合候補10:1000の場合を示す。図15B及び図16Bは分割割合候補100:100の場合を示す。図15C及び図16Cは分割割合候補20:500の場合を示す。例えば、分割割合候補10:1000、分割割合候補100:100、そして分割割合候補20:500の順で第1又は第2並列計算処理が行われた場合、ノードに割り当てられた配列の変化は、図15A、図15B、そして図15Cの順に変化する。また、ノードに割り当てられた配列の大きさの変化は、図16A、図16B、そして図16Cの順に変化する。図15Aの分割割合候補10:1000の場合では、例えば、ノード0のマスターノードに配列Aの1:10、1:1部分が割り当てられる。他ノードにも配列Aの部分が同様の大きさで順次割り当てられる。この分割割合候補10:1000の場合では、図16Aに例示される矩形により、各ノードにおいて、1次元方向に処理負荷が大きいことが示される。図15Bの分割割合候補100:100の場合では、例えば、ノード0のマスターノードに配列Aの1:1、1:10部分が割り当てられる。他ノードにも配列Aの部分が同様の大きさで順次割り当てられる。この分割割合候補100:100の場合では、図16Bに例示される矩形により、各ノードにおいて、2次元方向に処理負荷が大きいことが示される。図15Cの分割割合候補20:500の場合では、例えば、ノード0のマスターノードに配列Aの1:5、1:2部分が割り当てられる。他ノードにも配列Aの部分が同様の大きさで順次割り当てられる。この分割割合候補20:500の場合では、図16Cに例示される矩形により、各ノードにおいて、1次元方向及び2次元方向に均等な処理負荷であることが示される。このように、1次元方向及び2次元方向の処理の負荷を変化させた割り当てによって、定めされた処理区間のステップ数を試行することにより、最適な分割割合を予測することができる。本実施例における並列計算処理は、一定の処理を100回以上繰り返し行う大規模な並列処理による、シミュレーションプログラムの実行に適応することができる。例えば、各原子に働く力を計算し、そこからある時間間隔後の原子位置を計算し更新するという処理を繰り返すような古典的分子動力学法に基づくシミュレーションプログラム、或いは、電子状態の初期値を何らかの方法で与え、量子論に従ってそれを自己無撞着的に更新するというSCF処理を繰り返して電子状態を収束させる第一原理分子動力学法に基づくシミュレーションプログラム等に適応可能である。具体的には、分割軸が2以上あり、最適な分割割合が未決定で、ほぼ同じ内容の処理を100ステップ以上繰り返し、最適な分割割合を精度よく予測することが難しいプログラムである。第一原理分子動力学計算プログラムはそのようなプログラムの代表的な例である。波動関数Ψがエネルギーバンドの数だけあり、また各波動関数は基底関数例えば平面波で展開されているので、バンドと基底関数の係数のふたつの並列化軸分割軸を持つ。例えば、のように平面波で展開できる波動関数の場合、分割軸はiバンドとG平面波波数ベクトルである。上述した第1並列計算処理における実行シェルプログラム40及び分割割合評価プログラム50の内容は、下記のような内容となる。mpiexecn10000programAn110n21000nstep5file1mpiexecn10000programAn1100n2100nstep5file2mpiexecn10000programAn120n2500nstep5file3evaluatedivfile1file2file3file4n1optgrepn1file4awkprint2n2optgrepn2file4awkprint2mpiexecn10000programAn1n1optn2n2optnstepunlimitここで、file4の出力結果は次のようなものである。n125n2400従って、この数1の計算例では、最適な分割割合は25:400となる。また、他の計算例として、Ak,iをフーリエ変換してBj,iを求め、この自乗をiに関して和を算出する、がある。n=100、かつ、iで和をとる範囲は1から1000とする。この数2は、ノード間でネットワーク通信をする計算例であり、1次元目及び2次元目の方向のネットワーク通信が発生する。更に、他の計算例として、Ak,iに行列をかけて更新する、がある。この数3の計算例では、2次元目の方向のネットワーク通信は発生しない。本実施例における並列計算処理では、数1、数2、又は数3のような計算式を含むシミュレーションプログラムプログラムA30又は30そのものを2以上の分割割合候補毎に実行させて最適な分割割合を決定するため、全体の計算時間に占める割合における一定期間の演算効率の測定であっても、全体の演算効率を精度良く予測することができる。ひとつのシミュレーションジョブの中で、処理を割り付けられると共に、ネットワーク6を介して相互に通信する複数のノードでなるノード空間を変更することなく、最適な分割割合を決定して本計算するため、ネットワーク空間上のノード配置の違いによる予測精度の乱れなどの問題を改善することができる。本実施例では、最適な分割割合を探るための複数回の予備計算を行うという非本質的な作業を必要としない。従って、ユーザは複数回の予備計算を行うための計算プログラムを開発する負担を削減することができる。また、上述では、分割割合候補を3つとした例で説明したが、より多くの候補を用いて試行して最適な分割割合を予測するようにしてもよい。本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。以上の実施例を含む実施形態に関し、更に以下の付記を開示する。付記1並列処理を行うノード空間の複数の分割軸に対する分割割合を変更してシミュレーションプログラムを試行し、該分割割合毎に経過時間を取得して記憶部に保存する試行手段と、前記記憶部に保存された前記経過時間の比較によって最適な分割割合を決定する決定手段と、前記ノード空間の分割割合を前記決定手段によって決定された前記最適な分割割合に設定して、前記シミュレーションプログラムを本実行する本実行手段とを有することを特徴とする並列処理最適化装置。付記2前記試行手段は、前記シミュレーションプログラムの初期設定時に前記分割割合に従って該シミュレーションプログラムに係る配列を分割することを特徴とする付記1記載の並列処理最適化装置。付記3前記試行手段は、異なる分割割合を指定した実行シェルプログラムを実行することによって、該分割割合を変更することを特徴とする付記1又は2記載の並列処理最適化装置。付記4前記試行手段は、前記シミュレーションプログラムの繰り返しの処理区間毎に前記分割割合を動的に変更しつつ継続して前記シミュレーションプログラムを試行し、前記本実行手段は、前記試行手段から継続して前記シミュレーションプログラムを本実行することを特徴とする付記1記載の並列処理最適化装置。付記5前記最適な分割割合による本実行において、各処理区間の計算時間を計測し、予測時間との誤差が所定値以上となる場合には、再度最適化することを特徴とする付記4記載の並列処理最適化装置。付記6並列処理を行うノード空間でシミュレーションプログラムであって、前記シミュレーションの実行中、繰り返しの処理区間毎に、前記ノード空間の複数の分割軸に対する分割割合を動的に変更しつつ該実行を継続して試行し、前記分割割合毎に経過時間を取得して記憶部に保存し、前記記憶部に保存された前記経過時間の比較によって最適な分割割合を決定し、前記ノード空間の分割割合を前記決定された最適な分割割合に設定して、継続して本実行されるようにしたことを特徴とするプロセッサによって実行されるシミュレーションプログラム。付記7並列処理を行うノード空間の複数の分割軸に対する分割割合を変更してシミュレーションプログラムを試行し、分割割合毎に経過時間を取得して記憶部に保存し、前記記憶部に保存された前記経過時間の比較によって最適な分割割合を決定し、前記ノード空間の分割割合を前記決定された前記最適な分割割合に設定して、前記シミュレーションプログラムを本実行する並列処理最適化方法。"