(57)【要約】【課題】情報処理装置は、他の情報処理装置が有する主記憶装置にアクセスした場合、発生したページフォルトによる例外の検出に基づいて、演算処理装置のクロック周波数又は電圧を制御することで、演算処理装置の性能低下を抑えつつ、演算処理装置の省電力化を図る。【解決手段】情報処理装置は、他の情報処理装置と接続される情報処理装置であって、演算処理装置と、前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出する例外検出部と、前記例外事象の検出に基づいて前記演算処理装置のクロック周波数又は電圧を変更する制御部とを備える。【選択図】図３
2015148890.tif 000002
【特許請求の範囲】
【請求項１】
他の情報処理装置と接続される情報処理装置であって、
演算処理装置と、
前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出する例外検出部と、
前記例外事象の検出に基づいて前記演算処理装置のクロック周波数又は電圧を変更する制御部と、
を備える情報処理装置。
【請求項２】
前記制御部は、前記例外事象の検出に基づいて、前記演算処理装置のクロック周波数又は電圧を前記例外事象の検出前よりも低い周波数又は電圧に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記例外事象を検出したときに前記他の情報処理装置から前記データを取得する通信処理部をさらに備え、
前記制御部は、前記データの取得が完了したか、または前記データの取得にかかる時間から前記演算処理装置のクロック周波数を前記変更前の周波数に戻すための遷移時間を引いた時間が前記データの取得開始時から経過したときに、前記演算処理装置のクロック周波数又は電圧を前記変更前の周波数又は電圧に設定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記例外事象を検出したときに前記他の情報処理装置から前記データを取得する通信処理部と、
前記データの取得が開始されてから完了するまでの経過時間を計測し、所定の単位時間内における前記経過時間を積算して、前記単位時間のうち前記データの取得に要した時間を求める時間計測部と、
前記単位時間のうち、前記データの取得に要した時間および前記演算処理装置が処理を行わない時間の両方を除いた時間が、前記単位時間に占める割合を示す演算処理装置使用率を算出する演算処理装置使用率換算部と、
をさらに備え、
前記制御部は、前記演算処理装置使用率が所定の値よりも小さい場合には、前記単位時間の次の単位時間の間、前記演算処理装置のクロック周波数又は電圧を低く設定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
複数の情報処理装置を有する情報処理システムであって、
前記複数の情報処理装置の１つで、他の情報処理装置と接続される情報処理装置が、
演算処理装置と、
前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出する例外検出部と、
前記例外事象の検出に基づいて前記演算処理装置のクロック周波数又は電圧を変更する制御部と、
を備えることを特徴とする情報処理システム。
【請求項６】
複数の情報処理装置を有する情報処理システムの制御方法であって、
前記複数の情報処理装置の１つで、他の情報処理装置と接続される情報処理装置が、
演算処理装置を備え、
前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出するステップと、
前記例外事象の検出に基づいて前記演算処理装置のクロック周波数又は電圧を変更する
ステップと、
を実行する情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、および情報処理システムの制御方法に関する。
【背景技術】
【０００２】
近年、情報処理装置の障害等に備え、高い可用性や拡張性を実現するクラスタシステムが導入されている。クラスタシステムとは、複数の情報処理装置が接続され、全体として１つのシステムとして運用するシステムをいう。この構成により、クラスタシステムは、複数の情報処理装置により負荷を分散することができる。さらに、クラスタシステムは、１つの情報処理装置において障害が発生しても、別の情報処理装置で処理を継続することができる。また、クラスタシステムは、サーバとして用いられる場合に、複数の情報処理装置により負荷を分散することができる。クラスタシステムにおいて接続される情報処理装置は、ノードと呼ばれる。各ノードは、演算処理装置としてのＣＰＵ（Ｃｅｎｔｒａｌ
Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および主記憶装置としてのメモリを有する。複数ノード間で通信を行うクラスタシステムにおいて、あるノードのＣＰＵは、他のノードのメモリ上のデータを取得するために通信している間、無駄な電力を消費することがある。クラスタシステムの大規模化により、ＣＰＵの演算時間に対し通信時間は増大している。このため、ＣＰＵが無駄に電力を消費する傾向がある。したがって、クラスタシステムの通信時において、ＣＰＵの消費電力を低減することが求められる。
【０００３】
クラスタシステムの実現手法の一つとして、分散共有メモリシステムが挙げられる。分散共有メモリシステムにおいて、複数のノードは、データの転送等に使用されるネットワークで接続される。複数のノードを接続するネットワークは、インターコネクトと呼ばれる。分散共有メモリシステムは、高速インターコネクトで接続した複数の情報処理装置を一つの情報処理装置に仮想化する。このため、分散共有メモリシステムは、プログラムの実行単位であるスレッドを、多数並列して実行することができる。また、分散共有メモリシステムは、各ノードが持つメモリをシステム全体で共有し、各ノード内のＣＰＵから相互にアクセスができるようにすることで、大容量メモリを利用することができるという利点を有する。
【０００４】
ここで、あるノードのＣＰＵで実行されるプロセスは、メモリを仮想アドレス空間と呼ばれる1つのメモリ空間として利用する。仮想アドレス空間はページと呼ばれる単位で管
理されており、プロセスはあるページにアクセスし、プログラムの実行に使用するデータを取得する。このとき、ノードがアクセスしようとするページの実体である物理メモリは、自身のノード内のメモリであるローカルメモリに割り当てられていない場合が生じる。アクセスしようとするページが、ローカルメモリに割り当てられていない場合、ページフォルトと呼ばれる例外が発生する。ページフォルトが発生すると、ＣＰＵは、例外処理または割込処理と呼ばれる処理を通じてアクセスしようとするページの取得処理を行う。単体の情報処理装置の場合、通常、ＨＤＤ等の２次記憶装置に退避されたページをローカルメモリに移すなどの処理を行う。一方、分散共有メモリシステムでは、ＨＤＤ等の２次記憶装置に退避されたページが他のノードのメモリに存在し、他のノードより当該ページのデータの取得を行う必要がある場合が存在する。他のノードのメモリであるリモートメモリから、ページのデータを取得するためには、通信処理が発生する。この通信処理の間、ＣＰＵは、多くの時間が通信完了待ちに費やされるにもかかわらず高いＣＰＵ周波数で動作するため、無駄な電力を消費する。
【０００５】
ＣＰＵの消費電力は、電圧の２乗とクロック周波数との積に比例するため、ＣＰＵの電
圧およびクロック周波数を低く設定することで、ＣＰＵの消費電力を削減することができる。ＣＰＵの電圧およびクロック周波数を制御するための技術として、ＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）機構が知られている（例えば、非特許文献３）。このＤＶＦＳ機構を備えたＣＰＵは、電圧およびクロック周波数を変更することができる。以下、ＣＰＵのクロック周波数を、ＣＰＵ周波数という。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６１−４９２６８号公報
【特許文献２】特開２００５−１８２１０３号公報
【特許文献３】特開２００３−３２３３３４号公報
【非特許文献】
【０００７】
【非特許文献１】Venkatesh Pallipadi, Alexey Starikovskiy, “The Ondemand Governor”, Canada, Proceedings of the Linux Symposium, July 19th-22nd, 2006, Volume Two
【非特許文献２】中島耕太、佐藤充、久門耕一、谷口秀夫「10Gb Ethernet 上のRDMA転送機能による仮想マシン移動の設計と評価」情報処理学会論文誌.コンピューティングシステム 48(SIG_18(ACS_20)), 2007-12-15, p.69-82
【非特許文献３】“Enhanced Intel(R) SpeedStep(R) Technology for the Intel(R) Pentium(R) M Processor”,March 2004
【非特許文献４】Bhavyasree Unni, Nazia Parveen, Ankit Kumar, B. S. Bindhumadhava, “An intelligent energy optimization approach for MPI based applications in HPC systems”, CSI Publications 2013, p.2
【非特許文献５】Konstantinos Koukos, David Black-Schaffer, Vasileios Spiliopoulos, Stefanos Kaxiras, “Towards More Efficient Execution: A Decoupled Access-Execute Approach”, ICS’13, 2013, Uppsala University
【発明の概要】
【発明が解決しようとする課題】
【０００８】
分散共有メモリシステムにおいてページフォルトが発生した場合、ＣＰＵは、取得しようとするページのデータを、他の情報処理装置のメモリからローカルメモリへインターコネクト経由で転送する。以下、ページのデータを転送することをページ転送という。ページ転送処理は、ＣＰＵのリソースを専有する場合があり、転送処理の間も電力消費が発生する。ＣＰＵのリソースが専有された状態はビジーウェイトと呼ばれる。ＣＰＵがビジーウェイトの状態にあると、ＣＰＵの使用率が高くなる。近年の多くのＣＰＵは、ＣＰＵ使用率が高い場合に、ＣＰＵ周波数は高く設定されるため、消費電力も大きくなる。しかしながら、ページ転送が完了するまでのビジーウェイトの間、ＣＰＵ周波数が高くても、ページ転送の性能はあまり向上しない。図１を用いて、ＣＰＵ周波数とＣＰＵの性能の関係について説明する。図１は、ＣＰＵクロック周期を変更したときの片道におけるインターコネクトの遅延時間を示すグラフである。なお、図１で横軸のＣＰＵクロック周期、縦軸の遅延ともに、単位は省略されている。ここでは、図１の縦軸、横軸は無単位であるとして説明する。ＣＰＵクロック周期を長く、すなわちＣＰＵ周波数を低く設定しても、インターコネクトの遅延時間の延びはわずかである。図１では、ＣＰＵクロック周期を約０．２長く設定した場合、インターコネクトの遅延時間は、4.77から4.86となっている。これは、約１．８％の延びである。つまり、ＣＰＵ周波数を高く設定しても、ＣＰＵ周波数が低い場合と比べてインターコネクトの遅延時間があまり短くなることはない。したがって、ページ転送処理の間、ＣＰＵ周波数は高く設定されても性能向上は期待できず、消費電力が大きくなるという問題が生じる。
【０００９】
そこで、開示の技術では、情報処理装置は、ページ転送の間のＣＰＵの動作に着目し、演算処理装置のクロック周波数又は電圧を制御することで、演算処理装置の性能低下を抑えつつ、演算処理装置の省電力化を図ることを目的とする。
【課題を解決するための手段】
【００１０】
開示の技術の一態様の情報処理装置は、他の情報処理装置と接続される情報処理装置であって、演算処理装置と、前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出する例外検出部と、前記例外事象の検出に基づいて前記演算処理装置のクロック周波数又は電圧を変更する制御部とを備える。
【発明の効果】
【００１１】
開示の技術によれば、情報処理装置は、他の情報処理装置が有する主記憶装置にアクセスした場合、例外の検出に基づいて、演算処理装置のクロック周波数又は電圧を制御することで、演算処理装置の性能低下を抑えつつ、演算処理装置の省電力化を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】ＣＰＵクロック周期を変更したときの片道におけるインターコネクトの遅延時間を示すグラフである。
【図２】情報処理システムの構成を示す図である。
【図３】ページフォルトによる例外発生を示す図である。
【図４】都度方式のブロック構成図である。
【図５】変換テーブルのデータ構造を示す図である。
【図６】実施例１の手順によるＣＰＵ周波数の変化の例を示す図である。
【図７】プロセッサ毎のＤＶＦＳ遷移に要する時間の例を示す図である。
【図８】実施例１におけるページ転送時間の計測処理手順を示すフローチャートである。
【図９】都度方式におけるページフォルト発生時の情報処理システムの処理フローの概要を示す図である。
【図１０】実施例１におけるＣＰＵ周波数設定処理手順を示すフローチャートである。
【図１１】スケジューラ方式のブロック構成図である。
【図１２】実施例２の手順によるＣＰＵ周波数の変化の例を示す図である。
【図１３】スケジューラ方式における単位時間中の情報処理システムの処理フローの概要を示す図である。
【図１４】実施例２におけるページフォルト処理のための通信時間の計測処理手順を示すフローチャートである。
【図１５】実施例２におけるＣＰＵ使用率換算処理手順を示すフローチャートである。
【図１６】実施例２におけるＯＳによるＣＰＵ周波数設定処理手順を示すフローチャートである。
【図１７】非特許文献２におけるＤＢサーバの更新ページ量を示すグラフである。
【図１８】図１７におけるapproximateのグラフを表す関数である。
【図１９】図１８の近似式においてｔ＝０でのページ更新速度を示すグラフである。
【図２０】８ノードを有する情報システムの例を示す図である。
【図２１】ＤＶＦＳによる電力削減効果を示すグラフである。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１４】
＜情報処理システムの構成＞
図２は、情報処理システム１の構成を示す図である。図２において、情報処理システム１は、ノード２ａ、ノード２ｂ、ハイパーバイザー３、ＯＳ４、インターコネクト６を有する。また、図２では、ＯＳ４上で実行中のプログラムの状態が、プロセス５として示されている。
【００１５】
ノード２ａおよびノード２ｂは、情報処理システム１内で相互に接続される。なお、情報処理システム１内で相互に接続されるノードの数は、２より多くてもよい。情報処理システム１内で相互に接続されるノードを総称する場合は、ノード２という。ノード２ａは、ＣＰＵ２０ａおよびメモリ２１ａを有する。同様に、ノード２ｂは、ＣＰＵ２０ｂおよびメモリ２１ｂを有する。ＣＰＵ２０ａおよびＣＰＵ２０ｂを総称する場合は、ＣＰＵ２０という。メモリ２１ａおよびメモリ２１ｂを総称する場合は、メモリ２１という。すなわち、情報処理システム１内で相互に接続されるノード２は、それぞれＣＰＵ２０およびメモリ２１を有し、各種演算処理を行う。ノード２は、情報処理装置の一例である。
【００１６】
ハイパーバイザー３は、複数のノード２を１つの情報処理装置に仮想化するためのプログラムである。図２において、ハイパーバイザー３は、仮想ＣＰＵであるｖＣＰＵ３０ａおよびｖＣＰＵ３０ｂを有する。ｖＣＰＵ３０ａおよびｖＣＰＵ３０ｂを総称する場合は、ｖＣＰＵ３０という。本実施形態では、ハイパーバイザー３は、情報処理システム１内で相互に接続されたノード２と同数のｖＣＰＵ３０を有する。各ｖＣＰＵ３０は、各ノード２のＣＰＵ２０と１対１で対応している。各ｖＣＰＵ３０に割り当てられたプログラムは、実際には対応するＣＰＵ２０に割り当てられ実行される。
【００１７】
ＯＳ４は、ハイパーバイザー３により仮想化された情報処理装置を管理し、あるいは、利用するためのプログラムである。図２において、プロセス５はＯＳ４およびハイパーバイザー３を介してｖＣＰＵ３０ａに割り当てられ、実際にはＣＰＵ２０ａにより実行される。
【００１８】
なお、ハイパーバイザー３およびＯＳ４は、情報処理システム１内の代表する一つのノード２、例えばノード２ａに含まれていてもよい。また、複数のノード２をハイパーバイザー３によって仮想化せずに、各ノード２が個別のＯＳにより動作し、各ＣＰＵ２０が相互に通信する場合にも、本技術は適用することができる。この場合、各ＣＰＵ２０は、通信を検知して、通信中にはＣＰＵ周波数を低くすればよい。
【００１９】
インターコネクト６は、複数のノード２を接続するネットワークである。各ノード２が有する各ＣＰＵ２０は、インターコネクト６を介して相互に通信する。
【００２０】
＜ページフォルトによる例外発生＞
図３は、ページフォルトによる例外発生を示す図である。図３において、プロセス５はｖＣＰＵ３０ａに割り当てられている。プロセス５は、ｖＣＰＵ３０ａを介して、ノード２ａおよびノード２ｂにアクセスする。ｖＣＰＵ３０ａは、ＣＰＵ２０ａと対応づけられているため、プロセス５からみて、ノード２ａはローカルノードであり、ノード２ｂはリモートノードである。
【００２１】
プロセス５は、実行中、ｖＣＰＵ３０ａを介して、ノード２ａのメモリ２１ａのページを取得する。取得しようとするページがローカルノードのメモリ２１ａに割り当てられていない場合に、ページフォルトが発生する。ページフォルトが発生すると、ＣＰＵ２０ａ
は、例えば、ノード２ｂのメモリ２１ｂから当該ページに対応するデータを取得する。
【００２２】
なお、ページフォルトは、取得しようとするページがメモリ２１ａに割り当てられていないが、当該ページに対応するデータはノード２ａの補助記憶装置に存在する場合を含む。また、ページフォルトは、取得しようとするページがメモリ２１ａに割り当てられているが、当該ページに対応するデータが補助記憶装置に退避されているような場合も含む。
【００２３】
[実施例１]
実施例１では、ページフォルトによる例外が発生すると、情報処理装置は、他の情報処理装置への通信に着目し、ページフォルト発生からデータ取得までの間、ＣＰＵ周波数を低くすることで消費電力を低減する。ノード２ａは、ページフォルトが発生すると、１回のページフォルト毎に、例えば、通信処理を行う間ＣＰＵ周波数を低く設定し、通信処理が完了すると元の周波数に戻すという制御を行う。この方式を都度方式と呼ぶ。実施例１では、ＣＰＵ周波数を低くすることで消費電力を低減しているが、演算処理装置の電圧を低くすることにより消費電力を低減してもよい。以下、ＣＰＵ周波数を変更する処理は、電圧を変更する処理に置き換えても良いものとする。
【００２４】
＜都度方式のブロック構成＞
図４は、都度方式のブロック構成図である。図４を用いて、都度方式のブロック構成について説明する。図４において、ノード２ａでは、ハイパーバイザー３およびＯＳ４の環境下で、プロセス５が実行される。またノード２ａは、インターコネクト６を介してノード２ｂに接続される。ＣＰＵ２０ａは、例外検出部２００、周波数設定レジスタ２０１、およびタイマ２０２を備える。ハイパーバイザー３は、通信処理部３００、アドレス変換部３０１、変換テーブル３０２、都度方式ＣＰＵ周波数設定部３０３、および時間計測部３０４を備える。ノード２ａは、情報処理装置の一例である。またノード２ｂは、他の情報処理装置の一例である。ＣＰＵ２０ａは、ハイパーバイザー３に示された通信処理部３００、アドレス変換部３０１、変換テーブル３０２、都度方式ＣＰＵ周波数設定部３０３、時間計測部３０４として、メモリ２１ａに実行可能に展開されたコンピュータプログラムを実行する。ただし、通信処理部３００、アドレス変換部３０１、変換テーブル３０２、都度方式ＣＰＵ周波数設定部３０３、時間計測部３０４のいずれか、またはその処理の一部がハードウェア回路により実行されてもよい。
【００２５】
例外検出部２００は、プロセス５においてページフォルトによる例外が発生したことを検知する。例外検出部２００は、例えば、ページフォルトに対応する例外処理プログラムで、ＣＰＵ２０ａの処理により、ハイパーバイザー３に制御を移す。周波数設定レジスタ２０１は、ＣＰＵ２０ａのＣＰＵ周波数を格納する。ＣＰＵ２０ａのＣＰＵ周波数は、周波数設定レジスタ２０１に設定された周波数に変更される。タイマ２０２は、ハイパーバイザー３、ＯＳ４等に計時機能を提供する。
【００２６】
通信処理部３００は、ページフォルトが発生し、プロセス５が取得しようとするページを所有する他のノード２のメモリ２１の物理アドレスが特定されると、ローカルメモリであるメモリ２１ａに当該ページのデータを転送する処理を起動する。
【００２７】
アドレス変換部３０１は、ページフォルトが発生すると、プロセス５が取得しようとするページの仮想アドレスから、当該ページを所有するノード２のメモリ２１上の物理アドレスを、変換テーブル３０２を参照して特定する。
【００２８】
変換テーブル３０２は、プロセス５が取得しようとするページの仮想アドレスを、当該ページを所有するノード２および当該ノード２のメモリ２１における物理アドレスと対応づける。図５は、変換テーブル３０２のデータ構造を示す図である。変換テーブル３０２
は、「仮想アドレス」、「ページ所有ノード」および「物理アドレス」の項目を有する。「仮想アドレス」はハイパーバイザー３のｖＣＰＵ３０における当該ページの仮想アドレスを示す項目である。「ページ所有ノード」は、「仮想アドレス」に割り当てられたページを所有するノード２を示す項目である。「物理アドレス」は、当該ノード２における「仮想アドレス」に割り当てられたページの物理アドレスを示す項目である。
【００２９】
都度方式ＣＰＵ周波数設定部３０３は、ページフォルトが発生し、例えば、ページ転送処理が開始するとＣＰＵ周波数を低く設定する。また、都度方式ＣＰＵ周波数設定部３０３は、所定時間経過後、ＣＰＵ周波数を元に戻す。都度方式ＣＰＵ周波数設定部３０３は、周波数設定レジスタ２０１にＣＰＵ周波数を設定することで、ＣＰＵ周波数を変更する。都度方式ＣＰＵ周波数設定部３０３は制御部の一例である。
【００３０】
時間計測部３０４は、ページの転送時間をあらかじめ計測する。また、時間計測部３０４は、タイマ２０２を参照してページ転送のために通信が開始してからの時間を計測し、所定時間の経過後にＣＰＵ周波数を元に戻すタイミングを都度方式ＣＰＵ周波数設定部３０３に通知する。ここで、上記の所定時間は、本来、ページ転送に要する時間である。しかしながら、ＣＰＵ２０として使用するプロセッサのＣＰＵ周波数が、低く設定された状態から元のＣＰＵ周波数に戻るまでには、一般に１０μｓｅｃ程度の遷移時間を要する。この遷移時間は、ＤＶＦＳ遷移時間と呼ばれる。したがって、ページ転送の完了時に元のＣＰＵ周波数に戻った状態とするため、上記の所定時間は、ページ転送時間からＤＶＦＳ遷移時間を差し引いた時間とする。なお、プロセッサ毎にＤＶＦＳ遷移時間は異なるため、ＤＶＦＳ遷移に要する時間は、利用環境毎に設定しておく。図７は、プロセッサ毎のＤＶＦＳ遷移時間設定の例を示す図である。例えば、Ｉｎｔｅｌ  Ｘｅｏｎ  Ｘ５５７０プロセッサは１０μｓｅｃ、ＡＭＤ  ＦＸ−８１５０プロセッサは８μｓｅｃのＤＶＦＳ遷移時間を要する（非特許文献５参照）。時間計測部３０４は、利用環境毎に設定されたＤＶＦＳ遷移時間を差し引いて、上記の所定時間を算出する。
【００３１】
＜都度方式におけるＣＰＵ周波数の変化＞
図６は、実施例１の手順によるＣＰＵ周波数の変化の例を示す図である。図６を用いて、都度方式におけるページフォルト発生からＯＳに制御が復帰するまでのＣＰＵ周波数の変化について説明する。ページフォルトが発生し、例えば、ページ転送のために通信が開始すると、ハイパーバイザー３の都度方式ＣＰＵ周波数設定部３０３は、ＣＰＵ周波数を低く設定する。ここで、ページ転送のための通信開始の時点は、正確には、実際のページ転送の開始時点が望ましい。ＣＰＵ周波数が低く設定される時点と、ビジーウェイトとなる時点とが、一致する精度が高まるからである。ただし、ページ転送のための通信開始の時点は、実際のページ転送の開始時点に限定される訳ではない。つまり、ＣＰＵ周波数が低く設定される時点と、ビジーウェイトとなる時点との間に許容限度のずれを認める場合には、例えば、ページフォルトが発生した時点をページ転送のために通信開始の時点と見なしてもよい。また、ページフォルトが発生した後、通信処理部３００がページのデータを転送する処理を起動した時点をページ転送のための通信開始の時点と見なしてもよい。
【００３２】
さらに、ページ転送のために通信が終了するか、あるいは、通信開始の時点から、（ページ転送時間）−（ＤＶＦＳ遷移時間）の時間が経過すると、都度方式ＣＰＵ周波数設定部３０３は、ＣＰＵ周波数を元のＣＰＵ周波数に設定する。なお、（ページ転送時間）−（ＤＶＦＳ遷移時間）の時間の経過を判定する始点となる通信開始の時点は、正確には、実際のページ転送の開始時点にすることが望ましい。ＣＰＵ周波数が元の値に戻る時点と、ページ転送が終了し、ＣＰＵ２０がビジーウェイトから復帰する時点とが、一致する精度が高まるからである。ただし、通信開始の時点が実際のページ転送の開始時点に限定されるわけではない。つまり、ＣＰＵ周波数が元の値に戻る時点と、ページ転送が終了し、ＣＰＵ２０がビジーウェイトから復帰する時点との間に許容限度のずれを認める場合には
、例えば、ページフォルトが発生した時点、あるいは、ページフォルトが発生した後、通信処理部３００がページのデータを転送する処理を起動した時点等を通信開始の時点としてもよい。
【００３３】
＜都度方式の処理フロー＞
図８から図１０を用いて、都度方式の処理フローについて説明する。都度方式では、時間計測部３０４は、ページ転送時間をあらかじめ計測しておく。ページフォルトが発生すると、ハイパーバイザー３は、ページ転送時間からＤＶＦＳ遷移時間を差し引いた時間の間、ＣＰＵ周波数を低く設定する。
【００３４】
図８は、実施例１におけるページ転送時間の計測処理手順を示すフローチャートである。ページ転送時間の計測処理の実行時期に限定がある訳ではない。例えば、ページ転送時間の計測処理は、１回目のページフォルトが発生したときに行ってもよい。ステップＳ１０において、時間計測部３０４は、ページ転送のための通信が開始すると時間の計測を開始する。ステップＳ１１において、ＣＰＵ２０ａは、他のノード２ｂのメモリ２１ｂから自身のノード２ａのメモリ２１ａに所定のサイズのページのデータを転送する。所定のサイズとは、メモリ２１上の管理単位であるページのサイズである。ステップＳ１２において、時間計測部３０４は、ページ転送のための通信が完了すると時間の計測を終了する。ステップＳ１２の処理が完了すると、時間計測部３０４は、ページ転送時間の計測処理を終了する。
【００３５】
図９は、都度方式におけるページフォルト発生時の情報処理システムの処理フローの概要を示す図である。ページフォルトによる例外が発生すると、例外検出部２００は、例外を検出する（A1）。例外が検出されると、ハイパーバイザー３に制御が移動する（A2）。アドレス変換部３０１は、ページフォルトの原因となったページの仮想アドレスを、変換テーブル３０２を参照して、当該ページを所有するノードおよび当該ページの物理アドレスに変換する。通信処理部３００は、変換により得られたページ所有ノードおよび物理アドレスを受け取り、転送処理を起動する（A3）。アドレス変換部３０１は、通信処理部３００により転送処理が起動されることを、都度方式ＣＰＵ周波数設定部３０３に通知する（A4）。都度方式ＣＰＵ周波数設定部３０３は、周波数設定レジスタ２０１に低い値のＣＰＵ周波数を設定する（A5）。時間計測部３０４は、通信が開始されると、時間の計測を開始する（A6）。時間計測部３０４は、タイマ２０２を参照し、所定時間が経過すると、ＣＰＵ周波数を元に戻すタイミングを都度方式ＣＰＵ周波数設定部３０３に通知する（A7）。
【００３６】
図１０は、実施例１におけるＣＰＵ周波数設定処理手順を示すフローチャートである。ＣＰＵ周波数設定処理は、ページフォルトの発生により開始する。ステップＳ２０において、例外検出部２００は、ページフォルトによる例外を検出する。例外検出部２００は、前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出するステップの一例として、ステップＳ２０の処理を実行する。
【００３７】
ステップＳ２１において、アドレス変換部３０１は、変換テーブル３０２を参照して、プロセス５がアクセスしようとしたページの仮想アドレスから、当該ページを所有するノード２を調査する。ステップＳ２２において、通信処理部３００は、転送処理を起動し通信が開始される。ＣＰＵ２０ａは、ステップＳ２１で調査したノード２、例えばノード２ｂのメモリ２１ｂから当該ページを取得する。
【００３８】
ステップＳ２３において、ハイパーバイザー３は、ＣＰＵ周波数を低く設定する。具体的には、都度方式ＣＰＵ周波数設定部３０３は、周波数設定レジスタ２０１に低い値のＣ
ＰＵ周波数を設定する。ステップＳ２３は、周波数設定部が、例外事象の検出に基づいて、演算処理装置のクロック周波数を前記例外事象の検出前よりも低い周波数に設定することを例示する。また、ハイパーバイザー３は、前記例外事象の検出に基づいて前記演算処理装置のクロック周波数を変更するステップの一例としてステップＳ２３の処理を実行する。
【００３９】
ステップＳ２４において、ハイパーバイザー３は、ページ転送のための通信が完了したか否かを判定する。通信が完了した場合には、ハイパーバイザー３はステップＳ２６の処理に進む。通信が完了していない場合には、ハイパーバイザー３はステップＳ２５の処理に進む。
【００４０】
ステップＳ２５において、ハイパーバイザー３は、ページ転送時間からＤＶＦＳ遷移時間を差し引いた時間が経過したか否かを判定する。当該時間が経過していない場合は、ハイパーバイザー３はステップＳ２４の処理に戻る。当該時間が経過した場合は、ハイパーバイザー３はステップＳ２６の処理に進む。
【００４１】
ステップＳ２６において、都度方式ＣＰＵ周波数設定部３０３は、ＣＰＵ周波数を元の周波数、すなわち通信開始前の値に設定する。具体的には、都度方式ＣＰＵ周波数設定部３０３は、周波数設定レジスタ２０１に通信開始前のＣＰＵ周波数の値を設定する。ハイパーバイザー３は、前記例外事象の検出に基づいて前記演算処理装置のクロック周波数を変更するステップの一例としてステップＳ２６の処理を実行する。ステップＳ２６の処理が完了すると、ハイパーバイザー３は、ＣＰＵ周波数設定処理を終了する。
【００４２】
実施例１で説明した都度方式は、１回のページフォルト毎に、通信処理を行う間ＣＰＵ周波数を低く設定し、通信処理が完了すると元の周波数に戻すという制御を行う。都度方式は、ページ転送時間がＤＶＦＳ遷移時間に対し十分に長い場合に有効である。すなわち、ページ転送時間からＤＶＦＳ遷移時間を差し引いた時間の間、ＣＰＵ周波数を低く設定することで、性能低下を抑えつつ、ＣＰＵ２０の省電力化を図ることができる。すなわち、実施例１で説明したノード２ａは、例外検出部２００によってページフォルトで例示される例外を検出し、検出した例外に基づいて性能低下を抑えつつ、都度方式ＣＰＵ周波数設定部３０３により省電力化を図ることができる値に周波数を調整できる。さらに、図１０の処理では、都度方式ＣＰＵ周波数設定部３０３は、データの取得が完了したか（Ｓ２４でＹ）、またはデータの取得にかかる時間からＣＰＵ２０ａのＣＰＵ周波数を変更前の周波数に戻すための遷移時間を引いた時間がデータの取得開始時から経過したときに（Ｓ２５でＹ）、ＣＰＵ２０ａのＣＰＵ周波数を変更前の周波数に設定する。したがって、ノード２ａは、図１０の処理によって、ＣＰＵ周波数が低く設定される時点と、ビジーウェイトとなる時点とが一致する精度を高めることができる。
【００４３】
[実施例２]
実施例２では、ノード２ａは、所定の単位時間中、ページフォルト処理のための通信時間を積算し、通信処理を行っている間ＣＰＵは動作していなかったとみなしてＣＰＵ使用率を算出する。ノード２ａは、算出されたＣＰＵ使用率に応じて、ＣＰＵ周波数を制御する。この方式をスケジューラ方式と呼ぶ。実施例２では、ＣＰＵ周波数を制御することで消費電力を低減しているが、演算処理装置の電圧を制御することにより消費電力を低減してもよい。以下、ＣＰＵ周波数を制御する処理は、電圧を制御する処理に置き換えても良いものとする。
【００４４】
＜スケジューラ方式のブロック構成＞
図１１は、スケジューラ方式のブロック構成図である。図１１を用いて、スケジューラ方式のブロック構成について説明する。都度方式と同じ構成については、説明を省略する
。ハイパーバイザー３は、実施例１の都度方式ＣＰＵ周波数設定部３０３に代えて、ＣＰＵ使用率換算部３０５を備える。ＯＳ４は、ＣＰＵ周波数設定部４００および換算ＣＰＵ使用率受取り部４０１を備える。ＣＰＵ２０ａは、ＣＰＵ周波数設定部４００、換算ＣＰＵ使用率受取り部４０１として、メモリ２１ａに実行可能に展開されたコンピュータプログラムを実行する。ただし、ＣＰＵ周波数設定部４００、換算ＣＰＵ使用率受取り部４０１のいずれか、またはその処理の一部がハードウェア回路により実行されてもよい。
【００４５】
ＣＰＵ使用率換算部３０５は、所定の単位時間のうち、ページフォルト処理のための通信時間およびその他の作業指示やデータを待つためのアイドル時間の両方を差し引いた時間が、当該単位時間に占める割合をＣＰＵ使用率として算出する。このＣＰＵ使用率を換算ＣＰＵ使用率と呼ぶ。なお、ページフォルト処理のための通信時間は、時間計測部３０４により計測される。具体的には、時間計測部３０４は、所定の単位時間中ページフォルトが発生すると、ページ転送のための通信開始から通信完了までの時間を計測し、計測した時間を積算してページフォルト処理のための通信時間を算出する。
【００４６】
ＣＰＵ周波数設定部４００は、ある単位時間において、換算ＣＰＵ使用率がＯＳ４で固有に定められた閾値より小さい場合、次の単位時間におけるＣＰＵ周波数を低く設定する。また、ＣＰＵ周波数設定部４００は、換算ＣＰＵ使用率が閾値以上の場合は、次の単位時間におけるＣＰＵ周波数を高く設定する。ＯＳ４には、ＣＰＵ使用率に応じてＣＰＵ周波数を調整する機構が備わっており、ＣＰＵ周波数設定部４００は、当該機構を利用してＣＰＵ周波数を設定する。ＣＰＵ周波数設定部４００は制御部の一例である。
【００４７】
換算ＣＰＵ使用率受取り部４０１は、ＣＰＵ使用率換算部３０５が算出したＣＰＵ使用率を受取り、ＣＰＵ周波数設定部４００に通知する。
【００４８】
＜スケジューラ方式におけるＣＰＵ周波数の変化＞
図１２は、実施例２の手順によるＣＰＵ周波数の変化の例を示す図である。図１２を用いて、スケジューラ方式におけるＣＰＵ周波数の制御について説明する。図１２において、所定の単位時間は１ｍｓｅｃとする。プロセスＡの処理において、ＯＳ４は、１ｍｓｅｃの単位時間ごとに、ＣＰＵ周波数の制御を行う。各単位時間中、複数のページフォルトが発生する。時間計測部３０４は、ある単位時間中ページフォルトが発生すると、ページ転送のための通信開始から通信完了までの時間を計測し、計測した時間を積算してページフォルト処理のための通信時間の合計を算出する。
【００４９】
本実施例のスケジューラ方式では、ページフォルト処理のための通信時間を考慮し、当該通信時間をアイドル時間とみなす。このため、ページフォルトによる通信時間がＣＰＵ使用時間に含まれる場合と比較してＣＰＵ使用率は低くなる。
【００５０】
＜スケジューラ方式の処理フロー＞
図１３から図１６を用いて、スケジューラ方式の処理フローについて説明する。スケジューラ方式では、時間計測部３０４は、ページフォルト処理のための通信時間の合計を算出する。ＯＳ４は、換算ＣＰＵ使用率に応じて、ＣＰＵ周波数を制御する。
【００５１】
図１３は、スケジューラ方式における単位時間中の情報処理システムの処理フローの概要を示す図である。ページフォルトによる例外が発生してから、通信処理部３００が転送処理を起動するまでの処理（A1〜A3）は、図９の都度方式の場合と同様である。すなわち、例外検出部２００による例外の検出（A1）に基づき、ハイパーバイザー３による処理を通じて、アドレス変換部３０１は、通信処理部３００により転送処理が起動されることを、時間計測部３０４に通知する（B4）。時間計測部３０４は、ページ転送のための通信開始から通信完了までの時間を計測し、計測した時間を積算してページフォルト処理のため
の通信時間の合計を算出する。時間計測部３０４は、算出した通信時間の合計をＣＰＵ使用率換算部３０５に通知する（B5）。ＣＰＵ使用率換算部３０５は、換算ＣＰＵ使用率を算出して、換算ＣＰＵ使用率受取り部４０１に通知する（B6）。換算ＣＰＵ使用率受取り部４０１は、ＣＰＵ周波数設定部４００に換算ＣＰＵ使用率を通知する（B7）。ＣＰＵ周波数設定部４００は、換算ＣＰＵ使用率に応じたＣＰＵ周波数を、周波数設定レジスタ２０１に設定する（B8）。時間計測部３０４は、タイマ２０２を参照し、単位時間が経過すると、換算ＣＰＵ使用率を算出するタイミングをＣＰＵ使用率換算部３０５に通知する（B9）。
【００５２】
図１４は、実施例２におけるページフォルト処理のための通信時間の計測処理手順を示すフローチャートである。ページフォルト処理のための通信時間の計測処理は、単位時間が開始してから終了するまでの間、ページフォルトが発生する度に行われる。各ページフォルト処理のための通信時間は積算され、単位時間中の当該通信時間の合計が算出される。ページフォルト処理のための通信時間の計測処理は、ページフォルトの発生により開始する。
【００５３】
ステップＳ３０からステップＳ３２は、それぞれ、図１０の都度方式におけるステップＳ２０からステップＳ２２と同様である。なお、例外検出部２００は、前記他の情報処理装置が有する主記憶装置上のデータへのアクセス要求が前記演算処理装置から発生したときに自身の主記憶装置の例外事象を検出するステップの一例として、ステップＳ３０の処理を実行する。
【００５４】
ステップＳ３３において、時間計測部３０４は、ページ転送のための通信が開始すると時間の計測を開始する。ステップＳ３４において、時間計測部３０４は、ページ転送のための通信が完了したか否かを判定する。通信が完了した場合には、時間計測部３０４はステップＳ３５の処理に進む。通信が完了していない場合には、時間計測部３０４は再度ステップＳ３４の処理を行う。ステップＳ３５において、時間計測部３０４は、ページ転送のための通信が完了すると時間の計測を停止する。ステップＳ３６において、時間計測部３０４は、通信に要した時間を、単位時間中の通信時間の合計時間に加算する。ステップＳ３６処理が完了すると、ハイパーバイザー３は、ページフォルト処理のための通信時間の計測処理を終了する。
【００５５】
図１５は、実施例２におけるＣＰＵ使用率換算処理手順を示すフローチャートである。ＣＰＵ使用率換算処理は、単位時間の経過により開始する。ステップＳ４０において、ＣＰＵ使用率換算部３０５は、アイドル時間をＯＳから取得する。ステップＳ４１において、ＣＰＵ使用率換算部３０５は、単位時間のうち、ページフォルト処理のための通信時間の合計時間およびアイドル時間を除いた時間が、当該単位時間中に占める割合をＣＰＵ使用率として算出する。
【００５６】
ステップＳ４２において、ＣＰＵ使用率換算部３０５は、算出した換算ＣＰＵ使用率をＯＳ４の換算ＣＰＵ使用率受取り部４０１に通知する。ステップＳ４３において、換算ＣＰＵ使用率受取り部４０１は、通知された換算ＣＰＵ使用率をＣＰＵ周波数設定部４００に通知する。ステップＳ４４において、ＯＳ４は、通知された換算ＣＰＵ使用率を周波数設定レジスタ２０１に設定し、ＣＰＵ周波数設定処理を行う。ＯＳ４は、前記例外事象の検出に基づいて前記演算処理装置のクロック周波数を変更するステップの一例としてステップＳ４４の処理を実行する。ステップＳ４４の処理が完了すると、ＯＳ４はＣＰＵ使用率換算処理を終了する。
【００５７】
図１６は、実施例２におけるＯＳ４によるＣＰＵ周波数設定処理手順を示すフローチャートである。図１６では、動作周波数として、２つの周波数Ｆ１、Ｆ２（Ｆ１＋ΔＦ＝Ｆ
２）を用いる。ここでΔＦは２つの周波数の差である。ＯＳ４による周波数設定処理は、図１５におけるステップＳ４４に相当する。ステップＳ５０において、ＯＳ４は、換算ＣＰＵ使用率受取り部４０１から受け取ったＣＰＵ使用率が、閾値より大きいか否かを判定する。ＯＳ４は、ＣＰＵ使用率が閾値以上の場合は、ステップＳ５１の処理に進む。ＯＳ４は、ＣＰＵ使用率が閾値より小さい場合は、ステップＳ５２の処理に進む。ステップ５１において、ＯＳ４は、ＣＰＵ周波数設定レジスタ２０１に、２つの周波数のうち高い方のＣＰＵ周波数Ｆ２の値を設定する。ステップ５２において、ＯＳ４は、ＣＰＵ周波数設定レジスタ２０１に、２つの周波数のうち低い方のＣＰＵ周波数Ｆ１の値を設定する。ステップＳ５１またはステップＳ５２の処理が完了すると、ＯＳ４はＣＰＵ周波数設定処理を終了する。
【００５８】
実施例２で説明したスケジューラ方式は、ページフォルト処理のための通信時間を考慮してＣＰＵ使用率を算出し、算出されたＣＰＵ使用率に応じて、ＣＰＵ周波数を制御する。スケジューラ方式は、ページ転送時間がＤＶＦＳ遷移時間に対しそれほど長くない場合に有効である。スケジューラ方式は、所定の単位時間中、ページフォルト処理のための通信時間を積算し、通信処理を行っている間ＣＰＵは動作していなかったとみなすため、ＣＰＵ使用率が低く算出される。ＣＰＵ使用率が閾値より小さい場合には、ＯＳ４により、次の単位時間中ＣＰＵ周波数が低く設定される。したがって、ページフォルト処理のための通信時間が考慮されない場合に比べて、性能低下を抑えつつ、ＣＰＵ２０の省電力化を図ることができる。すなわち、実施例２で説明したノード２ａは、例外検出部２００によってページフォルトで例示される例外を検出し、検出した例外に基づいて性能低下を抑えつつ、ＣＰＵ使用率換算部３０５およびＯＳ４により省電力化を図ることができる値に周波数を調整できる。実施例２では、図１６のように、ＯＳ４はＣＰＵ使用率が閾値Ｒ以上かＲより小さいかの２段階で判定し、ＣＰＵ周波数を設定する。しかし、スケジューラ方式は、図１６の手順に限定されない。例えば、ＣＰＵ使用率が閾値Ｒ１以下、Ｒ１からＲ２の間、Ｒ２以上の３段階、またはそれ以上に細かく設定した閾値の段階により、ＣＰＵ使用率を判定してもよい。
【００５９】
＜システム効果見積もり＞
本発明を分散共有メモリシステムに適用した場合の省電力効果を概算し、システム効果の見積もりを行った。見積もりの結果、効果が大きいケースでは、約５０％のＣＰＵの省電力化が可能であった。システム全体での効果を算出するために、まず以下の４項目について見積もりを行った。見積もりを行った項目は、（ａ）具体的なアプリケーションにおけるページ更新速度、（ｂ）１回毎のページ転送時間、（ｃ）分散共有メモリシステム上での平均ページアクセス処理時間、（ｄ）ＤＶＦＳによる電力削減効果である。
【００６０】
まず、１項目目の（ａ）具体的なアプリケーションにおけるページ更新速度の見積もりを行う。ページ更新速度の見積もりは、論文「10Gb Ethernet 上のRDMA転送機能による仮想マシン移動の設計と評価（非特許文献２）」内にある、ＤＢサーバ（および負荷サーバ）を実行時のページ更新速度の調査結果を利用した。図１７は、非特許文献２におけるＤＢサーバの更新ページ量を示すグラフである（非特許文献２、Ｐ１０  図１５参照）。図１７のグラフにおける評価は、プロセッサがＯｐｔｅｒｏｎ  ２５４（２．８ＧＨｚ)、
メモリが４ＧＢ、オンメモリのデータベースを使用するという条件で行った（非特許文献２、Ｐ３  表１参照）。評価対象のアプリケーションの実行において、図１７のグラフの横軸は経過時間、縦軸は更新ページ数を示す。同じページの更新は１回とカウントした。図１８は、図１７におけるａｐｐｒｏｘｉｍａｔｅのグラフの近似式である。ページへのアクセスが完全にランダムであると仮定すると、更新ページ数Ｄは時間経過ｔにより図１８の近似式により表される。
【００６１】
ここで、求めたいページ更新速度は、同じページの更新を重複してカウントした場合の
ページ更新速度である。重複してカウントした場合のページ更新速度は、更新されたページが存在しない場合ｔ＝０のときのグラフの傾きに相当し、図１８の近似式の関数を微分して得られる導関数のｔ＝０としたときの値である。図１７のグラフの結果から、評価対象のアプリケーションのページ更新速度は、おおむね５２５１１ページ／ｓｅｃとなる。図１９は、図１８の近似式においてｔ＝０でのページ更新速度を示すグラフである。図１９おいてｔ＝０における接線の傾きが、図１８の近似式の導関数においてｔ＝０としたときのページ更新速度５２５１１ページ／ｓｅｃを示している。
【００６２】
非特許文献２の評価環境は、ページサイズが４ＫＢで、４００ＭＢのメモリを利用している。一方、本実施例は、ページサイズが２ＭＢで、２００ＧＢ程度のメモリを利用することを想定しているが、利用するメモリに対するページサイズの割合は、非特許文献２の評価環境と同程度であるため、ページ更新速度は同程度と考えられる。
【００６３】
したがって、システム効果の見積もりにおいて、ローカルメモリに対するページ更新速度は５２５１１ページ／ｓｅｃとする。このとき、ローカルメモリ上のページに対する１ページ当たりのページアクセス時間は１／５２５１１ｓｅｃ＝１９μｓｅｃとなる。
【００６４】
次に、２項目目の（ｂ）１回毎のページ転送時間の見積もりを行う。ページサイズが２ＭＢのデータを、ＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）のＲｅａｄ（Ｗｒｉｔｅ）機能により転送した場合のページ転送時間の測定値は、６６０μｓｅｃ程度である。測定に使用したＣＰＵはＩｎｔｅｌ  Ｘｅｏｎ  Ｘ５５７０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は２４ＧＢ、ＯＳはＲＨＥＬ５．４、ＨＣＡ（Ｈｏｓｔ  Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）はＭｅｌｌａｎｏｘ  ＱＤＲ（ＣｏｎｎｅｃｔＸ）である。
【００６５】
さらに、３項目目の（ｃ）分散共有メモリシステム上での平均ページアクセス処理時間の見積もりを行う。ここでは、８ノードを有する情報システムについて行う。また、平均ページアクセス処理時間とは、１ページ当たりのページアクセス時間に、ページ転送時間の平均値を加えた時間をいう。図２０は、８ノードを有する情報システムの例を示す図である。図２０において情報システム１は、分散共有メモリシステムであって８個のノードを有するものとする。評価対象のアプリケーションの実行中、各ページはランダムにアクセスされると仮定すると、ページフォルト、すなわちリモートノードへのアクセスは、(
ノード数−１)／（ノード数）の確率で発生する。図２０の例では、リモートノードへの
アクセスは７／８の確率で発生する。リモートノードへのアクセスが発生すると、通信によるページ更新が行われる。なお、システム効果の見積もりは、リモートノードからページを取得した場合、ローカルノードの最も古いページを追い出すページの複製がないモデルで行った。
【００６６】
ここで、（ａ）具体的なアプリケーションにおけるページ更新速度の見積もり結果から、ローカルメモリ上のページに対する１ページ当たりのページアクセス時間は１９μｓｅｃとなる。また、（ｂ）１回毎のページ転送時間の見積もり結果から、ページ転送時間は６６０μｓｅｃである。リモートノードへのアクセスは７／８の確率で発生するため、ページ転送時間の平均値は、６６０×７／８μｓｅｃとなる。したがって、分散共有メモリシステム上での平均ページアクセス処理時間は、１９＋６６０×７／８μｓｅｃと見積もることができる。
【００６７】
さらに、４項目目の（ｄ）ＤＶＦＳによる電力削減効果の見積もりを行う。図２１は、ＤＶＦＳによる電力削減効果を示すグラフである。周波数を低くすることにより、ＣＰＵ消費電力は約５２％削減される。測定に使用したＣＰＵはＩｎｔｅｌ  Ｘｅｏｎ（ＳＤＢ）、ＲＡＭは２４ＧＢ、ＯＳはＣｅｎｔＯＳ６である。ＣＰＵ消費電力量は、ＣＰＵの持
つＣＰＵ消費電力量測定機能（ＲＡＰＬ：Ｒｕｎｎｉｎｇ  Ａｖｅｒａｇｅ  Ｐｏｗｅｒ
Ｌｉｍｉｔｉｎｇ）により算出した。
【００６８】
以上の４項目の見積もりから、都度方式およびスケジューラ方式における効果見積もり結果について説明する。なお、これらの見積もりにおいて、ＣＰＵのアイドル時間は考慮しないものとする。
【００６９】
都度方式における電力削減効果は、
（（ページ転送時間の平均値）／（平均ページアクセス処理時間））×（電力削減割合）
によって求められる。すなわち、都度方式では、以下の計算により最大で約５０％の電力削減効果が得られる。
（（６６０×７／８）／（１９＋６６０×７／８））×０．５２≒５０（％）
【００７０】
スケジューラ方式では、平均ページアクセス処理時間中、通信以外の処理時間の占める割合が、ＣＰＵ使用率と換算される。上記の見積もりにおいて、通信以外の処理時間は、ローカルメモリ上のページに対するページアクセス時間である１９μｓｅｃとなる。したがって、以下の計算により、ＣＰＵ使用率は、平均的に約３．２％と換算される。
（１９／（１９＋６６０×７／８））×１００≒３．２（％）…（＊）
見積もりに使用したＯＳのＣｅｎｔＯＳ５．３のデフォルトの設定では、ＣＰＵ使用率が３．２％の場合、設定可能なＣＰＵ周波数のうち最も低いＣＰＵ周波数に設定するため省電力化が図られる。
【００７１】
スケジューラ方式の１つの環境例では８０％を閾値としており、ＣＰＵ使用率が８０％より小さい場合は、設定可能な最低ＣＰＵ周波数に設定される。また、ＣＰＵ使用率が８０％以上の場合は、設定可能な最高のＣＰＵ周波数に設定される。
【００７２】
上記のＣＰＵ使用率の計算式（＊）において、ローカルメモリ上のページに対するページアクセス時間をｔ、ページ転送時間の平均値をｓとすると、ＣＰＵ使用率は、
ｔ／（ｔ＋ｓ）×１００
の計算式により求めることができる。ここで、ローカルメモリ上のページに対するページアクセス時間ｔは、実行するアプリケーションによって異なる。またページ転送時間の平均値ｓは、転送するページのページサイズや利用するメモリの大きさ、またインターコネクトの通信性能によって異なる。したがって、ローカルメモリ上のページに対するページアクセス時間ｔがページ転送時間の平均値ｓに比べて小さい場合はＣＰＵ使用率はより低くなる。反対に、ローカルメモリ上のページに対するページアクセス時間ｔがページ転送時間の平均値ｓに比べて大きい場合はＣＰＵ使用率はより高くなる。このことから、スケジューラ方式では、ローカルメモリ上のページに対するページアクセス時間ｔが平均ページ転送時間ｓに比べて小さい場合に、ＣＰＵ使用率が閾値を下回り、ＣＰＵ使用率が低く変更され、電力削減効果が生じる。
【符号の説明】
【００７３】
１          情報処理システム
２ａ、２ｂ  ノード
３          ハイパーバイザー
４          ＯＳ
５          プロセス
６          インターコネクト
２０ａ、２０ｂ    ＣＰＵ
２１ａ、２１ｂ    メモリ
３０ａ、３０ｂ    ｖＣＰＵ
２００      例外検出部
２０１      周波数設定レジスタ
２０２      タイマ
３００      通信処理部
３０１      アドレス変換部
３０２      変換テーブル
３０３      都度方式ＣＰＵ周波数設定部
３０４      時間計測部
３０５      ＣＰＵ使用率換算部
４００      ＣＰＵ周波数設定部
４０１      換算ＣＰＵ使用率受取り部
【図１】
2015148890.tif 000003
【図２】
2015148890.tif 000004
【図３】
2015148890.tif 000005
【図４】
2015148890.tif 000006
【図５】
2015148890.tif 000007
【図６】
2015148890.tif 000008
【図７】
2015148890.tif 000009
【図８】
2015148890.tif 000010
【図９】
2015148890.tif 000011
【図１０】
2015148890.tif 000012
【図１１】
2015148890.tif 000013
【図１２】
2015148890.tif 000014
【図１３】
2015148890.tif 000015
【図１４】
2015148890.tif 000016
【図１５】
2015148890.tif 000017
【図１６】
2015148890.tif 000018
【図１７】
2015148890.tif 000019
【図１８】
2015148890.tif 000020
【図１９】
2015148890.tif 000021
【図２０】
2015148890.tif 000022
【図２１】
2015148890.tif 000023