(57)【要約】  本件は、システムの特性を意識したリソース配分を実現することによってパーティション分割の最適化をはかり、システム全体の処理性能を向上させる。このため、本件のシステム管理部（３０）において、複数のリソース相互間の距離に係る距離情報と複数のリソース相互間のデータ移動頻度とに基づき、各パーティションに対する複数のリソースの最適配分が算出され、その最適配分の状態になるように複数のパーティション管理部（２１，２２）を介して複数のパーティション（Ｐ１，Ｐ２）に複数のリソースが配分される。
2010016104.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、
該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部と、
該複数のリソースおよび該複数のパーティション管理部を管理するシステム管理部とを有し、
該システム管理部は、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段と、
該複数のリソース相互間のデータ移動情報を収集する収集手段と、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段と、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段と、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段とを有していることを特徴とする、マルチプロセッサシステム。
【請求項２】
該第１テーブルにおける前記距離情報として、各リソースの属するノード間のアクセスレイテンシが定義されていることを特徴とする、請求項１に記載のマルチプロセッサシステム。
【請求項３】
該第２テーブルにおける前記データ移動頻度として、前記複数のリソース相互間のデータ移動回数が記録更新されることを特徴とする、請求項１または請求項２に記載のマルチプロセッサシステム。
【請求項４】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、前記データ移動回数として各演算処理部と各メモリとの間の通信回数が記録更新されることを特徴とする、請求項３に記載のマルチプロセッサシステム。
【請求項５】
該算出手段は、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択することを特徴とする、請求項１〜請求項４のいずれか一項に記載のマルチプロセッサシステム。
【請求項６】
該算出手段は、前記最適配分として複数の組み合わせが存在する場合には、該配分手段によるリソース配分を行なう際に配分変更量の最も少ない組み合わせを前記最適配分として選択することを特徴とする、請求項５に記載のマルチプロセッサシステム。
【請求項７】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該算出手段は、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出することを特徴とする、請求項５または請求項６に記載のマルチプロセッサシステム。
【請求項８】
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部とを有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するマルチプロセッサシステム用管理装置であって、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段と、
該複数のリソース相互間のデータ移動情報を収集する収集手段と、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段と、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段と、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段とを有していることを特徴とする、マルチプロセッサシステム用管理装置。
【請求項９】
該第１テーブルにおける前記距離情報として、各リソースの属するノード間のアクセスレイテンシが定義されていることを特徴とする、請求項８に記載のマルチプロセッサシステム用管理装置。
【請求項１０】
該第２テーブルにおける前記データ移動頻度として、前記複数のリソース相互間のデータ移動回数が記録更新されることを特徴とする、請求項８または請求項９に記載のマルチプロセッサシステム用管理装置。
【請求項１１】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、前記データ移動回数として各演算処理部と各メモリとの間の通信回数が記録更新されることを特徴とする、請求項１０に記載のマルチプロセッサシステム用管理装置。
【請求項１２】
該算出手段は、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択することを特徴とする、請求項８〜請求項１１のいずれか一項に記載のマルチプロセッサシステム用管理装置。
【請求項１３】
該算出手段は、前記最適配分として複数の組み合わせが存在する場合には、該配分手段によるリソース配分を行なう際に配分変更量の最も少ない組み合わせを前記最適配分として選択することを特徴とする、請求項１２に記載のマルチプロセッサシステム用管理装置。
【請求項１４】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該算出手段は、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出することを特徴とする、請求項１２または請求項１３に記載のマルチプロセッサシステム用管理装置。
【請求項１５】
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部とを有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するマルチプロセッサシステム用管理装置として、コンピュータを機能させるプログラムを記録したコンピュータ読取可能な記録媒体であって、
該プログラムは、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段、
該複数のリソース相互間のデータ移動情報を収集する収集手段、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段、および、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段、として、該コンピュータを機能させることを特徴とする、マルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１６】
該プログラムは、該算出手段として該コンピュータを機能させる際に、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択するように、該コンピュータを機能させることを特徴とする、請求項１５に記載のマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１７】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該プログラムは、該算出手段として該コンピュータを機能させる際に、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出するように、該コンピュータを機能させることを特徴とする、請求項１６に記載のマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit；演算処理部），メモリなどの複数のリソースを複数のパーティションに割り当て分割し、各パーティションに属するリソースを使用してパーティション毎にデータ処理を実行する、マルチプロセッサシステム等の計算機システムに用いて好適の技術に関する。
【背景技術】
【０００２】
一般に、多数のＣＰＵ，メモリ，Ｉ／Ｏ（入出力部）から構成される大規模マルチプロセッサシステムでは、ＮＵＭＡ（Non-Uniform Memory Access）と呼ばれるアーキテクチャが採用されることが多い。このＮＵＭＡアーキテクチャでは、メモリのレイテンシが均一でないこと、つまり、「近いメモリ」と「遠いメモリ」とが存在することが特徴である。ここで、レイテンシとは、ＣＰＵ等がメモリにアクセスした際にメモリからの応答時間に対応するもので、レイテンシの小さいメモリは「近いメモリ」、レイテンシの大きいメモリは「遠いメモリ」と定義することができる。【０００３】
また、大規模マルチプロセッサシステムは、上述のように、多数のＣＰＵやメモリ，Ｉ／Ｏをリソースとしてそなえてら構成されている。このような大規模マルチプロセッサシステムでは、多数のリソースを複数のパーティションに分割し各パーティションにおいて独立のＯＳ（Operating System）を動作させるパーティショニング技術が使用されている。【０００４】
なお、例えば、下記特許文献１，２には、論理パーティション（ソフトパーティション）技術が開示されている。この論理パーティション技術では、ホストＯＳ（制御ホスト）上で複数のＯＳが論理パーティション毎に起動される。各論理パーティションには論理プロセッサ等が割り当てられており、ホストＯＳによって、論理プロセッサ等と物理プロセッサ等とが対応付けられながら、各ＯＳによる処理が論理パーティション毎に実行される。論理パーティション技術は、仮想的なパーティションを用いるものであるのに対し、本件は、リソースを分割して用いるハードパーティション技術、つまり、パーティション毎に物理的に異なるリソースを用いる技術を前提としている。
【特許文献１】特開２００６−１２７４６２号公報
【特許文献２】特開２００７−１９３７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ＮＵＭＡアーキテクチャを採用したマルチプロセッサシステムでパーティション分割を行なう場合、処理性能の低下を招かないためにも、パーティションの構成要素（リソース）が、極力、複数のノードにまたがらないシステム構成とすることが望ましい。従って、通常、ノード単位でパーティション分割を行なう。しかし、分割後、各パーティション内においてＣＰＵやメモリの追加／削減／故障に伴う変更などを行なっているうちに、期せずして、パーティションの構成要素が複数のノードにまたがってしまうことがある（例えば図５参照）。【０００６】
パーティション構成が不適切な場合、例えば、上述のごとくパーティションの構成要素が複数のノードにまたがるような場合、以下のような不具合が生じる。つまり、プロセッサ（ＣＰＵ）が「遠いメモリ」にアクセスすることになり、メモリレイテンシが増加する。また、メモリアクセスを行なうのにより多くの通信路を経由することになり、マルチプロセッサシステム全体でのトラフィックが不必要に増加してしまう。その結果、システム全体の処理性能が低下してしまう。【０００７】
本発明の目的の一つは、システムの特性を意識したリソース配分を実現することによってパーティション分割の最適化をはかり、システム全体の処理性能を向上させることである。【０００８】
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の一つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
ここに開示されるマルチプロセッサシステムは、複数のリソース，複数のパーティション管理部およびシステム管理部を有している。該複数のリソースは、複数のパーティションのいずれか一つに対し単独で割当可能なものである。該複数のパーティション管理部は、該複数のパーティションのそれぞれに属するリソースを管理するものである。該システム管理部は、該複数のリソースおよび該複数のパーティション管理部を管理するものである。そして、該システム管理部は、第１テーブル記憶手段，収集手段，第２テーブル記憶手段，算出手段および配分手段を有している。ここで、該第１テーブル記憶手段は、該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶するものである。該収集手段は、該複数のリソース相互間のデータ移動情報を収集するものである。該第２テーブル記憶手段は、該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶するものである。該算出手段は、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出するものである。該配分手段は、該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分するものである。【００１０】
また、ここに開示されるマルチプロセッサシステム用管理装置は、上述した複数のリソースおよび複数のパーティション管理部を有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するものである。そして、この管理装置は、上述した第１テーブル記憶手段，収集手段，第２テーブル記憶手段，算出手段および配分手段を有している。【００１１】
さらに、ここに開示されるマルチプロセッサシステム用管理プログラムは、上述した複数のリソースおよび複数のパーティション管理部を有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理する管理装置（システム管理部）として、コンピュータを機能させるものである。このプログラムは、上述した第１テーブル記憶手段，収集手段，第２テーブル記憶手段，算出手段および配分手段として、該コンピュータを機能させる。なお、ここに開示される、コンピュータ読取可能な記録媒体は、上述したマルチプロセッサシステム用管理プログラムを記録したものである。
【発明の効果】
【００１２】
開示の技術によれば、マルチプロセッサシステム内のリソース間の距離情報とデータ移動頻度とに基づいて、各パーティションに対するリソースの最適配分が統計的に算出され、その最適配分に応じたリソース配分が行なわれる。これにより、システムの特性を意識したリソース配分が実現され、パーティション分割が最適化され、システム全体の処理性能が大幅に向上する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態としてのマルチプロセッサシステムの構成を示すブロック図である。
【図２】本実施形態のアクセスレイテンシテーブル（第１テーブル）の一例を示す図である。
【図３】本実施形態のリソース間データ移動頻度テーブル（第２テーブル）の一例を示す図である。
【図４】図１に示すマルチプロセッサシステム用管理装置の動作について説明するためのフローチャートである。
【図５】図１に示すマルチプロセッサシステムにおけるパーティション分割の具体的な最適化動作例を説明すべく同システムの最適化前の状態を示す図である。
【図６】図１に示すマルチプロセッサシステムにおけるパーティション分割の具体的な最適化動作例を説明すべく同システムの最適化後の状態を示す図である。
【符号の説明】
【００１４】
１    サーバ（マルチプロセッサシステム）
１０    リソース群
２１，２２    パーティション管理部
３０    サーバ管理装置（マルチプロセッサシステム用管理装置，システム管理部）
３１    記憶部（第１テーブル記憶手段，第２テーブル記憶手段）
３１ａ    アクセスレイテンシテーブル（第１テーブル，ノード間距離テーブル）
３１ｂ    リソース間データ移動頻度テーブル（第２テーブル）
３２    収集手段
３３    算出手段
３４    配分手段
Ｎ１〜Ｎ８    ノード
ＣＢ１，ＣＢ２    クロスバスイッチ
Ｃｉ１〜Ｃｉ１４（ｉ＝１〜８）    ＣＰＵ（演算処理部；リソース）
Ｍｉ（ｉ＝１〜８）    メモリ（リソース）
ＭＣｉ（ｉ＝１〜８）    メモリコントローラ（収集手段）
Ｔｉ（ｉ＝１〜８）    データ移動情報収集用テーブル（収集手段）
Ｂ１，Ｂ２    リソース間データ移動情報収集用バス（収集手段）
Ｐ１，Ｐ２    パーティション
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。
図１は本発明の一実施形態としてのマルチプロセッサシステムの構成を示すブロック図である。この図１に示す本実施形態のマルチプロセッサシステムの例であるサーバ１は、ＣＰＵ，メモリなどの複数のリソース（リソース群１０参照）を複数のパーティションに割り当て分割し、各パーティションに属するリソースを使用してパーティション毎にデータ処理を実行するものである。なお、本実施形態では、２つのパーティションＰ１，Ｐ２が設定されている場合について説明するがパーティションの数は２に限定されるものではない。以下、マルチプロセッサシステム１を単に「システム１」と称する場合がある。【００１６】
本実施形態のマルチプロセッサシステム１は、リソース群１０，パーティション管理部２１，２２およびサーバ管理装置３０を有している。ここで、パーティション管理部２１，２２およびサーバ管理装置３０は、それぞれ、例えば、ボード単位で構成されている。【００１７】
リソース群１０は、本実施形態ではＰ１，Ｐ２の複数のパーティションのいずれか一つに対し単独で割当可能な、ＣＰＵやメモリなどの複数のリソースを含んでいる。より具体的に、本実施形態において、リソース群１０は、８個のノードＮ１〜Ｎ８と、これら８個のノードＮ１〜Ｎ８の相互間を通信可能に接続するクロスバスイッチＣＢ１，ＣＢ２とを含んでいる。【００１８】
そして、４個のノードＮ１〜Ｎ４は、クロスバスイッチＣＢ１に接続され、クロスバスイッチＣＢ１を介して相互に通信可能になっている。同様に、４個のノードＮ５〜Ｎ８は、クロスバスイッチＣＢ２に接続され、クロスバスイッチＣＢ２を介して相互に通信可能になっている。また、クロスバスイッチＣＢ１とＣＢ２とは接続されており、４個のノードＮ１〜Ｎ４と４個のノードＮ５〜Ｎ８との間では、クロスバスイッチＣＢ１およびＣＢ２を介して相互通信が可能になっている。【００１９】
各ノードＮ１〜Ｎ８は、システム１における複数のリソースをその物理的な配置によって分割したリソースの集合であり、各リソースはただ１つのノードに属している。例えば、各ノードＮｉ（ｉ＝１〜８）はリソースとして、４個のＣＰＵＣｉ１〜Ｃｉ４と、１個のメモリＭｉと、１個のメモリコントローラＭＣｉと、１個のデータ移動情報収集用テーブルＴｉとを含んでいる。【００２０】
ここで、１個のメモリＭｉは、例えば、複数のＤＩＭＭ（Double Inline Memory Module）の組合せとして構成されている。また、メモリコントローラＭＣｉは、ＣＰＵ Ｃｉ１〜Ｃｉ４，メモリＭｉおよびクロスバスイッチＣＢ１（またはＣＢ２）の相互間のデータ移動を制御する機能を有している。さらに、メモリコントローラＭＣｉは、メモリＭｉに対するリードリクエストがあった場合、どのＣＰＵからのリードリクエストであるかに関するデータ移動情報をテーブルＴｉに記録する機能も有している。各テーブルＴｉに記録されたデータ移動情報は、後述するごとく、リソース間データ移動情報収集用バスＢ１またはＢ２を介し、サーバ管理装置３０の収集手段３２によって収集される。【００２１】
なお、図１，図５および図６では、ノードＮ１，Ｎ２，Ｎ５，Ｎ６における、ＣＰＵ Ｃ１１〜Ｃ１４，Ｃ２１〜Ｃ２４，Ｃ５１〜Ｃ５４，Ｃ６１〜Ｃ６４;メモリＭ１，Ｍ２，Ｍ５，Ｍ６;メモリコントローラＭＣ１，ＭＣ２，ＭＣ５，ＭＣ６;テーブルＴ１，Ｔ２，Ｔ５，Ｔ６が図示されている。一方、ノードＮ３，Ｎ４，Ｎ７，Ｎ８における、ＣＰＵ Ｃ３１〜Ｃ３４，Ｃ４１〜Ｃ４４，Ｃ７１〜Ｃ７４，Ｃ８１〜Ｃ８４;メモリＭ３，Ｍ４，Ｍ７，Ｍ８;メモリコントローラＭＣ３，ＭＣ４，ＭＣ７，ＭＣ８;テーブルＴ３，Ｔ４，Ｔ７，Ｔ８の図示は省略されている。【００２２】
また、ハードウェアの構造によっては、ＣＰＵとメモリとの特定の組については、ＣＰＵをメモリから分離することが不可となる場合もあるが、ここでは、ＣＰＵとメモリとの全ての組について分離可能であると説明する。ただし、本発明は、ＣＰＵとメモリとが分離不可か分離可能かに限定されるものではない。【００２３】
さらに、図１，図５および図６に示すシステム１では、ノード数が８であり、クロスバスイッチ数が２であり、また、各ノードＮｉにおけるＣＰＵ数が４でメモリ数が１である場合について説明したが、本発明は、これらの数に限定されるものではない。【００２４】
パーティション管理部２１，２２は、それぞれ、パーティションＰ１，Ｐ２に対応してそなえられ、パーティションＰ１，Ｐ２に属するＣＰＵやメモリといったリソースを管理するものである。また、各パーティション管理部２１，２２は、各パーティションＰ１，Ｐ２についての条件テーブルに基づいて、各パーティションＰ１，Ｐ２に属するリソースを認識する。その認識結果に従って、各パーティション管理部２１，２２は、複数のリソースをパーティションＰ１，Ｐ２のそれぞれに割り当て分割配分し、各パーティションＰ１，Ｐ２に属するリソースを管理する。なお、各パーティション管理部２１，２２における条件テーブルは、サーバ管理装置３０から指示・設定される。【００２５】
サーバ管理装置（マルチプロセッサシステム用管理装置，システム管理部）３０は、リソース群１０として示される複数のリソースおよび複数のパーティション管理部２１，２２を管理するもので、記憶部３１，収集手段３２，算出手段３３および配分手段３４を有している。【００２６】
記憶部３１は、例えばＲＡＭ（Random Access Memory）によって構成され、第１テーブルとしてのアクセスレイテンシテーブル３１ａを記憶する第１テーブル記憶手段、および、第２テーブルとしてのリソース間データ移動頻度テーブル３１ｂを記憶する第２テーブル記憶手段として機能するものである。【００２７】
ここで、アクセスレイテンシテーブル（ノード間距離テーブル）３１ａは、図１に示すシステム１のリソース群１０に属する複数のリソース相互間の距離に係る距離情報を定義するものである。このアクセスレイテンシテーブル３１ａでは、その距離情報として、例えば図２に示すように、各リソースの属するノード間の距離が、より具体的には、ノード間の実際のアクセスレイテンシ（アクセス待ち時間；単位：nsec）が定義されている。【００２８】
このアクセスレイテンシテーブル３１ａで定義される距離情報、つまりアクセスレイテンシは、システム１、あるいはシステム１に含まれるリソース群１０の性能として性能試験によって予め取得されるもので、予め与えられて記憶部３１のアクセスレイテンシテーブル３１ａに登録される。【００２９】
ここで、図２は、本実施形態のアクセスレイテンシテーブル３１ａの一例を示す図である。
例えば、図２に示すアクセスレイテンシテーブル３１ａにおいて、ノードＮ１とノードＮ２との距離は100nsec、ノードＮ３とノードＮ８との距離は200nsecと定義されている。なお、第１テーブルとしてのアクセスレイテンシテーブル３１ａにおける値は、本実施形態のごとくアクセスレイテンシや、そのアクセスレイテンシに比例した値に限定されるものではない。アクセスレイテンシテーブル３１ａにおける値は、リソース相互間の距離に係るものであれば、実際のアクセスレイテンシのほかに、例えば、データの通過する通信路のスループットなどによって重み付けした値を使用することもできる。【００３０】
なお、以下の説明では、アクセスレイテンシテーブル３１ａによって定義されるノードＮｉとノートＮｊとの距離、つまりアクセスレイテンシをdistance(i, j)として、下記の通り記載する。
distance(i, j)＝  50 (i＝j)
100 ((i≦4 かつ j≦4 かつ i≠j) または
(5≦i かつ 5≦j かつ i≠j))
200 (それ以外)【００３１】
リソース間データ移動頻度テーブル３１ｂは、収集手段３２によって収集されたデータ移動情報に基づく複数のリソース相互間のデータ移動頻度を保持するものである。【００３２】
ここで、収集手段３２は、各ノードＮｉにおけるテーブルＴｉにメモリコントローラＭＣｉによって記録されたデータ移動情報を、バスＢ１，Ｂ２を介して各テーブルＴｉから受信して収集するものである。そのデータ移動情報は、上述したように、どのＣＰＵからメモリＭｉに対するリードリクエストを受けたかを示す情報である。【００３３】
そして、収集手段３２は、各テーブルＴｉから受信したデータ移動情報を、リソース間データ移動頻度テーブル３１ｂに登録することにより統合する機能も有している。これにより、リソース間データ移動頻度テーブル３１ｂには、どのＣＰＵがどのメモリに対して、何回、リードリクエストを発行したかに関する情報、たとえば通信回数／データ移動回数／リードアクセス回数が、データ移動頻度として登録される。【００３４】
なお、ここでは、リードリクエストについて計数を行なっているが、ライトリクエスト、つまりＣＰＵからメモリへの書き込み要求についてのデータ移動情報をメモリコントローラＭＣｉやテーブルＴｉによって収集してもよい。この場合、リソース間データ移動頻度テーブル３１ｂには、どのＣＰＵがどのメモリに対して、何回、ライトリクエストを発行したかに関する情報、つまり通信回数／データ移動回数／ライトアクセス回数が、データ移動頻度として登録される。また、リードリクエストに係るデータ移動回数のみをデータ移動頻度として計数してもよいし、ライトリクエストに係るデータ移動回数のみをデータ移動頻度として計数してもよいし、リードリクエストおよびライトリクエストの両方に係るデータ移動回数の合計値をデータ移動頻度として計数してもよい。【００３５】
このように、本実施形態では、メモリコントローラＭＣｉ，テーブルＴｉ，バスＢ１，Ｂ２，リソース間データ移動頻度テーブル３１ｂおよび収集手段３２によって、複数のリソース相互間のデータ移動情報を収集する収集手段が構成される。この収集手段を用いて、ＣＰＵやメモリといったリソース間で通信が行なわれる際に、どこからどこへのデータ移動が行なわれたかが識別されデータ移動頻度としてリソース間データ移動頻度テーブル３１ｂに記録される。【００３６】
ここで、図３は本実施形態のリソース間データ移動頻度テーブル３１ｂの一例を示す図である。この図３に示すリソース間データ移動頻度テーブル３１ｂには、各ＣＰＵの各メモリに対するアクセス回数の具体例が記録されている。リソース間データ移動頻度テーブル３１ｂからは、例えば、ＣＰＵ Ｃ１１は、メモリＭ１に対し1000回のアクセスを、メモリＭ２に対し500回のアクセスを行なっていることが分かる。また、例えば、ＣＰＵ２３は、メモリＭ２に対し1000回のアクセスを行なっていることが分かる。【００３７】
なお、図３に示すリソース間データ移動頻度テーブル３１ｂでは、各ＣＰＵの属するノード番号ｉが＃ＮＯＤＥ欄に記入されているとともに、各ＣＰＵの属するパーティション番号が＃ＰＡＲＴ欄に記載されている。ここでは、図５を参照しながら後述する例と同様に、８個のＣＰＵ Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ２１，Ｃ２２，Ｃ５１，Ｃ５２および２個のメモリＭ１，Ｍ５がパーティションＰ１に属し、４個のＣＰＵ Ｃ２３，Ｃ２４，Ｃ６１，Ｃ６２および１個のメモリＭ２がパーティションＰ２に属している。【００３８】
以下の説明では、ＣＰＵ Ｃik（ｉ＝１〜８，ｋ＝１〜４）とメモリＭｎ（ｎ＝１〜８）との間のデータ移動回数（アクセス回数）であって、リソース間データ移動頻度テーブル３１ｂに登録されたものを、Ｆ(Ｃik, Ｍｎ)と記載する。例えば、ＣＰＵ Ｃ１３とメモリＭ５との間の登録データ移動回数Ｆ(Ｃ１３, Ｍ５)＝1500である。【００３９】
また、ＣＰＵ ＣikとメモリＭｎとの間の距離、つまりノード間距離あるいはアクセスレイテンシをＤ(Ｃik, Ｍｎ)と記載すると、Ｄ(Ｃik, Ｍｎ)＝distance(ＣＰＵの属するノードのノードＩＤ番号ｉ，メモリの属するノードのノードＩＤ番号ｎ)＝distance(i, n)となる。例えばＣＰＵ Ｃ６１とメモリＭ２との距離は、Ｄ(Ｃ６１，Ｍ２)＝distance(6, 2)であり、図２に示すアクセスレイテンシテーブル３１ａを参照すると、200である。【００４０】
算出手段３３は、アクセスレイテンシテーブル３１ａの距離情報（アクセスレイテンシ／メモリレイテンシ）とリソース間データ移動頻度テーブル３１ｂのデータ移動頻度とに基づき、各パーティションＰ１，Ｐ２に対する、複数のリソースの最適配分を算出するものである。【００４１】
このとき、算出手段３３は、まず、アクセスレイテンシテーブル３１ａの距離情報とリソース間データ移動頻度テーブル３１ｂのデータ移動頻度とに基づき、各パーティションＰ１，Ｐ２に割り当てられる複数のリソースの全ての組み合わせのそれぞれについて平均距離、つまり平均メモリレイテンシを算出する。【００４２】
つまり、算出手段３３は、前記組み合わせ毎に、リソース間データ移動頻度テーブル３１ｂにデータ移動頻度として記録された各メモリＭｎに対する各ＣＰＵ Ｃikのアクセス回数Ｆ(Ｃik, Ｍn)と、アクセスレイテンシテーブル３１ａに距離情報として定義された対応メモリレイテンシ、つまりノード間アクセスレイテンシＤ(Ｃik, Ｍn)＝distance(i,n)との積の総和を算出する。そして、算出手段３３は、当該積の総和をアクセス回数の総和で除算した値を、当該組み合わせについての平均距離として算出する。この後、算出手段３３は、複数のリソースの全ての組み合わせのうち、その組み合わせについて算出された平均距離が最小になるリソースの組み合わせを最適配分として選択する。【００４３】
ここで、上述のように、パーティションＰ１には８個のＣＰＵおよび２個のメモリが割り当てられるとともに、パーティションＰ２には４個のＣＰＵおよび１個のメモリが割り当てられるものとする。このような場合に、例えば、パーティションＰ２についてみると、ノードＮ１〜Ｎ８における３２個のＣＰＵおよび８個のメモリから、４個のＣＰＵおよび１個のメモリを選択してパーティションＰ２に割り当てるとすると、多数の組み合わせが考えられる。算出手段３３は、その各組み合わせについての平均距離つまり平均メモリレイテンシを、以下のようにアクセスレイテンシテーブル３１ａ，リソース間データ移動頻度テーブル３１ｂのデータに基づいて算出する。【００４４】
ここでは、簡単のために、図５に示すごとく４個のＣＰＵ Ｃ２３，Ｃ２４，Ｃ６１，Ｃ６２および１個のメモリＭ２を割り当てられたパーティションＰ２についての平均メモリレイテンシを、図２および図３にそれぞれ示すアクセスレイテンシテーブル３１ａおよびリソース間データ移動頻度３１ｂのデータに基づいて算出する場合について具体的に説明する。【００４５】
まず、パーティションＰ２でのメモリアクセス回数の総数は、図３に示すノード間距離テーブルテーブル３１ｂに記録された数値に基づき、
Ｆ(Ｃ23, Ｍ2)+Ｆ(Ｃ24, Ｍ2)+Ｆ(Ｃ61, Ｍ2)+Ｆ(Ｃ62, Ｍ2)
＝1000＋4000＋3000＋2000
＝10000
となる。【００４６】
従って、図５に示すリソース組み合わせのパーティションＰ２での平均メモリレイテンシは、図２に示すアクセスレイテンシテーブル３１ａに記録されたメモリレイテンシおよび図３に示すリソース間データ移動頻度テーブル３１ｂに記録されたアクセス回数に基づいて算出される。
[図５に示すパーティションＰ２の平均メモリレイテンシ]
＝Σ'Ｄ(Ｃ,Ｍ)*Ｆ(Ｃ,Ｍ)/10000
＝{Ｄ(Ｃ23,Ｍ2)*Ｆ(Ｃ23,Ｍ2)+Ｄ(Ｃ24,Ｍ2)*Ｆ(Ｃ24,Ｍ2)
+Ｄ(Ｃ61,Ｍ2)*Ｆ(Ｃ61,Ｍ2)+Ｄ(Ｃ62,Ｍ2)*Ｆ(Ｃ62,Ｍ2)}／10000
＝(50*1000+50*4000+200*3000+200*2000)／10000
＝1250000／10000
＝125 nsec
なお、Σ'は、パーティションＰ２に属するするＣＰＵおよびメモリの全ての組み合わせについて算出されるＤ(Ｃ,Ｍ)*Ｆ(Ｃ,Ｍ)の総和を意味している。【００４７】
これに対し、パーティションＰ２に割り当てられるリソースのうち、図５に示すＣＰＵ Ｃ２３，Ｃ２４およびメモリＭ２が、図６に示すように、それぞれＣＰＵ Ｃ６３，Ｃ６４およびメモリＭ６に置き換えられた場合の平均メモリレイテンシは、以下のように算出される。このとき、メモリＭ６に対するＣＰＵ Ｃ６３，Ｃ６４のアクセス回数は、それぞれ、メモリＭ２に対するＣＰＵ Ｃ２３，Ｃ２４と同じ値とする。つまり、
Ｆ(Ｃ63,Ｍ6)＝Ｆ(Ｃ23,Ｍ2)＝1000
Ｆ(Ｃ64,Ｍ6)＝Ｆ(Ｃ24,Ｍ2)＝4000
であり、図６に示すパーティションＰ２での平均メモリレイテンシは、以下のように算出される。【００４８】
[図６に示すパーティションＰ２の平均メモリレイテンシ]
＝Σ'Ｄ(Ｃ,Ｍ)*Ｆ(Ｃ,Ｍ)/10000
＝{Ｄ(Ｃ63,Ｍ6)*Ｆ(Ｃ63,Ｍ6)+Ｄ(Ｃ64,Ｍ6)*Ｆ(Ｃ64,Ｍ6)
+Ｄ(Ｃ61,Ｍ6)*Ｆ(Ｃ61,Ｍ6)+Ｄ(Ｃ62,Ｍ6)*Ｆ(Ｃ62,Ｍ6)}／10000
＝(50*1000+50*4000+50*3000+50*2000)／10000
＝1250000／10000
＝50 nsec【００４９】
図６に示すパーティションＰ２の平均メモリレイテンシは、図５に示すパーティションＰ２の平均メモリレイテンシの４０％（＝50/125）に減少し、システム１の大幅な性能改善が見込まれる。【００５０】
上述のようにして、算出手段３３は、全てのリソースの組み合わせに対し平均距離を算出し、その平均距離を最小にするリソース組み合わせを、最適なパーティション構成（最適配分）として求める。【００５１】
つまり、一般的に記載すると、算出手段３３は、τ:{ＣＰＵの集合}→{ＣＰＵの集合}, ρ:{メモリの集合}→{メモリの集合}に対して、
平均距離AvgＤ(τ,ρ)＝Σ'Ｄ(τ(Ｃ),ρ(Ｍ))*Ｆ(Ｃ,Ｍ)／10000
を計算し、これを最小にするτ,ρを求める。その結果得られたτ(パーティションＰ２のＣＰＵの集合)およびρ(パーティションＰ２のメモリの集合)が、平均レイテンシを最小にする、最適なパーティションＰ２のリソース構成（リソース配分）になる。なお、Σ'は、上述と同様、パーティションＰ２に属するするＣＰＵおよびメモリの全ての組み合わせについて算出されるＤ(τ(Ｃ),ρ(Ｍ))*Ｆ(Ｃ,Ｍ)の総和を意味している。【００５２】
なお、パーティションＰ１およびパーティションＰ２にそれぞれ属するリソースは、他のパーティションに属すことはできない。従って、実際には、算出手段３３は、パーティションＰ１およびパーティションＰ２のそれぞれに属する、１２個のＣＰＵおよび３個のメモリの組み合わせを逐次選択し、各組み合わせについて、上述と同様にして平均メモリレイテンシを算出し、その平均距離に基づいて最適配分、つまり平均距離が最小となるリソース組み合わせを選択することになる。【００５３】
配分手段３４は、各パーティションＰ１，Ｐ２に対するリソース配分状態が算出手段３３によって算出された最適配分の状態になるように、各パーティション管理部２１，２２を介して各パーティションＰ１，Ｐ２に対しＣＰＵ ＣikおよびメモリＭnを配分するものである。このとき、配分手段３４は、各パーティション管理部２１，２２に対し最適配分に関する情報を通知し、各パーティション管理部２１，２２における、各パーティションＰ１，Ｐ２についての条件テーブルの内容を書き換え変更する。ここで、配分手段３４から各パーティション管理部２１，２１に通知される最適配分に関する情報は、各パーティションＰ１，Ｐ２に含まれるべきＣＰＵ ＣikおよびメモリＭnを指定する情報である。【００５４】
この配分手段３４による配分変更処理は、深夜など、システム１の使用頻度の低い時間帯に、変更対象リソースの属するノードを含むボードの電源を落とした上で実行される。その配分変更処理に際しては、各パーティション管理部２１，２２における条件テーブルの書換が行なわれるとともに、変更対象のＣＰＵ内データやメモリの記憶データを変更後のＣＰＵやメモリに移動する処理が実行される。これにより、各パーティションＰ１，Ｐ２内のリソースの構成が最適なパーティション構成に変更される。ただし、本発明は、このような配分変更処理に限定されるものでなく、ボードの活性交換等によって配分変更処理を行なってもよい。【００５５】
この配分手段３４によるリソース配分変更は、現状のパーティション構成での平均距離よりも小さい平均距離のパーティション構成が存在する場合に実行される。特に、その際、配分変更後のパーティション構成によって、現状、つまり配分変更前のパーティション構成よりも所定基準以上の性能改善が得られる場合にリソース配分変更が実行される。より具体的には、上述のごとく算出される性能改善率[配分変更後の平均距離]／[配分変更前の平均距離]が所定値以下となる場合に、上記リソース配分変更を実行することが好ましい。【００５６】
なお、上述した算出手段３３および配分手段３４による処理は、例えば、新規パーティション追加，所定時間経過，ユーザ（サーバ管理者）のリクエストなどをトリガとして、深夜などのシステム１の使用頻度の低い時間帯に実行される。【００５７】
また、算出手段３３は、最適配分となるリソース組み合わせが複数存在する場合には、後述する配分手段３４によるリソース配分を行なう際にリソース配分変更量が最も少なくなる、リソース組み合わせを、最適配分として選択することが望ましい。これにより、リソース配分変更に伴う、各パーティション管理部２１，２２における条件テーブルの書換変更や、ＣＰＵ／メモリにおけるデータ移動などの処理を最小限に抑え、効率的に配分変更を行なうことができる。【００５８】
次に、図４に示すフローチャート（ステップＳ１〜Ｓ８）に従い、上述のごとく構成された本実施形態のマルチプロセッサシステム１（サーバ管理装置３０）の動作について、図５および図６を参照しながら説明する。なお、図５および図６は、いずれも、図１に示すシステム１におけるパーティション分割の具体的な最適化動作例を説明するためのもので、図５はシステム１の最適化前の状態を示す図、図６はシステム１の最適化後の状態を示す図である。【００５９】
ここで、各々のパーティションが同一量のリソースを使用していたとしても、各パーティションＰ１，Ｐ２におけるリソースの組み合わせによっては、システム１の性能は大きく異なる。そこで、本実施形態では、各パーティションＰ１，Ｐ２に対しリソースを再配分し、システム１の処理性能を最適化する。【００６０】
図５に示す例では、８個のＣＰＵ Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ２１，Ｃ２２，Ｃ５１，Ｃ５２および２個のメモリＭ１，Ｍ５がパーティションＰ１に属し、４個のＣＰＵ Ｃ２３，Ｃ２４，Ｃ６１，Ｃ６２および１個のメモリＭ２がパーティションＰ２に属している。つまり、パーティションＰ１に属するＣＰＵは３つのノードＮ１，Ｎ２，Ｎ５に分散配置され、パーティションＰ１に属するメモリＭ１，Ｍ５は２つのノードＮ１，Ｎ５に分散配置されている。また、パーティションＰ２に属するＣＰＵは２つのノードＮ２，Ｎ６に分散配置されている。このように同一パーティションにおけるＣＰＵとメモリとが異なるノードに分散配置されていると、ノード間通信を行なう必要があり、メモリレイテンシが悪化することになる。例えば、ノードＮ６に属するＣＰＵ Ｃ６１は、他ノードＮ２におけるメモリＭ２にアクセスする必要があり、メモリレイテンシが悪化してしまう。【００６１】
これに対し、図６に示す例は、図５に示すごとく配分されたリソースに対し、サーバ管理装置３０が、例えば図２や図３に示すアクセスレイテンシテーブル３１ａや，リソース間データ移動頻度３１ｂに用い図４に示す手順で最適化処理を行なった結果得られた、最適化後の状態である。この図６に示す例では、８個のＣＰＵ Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ２１，Ｃ２２，Ｃ２３，Ｃ２４および２個のメモリＭ１，Ｍ２がパーティションＰ１に属し、４個のＣＰＵ Ｃ６１，Ｃ６２，Ｃ６３，Ｃ６４および１個のメモリＭ６がパーティションＰ２に属している。【００６２】
このように再配分を行なうことにより、パーティションＰ２に属するＣＰＵおよびメモリは一つのノードＮ６内に配置される。従って、ＣＰＵがメモリアクセスを行なう際には、必ず自ノードＮ６のメモリＭ６にアクセスすることになり、メモリレイテンシは最小になる。【００６３】
また、パーティションＰ１に属するＣＰＵおよびメモリは、同一のクロスバスイッチＣＢ１に収容された２つのノードＮ１，Ｎ２内に配置される。従って、この場合も、ＣＰＵがメモリアクセスを行なう際には、自ノードのメモリもしくは同一クロスバスイッチＣＢ１に収容された他のノードのメモリにアクセスすることになり、メモリレイテンシは最小になる。【００６４】
さて、本実施形態のサーバ管理装置３０が動作を開始すると、図４に示すように、まず、アクセスレイテンシテーブル３１ａを初期化してから（ステップＳ１）、システム１の運用を開始する（ステップＳ２）。なお、アクセスレイテンシテーブル３１ａの初期化では、本システム１のリソース群１０に対応するアクセスレイテンシテーブル３１ａが記憶部３１に登録格納される。また、動作開始時の初期化に際しては、各ノードＮｉにおけるテーブルＴｉの初期化（クリア）も行なわれる。【００６５】
この後、収集手段３２によって、リソース間のデータ移動情報の収集が開始される（ステップＳ３）。この収集処理では、各ノードＮｉにおけるテーブルＴｉに記録されたデータ移動情報が、バスＢ１，Ｂ２を介して各テーブルＴｉから収集され、リソース間データ移動頻度テーブル３１ｂに登録される。これにより、リソース間データ移動頻度テーブル３１ｂには、リソース群１０において、どのＣＰＵがどのメモリに対して、何回、リクエストを発行したかに関する情報、つまり通信回数／データ移動回数／リードアクセス回数などが、データ移動頻度として登録される。情報分析のトリガが発生するまでは、上述のようなリソース間のデータ移動情報の収集が継続される（ステップＳ４のＮＯルート）。【００６６】
そして、例えば、新規パーティション追加，所定時間経過，ユーザ（サーバ管理者）のリクエストなどの何らかのトリガが発生すると（ステップＳ４のＹＥＳルート）、算出手段３３によって、アクセスレイテンシテーブル３１ａの距離情報、つまりアクセスレイテンシ／メモリレイテンシとリソース間データ移動頻度テーブル３１ｂのデータ移動頻度とに基づき、各パーティションＰ１，Ｐ２に対する、リソースの最適配分が算出される（ステップＳ５）。つまり、算出手段３３によって、上述のように、全てのリソースの組み合わせに対し平均距離が算出され、その平均距離を最小にするリソース組み合わせが、最適なパーティション構成（最適配分）として求められる。【００６７】
この後、サーバ管理装置３０では、算出手段３３によって得られた最適なパーティション構成（最適配分）について、上述のごとき性能改善率[配分変更後の平均距離]／[配分変更前の平均距離]が算出される。そして、その性能改善率が所定値以下であるか否かが判断される（ステップＳ６）。【００６８】
性能改善率が所定値を超えている場合、現状のパーティション構成よりもよいパーティション構成が存在しないと判断され（ステップＳ６のＮＯルート）、現状のパーティション構成が維持される。つまり、サーバ管理装置３０は、リソース間のデータ移動情報の収集を継続し、ステップＳ４の処理へ移行する。【００６９】
一方、性能改善率が所定値以下である場合、現状のパーティション構成よりもよいパーティション構成が存在すると判断され（ステップＳ６のＹＥＳルート）、配分手段３４による配分変更処理が実行される（ステップＳ７）。【００７０】
その際、例えば図５に示すパーティション構成から図６に示すパーティション構成へ配分変更する場合には、変更対象となるノードＮ１，Ｎ２，Ｎ５，Ｎ６の動作が停止される。そして、配分手段３４によって、各パーティション管理部２１，２２における、各パーティションＰ１，Ｐ２についての条件テーブルの内容が書き換えられるとともに、変更対象のＣＰＵ内データやメモリの記憶データが変更後のＣＰＵやメモリに移動される。このとき、メモリＭ２の記憶データがメモリＭ６に移動されるとともに、ＣＰＵ Ｃ２３，Ｃ２４の内部データがＣＰＵ Ｃ６３，Ｃ６４に移動される。その後、メモリＭ５の記憶データがメモリＭ２に移動されるとともに、ＣＰＵ Ｃ５１，Ｃ５２の内部データがＣＰＵ Ｃ２３，Ｃ２４に移動される。このようなデータ移動処理を行なってから、ノードＮ１，Ｎ２，Ｎ５，Ｎ６の電源が投入され、各パーティションＰ１，Ｐ２内のリソースの構成が最適なパーティション構成（最適配分）に変更される。【００７１】
パーティション構成の変更を終了すると、リソース間データ移動頻度テーブル３１ｂやテーブルＴ１，Ｔ２，Ｔ５，Ｔ６において、変更対象となったリソースに係るデータ移動頻度やデータ移動情報といった情報がクリアされ（ステップＳ８）、サーバ管理装置３０はステップＳ３の処理へ移行する。【００７２】
このように、本発明の一実施形態としてのマルチプロセッサシステム１やサーバ管理装置３０によれば、マルチプロセッサシステム１内のリソース間の距離情報とデータ移動頻度とに基づいて、各パーティションに対するリソースの最適配分が統計的に算出され、その最適配分に応じたリソース配分が行なわれる。これにより、システム１の特性を意識したリソース配分が実現され、パーティション分割、つまりパーティションへのリソースの割当が最適化され、システム全体の処理性能が大幅に向上する。つまり、システム１のＮＵＭＡ特性を考慮したリソースの再配置を行なうことにより、同一リソースを使用した場合の処理性能を最大化することができる。【００７３】
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上述した記憶部（第１テーブル記憶手段，第２テーブル記憶手段）３１，収集手段３２，算出手段３３および配分手段３４としての機能（各手段の全部もしくは一部の機能）は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（マルチプロセッサシステム用管理プログラム）を実行することによって実現される。【００７４】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷ，ブルーレイディスクなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からマルチプロセッサシステム用管理プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。【００７５】
ここで、コンピュータとは、ハードウエアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたプログラムを読み取るための手段とをそなえている。上記分散型ストレージシステム用制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、手段３１〜３４としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。【００７６】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【図１】
2010016104.tif 000003
【図２】
2010016104.tif 000004
【図３】
2010016104.tif 000005
【図４】
2010016104.tif 000006
【図５】
2010016104.tif 000007
【図６】
2010016104.tif 000008
【手続補正書】
【提出日】平成23年2月10日(2011.2.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、
該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部と、
該複数のリソースおよび該複数のパーティション管理部を管理するシステム管理部とを有し、
該システム管理部は、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段と、
該複数のリソース相互間のデータ移動情報を収集する収集手段と、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段と、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段と、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段とを有していることを特徴とする、マルチプロセッサシステム。
【請求項２】
該第１テーブルにおける前記距離情報として、各リソースの属するノード間のアクセスレイテンシが定義されていることを特徴とする、請求項１に記載のマルチプロセッサシステム。
【請求項３】
該第２テーブルにおける前記データ移動頻度として、前記複数のリソース相互間のデータ移動回数が記録更新されることを特徴とする、請求項１または請求項２に記載のマルチプロセッサシステム。
【請求項４】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、前記データ移動回数として各演算処理部と各メモリとの間の通信回数が記録更新されることを特徴とする、請求項３に記載のマルチプロセッサシステム。
【請求項５】
該算出手段は、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択することを特徴とする、請求項１〜請求項４のいずれか一項に記載のマルチプロセッサシステム。
【請求項６】
該算出手段は、前記最適配分として複数の組み合わせが存在する場合には、該配分手段によるリソース配分を行なう際に配分変更量の最も少ない組み合わせを前記最適配分として選択することを特徴とする、請求項５に記載のマルチプロセッサシステム。
【請求項７】
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該算出手段は、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出することを特徴とする、請求項５または請求項６に記載のマルチプロセッサシステム。
【請求項８】
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部とを有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するマルチプロセッサシステム用管理装置であって、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段と、
該複数のリソース相互間のデータ移動情報を収集する収集手段と、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段と、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段と、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段とを有していることを特徴とする、マルチプロセッサシステム用管理装置。
【請求項９】
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部とを有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するマルチプロセッサシステム用管理装置として、コンピュータを機能させるプログラムを記録したコンピュータ読取可能な記録媒体であって、
該プログラムは、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段、
該複数のリソース相互間のデータ移動情報を収集する収集手段、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段、および、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段、として、該コンピュータを機能させることを特徴とする、マルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
ここで、図３は本実施形態のリソース間データ移動頻度テーブル３１ｂの一例を示す図である。この図３に示すリソース間データ移動頻度テーブル３１ｂには、各ＣＰＵの各メモリに対するアクセス回数の具体例が記録されている。リソース間データ移動頻度テーブル３１ｂからは、例えば、ＣＰＵ Ｃ１１は、メモリＭ１に対し1000回のアクセスを、メモリＭ２に対し500回のアクセスを行なっていることが分かる。また、例えば、ＣＰＵ Ｃ２３は、メモリＭ２に対し1000回のアクセスを行なっていることが分かる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
[図６に示すパーティションＰ２の平均メモリレイテンシ]
＝Σ'Ｄ(Ｃ,Ｍ)*Ｆ(Ｃ,Ｍ)/10000
＝{Ｄ(Ｃ63,Ｍ6)*Ｆ(Ｃ63,Ｍ6)+Ｄ(Ｃ64,Ｍ6)*Ｆ(Ｃ64,Ｍ6)
+Ｄ(Ｃ61,Ｍ6)*Ｆ(Ｃ61,Ｍ6)+Ｄ(Ｃ62,Ｍ6)*Ｆ(Ｃ62,Ｍ6)}／10000
＝(50*1000+50*4000+50*3000+50*2000)／10000
＝500000／10000
＝50 nsec
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
配分手段３４は、各パーティションＰ１，Ｐ２に対するリソース配分状態が算出手段３３によって算出された最適配分の状態になるように、各パーティション管理部２１，２２を介して各パーティションＰ１，Ｐ２に対しＣＰＵＣikおよびメモリＭnを配分するものである。このとき、配分手段３４は、各パーティション管理部２１，２２に対し最適配分に関する情報を通知し、各パーティション管理部２１，２２における、各パーティションＰ１，Ｐ２についての条件テーブルの内容を書き換え変更する。ここで、配分手段３４から各パーティション管理部２１，２２に通知される最適配分に関する情報は、各パーティションＰ１，Ｐ２に含まれるべきＣＰＵＣikおよびメモリＭnを指定する情報である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
以上の本実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、
該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部と、
該複数のリソースおよび該複数のパーティション管理部を管理するシステム管理部とを有し、
該システム管理部は、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段と、
該複数のリソース相互間のデータ移動情報を収集する収集手段と、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段と、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段と、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段とを有していることを特徴とする、マルチプロセッサシステム。
（付記２）
該第１テーブルにおける前記距離情報として、各リソースの属するノード間のアクセスレイテンシが定義されていることを特徴とする、付記１に記載のマルチプロセッサシステム。
（付記３）
該第２テーブルにおける前記データ移動頻度として、前記複数のリソース相互間のデータ移動回数が記録更新されることを特徴とする、付記１または付記２に記載のマルチプロセッサシステム。
（付記４）
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、前記データ移動回数として各演算処理部と各メモリとの間の通信回数が記録更新されることを特徴とする、付記３に記載のマルチプロセッサシステム。
（付記５）
該算出手段は、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択することを特徴とする、付記１〜付記４のいずれか一項に記載のマルチプロセッサシステム。
（付記６）
該算出手段は、前記最適配分として複数の組み合わせが存在する場合には、該配分手段によるリソース配分を行なう際に配分変更量の最も少ない組み合わせを前記最適配分として選択することを特徴とする、付記５に記載のマルチプロセッサシステム。
（付記７）
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該算出手段は、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出することを特徴とする、付記５または付記６に記載のマルチプロセッサシステム。
（付記８）
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部とを有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するマルチプロセッサシステム用管理装置であって、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段と、
該複数のリソース相互間のデータ移動情報を収集する収集手段と、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段と、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段と、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段とを有していることを特徴とする、マルチプロセッサシステム用管理装置。
（付記９）
該第１テーブルにおける前記距離情報として、各リソースの属するノード間のアクセスレイテンシが定義されていることを特徴とする、付記８に記載のマルチプロセッサシステム用管理装置。
（付記１０）
該第２テーブルにおける前記データ移動頻度として、前記複数のリソース相互間のデータ移動回数が記録更新されることを特徴とする、付記８または付記９に記載のマルチプロセッサシステム用管理装置。
（付記１１）
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、前記データ移動回数として各演算処理部と各メモリとの間の通信回数が記録更新されることを特徴とする、付記１０に記載のマルチプロセッサシステム用管理装置。
（付記１２）
該算出手段は、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択することを特徴とする、付記８〜付記１１のいずれか一項に記載のマルチプロセッサシステム用管理装置。
（付記１３）
該算出手段は、前記最適配分として複数の組み合わせが存在する場合には、該配分手段によるリソース配分を行なう際に配分変更量の最も少ない組み合わせを前記最適配分として選択することを特徴とする、付記１２に記載のマルチプロセッサシステム用管理装置。
（付記１４）
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該算出手段は、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出することを特徴とする、付記１２または付記１３に記載のマルチプロセッサシステム用管理装置。
（付記１５）
複数のパーティションのいずれか一つに対し単独で割当可能な、複数のリソースと、該複数のパーティションのそれぞれに属するリソースを管理する複数のパーティション管理部とを有するマルチプロセッサシステムにおいて、該複数のリソースおよび該複数のパーティション管理部を管理するマルチプロセッサシステム用管理装置として、コンピュータを機能させるプログラムを記録したコンピュータ読取可能な記録媒体であって、
該プログラムは、
該複数のリソース相互間の距離に係る距離情報を定義する第１テーブルを記憶する第１テーブル記憶手段、
該複数のリソース相互間のデータ移動情報を収集する収集手段、
該収集手段によって収集された前記データ移動情報に基づく該複数のリソース相互間のデータ移動頻度を保持する第２テーブルを記憶する第２テーブル記憶手段、
該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに対する、該複数のリソースの最適配分を算出する算出手段、および、
該複数のパーティションに対する該複数のリソースの配分状態が該算出手段によって算出された前記最適配分の状態になるように、該複数のパーティション管理部を介して該複数のパーティションに該複数のリソースを配分する配分手段、として、該コンピュータを機能させることを特徴とする、マルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
（付記１６）
該プログラムは、該算出手段として該コンピュータを機能させる際に、該第１テーブルの距離情報と該第２テーブルのデータ移動頻度とに基づき、各パーティションに割り当てられる該複数のリソースの全ての組み合わせのそれぞれについて平均距離を算出し、当該平均距離が最小になるリソースの組み合わせを前記最適配分として選択するように、該コンピュータを機能させることを特徴とする、付記１５に記載のマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
（付記１７）
該複数のリソースとして複数の演算処理部と複数のメモリとが含まれ、
該プログラムは、該算出手段として該コンピュータを機能させる際に、前記組み合わせ毎に、該第２テーブルに前記データ移動頻度として記録された各メモリに対する各演算処理部のアクセス回数と、該第１テーブルに前記距離情報として定義された対応メモリレイテンシとの積の総和を算出し、当該積の総和を前記アクセス回数の総和で除算した値を、当該組み合わせについての前記平均距離として算出するように、該コンピュータを機能させることを特徴とする、付記１６に記載のマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体。
【国際調査報告】
2010016104.tif 000009
2010016104.tif 000010
2010016104.tif 000011
2010016104.tif 000012