(57)【要約】【課題】プロセッサからメモリにアクセスする性能に影響を与えることなく、メモリが消費する電力を大幅にかつ確実に低減する演算用ノードを提供する。【解決手段】制御用ノードによって送信されたユーザプログラムを実行する演算用ノードにおいて、演算用ノードは、ユーザプログラムを実行するために必要なメモリの容量を含むメッセージを受信すると、ユーザプログラムがメモリにロードされる前に、メモリコントローラによって、必要なメモリの容量に対応するメモリランクを、活性状態にすることを特徴とする演算用ノード。【選択図】図２
2008090395.tif 000002
【特許請求の範囲】
【請求項１】
制御用ノードと演算用ノードとを備える計算機システムであって、
前記制御用ノードは、演算処理をする第一プロセッサと、前記第一プロセッサに接続され、ユーザプログラムを記憶する記憶部と、他のノードに接続される第一インタフェースと、を備え、前記演算用ノードに実行させるユーザ演算プログラムを送信し、
前記演算用ノードは、演算処理をする第二プロセッサと、前記第二プロセッサに接続されるメモリと、前記第二プロセッサに接続され、前記制御用ノードに接続される第二インタフェースと、前記メモリに接続されるメモリコントローラと、を備え、前記制御用ノードによって送信ユーザ演算プログラムを実行し、
前記メモリの記憶領域は、前記メモリコントローラが独立に電力を制御可能な単位であるメモリランクに区分され、
前記メモリに供給される電力の状態は、前記メモリランク毎に、前記プロセッサから当該メモリランクに含まれる記憶領域にアクセスできる活性状態と、アクセスに遅延が生じる不活性状態とのいずれかに制御され、
前記第一プロセッサは、前記ユーザプログラムを実行するために必要なメモリの容量を含むメッセージを送信し、
前記第二プロセッサは、
前記第一プロセッサから送信されたメッセージを受信すると、
前記ユーザプログラムが前記メモリにロードされる前に、前記メモリコントローラによって、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にすることを特徴とする計算機システム。
【請求項２】
前記制御用ノードと前記演算用ノードとは同一の筐体に収納され、
前記第一インタフェースと前記第二インタフェースとが接続されることによって、前記制御用ノードと前記演算用ノードとが接続されることを特徴する請求項１に記載の計算機システム。
【請求項３】
前記制御用ノードと前記演算用ノードとは異なる筐体に収納され、
前記第一インタフェースと前記第二インタフェースとがネットワークを介して接続されることによって、前記制御用ノードと前記演算用ノードとが接続されることを特徴とする請求項１に記載の計算機システム。
【請求項４】
前記記憶部は、前記制御用ノードに備わるメモリの容量を示す情報を記憶し、
前記第一プロセッサは、前記メモリの容量を示す情報を参照し、前記メッセージの送信先を決定することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記メッセージは、前記ユーザプログラムを実行するために必要と推定されるメモリの容量の推定値、前記推定値を調整するための調整値、前記メモリの全てのメモリランクを前記活性状態にするか否かを示す情報、及び前記メモリが前記活性状態にされた後に前記ユーザプログラムが実行されるか否かを示す情報を含むことを特徴とする請求項１に記載の計算機システム。
【請求項６】
前記第二プロセッサは、全ての前記メモリランクを前記活性状態にする指令が含まれているメッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記メモリコントローラによって、前記全てのメモリランクを、前記活性状態にすることを特徴とする請求項１に記載の計算機システム。
【請求項７】
前記第二プロセッサは、前記ユーザプログラムに割り当てられる記憶領域が、複数のメモリランクに跨がって割り当てられる断片化を抑制することを特徴とする請求項１に記載の計算機システム。
【請求項８】
前記第二プロセッサは、前記ユーザプログラムの実行を終了する場合、前記メモリコントローラによって、前記ユーザプログラムによって使用されるために前記活性状態にされた前記メモリランクを、前記不活性状態にすることを特徴とする請求項１に記載の計算機システム。
【請求項９】
前記記憶部は、前記ユーザプログラムを実行するために必要と推定されるメモリの容量の推定値及び前記推定値を調整するための調整値を記憶し、
前記前記第一プロセッサから送信されるメッセージは、前記推定値及び前記調整値を含み、
前記第二プロセッサは、前記ユーザプログラムの実行を終了する場合、前記ユーザプログラムによって使用されるために実際に活性状態にされた前記メモリランクの容量の値と前記受信したメッセージに含まれる推定値との差分値に基づいて、前記記憶部に記憶される前記調整値を更新することを特徴とする請求項１に記載の計算機システム。
【請求項１０】
前記プロセッサは、一つ以上の前記メモリランクをまとめた電力ランクゾーン単位で、前記メモリを管理し、
前記記憶部は、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの数、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの優先順位、及び優先して前記活性状態にされるメモリランクが属する電力ランクゾーンのポリシを記憶することを特徴とする請求項１に記載の計算機システム。
【請求項１１】
前記プロセッサは、一つ以上の前記メモリランクをまとめた電力ランクゾーン単位で、前記メモリを管理し、
前記第一プロセッサから送信されるメッセージは、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの数、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの優先順位、及び優先して前記活性状態にされるメモリランクが属する電力ランクゾーンのポリシの少なくとも一つをさらに含み、
前記第二プロセッサは、前記メッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記受信したメッセージに含まれる前記電力ランクの数、前記電力ランクゾーンの優先順位及び前記電力ランクゾーンのポリシの少なくとも一つに基づいて、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にすることを特徴とする請求項１に記載の計算機システム。
【請求項１２】
演算処理をするプロセッサと、前記プロセッサに接続される記憶領域であるメモリと、制御用ノードに接続されるインタフェースと、前記メモリに接続されるメモリコントローラと、を備え、前記制御用ノードによって送信されたユーザプログラムを実行する演算用ノードにおいて、
前記メモリの記憶領域は、前記メモリコントローラが独立に電力を制御可能な単位であるメモリランクに区分され、
前記メモリに供給される電力の状態は、前記メモリランク毎に、前記プロセッサから当該メモリランクに含まれる記憶領域にアクセスできる活性状態と、アクセスに遅延が生じる不活性状態とのいずれかに制御され、
前記プロセッサは、前記ユーザプログラムを実行するために必要なメモリの容量を含むメッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記メモリコントローラによって、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にすることを特徴とする演算用ノード。
【請求項１３】
前記プロセッサは、全ての前記メモリランクを前記活性状態にする指令が含まれているメッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記メモリコントローラによって、前記全てのメモリランクを、前記活性状態にすることを特徴とする請求項１２に記載の演算用ノード。
【請求項１４】
前記プロセッサは、前記ユーザプログラムに割り当てられる記憶領域が、複数のメモリランクに跨がって割り当てられる断片化を抑制することを特徴とする請求項１２に記載の演算用ノード。
【請求項１５】
前記プロセッサは、前記ユーザプログラムの実行を終了する場合、前記メモリコントローラによって、前記ユーザプログラムによって使用されるために活性状態にされた前記メモリランクを、前記不活性状態にすることを特徴とする請求項１２に記載の演算用ノード。
【請求項１６】
前記制御用ノードに備わる記憶部は、前記ユーザプログラムを実行するために必要と推定されるメモリの容量の推定値及び前記推定値を調整するための調整値を記憶し、
前記プロセッサは、前記推定値及び前記調整値を含むメッセージを受信すると、前記ユーザプログラムの実行を終了する場合、前記ユーザプログラムによって使用されるために実際に活性状態にされた前記メモリランクの容量の値と前記受信したメッセージに含まれる推定値との差分値に基づいて、前記記憶部に記憶される前記調整値を更新することを特徴とする請求項１２に記載の演算用ノード。
【請求項１７】
前記プロセッサは、一つ以上の前記メモリランクをまとめた電力ランクゾーン単位で、前記メモリを管理し、
前記プロセッサが受信するメッセージは、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの数、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの優先順位、及び優先して前記活性状態にされるメモリランクが属する電力ランクゾーンのポリシの少なくとも一つをさらに含み、
前記プロセッサは、前記メッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記受信したメッセージに含まれる前記電力ランクの数、前記電力ランクゾーンの優先順位及び前記電力ランクゾーンのポリシの少なくとも一つに基づいて、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にすることを特徴とする請求項１２に記載の演算用ノード。
【請求項１８】
制御用ノードによって送信されたユーザプログラムを実行する演算用ノードにおいて実行されるプログラムであって、
前記演算用ノードは、演算処理をするプロセッサと、前記プロセッサに接続される記憶領域であるメモリと、前記制御用ノードに接続されるインタフェースと、前記メモリに接続されるメモリコントローラと、を備え、
前記メモリの記憶領域は、前記メモリコントローラが独立に電力を制御可能な単位であるメモリランクに区分され、
前記プログラムは、
前記メモリに供給される電力の状態は、前記メモリランク毎に、前記プロセッサから当該メモリランクに含まれる記憶領域にアクセスできる活性状態と、アクセスに遅延が生じる不活性状態とのいずれかに制御させ、
前記ユーザプログラムを実行するために必要なメモリの容量を含むメッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記メモリコントローラによって、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にさせることを特徴とするプログラム。
【請求項１９】
前記プログラムは、前記ユーザプログラムを実行するために必要と推定されるメモリの容量の推定値及び前記推定値を調整するための調整値を含むメッセージを受信すると、前記ユーザプログラムの実行を終了する場合、前記ユーザプログラムによって使用されるために実際に活性状態にされた前記メモリランクの容量の値と前記受信したメッセージに含まれる推定値との差分値に基づいて、前記記憶部に記憶される前記調整値を更新させることを特徴とする請求項１８に記載のプログラム。
【請求項２０】
前記メッセージは、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの数、優先して前記活性状態にされるメモリランクが属する電力ランクゾーンの優先順位、及び優先して前記活性状態にされるメモリランクが属する電力ランクゾーンのポリシの少なくとも一つをさらに含み、
前記プログラムは、
一つ以上の前記メモリランクをまとめた電力ランクゾーン単位で、前記メモリを管理させ、
前記メッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記電力ランクの数、前記電力ランクゾーンの優先順位及び前記電力ランクゾーンのポリシの少なくとも一つに基づいて、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にさせることを特徴とする請求項１８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムのメモリ管理およびプロセス管理方法に関し、特に、プログラム実行及びプロセス管理を考慮しつつ主記憶装置の消費電力を低減する方法に関する。
【背景技術】
【０００２】
一般の計算機システムでは、計算機システムに備わるハードウェアが動作することによって、電力が消費される。ハードウェアは、例えば、処理装置（プロセッサ）、主記憶装置（メモリ）、二次記憶装置及び入出力装置等である。
【０００３】
計算機システムが大量に電力を消費する場合に、計算機システムには、同時に大量の熱が発生する。このため、計算機システムで発生した熱を除去するための冷却設備が設置されなくてはならない。
【０００４】
計算機システムが消費する電力のコストの他に、冷却設備に関するコストもかかる。このため、計算機システムが消費する電力と計算機システムの性能と考慮した計算機システムの設計が求められている。なお、ハードウェアが動作することによって、消費される電力を低減させることは、バッテリの容量を節約する観点から、組み込み機器等においても重要である。
【０００５】
計算機システムに備わる主記憶装置は、一般に電力を大量に消費するハードウェアの一つである。例えば、大規模計算機システム及び超並列計算機システム等の計算機システムは、膨大な容量の主記憶装置を備える。よって、計算機システムに備わる全ハードウェアが消費する電力のうち主記憶装置が消費する電力の割合が大きくなる。
【０００６】
また、今日では、計算機サーバ、パーソナルコンピュータ及び組み込み機器に備わる主記憶装置の容量も増加しつつある。
【０００７】
今日、プロセッサ及び周辺機器が消費する電力を低減させる制御は盛んである。しかし、主記憶装置が消費する電力を低減させる制御は、盛んではない。今後、主記憶装置が消費する電力も低減させなくてはならない。
【０００８】
一般に、主記憶装置は、プロセッサが処理を実行するための命令及びデータ等を記憶する。具体的には、プロセッサは、二次記憶装置に記憶されるオペレーティングシステム（以下、ＯＳという）及びアプリケーションソフトウェア等を主記憶装置にロードする。
【０００９】
そして、プロセッサは、主記憶装置にロードされたＯＳ及びアプリケーションソフトウェア等に含まれる命令を取り出し、処理を実行する。このとき、プロセッサが計算処理を実行する際に必要なデータ、計算処理によるデータ、計算処理の実行結果を記憶する手段としても主記憶装置は利用される。
【００１０】
プロセッサによって処理が実行されるために必要な命令及びデータ等は、二次記憶装置から主記憶装置に必ずしもロードされなくともよい。例えば、計算機システムに備わる複数の計算機がネットワークによって、相互に接続されている場合、プロセッサによって処理が実行されるために必要な命令及びデータ等は、ネットワークを介して、主記憶装置に記憶される。また、計算機システムに備わる計算機が高速入出力装置によって相互に接続される場合、プロセッサによって処理が実行されるために必要な命令及びデータ等は、高速入出力装置を介して、主記憶装置に記憶される。
【００１１】
計算機システムにおける主記憶装置の電力モードは、キャパシタに電荷を蓄えるか否かによってデータを記録する。具体的には、キャパシタが電荷を蓄えている場合には、“１”を記憶し、キャパシタが電荷を蓄えていない場合には、“０”を記憶する。そして、主記憶装置に記憶されたデータを維持するための操作（リフレッシュ）がされなければならない。
【００１２】
また、主記憶装置は、通常、複数の電力制御管理モードを有する。主記憶装置は、メモリコントローラ等を介して制御モードを遷移できる。例えば、主記記憶装置は、通常モードから低電力モードに遷移できる。低電力モードでは、通常モード時と比べて、主記憶装置が消費する電力は、低くなるが、プロセッサから主記憶装置へのアクセス速度性能が低下する。なお、例えば、主記憶装置には、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及びＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が利用される。
【００１３】
また、主記憶装置に区分されるメモリランク単位で主記憶装置の電力モードがメモリコントローラによって切り替えられる。なお、メモリランクは、メモリコントローラが独立に電力を制御可能な単位である。
【００１４】
計算機システムが消費する電力を低減させる技術としては、メモリコントローラが論理／物理アドレス変換テーブルを含み、メモリコントローラは、使用されているメモリの領域を任意のメモリデバイスに集約するための変換テーブルを操作する。又は、オペレーティングシステムは、未使用のメモリリストをメモリデバイスごとに管理し、未使用のメモリが少ない（メモリの使用度が高い）メモリデバイスからメモリを割り当てる。これによって、メモリコントローラは、未使用のメモリデバイスの電力モードを低電力モードに切り替える（例えば、特許文献１参照）。
【００１５】
また、データが記憶されたメモリデバイスのみが周期的にリフレッシュされ、メモリデバイスが消費する電力を低減させる技術が知られている（例えば、特許文献２参照）。
【００１６】
また、並列計算機システムにおいて、当該計算機システムに発生する熱に関する問題を解消する観点及び省エネルギ化の観点から、温度センサによって検出された温度情報に基づいて、温度分布情報が作成される。そして、作成された温度分布情報に基づいて並列計算機システムに備わる各計算機へのジョブスケジュールングを実施する方法が知られている（例えば、特許文献３参照）。
【００１７】
一方、プロセッサが消費する電力を低減させる技術において、演算回路を操作する命令が先行して検出され、その操作対象となる演算回路が先行して活性化される。そして、演算回路によって演算が終了した後、活性化された演算回路が不活性化される技術が知られている（例えば、特許文献４参照）。
【特許文献１】米国特許第６９５４８３７号明細書
【特許文献２】米国特許第６２１５７１４号明細書
【特許文献３】特開２００４−１２６９６８号公報
【特許文献４】特開２００５−２３５２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
従来技術は、計算機に備わるプロセッサが消費する電力を低減させる技術がほとんどである。一方、計算機に備わるハードウェアが消費する電力を低減させるために、主記憶装置はほとんど制御されていなかった。
【００１９】
例えば、特許文献４に記載された技術は、プロセッサに備わる演算回路が消費する電力を低減させる技術である。
【００２０】
特許文献１及び特許文献２に記載された技術は、主記憶装置が消費する電力を低減化する制御をハードウェアレベルで実行する技術である。一般に、物理メモリ資源は、基本システムソフトウェア（オペレーティングシステム等）によって、直接管理される。さらに、基本システムソフトウェアは、物理メモリ資源を利用するプロセスを制御し、物理メモリ資源を利用するプロセスを管理する。
【００２１】
よって、実用上、基本システムソフトウェアと連携しないで、ハードウェアレベルのみで、メモリが消費する電力を有効に低減させることは困難である。
【００２２】
なお、基本システムソフトウェアと連携した場合でも、単純にメモリデバイス全体が未使用であればメモリデバイスの電力が遮断され、使用される頻度の高いメモリデバイスがプログラムに割り当てられる方式では、使用されるメモリの領域が断片化してしまう。なお、オペレーティングシステム等によってメモリが管理される場合、この使用されるメモリの領域の断片化は必至である。
【００２３】
複数の計算機が相互にネットワーク又は高速入出力装置によって接続され、複数の計算機が並列的に処理を実行する並列計算機システムがある。この並列計算機システムでは、基本システムソフトウェアは、プログラム、計算ジョブ又はプロセス等を実行させたい計算機に割り当てる。よって、並列計算機システムの場合では、主記憶装置が消費する電力を低減させるために、基本システムソフトウェアとの連携が不可欠となる。
【００２４】
また、メモリによって消費される電力が低い電力モードから、メモリに書き込み／読み込み可能な通常の電力モード状態へ切り替える場合に、プロセッサからメモリへのアクセスに遅延（レイテンシ）が発生する。このため、プロセッサからメモリへのアクセスの性能が低下してしまう課題がある。
【００２５】
特許文献１に記載された技術では、使用される頻度の高いメモリデバイスから実行されるプログラムに割り当てられ、未使用のメモリデバイスが消費する電力は低減できる。しかし、計算機システムの動作が継続すると、メモリデバイスの使用される領域が断片化する。
【００２６】
また、特許文献１に記載された技術は、単一の計算機ノードから構成される計算機システムを対象とする技術である。よって、特許文献１に記載された技術は、ネットワーク接続又は高速入出力装置で相互接続された複数の計算機ノードを備える並列計算機システムに対応できない。
【００２７】
特に、特許文献１に記載された技術では、複数の計算機ノード間で、プログラム、計算ジョブ又はプロセス等が実行される計算機ノードに割り当てられる場合等を考慮した主記憶装置が消費する電力を低減させることはできない。また、特許文献１に記載された技術では、メモリの電力モードが切り替えられることによって生じるレイテンシが隠蔽できない。
【００２８】
一方、特許文献２に記載された技術では、使用されているメモリデバイスに記憶されたデータを維持するために、そのメモリデバイスの電力モードを消費される電力が少ないリフレッシュモードに切り替える。これによって、メモリデバイスが消費する電力が低減できる。
【００２９】
なお、各プログラムによって使用されている領域が複数のメモリデバイスに断片化してしまう。この場合、特許文献２に記載された技術では、メモリデバイスの電力モードをリフレッシュモードに切り替えることができない。よって、主記憶装置が消費する電力を低減させる確実性が低い。
【００３０】
また、特許文献２に記載された技術では、複数の計算機ノード間で、プログラム、計算ジョブ又はプロセス等が実行される計算機ノードに割り当てられる場合等を考慮した主記憶装置が消費する電力を低減させることはできない。また、特許文献２に記載された技術では、メモリの電力モードが切り替えられることによって生じるレイテンシが隠蔽できない。
【００３１】
特許文献３に記載されている技術では、並列計算機システムの温度の分布が均一になるように、計算ジョブをスケジューリングする。これによって、熱密度が増大することによって発生するシステム障害が回避できる。しかし、並列計算機システムに備わるハードウェア全体（主記憶装置も含む）が消費する電力を低減する技術ではない。
【課題を解決するための手段】
【００３２】
本発明の代表的な一形態によると、演算処理をする第一プロセッサと、前記第一プロセッサに接続され、ユーザプログラムを記憶する記憶部と、他のノードに接続される第一インタフェースと、を備える制御用ノードと、演算処理をする第二プロセッサと、前記第二プロセッサに接続されるメモリと、前記第二プロセッサに接続され、前記制御用ノードに接続される第二インタフェースと、前記メモリに接続されるメモリコントローラと、を備える演算用ノードと、を備える計算機システムであって、前記演算用ノードは、前記制御用ノードによって送信されたユーザ演算プログラムを実行し、前記メモリの記憶領域は、前記メモリコントローラが独立に電力を制御可能な単位であるメモリランクに区分され、前記メモリに供給される電力の状態は、前記メモリランク毎に、前記プロセッサから当該メモリランクに含まれる記憶領域にアクセスできる活性状態と、アクセスに遅延が生じる不活性状態とのいずれかに制御され、前記第一プロセッサは、前記ユーザプログラムを実行するために必要なメモリの容量を含むメッセージを送信し、前記第二プロセッサは、前記第一プロセッサからメッセージを受信すると、前記ユーザプログラムが前記メモリにロードされる前に、前記メモリコントローラによって、前記必要なメモリの容量に対応する前記メモリランクを、前記活性状態にすることを特徴とする。
【発明の効果】
【００３３】
本発明の一形態によると、プロセッサからメモリにアクセスする性能に影響を与えることなく、メモリが消費する電力を大幅にかつ確実に低減できる。
【発明を実施するための最良の形態】
【００３４】
（第１の実施形態）
本発明の第１の実施形態を図１〜図１４を用いて説明する。
【００３５】
図１は、本発明の第１の実施形態における計算機システムの構成を示す図である。
【００３６】
第１の実施形態の計算機システムは、制御用計算機１０００及び演算用計算機１００１を備える。制御用計算機１０００及び演算用計算機１００１のハードウェア構成は、同じであるので、制御用計算機１０００のハードウェア構成を例に説明する。
【００３７】
制御用計算機１０００は、プロセッサ（以下、ＣＰＵという）１０１０ａ〜１０１０ｎ（以下、ＣＰＵ１０１０ａ〜１０１０ｎを総称して、ＣＰＵ１０１０という）、メモリコントローラ１０２０ａ〜１０２０ｎ（以下、メモリコントローラ１０２０ａ〜１０２０ｎを総称して、メモリコントローラ１０２０という）、メモリ１０３０ａ〜１０３０ｎ（以下、メモリ１０３０ａ〜１０３０ｎを総称してメモリ１０３０という）、システムＲＯＭ１０９０、ビデオアダプタ１１００、ネットワークインタフェース１１１０ａ〜１１１０ｎ（以下、ネットワークインタフェース１１１０ａ〜１１１０ｎを総称して、ネットワークインタフェース１１１０という）、二次記憶装置インタフェース１１２０ａ〜１１２０ｎ（以下、二次記憶装置インタフェース１１２０ａ〜１１２０ｎを総称して、二次記憶装置インタフェース１１２０という）、入力装置インタフェース１１３０及び高速入出力装置１１４０を備える。これらは、システムバス１１５０によって、各々接続される。
【００３８】
なお、メモリ１０３０ａ〜メモリ１０３０ｉは、チャネル１０７０ａを介して、メモリコントローラ１０２０ａに接続される。メモリ１０３０ｍ〜メモリ１０３０ｎは、チャネル１０３０ｎを介して、メモリコントローラ１０２０ｎに接続される。
【００３９】
ＣＰＵ１０１０は、メモリ１０３０から各種プログラムをロードし、各種プログラムを実行する。メモリコントローラ１０２０は、メモリ１０３０を制御する。システムＲＯＭ１０９０には、ファームウェアが格納される。なお、ファームウェアは、制御用計算機１０００に備わるハードウェアの基本的なデータを含む。また、ファームウェアは、制御用計算機１０００に備わるハードウェアの基本的な制御を実行する。
【００４０】
メモリ１０３０には、ＣＰＵ１０１０が各種プログラムを実行するために必要なデータが一時的に格納される。また、メモリ１０３０には、各種プログラムが実行された後のデータ及び各種プログラムの実行結果のデータが一時的に格納される。
【００４１】
メモリ１０３０は、メモリランク１０３１に区分される。メモリランク１０３１は、メモリコントローラ１０２０が独立に電力を制御できる最小の単位である。例えば、メモリ１０３０ａは、メモリランク１０３１ａ〜メモリランク１０３１iに区分される。
【００４２】
メモリコントローラ１０２０は、メモリ１０３０にメモリアドレスを定義するアドレッシング機能、及びＣＰＵ１０１０によってアクセスされるメモリアクセス機能を、少なくとも備える。また、メモリコントローラ１０２０は、メモリ１０３０の電力を制御するために用いるインタフェースを備える。
【００４３】
制御用計算機１０００は、入力装置インタフェース１１３０を介して、キーボード１１７０及びマウス１１８０に接続される。制御用計算機１０００は、ビデオアダプタ１１００を介して、ディスプレイ１２００に接続される。制御用計算機１０００は、二次記憶装置インタフェース１１２０を介して、二次記憶装置１１６０ａ〜１１６０ｎ（以下、二次記憶装置１１６０ａ〜１１６０ｎを総称して、二次記憶装置１１６０という）に接続される。
【００４４】
制御用計算機１０００は、ネットワークインタフェース１１１０を介して、ネットワーク１１９０に接続される。そして、制御用計算機１０００は、ネットワーク１１９０を介して演算用計算機１００１に接続される。これによって、複数の計算機で演算を並列的に実行する並列計算機システムが構成される。
【００４５】
また、制御用計算機１０００は、高速入出力装置１１４０を介して演算用計算機１００１に接続されてもよい。
【００４６】
なお、演算用計算機１００１は、ボード形状であってもよい。なお、演算用計算機１００１がボード形状である場合、演算用計算機１００１は、ＣＰＵ１０１０、メモリコントローラ１０２０、メモリ１０３０、システムＲＯＭ１０９０及び高速入出力装置１１４０を備える。この場合、演算用計算機１００１に備わる高速入出力装置１１４０が制御用計算機１０００に備わる高速入出力装置１１４０に差し込まれることによって、演算用計算機１００１が制御用計算機１０００に接続される。なお、演算用計算機１００１がボード形状である場合の例としては、アクセラレータボードがある。
【００４７】
また、制御用計算機１０００が、ネットワーク１１９０を介して演算用計算機１００１と接続されること、及び高速入出力装置１１４０を介して演算用計算機１００１と接続されることによって、並列計算機システムが構成されてもよい。
【００４８】
また、制御用計算機１０００は、ネットワークインタフェース１１１０を介して、ネットワーク１２１０に接続される。そして、制御用計算機１０００は、ネットワーク１２１０を介して、遠隔地に配置される計算機１２２０に接続される。例えば、遠隔地にいるユーザが、計算機１２２０を利用して、並列計算機システムを管理できる。
【００４９】
なお、図１には、ＣＰＵ１０１０、メモリコントローラ１０２０、メモリ１０３０、ネットワークインタフェース１１１０及び二次記憶装置インタフェース１１２０が複数図示されるが、単数であってもよい。また、制御用計算機１０００及び演算用計算機１００１の数は、単数であっても複数であってもよいが、制御用計算機１０００は少なくとも一つ以上なければならない。
【００５０】
図２は、本発明の第１の実施形態の制御用計算機ノードソフトウェア２０００及び演算用計算機ノードソフトウェア２１００の構成を示す図である。
【００５１】
制御用計算機ノードソフトウェア２０００は、制御用計算機１０００によって実行される。また、演算用計算機ノードソフトウェア２１００は、演算用計算機１００１によって、実行される。
【００５２】
制御用計算機ノードソフトウェア２０００は、ユーザ演算プログラム２０１０をリモートプロセスとして演算用計算機１００１に実行させる機能、及びリモートプロセスを管理する機能を、少なくとも備える。演算用計算機ノードソフトウェア２１００は、制御用計算機ノードソフトウェア２０００によって割り当てられたリモートプロセスを実行する機能を少なくとも備える。
【００５３】
例えば、ユーザが演算用計算機１００１にリモートプロセスを高速に実行させたい場合、計算機システムに備わる制御用計算機１０００の数よりも、並列計算機システムに備わる演算用計算機１００１の数を多くするとよい。
【００５４】
まず、制御用計算機ノードソフトウェア２０００について説明する。
【００５５】
制御用計算機ノードソフトウェア２０００は、制御用計算機１０００に備わるメモリ１０３０にロードされ、制御用計算機１０００に備わるＣＰＵ１０１０によって実行される。制御用計算機ノードソフトウェア２０００は、ユーザ演算プログラム２０１０、ライブラリ２０２０、開発・インストールツール２０３０及び基本システムソフトウェア２０４０を含む。
【００５６】
ユーザ演算プログラム２０１０は、計算機システムを利用する利用者のアプリケーションプログラムである。ライブラリ２０２０は、ユーザ演算プログラム２０１０の一部として実行されるプログラムである。
【００５７】
開発・インストールツール２０３０は、ユーザ演算プログラム２０１０の開発に利用されるプログラムである。また、開発・インストールツール２０３０は、ユーザ演算プログラム２０１０のインストールに利用されるプログラムである。例えば、開発・インストールツール２０３０は、コンパイラ、リンカ及びファイルインストールプログラムである。
【００５８】
基本システムソフトウェア２０４０は、制御用計算機１０００に備わるハードウェアを管理する。また、基本システムソフトウェア２０４０は、利用者にソフトウェアインタフェースを提供する。例えば、基本システムソフトウェア２０４０は、オペレーティングシステム及びハイパーバイザである。
【００５９】
なお、制御用計算機ノードソフトウェア２０００は、制御用計算機１０００に接続される二次記憶装置１１６０に格納される。なお、二次記憶装置１１６０に障害が発生した場合を考慮し、制御用計算機ノードソフトウェア２０００は、複数台の二次記憶装置１１６０に格納されてもよい。また、制御用計算機ノードソフトウェア２０００は、制御用計算機１０００にネットワーク１２１０を介して接続される計算機１２２０によって、配布されてもよい。
【００６０】
また、制御用計算機ノードソフトウェア２０００は、演算用計算機１００１又は他の制御用計算機１０００に記憶されていてもよい。この場合、制御用計算機ノードソフトウェア２０００を記憶する演算用計算機１００１又は他の制御用計算機１０００は、起動されると、ネットワーク１１９０又は高速入出力装置１１４０を介して、制御用計算機ノードソフトウェア２０００を制御用計算機１０００に配布する。
【００６１】
基本システムソフトウェア２０４０は、リモートプロセス実行管理プログラム２０４１、リモートプロセス管理インタフェース２０４２、演算用計算機ノード情報テーブル２０４３及びリモートプロセス推定メモリ量テーブル２０４４を含む。
【００６２】
リモートプロセス実行管理プログラム２０４１は、ユーザ演算プログラム２０１０が演算用計算機１００１によって実行される実体をリモートプロセスとして、演算用計算機１００１に割り当てる。
【００６３】
リモートプロセス実行管理インタフェース２０４２は、演算用計算機１００１によって実行されるリモートプロセスの管理に関するパラメータ及び設定の変更を可能にするインタフェースとして機能するプログラムである。
【００６４】
演算用計算機ノード情報テーブル２０４３は、リモートプロセスを実行する演算用計算機１００１の状態を示す。なお、演算用計算機ノード情報テーブル２０４３については、図７で詳細を説明する。
【００６５】
リモートプロセス推定メモリ量テーブル２０４４は、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を示す。なお、リモートプロセス推定メモリ量テーブル２０４４については、図８で詳細を説明する。
【００６６】
なお、ユーザ演算プログラム２０１０は、制御用計算機１０００によって起動される。そして、リモートプロセス実行管理プログラム２０４１によって割り当てられた演算用計算機１００１は、ユーザ演算プログラム２０１０の処理をリモートプロセスとして実行する。また、ユーザ演算プログラム２０１０の処理が実行されるために必要なライブラリ２０２０も、演算用計算機１００１によって実行される。
【００６７】
次に、演算用計算機ノードソフトウェア２１００について説明する。
【００６８】
演算用計算機ノードソフトウェア２１００は、演算用計算機１００１に備わるメモリ１０３０にロードされ、演算用計算機１００１に備わるＣＰＵ１０１０によって実行される。
【００６９】
演算用計算機ノードソフトウェア２１００は、ファームウェア２１１０及び基本システムソフトウェア２１２０を含む。ファームウェア２１１０は、演算用計算機１００１に備わるハードウェアの基本的なデータを格納する。また、ファームウェア２１１０は、演算用計算機１００１に備わるハードウェアに基本的な制御を実行する。
【００７０】
基本システムソフトウェア２１２０は、演算用計算機１００１に備わるハードウェアを管理する。また、基本システムソフトウェア２１２０は、利用者にソフトウェアインタフェースを提供する。例えば、基本システムソフトウェア２１２０は、オペレーティングシステム及びハイパーバイザである。
【００７１】
なお、ファームウェア２１１０は、演算用計算機１００１に備わるシステムＲＯＭ１０９０に格納される。
【００７２】
また、基本システムソフトウェア２１２０は、演算用計算機１００１に接続される二次記憶装置１１６０に格納される。なお、二次記憶装置１１６０に障害が発生した場合を考慮し、基本システムソフトウェア２１２０は、複数台の二次記憶装置１１６０に格納されてもよい。
【００７３】
また、基本システムソフトウェア２１２０は、演算用計算機１００１にネットワーク１２１０を介して接続される計算機１２２０によって、配布されてもよい。また、基本システムソフトウェア２１２０は、制御用計算機１０００又は他の演算用計算機１００１によって、配布されてもよい。例えば、制御用計算機１０００が起動された後、起動された制御用計算機１０００がネットワーク１１９０を介して接続される演算用計算機１００１へ基本システムソフトウェア２１２０を配布してもよい。
【００７４】
ファームウェア２１１０は、ハードウェア構成テーブル２１１１、メモリ・アドレッシング・モード指定インタフェース２１１２、メモリ・アドレッシング・モードテーブル２１１３、電力ランクゾーン‐メモリランク対応管理テーブル２１１４及びメモリ電力モードテーブル２１１５を含む。
【００７５】
ハードウェア構成テーブル２１１１には、演算用計算機１００１に備わるハードウェアの構成に関する基本的なデータが登録される。メモリ・アドレッシング・モード指定インタフェース２１１２は、メモリアドレスがメモリ１０３０に割り振られる方法を、入力装置から指定するインタフェースとして機能するプログラムである。
【００７６】
メモリ・アドレッシング・モードテーブル２１１３には、メモリアドレスがメモリ１０３０に割り振られる方法が登録される。なお、メモリ・アドレッシング・モードテーブル２１１３については、図３で詳細を説明する。
【００７７】
電力ランクゾーン‐メモリランク対応管理テーブル２１１４には、演算用計算機１００１に備わるメモリコントローラ１０２０によって、電力モードが制御可能な連続するメモリアドレスを示す電力ランクゾーン、及びその電力ランクゾーンに属するメモリランク１０３１が登録される。なお、電力ランクゾーン‐メモリランク対応管理テーブル２１１４については、図４で詳細を説明する。
【００７８】
メモリ電力モードテーブル２１１５には、演算用計算機１００１に備わるメモリ１０３０が切り替え可能な電力モード、各電力モードでメモリ１０３０が消費する電力、及びメモリ１０３０が電力モードを切り替える場合に発生するＣＰＵ１０１０からのアクセスが遅延する時間が登録される。
【００７９】
基本システムソフトウェア２１２０は、メモリ管理初期化プログラム２１２１、メモリ管理プログラム２１２２、メモリ電力管理プログラム２１２３、リモートプロセス実行管理プログラム２１２４、メモリ管理制御インタフェース２１２５及びメモリゾーン‐電力ランクゾーン状態管理テーブル２１２６を含む。
【００８０】
メモリ管理初期化プログラム２１２１は、演算用計算機１００１に備わるメモリ１０３０の制御及び管理に必要なデータ等を初期化する。また、メモリ管理初期化プログラム２１２１は、演算用計算機１００１に備わるメモリ１０３０に関するインタフェースをユーザに提供する準備をする。なお、メモリ管理初期化プログラム２１２１の処理については、図９で詳細を説明する。
【００８１】
メモリ管理プログラム２１２２は、演算用計算機１００１に備わるメモリ１０３０の制御及び管理を実行する。また、メモリ管理プログラム２１２２は、演算用計算機１００１に備わるメモリ１０３０に関するインタフェースをユーザに提供する。
【００８２】
メモリ電力管理プログラム２１２３は、メモリランク１０３１の電力モードを、メモリコントローラ１０２０を介して制御する。リモートプロセス実行管理プログラム２１２４は、制御用計算機１０００によって割り当てられたユーザ演算プログラム２０１０を実行する。また、リモートプロセス実行管理プログラム２１２４は、リモートプロセスを管理する。
【００８３】
メモリ管理制御インタフェース２１２５は、メモリ１０３０の管理に関するパラメータ及び設定の変更を可能にするインタフェースとして機能するプログラムである。
【００８４】
メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６には、連続するメモリアドレスごとのメモリゾーン、各連続するメモリアドレスの範囲に含まれる電力ランクゾーン、各電力ランクゾーンによって消費される電力、及び各電力ランクゾーンによって使用される状態を管理する。なお、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６については、図６で詳細を説明する。
【００８５】
なお、基本システムソフトウェア２１２０は、一つ以上のメモリランク１０３１をまとめた電力ランクゾーン単位でメモリ１０３０が消費する電力を制御する。
【００８６】
図３は、本発明の第１の実施形態のメモリ・アドレッシング・モードテーブル２１１３の構成を示す図である。
【００８７】
メモリ・アドレッシング・モードテーブル２１１３は、ファームウェア２１１０によって管理される。
【００８８】
メモリ・アドレッシング・モードテーブル２１１３は、アドレッシング・モード３０００及びアドレッシング方法３１００を含む。
【００８９】
アドレッシング・モード３０００には、メモリアドレスがメモリ１０３０に割り振られる方法の一意な識別子が登録される。ユーザは、アドレッシング・モード３０００に登録された識別子に基づいて、メモリアドレスがメモリ１０３０に割り振られる方法を決定する。
【００９０】
アドレッシング方法３１００には、メモリアドレスがメモリ１０３０に割り振られる方法が登録される。ここで、メモリアドレスとは、ＣＰＵ１０１０がメモリ１０３０にアクセスする場所を示すための一意な識別子である。
【００９１】
次に、アドレッシング方法３１００に登録されるメモリアドレスがメモリ１０３０に割り振られる方法について説明する。
【００９２】
通常モード３２００では、メモリコントローラ１０２０は、チャネル１０７０ａによってメモリコントローラ１０２０に接続されたメモリ１０３０ａからメモリアドレスを割り振る。その後、メモリコントローラ１０２０は、チャネル１０７０ａによってメモリコントローラ１０２０に接続されたメモリ１０３０ｂにメモリアドレスを割り振る。次に、メモリコントローラ１０２０は、チャネル１０７０ｎによってメモリコントローラ１０２０に接続されたメモリ１０３０ｍから順にメモリアドレスを割り振る。
【００９３】
フル・インタリーブモード３３００では、メモリコントローラ１０２０は、全てのチャネル１０７０ａ〜１０７０ｎに対して、チャネル１０７０ａによってメモリコントローラ１０２０に接続されたメモリ１０３０ａ〜１０３０ｂと、チャネル１０７０ｎに接続されたメモリ１０３０ｍ〜１０３０ｎとの間で交互に、予め定められたインタリーブ・サイズごとにメモリアドレスを割り振る。
【００９４】
「交互に」とは、例えば、ある番号のメモリアドレスがメモリ１０３０ａに割り振られると、次の番号のメモリアドレスがメモリ１０３０ｂに割り振られることを意味する。以下の電力制御モードにおいても同じである。
【００９５】
ｍチャネル・インタリーブモード３４００では、メモリコントローラ１０２０は、ｍ個のチャネルを一つの単位として，チャネル１０７０ａによってメモリコントローラ１０２０に接続されたメモリ１０３０ａ〜１０３０ｂとチャネルｍ−１に接続されたメモリ１０３０との間で交互に、予め定められたインタリーブ・サイズごとにメモリアドレスを割り振り、これをチャネル１０７０ｎによってメモリコントローラ１０２０に接続されたメモリ１０３０ｍ〜１０３０ｎまで繰り返す。
【００９６】
フル・インタリーブ・電力制御モード３５００では、メモリコントローラ１０２０は、全てのチャネル１０７０ａ〜１０７０ｎに対して、チャネル１０７０ａによってメモリ１０３０に接続されたメモリ１０３０ａ〜１０３０ｂとチャネル１０７０ｎに接続されたメモリ１０３０ｍ〜１０３０ｎとの間で交互に、メモリランク１０３１のサイズごとにメモリアドレスを割り振る。
【００９７】
ｍチャネル・インタリーブ・電力制御モード３６００では、メモリコントローラ１０２０は、ｍ個のチャネルを一つの単位として、チャネル１０７０ａによってメモリコントローラ１０２０に接続されたメモリ１０３０ａ〜１０３０ｂと、チャネルｍ−１に接続されたメモリ１０３０との間で交互に、メモリランク１０３１のサイズごとにメモリアドレスを割り振り、これをチャネル１０７０ｎまで繰り返す。
【００９８】
なお、ここで、インタリーブとは、チャネル１０７０に接続されたメモリ１０３０にメモリアドレスが交互に割り振られることによって、複数のチャネル１０７０に跨って、メモリアドレスが連続に割り振られることをいう。これによって、ＣＰＵ１０１０は、連続するメモリアドレスへのアクセスを高速化できる。
【００９９】
また、インタリーブ・サイズとは、一つのチャネル１０７０に割り振るメモリアドレスの容量のことをいう。メモリコントローラ１０２０〜１０２１は、インタリーブ・サイズごとにインタリーブするようにメモリアドレスを割り振る。
【０１００】
通常、インタリーブ・サイズは、ＣＰＵ１０１０のキャッシュライン・サイズであることが多い。キャッシュ・ラインサイズであるインタリーブ・サイズは、メモリページフレームのサイズより小さい。このため、メモリアドレスは、複数のチャネル１０７０に跨るように割り振られているので、一つのメモリページフレームが複数のメモリアドレスに跨る。従って、一つのメモリページフレームが複数のメモリランク１０３１に跨るので、メモリ１０３０の電力の制御に関して効率的でない。
【０１０１】
よって、インタリーブ・サイズごとにメモリアドレスが割り振られるフル・インタリーブモード３３００及びｍチャネル・インタリーブモード３４００は、メモリの低電力化には適当ではない。
【０１０２】
また、フル・インタリーブ・電力制御モード３５００及びｍチャネル・インタリーブ・電力制御モード３６００のインタリーブ・サイズをメモリランク１０３１のサイズと等しい値に設定する。メモリランク１０３１のランクサイズは、メモリページフレームのサイズよりも大きいので、一つ又は複数のメモリページプレームは、一つのメモリランク１０３１内に含まれるので、メモリの効率的な電力制御ができる。
【０１０３】
また、通常モード３２００は、メモリランク１０３１から順にメモリアドレスが割り振られる、すなわちメモリランク１０３１ごとにメモリアドレスが割り振られることによって、メモリの効率的な電力制御ができる。
【０１０４】
メモリ・アドレッシング・モードテーブル２１１３のアドレッシング・モード３０００は、通常、ファームウェア２１１０によって通常モード３２００に予め設定されている。
【０１０５】
また、ユーザが、アドレッシング・モード３０００を選択することもできる。具体的には、演算用計算機１００１が起動され、ファームウェア２１１０が実行されると、ユーザは、計算機１０００〜１００１のキーボード１１７０等の入力装置を用いて、メモリ・アドレッシング・モード指定インタフェース２１１２を介して、アドレッシング・モード３０００を選択できる。
【０１０６】
また、ユーザが、メモリ・アドレッシング・モードテーブル２１１３の設定の内容（インタリーブ・サイズ及びインタリーブのチャネル１０７０の数等）を変更することもできる。
【０１０７】
なお、ユーザが、ネットワーク１２１０を介して演算用計算機１００１に接続される計算機１２２０を利用して、メモリ・アドレッシング・モード指定インタフェース２１１２を介して、アドレッシング・モード３０００を選択できるようにしてもよい。
【０１０８】
また、ユーザが、ネットワーク１２１０を介して演算用計算機１００１に接続される計算機１２２０を利用して、メモリ・アドレッシング・モード指定インタフェース２１１２を介して、メモリ・アドレッシング・モードテーブル２１１３に登録された内容を変更できるようにしてもよい。
【０１０９】
図４は、本発明の第１の実施形態の電力ランクゾーン‐メモリランク対応管理テーブル２１１４の構成を示す図である。
【０１１０】
電力ランクゾーン‐メモリランク対応管理テーブル２１１４は、ファームウェア２１１０によって管理される。
【０１１１】
電力ランクゾーン‐メモリランク対応管理テーブル２１１４は、電力ランクゾーン４０００、メモリアドレス４１００及びメモリランク４２００を含む。
【０１１２】
電力ランクゾーン４０００には、連続するメモリアドレスの領域を構成するメモリランク１０３１の数が最小となるように構成される電力ランクゾーンの識別子が登録される。基本システムソフトウェア２１２０は、電力ランクゾーン４０００単位で、メモリ１０３０によって消費される電力を制御する。
【０１１３】
メモリアドレス４１００には、電力ランクゾーン４０００に属する連続するメモリアドレスの領域のメモリアドレスが登録される。メモリランク４２００には、電力ランクゾーン４０００に属するメモリランク１０３１の識別子が登録される。
【０１１４】
例えば、電力ランクゾーン０（ＰＲ0）４３００は、メモリアドレス０〜Ｘ0,0及びメモリ１０３０ａに備わるメモリランク１０３１ａによって構成されることを示す。
【０１１５】
電力ランクゾーン‐メモリランク対応管理テーブル２１１４は、基本システムソフトウェア２１２０が実行されると、例えばメモリ１０３０にロードされる。これによって、基本システムソフトウェア２１２０は、電力ランクゾーン‐メモリランク対応管理テーブル２１１４を参照できる。
【０１１６】
電力ランクゾーン‐メモリランク対応管理テーブル２１１４に登録される内容は、メモリ１０３０に割り振られたメモリアドレスに基づいて、ファームウェア２１１０によって予め設定される。なお、メモリアドレスは、メモリ・アドレッシング・モードテーブル２１１３で選択されたアドレッシング・モード３０００に基づいてメモリ１０３０に割り振られる。
【０１１７】
なお、メモリ・アドレッシング・モードテーブル２１１３に登録される内容がユーザによって変更された場合、メモリ１０３０に割り振られるメモリアドレスが変更される。よって、メモリアドレスが変更されるので、ファームウェア２１１０は変更された連続するメモリアドレスの領域を構成する最小のメモリランク１０３１を検出する。
【０１１８】
そして、ファームウェア２１１０は、変更された連続するメモリアドレスをメモリアドレス４１００に登録し、検出されたメモリランクの識別子をメモリランク４２００に登録する。これによって、ファームウェア２１１０は、電力ランクゾーン‐メモリランク対応管理テーブル２１１４を変更する。
【０１１９】
電力ランクゾーン‐メモリランク対応管理テーブル２１１４が変更される場合に、チャネル１０７０、メモリ１０３０及びメモリランク１０３１のデータが必要な場合には、ファームウェア２１１０は、これらのデータが登録されているハードウェア構成テーブル２１１１を参照する。
【０１２０】
なお、基本システムソフトウェア２１２０が、メモリ・アドレッシング・モードテーブル２１１３及びハードウェア構成テーブル２１１１を参照して、電力ランクゾーン‐メモリランク対応管理テーブル２１１４を作成するようにしてもよい。また、基本システムソフトウェア２１２０が、電力ランクゾーン‐メモリランク対応管理テーブル２１１４に新たなエントリを追加するようにしてもよい。また、基本システムソフトウェア２１２０が、電力ランクゾーン‐メモリランク対応管理テーブル２１１４に登録された内容を変更するようにしてもよい。
【０１２１】
また、電力ランクゾーン‐メモリランク対応管理テーブル２１１４は、メモリ・アドレッシング・モードテーブル２００３の各アドレッシングモード（３２００〜３６００）に対応して、アドレッシングモード（３２００〜３６００）ごとに作成されてもよい。
【０１２２】
図５は、本発明の第１の実施形態のメモリ電力モードテーブル２１１５の構成図である。
【０１２３】
メモリ電力モードテーブル２１１５は、ファームウェア２１１０によって管理される。メモリ電力モードテーブル２１１５は、電力モード５０００、消費電力５１００及びモード切替レイテンシ５２００を含む。
【０１２４】
電力モード５０００には、メモリランク１０３１の切り替え可能な電力モードの識別子が登録される。消費電力５１００には、各電力モードのメモリランク１０３１が消費する電力の値が登録される。モード切替レイテンシ５２００には、メモリランク１０３１が電力モードを他の電力モードへ切り替える場合に生じるＣＰＵ１０１１からのアクセスが遅延する時間（レイテンシ）の値が登録される。
【０１２５】
例えば、図５に示すメモリ電力モードテーブル２１１５には、３つの電力モード（５３００〜５５００）が登録されている。メモリランク１０３１が電力モード０（Ｓｔａｎｂｙ）５３００の状態の場合には、メモリランク１０３１が時間当たりに消費する電力はＸ0である。また、電力モード０（Ｓｔａｎｂｙ）５３００のメモリランク１０３１が電力モード０に切り替わる場合には、切り替え先の電力モード０は、現在の電力モードであるため、レイテンシは生じない。また、電力モード０（Ｓｔａｎｂｙ）５３００のメモリランク１０３１が電力モード１に切り替わる場合に生じるレイテンシはＹ0,1である。また、電力モード０（Ｓｔａｎｂｙ）５３００のメモリランク１０３１が電力モード２に切り替わる場合に生じるレイテンシはＹ0,2である。
【０１２６】
なお、ＣＰＵ１０１０は、電力モード０（Ｓｔａｎｂｙ）５３００のメモリランク１０３１〜１０６２にアクセスできる。また、ＣＰＵ１０１０は、電力モード１（ＰｏｗｅｒＤｏｗｎ）５４００及び電力モード２（Ｓｅｌｆ‐ｒｅｆｒｅｓｈ）５５００のメモリランク１０３１には、遅延を生じさせることなくアクセスできない。
【０１２７】
すなわち、メモリランク１０３１の電力モード５０００が電力モード０（Ｓｔａｎｂｙ）５３００の状態に切り替わっていなければ、ＣＰＵ１０１０は、メモリランク１０３１に読み書きを実行できない。
【０１２８】
また、メモリランク１０３１〜１０６２によって消費される電力は、電力モード２（Ｓｅｌｆ‐ｒｅｆｒｅｓｈ）５５００のＸ2が最も低く、次いで、電力モード１（ＰｏｗｅｒＤｏｗｎ）が低く、電力モード０（Ｓｔａｎｂｙ）５３００のＸ0が最も高い。電力モード０（Ｓｔａｎｂｙ）５３００を活性状態といい、電力モード１（ＰｏｗｅｒＤｏｗｎ）５４００及び電力モード２（Ｓｅｌｆ‐ｒｅｆｒｅｓｈ）５５００を不活性状態という。
【０１２９】
メモリ電力モードテーブル２１１５の内容は、演算用計算機１００１に備わるメモリ１０３０を構成するデータに基づいて、ファームウェア２１１０によって、予め設定される。
【０１３０】
図６は、本発明の第１の実施形態のメモリゾーン‐電力ランクゾーン状態管理テーブル２１２６の構成を示す図である。
【０１３１】
メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６は、基本システムソフトウェア２１２０によって管理される。
【０１３２】
メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６は、メモリゾーン６０００、アドレス範囲６０１０、電力ランクゾーン６０２０、電力ランクゾーンサイズ６０３０、電力状態６０４０及び未使用メモリページフレーム数６０５０を含む。
【０１３３】
メモリゾーン６０００には、メモリアドレスの範囲に応じて基本システムソフトウェア２１２０によって管理されるメモリゾーンの識別子が登録される。アドレス範囲６０１０には、各メモリゾーン６０００に含まれるメモリアドレスが登録される。電力ランクゾーン６０２０には、アドレス範囲６０１０に含まれる電力ランクゾーンの識別子が登録される。電力ランクゾーンサイズ６０３０には、各電力ランクゾーン６０２０に登録された識別子の電力ランクゾーンの容量が登録される。
【０１３４】
電力状態６０４０には、各電力ランクゾーン６０２０に登録された識別子の電力ランクゾーンに属するメモリランク１０３１の電力モードの識別子が登録される。未使用メモリページフレーム数６０５０には、各電力ランクゾーン６０２０に登録された識別子の電力ランクゾーンに属するメモリランク１０３１に備わるメモリページフレームのうち、演算用計算機１００１によって実行されるソフトウェアによって使用されていない未使用メモリページフレームの数の値が登録される。
【０１３５】
例えば、図６に示すメモリゾーン‐電力ランクゾーン状態管理テーブル２１２６は、３つのメモリゾーン（６０６０、６０７０、及び６０８０）、及び各メモリゾーンに含まれる電力ランクゾーン（６０６１〜６０６２、６０７１〜６０７２、及び６０８１〜６０８２）を管理する。
【０１３６】
メモリゾーンＺｏｎｅ０（６０６０）は、アドレス範囲０〜Ｘ0のメモリアドレスを含み、Ｚｏｎｅ０（６０６０）は、電力ランクゾーンＰＲ0〜ＰＲx0（６０６１〜６０６２）を含む。
【０１３７】
電力ランクゾーンＰＲ0（６０６１）は、容量がＲＳ0であり、電力ランクゾーンＰＲ0の電力モードはＰＳ0であり、電力ランクゾーンＰＲ0（６０８１）内の各ソフトウェアによって使用されていないメモリページフレーム数はＳｕ0である。
【０１３８】
なお、電力ランクゾーン６０２０には、電力ランクゾーン‐メモリランク対応管理テーブル２１１４に含まれるメモリアドレス４１００に登録されたメモリアドレスの範囲がアドレス範囲６１００に登録されたメモリアドレスの範囲内である電力ランクゾーン４００に登録された識別子が登録される。
【０１３９】
メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に登録される内容は、演算用計算機１００１が起動された時に、メモリ管理初期化プログラム２１２１によって設定される。また、演算用計算機１００１が動作中、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に登録された内容は、メモリ管理プログラム２１２２によって更新される。
【０１４０】
図７は、本発明の第１の実施形態の演算用計算機ノード情報テーブル２０４３の構成を示す図である。
【０１４１】
演算用計算機ノード情報テーブル２０４３は、基本システムソフトウェア２０４０によって管理される。演算用計算機ノード情報テーブル２０４３は、演算計算機ノード７０００、ノード状態、ノード識別子及び搭載メモリ７０３０を含む。
【０１４２】
演算用計算機ノード７０００には、制御用計算機１０００によって割り当てられたリモートプロセスを実行する演算用計算機１００１の名称が登録される。ノード状態７１００には、各演算用計算機１００１の状態を示す値が登録される。例えば、ノード状態７１００には、Ｒｕｎｎｉｎｇが登録される。Ｒｕｎｎｉｎｇは、演算用計算機１００１が稼動中であり、リモートプロセスを実行できる状態を示す。
【０１４３】
ノード識別子７０２０には、各演算用計算機１００１の一意な識別子が登録される。例えば、ノード識別子７０２０には、演算用計算機１００１に備わるネットワークインタフェース１１１０に付与されるハードウェアアドレス（ＭＡＣアドレス）が登録される。なお、ネットワークインタフェース１１１０に付与されるハードウェアアドレスは、ネットワークインタフェース１１１０の一意な識別子であるので、ネットワークインタフェース１１１０を備える演算用計算機１００１の一意な識別子として利用できる。
【０１４４】
また、ノード種別７０２０に登録される演算用計算機１００１の一意な識別子としては、演算用計算機１００１のＩＰアドレスが登録されてもよい。
【０１４５】
搭載メモリ７０３０には、各演算用計算機１００１に備わるメモリ１０３０の容量が登録される。
【０１４６】
なお、一つの演算用計算機ノード情報テーブル２０４３は、一つの制御用計算機１０００に接続される演算用計算機１００１の情報を示す。
【０１４７】
例えば、図７に示す演算用計算機ノード情報テーブル２０４３は、制御用計算機１０００に接続される演算用計算機１００１の名称は、Ｎｏｄｅ  ｐ（７０４０）、Ｎｏｄｅ  ｑ（７０５０）及びＮｏｄｅ  ｒ（７０６０）であることを示す。また。図７に示す演算用計算機ノード情報テーブル２０４３は、名称がＮｏｄｅ  ｐ（７０４０）、Ｎｏｄｅ  ｑ（７０５０）及びＮｏｄｅ  ｒ（７０６０）である演算用計算機１００１は、ノード状態がＲｕｎｎｉｇであり、リモートプロセスを実行できることを示す。
【０１４８】
また、図７に示す演算用計算機ノード情報テーブル２０４３は、名称がＮｏｄｅ  ｐ（７０４０）である演算用計算機１００１の一意な識別子はＩＤ０であり、名称がＮｏｄｅ  ｑ（７０５０）である演算用計算機１００１の一意な識別子はＩＤ１であり、及び名称がＮｏｄｅ  ｒ（７０６０）である演算用計算機１００１の一意な識別子はＩＤ２であることを示す。
【０１４９】
また、図７に示す演算用計算機ノード情報テーブル２０４３は、名称がＮｏｄｅ  ｐ（７０４０）である演算用計算機１００１は、容量がＲ０であるメモリ１０３０を備え、名称がＮｏｄｅ  ｑ（７０５０）である演算用計算機１００１は、容量がＲ１であるメモリ１０３０を備え、名称がＮｏｄｅ  ｒ（７０５０）である演算用計算機１００１は、容量がＲ２であるメモリ１０３０を備えることを示す。
【０１５０】
演算計算機ノード情報テーブル２０４３に登録される内容は、制御用計算機１０００が起動されると、リモートプロセス実行管理プログラム２０４１によって登録される。また、演算用計算機１００１のノード状態が変更された場合、及び演算用計算機１００１の構成が変更された場合、制御用計算機１０００が稼動中であっても、演算用計算機ノード情報テーブル２０４３に登録される内容は、リモートプロセス実行管理プログラム２０４１によって更新される。
【０１５１】
なお、演算用計算機１００１の構成が変更された場合は、例えば、演算用計算機１００１に備わるメモリ１０３０が変更された場合等である。
【０１５２】
なお、演算用計算機ノード情報テーブル２０４３に含まれる演算用計算機ノード７０００に登録される演算用計算機１００１の名称は、予め設定されている。しかし、演算用計算機ノード７０００に登録される演算用計算機１００１の名称は、ユーザによって変更されてもよい。
【０１５３】
具体的には、ユーザが入力装置を用いて、演算用計算機ノード７０００に登録される演算用計算機１００１の名称を変更する。また、ネットワーク１２１０を介して制御用計算機１０００に接続される計算機１２２０を利用して、リモートプロセス管理インタフェース２０４２を介して、演算用計算機ノード７０００に登録される演算用計算機１００１の名称を変更できるようにしてもよい。
【０１５４】
図８は、本発明の第１の実施形態のリモートプロセス推定メモリ量テーブル２０４４の構成を示す図である。
【０１５５】
リモートプロセス推定メモリ量テーブル２０４４は、制御用計算機ノードソフトウェア２１００に含まれる基本システムソフトウェア２１２０によって管理される。
【０１５６】
リモートプロセス推定メモリ量テーブル２０４４は、プログラム・ライブラリ名８０００、コード領域８０１０、静的データ領域８０２０、動的データ領域８０３０、一時データ領域８０４０、合計値８０５０、調整値８０６０、全活性化フラグ８０７０、活性確認フラグ８０８０及び更新フラグ８０９０を含む。
【０１５７】
プログラム・ライブラリ名８０００には、制御用計算機ノードソフトウェア２０００に含まれるリモートプロセス実行管理プログラム２０４１によって、演算用計算機１００１にリモートプロセスとして実行するように指示されたユーザ演算プログラム２０１０の名称及び当該ユーザ演算プログラム２０１０が実行されるために必要なライブラリ２０２０の名称が登録される。
【０１５８】
なお、プログラム・ライブラリ名８０００には、一つのユーザ演算プログラム２０１０、及びライブラリ２０２０が登録される。また、ユーザ演算プログラム２０１０が実行されるために必要なライブラリ２０２０がない場合には、ライブラリ２０２０は、プログラム・ライブラリ名８０００には、登録されない。
【０１５９】
コード領域８０１０には、プログラム・ライブラリ名８０００に登録された名称の各ユーザ演算プログラム２０１０及びライブラリ２０２０がリモートプロセスとして実行される場合に、各ユーザ演算プログラム２０１０及びライブラリ２０２０を記述したコードがロードされるために、メモリ１０３０に確保される容量が登録される。なお、このコードの領域は、一般に、テキスト領域という。
【０１６０】
静的データ領域８０２０には、プログラム・ライブラリ名８０００に登録された名称の各ユーザ演算プログラム２０１０及びライブラリ２０２０がリモートプロセスとして実行される場合に、各ユーザ演算プログラム２０１０及びライブラリ２０２０の初期化されていないデータがロードされるために、メモリ１０３０に確保される容量が登録される。なお、データ領域は、一般に、ＢＳＳ未初期化データ領域という、
動的データ領域８０３０には、プログラム・ライブラリ名８０００に登録された名称の各ユーザ演算プログラム２０１０及びライブラリ２０２０がリモートプロセスとして実行されている場合に、演算用計算機１００１によってメモリ１０３０に動的に確保される各ユーザ演算プログラム２０１０及びライブラリ２０２０のメモリ領域の容量が登録される。なお、このメモリ領域は、一般に、ヒープ領域という。
【０１６１】
一時データ領域８０４０には、プログラム・ライブラリ名８０００に登録された名称の各ユーザ演算プログラム２０１０及びライブラリ２０２０がリモートプロセスとして実行されている場合に、演算用計算機１００１によってメモリ１０３０に一時的に確保される各ユーザ演算プログラム２０１０及びライブラリ２０２０のメモリ領域の容量が登録される。なお、このメモリ領域は、一般に、スタック領域という。
【０１６２】
合計値８０５０には、コード領域８０１０、静的データ領域８０２０、動的データ領域８０３０及び一時データ領域８０４０に登録された容量の和が登録される。つまり、合計値８０５０は、演算用計算機１００１がプログラム・ライブラリ名８０００に登録された名称の各ユーザ演算プログラム２０１０及びライブラリ２０２０を実行時に、演算用計算機１００１がメモリ１０３０に確保すると推定される容量を示す。
【０１６３】
調整値８０６０には、各エントリの合計値８０５０に登録された値の和を調整する値が登録される。つまり、調整値８０６０は、演算用計算機１００１がリモートプロセスを実行する場合に、メモリ１０３０に確保すると推定される推定値を調整する値を示す。
【０１６４】
なお、調整値８０６０は、図１４に示すリモートプロセス終了処理によって新たに設定される。また、調整値８０６０は、ユーザによって設定されてもよい。
【０１６５】
全活性化フラグ８０７０には、演算用計算機１００１がリモートプロセスを実行する場合に、演算用計算機１００１に備わる全てのメモリランク１０３１を活性化するか否かを示す値が登録される。
【０１６６】
活性確認フラグ８０８０には、演算用計算機１００１は、演算用計算機１００１に備わるメモリ１０３０に活性化処理が実行されたことを確認してから、リモートプロセスを実行するか否かを示す値が登録される。
【０１６７】
更新フラグ８０９０には、リモートプロセスが実行された後に、リモートプロセス推定メモリ量テーブル２０４４が更新されるか否かを示す値が登録される。
【０１６８】
例えば、図８に示すリモートプロセス推定メモリ量テーブル２０４４に含まれるプログラム・ライブラリ名８０００には、Ｐｒｏｇ（８１００）、Ｌｉｂ  ａ（８１１０）及びＬｉｂ  ｎ（８１２０）が登録される。つまり、演算用計算機１００１がリモートプロセスとして、Ｐｒｏｇ（８１００）、Ｌｉｂ  ａ（８１１０）及びＬｉｂ  ｎ（８１２０）を実行する。
【０１６９】
Ｐｒｏｇ８１００が実行される場合に、演算用計算機１００１に備わるメモリ１０３０に確保されるコード領域８０１０はＣpであり、静的データ領域８０２０はＤｓpであり、動的データ領域８０３０はＤｄpであり、一時データ領域８０４０はＤｔpである。そして、Ｐｒｏｇ８１００が実行される場合に、演算用計算機１００１に備わるメモリ１０３０に確保される合計値８０５０はＣp＋Ｄｓp＋Ｄｄp＋Ｄｔpである。
【０１７０】
同時に、Ｌｉｂ  ０８１１０に関しては、演算用計算機１００１に備わるメモリ１０３０に確保されるコード領域８０１０はＣl0であり、静的データ領域８０２０はＤｓl0であり、動的データ領域８０３０はＤｄl0であり、一時データ領域８０４０はＤｔl0である。そして、Ｐｒｏｇ８１００が実行される場合に、演算用計算機１００１に備わるメモリ１０３０に確保される合計値８０５０はＣl0＋Ｄｓl0＋Ｄｄl0＋Ｄｔl0である。
【０１７１】
また、Ｌｉｂ  ｎ８１２０が実行される場合に、演算用計算機１００１に備わるメモリ１０３０に確保されるコード領域８０１０はＣlnであり、静的データ領域８０２０はＤｓlnであり、動的データ領域８０３０はＤｄlnであり、一時データ領域８０４０はＤｔlnである。そして、Ｐｒｏｇ８１００が実行される場合に、演算用計算機１００１に備わるメモリ１０３０に確保される合計値８０５０はＣln＋Ｄｓln＋Ｄｄln＋Ｄｔlnである。
【０１７２】
そして、リモートプロセスが実行される場合に演算用計算機１００１によって確保されると推定される推定値を調整する調整値８０６０はＡである。
【０１７３】
また、全活性フラグ８０７０にはＯＦＦが登録されているので、演算用計算機１００１に備わる全てのメモリ１０３０が活性化されるのではなく、合計値８０５０及び調整値８０６０に登録された値に基づいて、演算用計算機１００１に備わるメモリ１０３０が活性化される。
【０１７４】
また、活性確認フラグ８０８０にはＯＦＦが登録されるので、演算用計算機１００１に備わるメモリ１０３０に活性化処理が実行されてなくても、演算用計算機１００１は、リモートプロセスを実行する。
【０１７５】
更新フラグ８０９０にはＯＮが登録されるので、リモートプロセスが実行された後に、リモートプロセス推定メモリ量テーブル２０４４が更新される。
【０１７６】
通常、リモートプロセス推定メモリ量テーブル２０４４は、開発・インストールツール２０３０を利用して、ユーザ演算プログラム２０１０がインストールされる場合に、リモートプロセス管理インタフェース２０４２を介して、作成される。なお、リモートプロセス管理インタフェース２０４２を介して、リモートプロセス推定メモリ量テーブル２０４４に新たにエントリが追加される。なお、リモートプロセス管理インタフェース２０４２を介して、リモートプロセス推定メモリ量テーブル２０４４に登録された値が変更される。
【０１７７】
なお、ユーザが、制御用計算機１０００に備わる入力装置からリモートプロセス推定メモリ量テーブル２０４４を作成してもよい。同じように、ユーザがリモートプロセス推定メモリ量テーブル２０４４に新たにエントリを追加してもよい。同じように、ユーザがリモートプロセス推定メモリ量テーブル２０４４に登録された値を変更してもよい。
【０１７８】
また、ユーザが、遠隔地に配置された計算機１２２０に備わる入力装置からネットワーク１２１０を介してリモートプロセス推定メモリ量テーブル２０４４を作成してもよい。同じように、ユーザがリモートプロセス推定メモリ量テーブル２０４４に新たにエントリを追加してもよい。同じように、ユーザがリモートプロセス推定メモリ量テーブル２０４４に登録された値を変更してもよい。
【０１７９】
また、ネットワーク１１９０又は高速入出力装置１１４０に接続された演算用計算機１００１によって実行されるリモートプロセス実行管理プログラム２１２４が、制御用計算機１０００に記憶されるリモートプロセス管理インタフェース２０４２を介して、リモートプロセス推定メモリ量テーブル２０４４を作成、リモートプロセス推定メモリ量テーブル２０４４に新たにエントリを追加、及びリモートプロセス推定メモリ量テーブル２０４４に登録された値を変更してもよい。
【０１８０】
なお、リモートプロセス推定メモリ量テーブル２０４４は、ユーザ演算プログラム２０１０ごとに複数作成される。
【０１８１】
コード領域８０１０及び静的データ領域８０２０に登録される値は、一般に、ユーザ演算プログラム２０１０及びライブラリ２０２０のファイルに書き込まれている。従って、ユーザ演算プログラム２０１０及びライブラリ２０２０のファイルに書き込まれたコード領域８０１０及び静的データ領域８０２０に対応する値が、コード領域８０１０及び静的データ領域８０２０に登録される。
【０１８２】
動的データサイズ８０３０及び一時データサイズ８０４０には、開発・インストールツール２０３０によってヒント値が示されている場合には、そのヒント値が登録される。また、開発・インストールツール２０３０によってヒント値が示されていない場合には、動的データサイズ８０３０及び一時データサイズ８０４０には、デフォルトの値（０）が登録される。
【０１８３】
なお、デフォルトの値は、リモートプロセスを実行する演算用計算機１００１に備わるメモリの容量に対応して設定された値であってもよい。なお、リモートプロセスを実行する演算用計算機１００１に備わるメモリの容量は、演算用計算機ノード情報テーブル２０４３に含まれる搭載メモリ７０３０に登録された値である。
【０１８４】
調整値８０６０には、初期状態では、０が登録される。しかし、ユーザが調整値８０６０に登録された値を変更できる。
【０１８５】
また、演算用計算機１００１がリモートプロセスを一度実行した場合には、リモートプロセスの終了時に、リモートプロセス実行管理プログラム２１２４がメモリ１０３０に実場合に確保した容量の値と推定値との差分値が、調整値８０５０に反映されてもよい。
【０１８６】
全活性化フラグ８０７０には、通常、ＯＦＦが登録される。リモートプロセス以外の処理（例えば、ＯＳによるメモリ１０３０の電力を管理する処理等）が演算用計算機１００１によって実行されないようにする場合に、全活性化フラグ８０７０にはＯＮが登録される。
【０１８７】
活性確認フラグ８０８０には、通常、ＯＦＦが登録される。演算用計算機１００１に備わるメモリ１０３０において、リモートプロセスが実行されるために必要なメモリ１０３０の容量が確実に活性化されたことを確認したい場合には、活性確認フラグ８０８０に、ＯＮが登録される。例えば、活性確認フラグ８０８０にＯＮが登録される場合には、全活性化フラグ８０７０にＯＮが登録された場合等がある。
【０１８８】
更新フラグ８０９０には、通常、ＯＮが登録される。なお、ユーザが更新フラグ８０９０に登録された値を変更できる。
【０１８９】
図９は、本発明の第１の実施形態のメモリ管理初期化プログラム２１２１のフローチャートである。
【０１９０】
まず、メモリ管理初期化プログラム２１２１は、基本システムソフトウェア２１２０が起動されると、ＣＰＵ１０１０によって実行される（９０００）。
【０１９１】
メモリ管理初期化プログラム２１２１は、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれるメモリアドレス範囲６０１０に登録されたメモリアドレスの範囲ごとにメモリゾーン６０００にメモリゾーンの識別子を登録する（１０００１）。
【０１９２】
例えば、メモリゾーン６０００は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）（１６ＭＢ）、Ｎｏｒｍａｌ（４ＧＢ）及びＨｉｇｈ（４ＧＢ以上）に区分される。
【０１９３】
なお、図６に示すメモリゾーン‐電力ランクゾーン状態管理テーブル２１２６では、Ｚｏｎｅ０がＤＭＡに対応し、Ｚｏｎｅ１がＮｏｒｍａｌに対応し、Ｚｏｎｅ２がＨｉｇｈに対応する。
【０１９４】
また、複数の演算用計算機１００１がＮｕｍａシステムを構成する場合のメモリゾーン６０００の構成としては、各々の演算用計算機１００１ごとにメモリゾーンが区分される構成がある。
【０１９５】
メモリ管理初期化プログラム２１２１は、メモリ１０３０の構成のデータ及び他のハードウェアの構成のデータが必要な場合には、例えば、ファームウェア２１１０に含まれるハードウェア構成テーブル２１１１及び電力ランクゾーン‐メモリランク対応管理テーブル２１１４を参照する。
【０１９６】
次に、メモリ管理初期化プログラム２１２１は、ステップ９００１の処理で設定したメモリゾーン６０６０〜６０８０について、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６を初期化する処理（ステップ９００３〜ステップ９００７の処理）を繰り返す（９００２）。
【０１９７】
メモリ管理初期化プログラム２１２１は、電力ランクゾーン‐メモリランク対応管理テーブル２１１４を参照し、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれる電力ランクゾーン６０２０の各エントリを設定する（９００３）。
【０１９８】
具体的には、メモリ管理初期化プログラム２１２１は、ステップ９００１の処理で設定されたメモリゾーン６０００に対応するアドレス範囲６０１０に登録されたメモリアドレスの範囲を取得する。そして、メモリ管理初期化プログラム２１２１は、電力ランクゾーン‐メモリランク対応管理テーブル２１１４に含まれるメモリアドレス４１００に登録されたメモリアドレスの範囲が対応取得されたメモリアドレス範囲内にある電力ランクゾーン４０００に登録された識別子を取得する。そして、メモリ管理初期化プログラム２１２１は、取得した電力ランクゾーンの識別子を電力ランクゾーン６０２０に登録する。
【０１９９】
なお、例えば、電力ランクゾーンＰＲxoがメモリゾーン０及びメモリゾーン１に跨る場合、すなわち、電力ランクゾーンＰＲxoのメモリアドレスの領域がＺｏｎｅ０のメモリアドレスの領域及びＺｏｎｅ１のメモリアドレスの領域の両方に含まれる場合には、メモリ管理初期化プログラム２１２１は、跨る複数のメモリゾーン（Ｚｏｎｅ０及びＺｏｎｅ１）の電力ランクゾーン６０２０に電力ランクゾーンＰＲxoの識別子（６０６２、６０７１）を登録する。
【０２００】
また、メモリ管理初期化プログラム２１２１は、電力ランクゾーン‐メモリランク対応管理テーブル２１１４を参照し、メモリゾーン６０００のアドレス範囲６０１０に含まれる電力ランクゾーン４０００の容量の値をメモリゾーン‐電力ランクゾーン管理テーブル２１２６の電力ランクサイズ６０３０に登録する（９００４）。
【０２０１】
例えば、電力ランクゾーンＰＲxoがＺｏｎｅ０及びＺｏｎｅ１に跨る場合には、メモリ管理初期化プログラム２１２１は、Ｚｏｎｅ０の電力ランクゾーンサイズ６０３０には、Ｚｏｎｅ０のメモリアドレスの領域に含まれる電力ランクゾーンＰＲx0のメモリアドレスの領域分の電力ランクゾーンＰＲxoのサイズＲＳx0-0（６０６２）を登録する。
【０２０２】
また、メモリ管理初期化プログラム２１２１は、Ｚｏｎｅ１の電力ゾーンランクサイズ６０３０には、Ｚｏｎｅ１のメモリアドレスの領域に含まれる電力ランクゾーンＰＲx0のメモリアドレスの領域分の電力ランクゾーンＰＲx0のサイズＲＳx0-1（６０７１）を登録する。
【０２０３】
すなわち、電力ランクゾーンが複数のメモリゾーンに跨る場合には、メモリ管理初期化プログラム２１２１は、電力ランクゾーンが跨るメモリゾーン内に属する容量の値を電力ランクゾーンサイズ６０３０に登録する。
【０２０４】
次に、メモリ管理初期化プログラム２１２１は、各電力ランクゾーン（６０６１〜６０６２、６０７１〜６０７２、６０８１〜６０８２）に、各電力ランクゾーンの電力モードの状態を電力状態６０４０に登録する（９００５）。
【０２０５】
例えば、メモリ管理初期化プログラム２１２１は、メモリコントローラ１０２０を介して、各メモリランク１０３１の電力モードの状態を取得する。そして、メモリ管理初期化プログラム２１２１は、取得した電力モードの状態を電力状態６０４０に登録する。
【０２０６】
また、メモリ管理初期化プログラム２１２１がハードウェア構成テーブル２１１１を参照して、各メモリランク１０３１の電力モードの状態を電力状態６０４０に登録してもよい。
【０２０７】
ステップ９００５の処理の後、メモリ管理初期化プログラム２１２１は、各電力ランクゾーン（６０６１〜６０６２、６０７１〜６０７２、６０８１〜６０８２）に、各ソフトウェアによって使用されていないメモリページフレームの数を未使用メモリページフレーム数６０５０に登録する（９００６）。
【０２０８】
なお、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６が初期化された場合、各電力ランクゾーンの未使用メモリページフレーム６０５０には、例えば、各電力ランクゾーン６０２０の電力ランクゾーンサイズ６０３０に含まれるメモリページフレーム数と、基本システムソフトウェア２１２０を初期化する処理及びコード／データ等によって使用される各電力ランクゾーン６０２０のメモリページフレーム数との差分値が登録される。
【０２０９】
ステップ９００６の処理の後、メモリ管理初期化プログラム２１２１は、電力ランクゾーン６０２０に含まれる全てのメモリページフレームが各ソフトウェアによって使用されていない全メモリランク１０３１の電力モードの状態を不活性状態に切り替え、電力状態６０４０を更新する（９００７）。
【０２１０】
なお、メモリランク１０３１の電力モードの切り替えは、例えば、メモリコントローラ１０２０を介して実行される。
【０２１１】
ステップ９００７の処理を実行すると、メモリ管理初期化プログラム２１２１は、メモリゾーン６０００に登録された全ての識別子のメモリゾーンに対して、ステップ９００３〜ステップ９００７の処理を繰り返す（９００８）。メモリゾーン６０００に登録された全ての識別子のメモリゾーンに対して、ステップ９００３〜ステップ９００７の処理が繰り返されると、メモリ管理初期化プログラム２１２１は終了する（９０１０）。
【０２１２】
図１０は、本発明の第１の実施形態の制御用計算機１０００に記憶されるリモートプロセス実行管理プログラム２０４１におけるリモートプロセスを実行する処理のフローチャートである。
【０２１３】
リモートプロセス実行管理プログラム２０４１におけるリモートプロセスを実行する処理は、演算用計算機１００１にリモートプロセスを実行させる場合に、リモートプロセスを実行する演算用計算機１００１が指定されて、呼び出される。
【０２１４】
なお、制御用計算機１０００に記憶される演算用計算機ノード情報テーブル２０４３に含まれるノード状態７０１０がＲｕｎｎｉｎｇである演算用計算機１００１が指定される。
【０２１５】
また、リモートプロセス推定メモリ量テーブル２０４４に含まれる各エントリの合計値８０５０の和である推定値よりも、演算用計算機ノード情報テーブル２０４３に含まれる搭載メモリ７０３０に登録されたメモリの容量の値が大きい演算用計算機１００１が指定されてもよい。
【０２１６】
まず、リモートプロセス実行管理プログラム２０４１は、リモートプロセス推定メモリ量テーブル２０４４に含まれる活性確認フラグ８０８０にＯＮが登録されているか否かを判定する（１０００１）。すなわち、リモートプロセス実行管理プログラム２０４１は、リモートプロセスが実行されるために必要なメモリ１０３０の容量が確実に活性化されてから、リモートプロセスが実行されるように設定されているか否かを判定する。
【０２１７】
活性確認フラグ８０８０にＯＮが登録されていると判定された場合には、リモートプロセス実行管理プログラム２０４１は、演算用計算機１００１にメモリ１０３０が活性化されたことを確認してから演算用計算機１００１にリモートプロセスを実行させる指令である活性確認指令を含むリモートプロセス実行メッセージを作成し（１０００２）、ステップ１０００３の処理に進む。
【０２１８】
なお、一般に、リモートプロセス実行メッセージは、リモートプロセスを実行させる演算用計算機１００１に、制御用計算機１０００によって送信される。
【０２１９】
一方、活性確認フラグ８０８０にＯＮが登録されていないと判定された場合には、リモートプロセス実行管理プログラム２０４１は、ステップ１０００３の処理に進む。
【０２２０】
次に、リモートプロセス実行管理プログラム２０４１は、リモートプロセス推定メモリ量テーブル２０４４を参照し、更新フラグ８０９０にＯＮが登録されているか否かを判定する（１０００３）。すなわち、リモートプロセス実行管理プログラム２０４１は、リモートプロセスが実行された後に、リモートプロセス推定メモリ量テーブル２０４４が更新されるように設定されているか否かを判定する。
【０２２１】
更新フラグ８０９０にＯＮが登録されていると判定された場合には、リモートプロセス実行管理プログラム２０４１は、リモートプロセスが実行された後に、演算用計算機１００１にリモートプロセス推定メモリ量テーブル２０４４を更新させる指令である更新指令を含むリモートプロセス実行メッセージを作成し（１０００４）、ステップ１０００５の処理に進む。
【０２２２】
一方、更新フラグ８０９０にＯＮが登録されていないと判定された場合には、リモートプロセス実行管理プログラム２０４１は、ステップ１０００５の処理に進む。
【０２２３】
次に、リモートプロセス実行管理プログラム２０４１は、リモートプロセス推定メモリ量テーブル２０４４を参照し、全活性化フラグ８０７０にＯＮが登録されているか否かを判定する（１０００５）。すなわち、リモートプロセス実行管理２０４１は、演算用計算機１００１がリモートプロセスを実行する場合に、演算用計算機１００１に備わる全てのメモリランク１０３１を活性化するように設定されているか否かを判定する
全活性化フラグ８０７０にＯＮが登録されていると判定された場合には、リモートプロセス実行管理プログラム２０４１は、演算用計算機１００１がリモートプロセスを実行する場合に、演算用計算機１００１に備わる全ての電力ランクゾーンに属するメモリランク１０３１を演算用計算機１００１に活性化させる指令である全活性化指令を含むリモートプロセス実行メッセージを作成し（１０００６）、ステップ１０００８の処理に進む。
【０２２４】
一方、全活性化フラグ８０７０にＯＮが登録されていないと判定された場合には、リモートプロセス実行管理プログラム２０４１は、演算用計算機１００１に実行させるユーザ演算プログラム２０１０に対応するリモートプロセス推定メモリ量テーブル２０４４を参照し、プログラム・ライブラリ名８０００に登録されたユーザ演算プログラム２０１０及びライブラリ２０２０の名称、合計値８０５０に登録された値及び調整値８０６０に登録された値を含むリモートプロセス実行メッセージを作成し（１０００７）、ステップ１０００８の処理に進む。
【０２２５】
次に、リモートプロセス実行管理プログラム２０４１は、ステップ１０００２〜ステップ１０００７の処理で作成されたリモートプロセス実行メッセージを指定された演算用計算機１００１に送信する（１０００８）。
【０２２６】
そして、リモートプロセス実行管理プログラム２０４１は、リモートプロセス実行メッセージの送信が完了したか否かを判定する（１０００９）。具体的には、リモートプロセス実行管理プログラム２０４１は、図１１のステップ１１００８の処理で送信される受信完了メッセージを、制御用計算機１０００が受信したか否かを判定する。
【０２２７】
リモートプロセス実行メッセージの送信が完了したと判定された場合、リモートプロセス実行管理プログラム２０４１は、ステップ１００１０の処理に進む。一方、リモートプロセス実行メッセージの送信が完了してないと判定された場合、ステップ１０００９の処理に戻る。
【０２２８】
すなわち、リモートプロセス実行メッセージの送信が完了するまで、リモートプロセス実行管理プロセス２０４１は、ステップ１００１０の処理に進めない。
【０２２９】
リモートプロセス実行メッセージの送信が完了したと判定された場合、リモートプロセス実行管理プログラム２０４１は、演算用計算機１００１によってリモートプロセスとして実行される実体を、指定された演算用計算機１００１に送信する（１００１０）。
【０２３０】
ここで、ユーザ演算プログラム２０１０が演算用計算機１００１によって実行される実体は、プログラム・ライブラリ名８０００に登録された名称のユーザ演算プログラム２０１０、プログラム・ライブラリ名８０００に登録された名称のライブラリ２０２０、シグナル情報及びリモートプロセスの一意な識別子を含む。
【０２３１】
そして、リモートプロセス実行管理プログラム２０４１は、リモートプロセスとして実行される実体の送信が完了したか否かを判定する（１００１１）。リモートプロセスとして実行される実体の送信が完了したと判定された場合、リモートプロセス実行管理プログラム２０４１を終了する（１００１２）。一方、リモートプロセスとして実行される実体の送信が完了してないと判定された場合、ステップ１００１１の処理に戻る。
【０２３２】
すなわち、リモートプロセスとして実行される実体の送信が完了するまで、リモートプロセス実行管理プロセス２０４１は、ステップ１００１２の処理に進めない。
【０２３３】
図１１は、本発明の第１の実施形態の演算用計算機１００１に記憶されるリモートプロセス実行管理プログラム２１２４におけるリモートプロセス実行メッセージ処理のフローチャートである。
【０２３４】
リモートプロセス実行管理プログラム２１２４におけるリモートプロセス実行メッセージ処理は、演算用計算機１００１がリモートプロセス実行メッセージを受信した場合に、呼び出される。
【０２３５】
まず、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行メッセージを受信し、受信したリモートプロセス実行メッセージを解析する（１１００１）。
【０２３６】
そして、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに活性確認指令が含まれているか否かを判定する（１１００２）。
【０２３７】
受信したリモートプロセス実行メッセージに活性確認指令が含まれていると判定された場合、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される活性確認フラグを有効化する（１１００３）。
【０２３８】
一方、受信したリモートプロセス実行メッセージに活性確認指令が含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される活性確認フラグを無効化する（１１００４）。
【０２３９】
次に、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに更新指令が含まれているか否かを判定する（１１００５）。
【０２４０】
受信したリモートプロセス実行メッセージに更新指令が含まれていると判定された場合、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される更新フラグを有効化する（１１００６）。
【０２４１】
一方、受信したリモートプロセス実行メッセージに更新指令が含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される更新フラグを無効化する（１１００７）。
【０２４２】
次に、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行メッセージの受信を完了したことを示すメッセージを制御用計算機１０００に送信する（１１００８）。
【０２４３】
そして、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに全活性化指令が含まれているか否かを判定する（１１００９）。
【０２４４】
受信したリモートプロセス実行メッセージに全活性化指令が含まれていると判定された場合、リモートプロセス実行管理プログラム２１２４は、演算用計算機１００１に備わる全ての電力ランクゾーンに属する全てのメモリランク１０３１を活性化し（１１０１０）、ステップ１１０１５の処理に進む。
【０２４５】
一方、受信したリモートプロセス実行メッセージに全活性化指令が含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに含まれるユーザ演算プログラム２０１０及びライブラリ２０２０の合計値８０４０に登録された値及び調整値８０５０に登録された値を取得する（１１０１１）。
【０２４６】
そして、リモートプロセス実行管理プログラム２１２４は、メモリゾーン-電力ランクゾーン状態管理テーブル２１２６を参照し、電力状態６０４０に登録された値が活性状態であるエントリの未使用メモリページフレーム数６０５０に登録された値に基づいて、未使用メモリページフレームの容量を算出する。なお、メモリページフレームの容量は予め設定されているので、この予め設定された容量と、未使用メモリページフレーム数６０５０に登録された値を乗算することによって、未使用メモリページフレームの容量が算出される。
【０２４７】
そして、リモートプロセス実行管理プログラム２１２４は、ステップ１１０１１の処理で取得した各合計値８０４０に登録された値の和である推定値を算出する。次に、リモートプロセス実行管理プログラム２１２４は、算出された未使用メモリページフレームの容量と、推定値及び調整値８０５０に登録された値の和との差分値を計算する（１１０１２）。
【０２４８】
そして、リモートプロセス実行管理プログラム２１２４は、ステップ１１０１２の処理で計算された差分値が負か否かを判定する（１１０１３）。
【０２４９】
ステップ１１０１２の処理で計算された差分値が負であると判定された場合、リモートプロセス実行管理プログラム２１２４は、電力モードが新たに活性状態に切り替えられた電力ランクゾーンに属する未使用メモリページフレームの容量が、ステップ１１０１２の処理で計算された差分値となるように、電力モードが不活性状態であるメモリランク１０３１の電力モードを活性状態に切り替える（１１０１４）。
【０２５０】
具体的には、リモートプロセス実行管理プログラム２１２４は、予め指定されたメモリゾーンから順に、電力ランクゾーンサイズ６０３０に登録された値が小さい電力ランクゾーンから優先して、当該電力ランクゾーンに属するメモリランク１０３１の電力モードを不活性状態から活性状態に切り替える。
【０２５１】
なお、一般に、メモリ管理プログラム２１２２には、ユーザプログラム（例えば、ユーザ演算プログラム２０１０）を実行するためにメモリ１０３０を割り当てる場合に、検索されるメモリゾーンの優先順位が予め指定されている。よって、リモートプロセス実行管理プログラム２１２４は、メモリ管理プログラム２１２２に指定されたメモリゾーンの優先順位で、メモリゾーンの電力ランクゾーンに属するメモリランク１０３１の電力モードの切り替えを実行するとよい。
【０２５２】
次に、リモートプロセス実行管理プログラム２１２４は、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６において、新たに活性状態に切り替えた電力ランクゾーンに該当するエントリの電力状態６０４０を更新する（１１０１５）。
【０２５３】
そして、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される活性確認フラグが有効化されているか否かを判定する（１１０１６）。
【０２５４】
リモートプロセス実行管理プログラム２１２４に定義される活性確認フラグが有効化されていると判定された場合、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される活性済みフラグを有効化し（１１０１７）、リモートプロセス実行管理プログラム２１２４を終了する（１１０１８）。
【０２５５】
一方、リモートプロセス実行管理プログラム２１２４に定義される活性確認フラグが有効化されていると判定された場合、リモートプロセス実行管理プログラム２１２４を終了する（１１０１８）。
【０２５６】
リモートプロセス実行管理プログラム２１２４は、リモート実行プロセスを受信すると、リモートプロセスを実行するために必要なメモリ１０３０の容量を、先行して活性化する。また、制御用計算機１０００は、受信完了メッセージを受信するまで、リモートプロセスとして実行される実体を演算用計算機１００１に送信しない。
【０２５７】
これによって、リモートプロセスがメモリ１０３０にロードされる前に、メモリ１０３０が先行して活性化されるので、演算用計算機１００１がリモートプロセスを実行する処理速度に影響を与えずに、メモリ１０３０が消費する電力を低減できる。
【０２５８】
図１２は、本発明の第１の実施形態の演算用計算機１００１に記憶されるリモートプロセス実行管理プログラム２１２４におけるリモートプログラム実行処理のフローチャートである。
【０２５９】
リモートプロセス実行管理プログラム２１２４におけるリモートプログラム実行処理は、ステップ１００１０の処理で制御用計算機１０００から送信される演算用計算機１００１によってリモートプロセスとして実行される実体を演算用計算機１００１が受信した場合に、呼び出される。
【０２６０】
まず、リモートプロセス実行管理プログラム２１２４は、演算用計算機１００１によってリモートプロセスとして実行される実体を受信する（１２００１）。
【０２６１】
リモートプロセス実行管理プログラム２１２４は、演算用計算機１００１によってリモートプロセスとして実行される実体の受信を完了したことを示すメッセージを制御用計算機１０００に送信する（１２００２）。
【０２６２】
次に、リモートプロセス実行管理プログラム２１２４は、ユーザ演算プログラム２０１０を実行するための準備をする（１２００３）。具体的には、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセスとして実行される実体であるユーザ演算プログラム２０１０及びライブラリ２０２０を実行するために必要なメモリ１０３０の容量を確保する。また、リモートプロセス実行管理プログラム２１２４は、受信したシグナル情報及びプロセス番号等を設定する。
【０２６３】
そして、リモートプロセス実行管理プログラム２１２４は、ステップ１１００３の処理で設定された活性確認フラグが有効化されているか否かを判定する（１２００４）。
【０２６４】
活性確認フラグが有効化されていると判定された場合には、リモートプロセス実行管理プログラム２１２４は、ステップ１１０１７の処理で設定された活性済みフラグが有効化されているか否かを判定する（１２００５）。
【０２６５】
そして、ステップ１２００５の処理で活性済みフラグが有効化されていると判定される場合、及びステップ１２００４の処理で活性確認フラグが有効化されていないと判定される場合に、リモートプロセス実行管理プログラム２１２４は、ユーザ演算プログラム２０１０を実行し（１２００６）、リモートプロセス実行管理プログラム２１２４を終了する（１２００７）。
【０２６６】
また、ステップ１２００５の処理で活性済みフラグが有効化されていないと判定される場合、リモートプロセス実行管理プログラム２１２４は、活性済みフラグが有効化されるのを待って、活性済みフラグが有効化された後、ユーザ演算プログラム２０１０を実行する。
【０２６７】
図１３は、本発明の第１の実施形態の演算用計算機１００１に記憶されるリモートプロセス実行管理プログラム２１２４におけるリモートプロセス終了処理のフローチャートである。
【０２６８】
リモートプロセス実行管理プログラム２１２４におけるリモートプロセス終了処理は、ステップ１２００６の処理で、ユーザ演算プログラム２０１０の実行（１２００６）が終了する場合に、呼び出される。
【０２６９】
まず、リモートプロセス実行管理プログラム２１２４は、リモートプロセス実行管理プログラム２１２４に定義される更新フラグが有効化されているか否かを判定する（１３００１）。
【０２７０】
更新フラグが有効化されていると判定された場合には、リモートプロセス実行管理プログラム２１２４は、ユーザ演算プログラム２０１０を実行している間に、使用したメモリ１０３０の容量の値を含むリモートプロセスの実行が終了したことを示すリモートプロセス終了メッセージを作成し（１３００２）、ステップ１３００３の処理に進む。
【０２７１】
なお、ユーザ演算プログラム２０１０によって使用されたメモリ１０３０の容量は、一般に、メモリ管理プログラム２１２２によって管理される。従って、リモートプロセス実行管理プログラム２１２４は、メモリ管理プログラム２１２２を参照して、ユーザ演算プログラム２０１０によって使用されたメモリ１０３０の容量を取得する。
【０２７２】
一方、更新フラグが有効化されていると判定された場合には、リモートプロセス実行管理プログラム２１２４は、リモートプロセスの実行が終了したことを示すリモートプロセス終了メッセージを作成し、ステップ１３００３の処理に進む。
【０２７３】
次に、リモートプロセス実行管理プログラム２１２４は、リモートプロセス終了メッセージを制御用計算機１０００に送信する（１３００３）。
【０２７４】
リモートプロセス実行管理プログラム２１２４は、ユーザ演算プログラム２０１０によって使用されたメモリ１０３０の領域を未使用メモリページフレームとして解放する（１３００４）。
【０２７５】
リモートプロセス実行管理プログラム２１２４は、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれる未使用メモリページフレーム数６０５０に登録された値を更新する（１３００５）。
【０２７６】
なお、ユーザ演算プログラム２０１０によって使用されたメモリページフレームを解放する処理は、メモリ管理プログラム２１２２が呼び出され、呼び出されたメモリ管理プログラム２１２２によって実行されてもよい。
【０２７７】
また、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれる未使用メモリページフレーム数６０５０に登録された値を更新する処理は、メモリ管理プログラム２１２２によって管理される未使用メモリページフレームの情報に基づいて、メモリ電力管理プログラム２１２３又はメモリ管理プログラム２１２２が呼び出され、呼び出されたメモリ電力管理プログラム２１２３又はメモリ管理プログラム２１２２によって実行されてもよい。
【０２７８】
次に、リモートプロセス実行管理プログラム２１２４は、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれる各電力ランクゾーン６０２０に登録された識別子の電力ランクゾーンにステップ１３００７〜１３００９の処理を繰り返す（１３００６）。
【０２７９】
まず、リモートプロセス実行管理プログラム２１２４は、未使用メモリページフレーム数６０５０に登録された値と、一つのメモリページフレーム当たりの容量とを乗算する。これによって、未使用メモリページフレームの容量が計算される。そして、リモートプロセス実行管理プログラム２１２４は、電力ランクゾーンサイズ６０３０に登録された値と計算された未使用メモリページフレームの容量との差分値を計算する（１３００７）。
【０２８０】
そして、リモートプロセス実行管理プログラム２１２４は、ステップ１３００７の処理で計算された差分値が０か否かを判定する（１３００８）。
【０２８１】
差分値が０と判定された場合には、該当する電力ランクゾーン６０２０に属するメモリランク１０３１の電力モードを不活性状態にする（１３００９）。
【０２８２】
一方、ステップ１３００９の処理が実行された後、又はステップ１３００８の処理で差分値が０でないと判定された場合には、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれる各電力ランクゾーン６０２０に登録された全ての識別子の電力ランクゾーンにステップ１３００７〜１３００９の処理が実行されると（１３０１０）、リモートプロセス実行管理プログラム２１２４を終了する（１３０１１）。
【０２８３】
図１４は、本発明の第１の実施形態の制御用計算機１０００に記憶されるリモートプロセス実行管理プログラム２０４１におけるリモートプロセス終了処理のフローチャートである。
【０２８４】
リモートプロセス実行管理プログラム２０４１におけるリモートプロセス終了処理は、演算用計算機１００１から送信されたリモートプロセス終了メッセージを制御用計算機１０００が受信すると、呼び出される。
【０２８５】
まず、リモートプロセス実行管理プログラム２０４１は、リモートプロセス終了メッセージを受信し、受信したリモートプロセス終了メッセージを解析する（１４００１）。
【０２８６】
そして、リモートプロセス実行管理プログラム２０４１は、演算用計算機１００１に実行させたリモートプロセスに対応するリモートプロセス推定メモリ量テーブル２０４４に含まれる更新フラグ８０９０にＯＮが登録されているか否かを判定する（１４００２）。
【０２８７】
更新フラグ８０９０にＯＮが登録されていないと判定された場合には、ステップ１４００６の処理に進む。
【０２８８】
更新フラグ８０９０にＯＮが登録されていると判定された場合には、リモートプロセス実行管理プログラム２０４１は、リモートプロセス終了メッセージに、ユーザ演算プログラム２０１０によって実際に使用されたメモリ１０３０の容量の値が含まれるか否かを判定する（１４００３）。
【０２８９】
ユーザ演算プログラム２０１０によって実際に使用されたメモリ１０３０の容量の値が含まれると判定された場合には、リモートプロセス実行管理プログラム２０４１は、リモートプロセス終了メッセージに含まれるメモリ１０３０の容量からリモートプロセス推定メモリ量テーブル２０４４に含まれる各エントリの合計値８０５０の和である推定値との差分値を計算する（１４００４）。
【０２９０】
一方、リモートプロセス終了メッセージに、ユーザ演算プログラム２０１０によって実際に使用されたメモリ１０３０の容量の値が含まれないと判定された場合には、ステップ１４００６の処理に進む。
【０２９１】
ステップ１４００４の処理が実行された後、リモートプロセス実行管理プログラム２０４１は、リモートプロセス推定メモリ量テーブル２０４４に含まれる調整値８０６０にステップ１４００４の処理で計算機された差分値を登録する（１４００５）。
【０２９２】
次に、リモートプロセス実行管理プログラム２０４１は、ユーザ演算プログラム２０１０に関するリモートプロセス実行処理を終了し（１４００６）、リモートプログラム実行管理プログラム２０４１を終了する（１４００７）。
【０２９３】
第１の実施形態では、相互接続された複数の計算機（制御用計算機１０００及び演算用計算機１００１）から構成される並列計算機システムと基本システムソフトウェア（２０４０及び２１２０）（オペレーティングシステム等）が連携して、メモリ１０３０が消費する電力を低減させる。そして、ユーザ演算プログラム２０１０がリモートプロセスとして演算用計算機１００１によって実行されることを考慮した一連のメモリ１０３０の電力モードの制御並びにメモリ１０３０の割当及び解放が実行される。
【０２９４】
これによって、ユーザ演算プログラム２０１０がリモートプロセスとして実行される場合に、最低限必要なメモリランク１０３１の電力モードを活性状態に切り替えることができる。また、メモリ１０３０の使用されている領域が、メモリランク１０３１に跨るような断片化を抑制できる。
【０２９５】
従って、メモリ１０３０が消費する電力を確実かつ効率的に大幅に低減できる。さらに、演算用計算機１００１がリモートプロセスを実行するために必要なメモリランク１０３１の電力モードを先行して活性化するので、メモリランク１０３１の電力モードを切り替える場合に発生するレイテンシを隠蔽できる。よって、ＣＰＵ１０１０がメモリ１０３０にアクセスする性能に影響を与えずにメモリ１０３０が消費する電力を低減できる。
【０２９６】
また、ユーザ演算プログラム２０１０が演算用計算機１００１によって実行される場合に、外乱を排除できる。
【０２９７】
特に、ユーザ演算プログラム２０１０が大量のメモリ１０３０の領域を使用する場合（例えば、科学技術計算プログラム等）等、より効果的にメモリ１０３０が消費する電力を低減できる。
【０２９８】
（第２の実施形態）
本発明の第２の実施形態を図１５〜図１８を用いて説明する。
【０２９９】
第２の実施形態は、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を先行して活性化する場合に、先行して活性化される電力ランクゾーンの順番をユーザが指定できる実施形態である。
【０３００】
以下、第２の実施形態について第１の実施形態と異なる部分についてのみ説明する。なお、第１の実施形態と同じ構成には、同じ符号を付与する。
【０３０１】
図１５は、本発明の第２の実施形態の制御用計算機１０００に記憶される基本システムソフトウェア１５０００の構成を示す図である。
【０３０２】
基本システムソフトウェア１５０００は、制御用計算機ノード１０００に備わるＣＰＵ１０１０によって実行される。
【０３０３】
基本システムソフトウェア１５０００は、使用メモリ電力ランクポリシテーブル１５０１０を含む。
【０３０４】
使用メモリ電力ランクポリシテーブル１５０１０は、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を先行して活性化する場合に、先行して活性化される電力ランクゾーンのポリシ等を示す。なお、基本システムソフトウェア１５０００の他の構成は、第１の実施形態と同じである。
【０３０５】
図１６は、本発明の第２の実施形態の使用メモリ電力ランクポリシテーブル１５０１０の構成を示す図である。
【０３０６】
使用メモリ電力ランクポリシテーブル１５０１０は、基本システムソフトウェア１５０００によって管理される。
【０３０７】
使用メモリ電力ランクポリシテーブル１５０１０は、プログラム名１６０００、優先割当電力ランクゾーン数１６０１０、使用電力ランクゾーン優先順位１６０２０、メモリ割当ポリシ１６０３０及び電力ランクゾーン指定フラグ１６０４０を含む。
【０３０８】
プログラム名１６０００には、ユーザ演算プログラム２０１０の名称が登録される。優先割当電力ランクゾーン数１６０１０には、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を使用する場合に、優先して使用する電力ランクゾーンの数が登録される。
【０３０９】
使用電力ランクゾーン優先順位１６０２０には、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を使用する場合に、優先して使用する電力ランクゾーンの順番の電力ランクゾーンの識別子が登録される。
【０３１０】
メモリ割当ポリシ１６０３０には、使用電力ランクゾーン優先順位１６０２０に登録された識別子の電力ランクゾーンが使用できない場合、優先して活性化される電力ランクゾーンを示すポリシが登録される。なお、使用電力ランクゾーン優先順位１６０２０に登録された識別子の電力ランクゾーンが使用できない場合は、例えば、使用電力ランクゾーン優先順位１６０２０に登録された全ての識別子の電力ランクゾーンが使用されている場合等がある。
【０３１１】
電力ランクゾーン指定フラグ１６０４０には、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を割り当てる場合に、優先割当電力ランクゾーン数１６０１０、使用電力ランクゾーン優先順位１６０２０、メモリ割当ポリシ１６０３０等に登録された値等に基づいて、電力ランクゾーンを優先して活性化する否かの値が登録される。
【０３１２】
なお、使用メモリ電力ランクポリシテーブル１５０１０は、演算用計算機ノード情報テーブル２０４３に含まれる演算用計算機ノード７０００に登録された名称の演算用計算機１００１ごとに、制御用計算機１０００に複数記憶されてもよい。
【０３１３】
例えば、図１６に示す使用メモリ電力ランクポリシテーブル１５０１０では、Ｐｒｏｇ０（１６０５０）は、優先して使用される電力ランクゾーンの数は５である。また、優先して使用される電力ランクゾーンの順番は、ＰＰxp、ＰＲxp+1、ＰＲxp+2、ＰＲxp+3及びＰＲxp+4の順である。そして、ＰＰxp、ＰＲxp+1、ＰＲxp+2、ＰＲxp+3及びＰＲxp+4のいずれもがユーザ演算プログラム２０１０に割り当てられない既に使用中である場合には、ＰＲｘｐ＋５の電力ランクゾーンから昇順に優先して割り当てられる。
【０３１４】
また、電力ランクゾーン指定フラグが有効化されている。よって、演算用計算機１００１がリモートプロセスを実行するために必要なメモリ１０３０の容量を使用する場合に、優先割当電力ランクゾーン数１６０１０、使用電力ランクゾーン優先順位１６０２０、メモリ割当ポリシ１６０３０等に登録された値等に基づいて、電力ランクゾーンは優先して使用される。
【０３１５】
なお、プログラム名１６０００には、演算用計算機１００１によってリモートプロセスとして実行されるユーザ演算プログラム２０１０の名称が登録される。なお、プログラム名１６０００に登録されるユーザ演算プログラム２０１０の名称の数は、単数であっても複数であってもよい。
【０３１６】
優先割当電力ランクゾーン数１６０１０には、０以上の整数である値が登録される。優先割当電力ランクゾーン数１６０１０に登録される値は、演算用計算機ノード１００１に備わるメモリ１０３０の電力ランクゾーンの数を超えない。これは、ユーザが優先割当電力ランクゾーン数１６０１０を設定する場合に、メモリゾーン‐電力ランクゾーン状態管理テーブル２１２６に含まれる電力ランクゾーン６０２０に登録されたエントリの数を参照することによって防止できる。
【０３１７】
なお、優先割当電力ランクゾーン数１６０１０に登録された値の電力ランクゾーンの未使用メモリページフレームの容量が、リモートプロセス推定メモリ量テーブル２０４４に含まれる合計値８０５０及び調整値８０６０に登録された値以上になるように、ユーザは、優先割当電力ランクゾーン数１６０１０に登録される値を設定してもよい。
【０３１８】
使用電力ランクゾーン優先順位１６０２０は、優先割当電力ランクゾーン数１６０１０だけ優先順に電力ランクゾーンを設定する。メモリ割当ポリシ１６０３０は、あるユーザ演算プログラムの実行が終了した時に、なるべく電力ランクゾーンに属する全メモリページフレームが未使用領域となることを考慮して設定される。なお、エントリ（１６０１０、１６０２０、１６０３０）を設定しない場合には、リモートプロセス実行管理プログラム２１２４が、各エントリを適切に設定する。
【０３１９】
なお、演算用計算機１００１によってリモートプロセスとしてユーザ演算プログラム２０１０が実行される場合、演算用計算機１００１に記憶されるメモリ管理プログラム２１２２は、使用電力ランクゾーン優先順位１６０２０及びメモリ割当ポリシ１６０３０に登録された値に基づいて、メモリ割当で実施する。
【０３２０】
なお、使用メモリ電力ランクポリシテーブル１５０１０の各エントリには、通常、デフォルトの値が登録される。また、ユーザが使用メモリ電力ランクポリシテーブル１５０１０を設定できる。
【０３２１】
具体的には、ユーザは、制御用計算機１０００に備わる入力装置を用いて、リモートプロセス管理インタフェース２０４２を介して、使用メモリ電力ランクポリシテーブル１５０１０を作成してもよいし、使用メモリ電力ランクポリシテーブル１５０１０に登録されるエントリを追加してもよいし、及び使用メモリ電力ランクポリシテーブル１５０１０に登録される値を変更してもよい。
【０３２２】
また、ユーザは、遠隔地にある計算機１２２０からネットワーク１２１０を通じて、リモートプロセス管理インタフェース２０４２を介して、使用メモリ電力ランクポリシテーブル１５０１０を設定できるようにしてもよい。
【０３２３】
また、演算用計算機１００１に記憶されるリモートプロセス実行管理プログラム２１２４が、ネットワーク１１９０又は高速入出力装置１１４０を通じて、制御用計算機１０００に記憶されるリモートプロセス管理インタフェース２０４２を介して、使用メモリ電力ランクポリシテーブル１５０１０を設定できるようにしてもよい。
【０３２４】
例えば、リモートプロセス実行管理プログラム２１２４は、優先割当電力ランクゾーン数１６０１０に登録される値、使用電力ランクゾーン優先順位１６０２０に登録される電力ランクゾーンの識別子及びメモリ割当ポリシ１６０３０に登録されるポリシを決定する。そして、決定された優先割当電力ランクゾーン数１６０１０に登録される値、使用電力ランクゾーン優先順位１６０２０に登録される電力ランクゾーンの識別子及びメモリ割当ポリシ１６０３０に登録されるポリシがそのまま使用メモリ電力ランクポリシテーブル１５０１０に登録されてもよい。
【０３２５】
図１７は、本発明の第２の実施形態の制御用計算機１０００に記憶されるリモートプロセス実行管理プログラム２０４１におけるリモートプロセス実行処理のフローチャートである。
【０３２６】
なお、図１０に示す第１の実施形態のリモートプロセス実行管理プログラム２０４１におけるリモートプロセス実行処理と異なる部分を説明する。
【０３２７】
ステップ１０００５の処理で、リモートプロセス実行管理プログラム２０４１は、全活性化フラグ８０７０にＯＮが登録されていないと判定された場合、ステップ１０００７の処理に進む。
【０３２８】
そして、リモートプロセス実行管理プログラム２０４１は、ステップ１０００７の処理を実行した後、使用メモリ電力ランクポリシテーブル１５０１０を参照し、電力ランクゾーン指定フラグ１６０４０にＯＮが登録されているか否かを判定する（１７０００）。
【０３２９】
電力ランクゾーン指定フラグ１６０４０にＯＮが登録されていない場合には、リモートプロセス実行管理プログラム２０４１は、ステップ１０００８の処理に進む。
【０３３０】
一方、電力ランクゾーン指定フラグ１６０４０にＯＮが登録されている場合には、リモートプロセス実行管理プログラム２０４１は、使用メモリ電力ランクポリシテーブル１５０１０で指定された電力ランクゾーンを優先して活性化する指令である電力ランクゾーン指定指令を含むプロセス実行メッセージを作成する（１７００１）。
【０３３１】
そして、リモートプロセス実行管理プログラム２０４１は、使用メモリ電力ランクポリシテーブル１５０１０に含まれるプログラム名１６０００に登録されたユーザ演算プログラムの名称のうち、演算用計算機１００１にリモートプロセスとして実行させるユーザ演算プログラム２０１０の名称に一致するエントリを選択する。そして、選択したエントリから、優先割当電力ランクゾーン数１６０１０、使用電力ランクゾーン優先順位１６０２０及びメモリ割当ポリシ１６０３０に登録された値を取得し、取得した値を含むリモート実行メッセージを作成し（１７００２）、ステップ１０００８の処理に進む。
【０３３２】
図１８は、本発明の第２の実施形態の演算用計算機１００１に記憶されるリモートプロセス実行管理プログラム２１２４におけるリモートプロセス実行メッセージ処理のフローチャートである。
【０３３３】
なお、図１１に示す第１の実施形態の演算用計算機ノードソフトウェア２１００のリモートプロセス実行管理プログラム２１２４におけるリモートプロセス実行メッセージ処理と異なる部分のみ説明する。
【０３３４】
受信したリモートプロセス実行メッセージに全活性化指令が含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、ステップ１１０１１〜ステップ１１０１３の処理を実行する。
【０３３５】
そして、ステップ１１０１３の処理で、差分値が負でないと判定された場合、ステップ１１０１５の処理に進む。
【０３３６】
一方、ステップ１１０１３の処理で、差分値が負であると判定された場合、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに電力ランクゾーン指定指令が含まれているか否かを判定する（１８０００）。
【０３３７】
受信したリモートプロセス実行メッセージに電力ランクゾーン指定指令が含まれていると判定された場合、ステップ１８００１の処理に進む。
【０３３８】
一方、受信したリモートプロセス実行メッセージに電力ランクゾーン指定指令が含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、ステップ１１０１４の処理を実行し、ステップ１１０１５の処理に進む。
【０３３９】
一方、受信したリモートプロセス実行メッセージに電力ランクゾーン指定指令が含まれていると判定された場合、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに使用電力ランクゾーン優先順位１６０２０に登録された値及びメモリ割当ポリシ１６０３０に登録された値の少なくとも一方が含まれているか否かを判定する（１８００１）。
【０３４０】
受信したリモートプロセス実行メッセージに使用電力ランクゾーン優先順位１６０２０に登録された値及びメモリ割当ポリシ１６０３０に登録された値のいずれもが含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに優先割当電力ランクゾーン数１６０１０に登録された値が含まれているか否かを判定する（１８００３）。
【０３４１】
受信したリモートプロセス実行メッセージに優先割当電力ランクゾーン数１６０１０に登録された値が含まれていると判定された場合、リモートプロセス実行管理プログラム２１２４は、演算用計算機１００１によって実行される他のユーザ演算プログラム２０１０に対応する使用電力ランクゾーン優先順位１６０２０に登録された識別子以外の電力ランクゾーンから、当該電力ランクゾーンの未使用メモリページフレーム数６０４０に登録された値が大きい順に、電力ランクゾーンに優先順位を付与する（１８００４）。
【０３４２】
なお、優先順位が付与された電力ランクゾーンの数は、優先割当電力ランクゾーン数１６０１０に登録された値と同じである。
【０３４３】
そして、ステップ１８００４の処理が実行された後、ステップ１８００２の処理に進む。
【０３４４】
一方、ステップ１８００３の処理で、受信したリモートプロセス実行メッセージに優先割当電力ランクゾーン数１６０１０に登録された値が含まれていないと判定された場合、リモートプロセス実行管理プログラム２１２４は、演算用計算機１００１によって実行される他のユーザ演算プログラム２０１０に対応する使用電力ランクゾーン優先順位１６０２０に登録された識別子以外の電力ランクゾーンから、当該電力ランクゾーンの未使用メモリページフレーム数６０４０に登録された値が大きい順に、電力ランクゾーンに優先順位を付与する（１８００５）。
【０３４５】
なお、優先順位が付与された全ての電力ランクゾーンが活性化された場合に、活性化された電力ランクゾーンに属する未使用メモリページフレームの容量の値が、ステップ１１０１２の処理で計算された差分値以上になるように、電力ランクゾーンに優先順位が付与される。
【０３４６】
そして、ステップ１８００５の処理が実行された後、ステップ１８００２の処理に進む。
【０３４７】
次に、リモートプロセス実行管理プログラム２１２４は、ステップ１８００４若しくはステップ１８００５の処理で設定された優先順位、又は受信したリモートプロセス実行メッセージに含まれる使用電力ランクゾーン優先順位１６０２０に登録された値に基づいて、優先して電力ランクゾーンの電力モードを活性化する。なお、電力モードを活性化する電力ランクゾーンに属する未使用メモリページフレームの容量の値がステップ１１０１２の処理で計算された差分値以上になるように、電力ランクゾーンを活性化する（１８００２）。ステップ１８００２の処理が実行された後、ステップ１１０１５の処理に進む。
【０３４８】
なお、受信したリモートプロセス実行メッセージに使用電力ランクゾーン１６０２０に登録された値が含まれていない場合、リモートプロセス実行管理プログラム２１２４は、受信したリモートプロセス実行メッセージに含まれるメモリ割当ポリシ１６０３０に登録された値に基づいて、優先して電力ランクゾーンを活性化する。
【０３４９】
これによって、ユーザ演算プログラム２０１０がリモートプロセスとして実行される場合に、最低限必要なメモリランク１０３１の電力モードを活性状態に切り替えることができる。また、メモリ１０３０の使用されている領域が、メモリランク１０３１に跨るような断片化を抑制できる。
【０３５０】
従って、メモリ１０３０が消費する電力を確実かつ効率的に大幅に低減できる。さらに、演算用計算機１００１がリモートプロセスを実行するために必要なメモリランク１０３１の電力モードを先行して活性化するので、メモリランク１０３１の電力モードを切り替える場合に発生するレイテンシを隠蔽できる。よって、ＣＰＵ１０１０がメモリ１０３０にアクセスする性能に影響を与えずにメモリ１０３０が消費する電力を低減できる。
【０３５１】
また、ユーザ演算プログラム２０１０が演算用計算機１００１によって実行される場合に、外乱を排除できる。
【０３５２】
特に、ユーザ演算プログラム２０１０が大量のメモリ１０３０の領域を使用する場合（例えば、科学技術計算プログラム等）等、より効果的にメモリ１０３０が消費する電力を低減できる。
【図面の簡単な説明】
【０３５３】
【図１】本発明の第１の実施形態における計算機システムの構成を示す図である。
【図２】本発明の第１の実施形態の制御用計算機ノードソフトウェア及び演算用計算機ノードソフトウェアの構成を示す図である。
【図３】本発明の第１の実施形態のメモリ・アドレッシング・モードテーブルの構成を示す図である。
【図４】本発明の第１の実施形態の電力ランクゾーン‐メモリランク対応管理テーブルの構成を示す図である。
【図５】本発明の第１の実施形態のメモリ電力モードテーブルの構成図である。
【図６】本発明の第１の実施形態のメモリゾーン‐電力ランクゾーン状態管理テーブルの構成を示す図である。
【図７】本発明の第１の実施形態の演算用計算機ノード情報テーブルの構成を示す図である。
【図８】本発明の第１の実施形態のリモートプロセス推定メモリ量テーブルの構成を示す図である。
【図９】本発明の第１の実施形態のメモリ管理初期化プログラムのフローチャートである。
【図１０】本発明の第１の実施形態の制御用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプロセスを実行する処理のフローチャートである。
【図１１】本発明の第１の実施形態の演算用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプロセス実行メッセージ処理のフローチャートである。
【図１２】本発明の第１の実施形態の演算用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプログラム実行処理のフローチャートである。
【図１３】本発明の第１の実施形態の演算用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプロセス終了処理のフローチャートである。
【図１４】本発明の第１の実施形態の制御用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプロセス終了処理のフローチャートである。
【図１５】本発明の第２の実施形態の制御用計算機１０００に記憶される基本システムソフトウェアの構成を示す図である。
【図１６】本発明の第２の実施形態の使用メモリ電力ランクポリシテーブルの構成を示す図である。
【図１７】本発明の第２の実施形態の制御用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプロセス実行処理のフローチャートである。
【図１８】本発明の第２の実施形態の演算用計算機に記憶されるリモートプロセス実行管理プログラムにおけるリモートプロセス実行メッセージ処理のフローチャートである。
【符号の説明】
【０３５４】
１０００…制御用計算機
１００１…演算用計算機
１０１０…ＣＰＵ
１０２０…メモリコントローラ
１０３０…メモリ
１０３１…メモリランク
１０７０…チャネル
１０９０…システムＲＯＭ
１１００…ビデオアダプタ
１１１０…ネットワークインタフェース
１１２０…二次記憶装置インタフェース
１１３０…入力装置インタフェース
１１４０…高速入出力装置
１１５０…システムバス
１１６０…二次記憶装置
１１７０…キーボード
１１８０…マウス
１１９０…ネットワーク
１２００…ディスプレイ
１２１０…ネットワーク
１２２０…計算機
【図１】
2008090395.tif 000003
【図２】
2008090395.tif 000004
【図３】
2008090395.tif 000005
【図４】
2008090395.tif 000006
【図５】
2008090395.tif 000007
【図６】
2008090395.tif 000008
【図７】
2008090395.tif 000009
【図８】
2008090395.tif 000010
【図９】
2008090395.tif 000011
【図１０】
2008090395.tif 000012
【図１１】
2008090395.tif 000013
【図１２】
2008090395.tif 000014
【図１３】
2008090395.tif 000015
【図１４】
2008090395.tif 000016
【図１５】
2008090395.tif 000017
【図１６】
2008090395.tif 000018
【図１７】
2008090395.tif 000019
【図１８】
2008090395.tif 000020