(57)【要約】      （修正有）【課題】メモリを共有する異なるノードにおけるメモリ資源・通信資源の使用効率を高める。【解決手段】固有メモリに格納されたデータ値を更新し、更新された値が予め設定された共通初期値と異なる場合に更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、計算ノードから更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能を有するメモリ管理装置を備える。【選択図】図１
2013011971.tif 000002
【特許請求の範囲】
【請求項１】
自己が保持する固有メモリに格納された格納データ値を更新する計算ノードと、前記計算ノードのメモリに対応したメモリ領域を含んだ共有メモリを管理するメモリ管理装置とを備えた分散共有メモリ管理システムであって、
前記計算ノードは、
前記格納データ値の更新を行うのに先立ち前記固有メモリの格納データ値を予め設定された共通初期値に初期化する初期化手段と、
前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定すると共に、前記共通初期値と異なる値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知する更新データ通知手段とを備え、
前記メモリ管理装置は、
前記共有メモリに格納されたデータを前記共通初期値で初期化する共有メモリ初期化部と、
前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新部とを備えたことを特徴とする分散共通メモリ管理システム。
【請求項２】
請求項１に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置の前記共有メモリデータ更新部は、
異なる計算ノードそれぞれから前記更新データが送り込まれた場合に、前記更新データの取得順に前記共有メモリにおける前記各更新データに対応するアドレスのデータを更新することを特徴とする時系列更新手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項３】
請求項１に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置は、前記共有メモリお初期化を行う際に前記各計算ノードに対して前記共通初期値を通知する初期値通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項４】
請求項１に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリにおける前記更新値および共通初期値を前記更新データとして送信する固有メモリデータ送信機能を備え
前記メモリ管理装置は、
前記各計算ノードから前記共通初期値を含む前記固有メモリの更新データが送り込まれた場合に前記講師データから前記共通初期値と異なる更新値を抽出すると共に、前記共有メモリにおける前記更新値のアドレスに対応したアドレスの値を前記更新値へと更新する抽出更新機能を備えたことを特徴とする分散共通メモリ管理システム。
【請求項５】
請求項１に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリ上で同値が格納された連続するアドレスを同値メモリ領域として設定し、前記同値メモリ領域を含む前記更新データを前記メモリ管理装置に送信する連続メモリ送信手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項６】
請求項１に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記更新値が格納された格納アドレスを結合して更新データブロックを生成し、当該更新データブロックを前記更新データとして前記共通メモリデータ更新装置に通知する更新データブロック通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項７】
自己が保持する固有メモリに格納された格納データ値を更新する計算処理を行う計算ノードと、前記固有メモリに対応したメモリ領域を含む共有メモリを有する共有メモリ管理装置とを備え、前記共有メモリに格納されたデータを管理する分散共通メモリ管理方法であって、
前記共有メモリ管理装置が、前記共有メモリに格納されたデータを共通初期値で初期化し、
前記計算ノードが、前記固有メモリのデータ値を前記共通初期値に初期化し、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定し、前記共通初期値との差分がある場合に当該差分値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知し、
前記メモリ管理装置が、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新することを特徴とした分散共通メモリ管理方法。
【請求項８】
自己の固有メモリに格納されたデータ値を更新し、当該更新された値が予め設定された共通初期値と異なる場合に前記更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、前記計算ノードの固有メモリに対応した共有メモリを有するメモリ管理装置とを備えた分散共有メモリ管理システムにあって、前記共有メモリのデータを管理するための分散共有メモリ管理プログラムであって、
前記共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、
前記計算ノードから前記更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能と、
を前記メモリ管理装置のコンピュータにより実現することを特徴とする分散共通メモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互に接続された計算機ノード上のメモリ資源を共有メモリとして管理する分散共有メモリ管理システムに関する。
【背景技術】
【０００２】
複数の計算機ノードが相互に接続されたネットワーク計算機システムにおいて、各計算機ノード上に設けられたメモリ資源をあたかも論理的に共有された、単一のメモリ資源のように扱うことにより、複数の計算機ノードにまたがる並列プログラムの実行等を可能とする分散共有メモリシステムが利用されている。
【０００３】
分散共有メモリシステムでは、共有されたメモリ上に格納された格納データを複数のマシン間で同一に保つ制御処理（一貫性制御処理）が行われるが、この場合、各ノード上のプロセッサが共有メモリを書き換えた結果を、共有メモリ上のデータを管理する他の計算機ノードに対して転送する必要がある。
【０００４】
しかしながら、一般的な分散共有メモリシステムにおける、一貫性制御処理の実行時に、計算機ノード間における通信トラフィックが膨大となり、各計算機ノードにおいても通信処理負担が増大してしまう、といった不都合があった。
【０００５】
この関連技術として、共有された異なる計算機ノード上のメモリ領域の一貫性保証に要する通信や制御の負荷を少なくするために、各メモリ領域に必要な一貫性制御のタイプと一貫性制御の開始タイミングと終了タイミングをプログラムから明示的に指定できるようにし、これらを適切に使い分ける方式が用いるシステム（Ｍｕｎｉｎシステム）が開示されている（非特許文献１）。
【０００６】
Ｍｕｎｉｎシステムの一貫性制御タイプの例としては、読み出しのみ許容するＲｅａｄ−Ｏｎｌｙタイプ、１つの計算機が書き込みを行い他の複数の計算機が同時に読み出すＰｒｏｄｕｃｅｒ−Ｃｏｎｓｕｍｅｒタイプ、複数計算機による同時書き込みを許容するＷｒｉｔｅ−Ｓｈａｒｅｄタイプがある。
【０００７】
上記Ｒｅａｄ−Ｏｎｌｙタイプの一貫性制御では、一貫性制御に要する通信や処理の少ないタイプを優先的に使うプログラムは効率良く実行できる。
また、Ｗｒｉｔｅ−Ｓｈａｒｅｄタイプの一貫性制御では、当該共有メモリ領域への複数の計算機への書き込みを許容する。ただし、同一アドレスへの書き込みは、複数の計算機からは行われない（フォールスシェアリング）ものとし、他の計算機から書き込まれた結果は一貫性制御の時間区間内で参照されない制約をプログラムに課している。
【０００８】
このため、各計算機が共有メモリ領域に書き込んだデータを他の計算機に反映処理は一貫性制御の終了時にまとめて行えばよく、Ｍｕｎｉｎシステムではページメモリ単位でこの更新処理を行っている。
【０００９】
また、Ｍｕｎｉｎシステムでは、共有メモリにおけるデータの更新については、共有メモリを管理する管理部と各計算機からの更新データを管理部に送信する更新データ送信部とにより行われ、その際、更新データ送信部は更新後のデータだけでなく共有メモリ領域内のどのアドレスに書き込みを行ったかを管理部に伝送する必要がある。その書き込みアドレスの検出にＴｗｉｎｉｎｇ (複製)と呼ばれる技術が使われている。
【００１０】
複製によるＷｒｉｔｅ−Ｓｈａｒｅｄ一貫性制御処理の動作では、図３に示すように、Ｍｕｎｉｎにおけるメモリの分散共有は、ＣＰＵによる仮想物理アドレス変換の管理単位である、ページメモリ単位で行われている。
この例では、ある共有メモリ領域Ｓに対してＷｒｉｔｅ−Ｓｈａｒｅｄタイプの一貫性制御が指示されていて、ページメモリＸはメモリ領域Ｓに含まれるとする。
【００１１】
ここでは、簡単のため１ページに８個の整数データが格納できるものとし、一貫性制御区間に入る前にデータ（０，１，２，３，０，１，２，３）が格納されている。また、このシステムでは、計算機１、２を備えておりこれらが同時に動作しページメモリＸを更新している。
また、計算機１は、ページメモリＸが必要になるとメモリ管理部にページメモリＸのデータを要求する。すると、メモリ管理部はページＸの初期データを計算機１に送信する。
【００１２】
次いで、計算機１はこれを受け取り、計算機１のローカルのページメモリにこれを置き、さらに、同じサイズのメモリ領域を確保しページメモリＸの複製を作成する。
ここで、計算機１はプログラム実行を開始し、適当なタイミングで書き戻しを行う際に複製データと比較を行い、値が異なるアドレスのデータを更新値として管理部に送信する。
【００１３】
尚、以上の計算機１における機能動作は計算機２においても同様に実行されるものとする。
最後に、メモリ管理部が、計算機１、計算機２から送られた更新データと更新アドレスを元に、ページメモリＸのデータを更新する。
これにより、ページメモリＸ上に、共有されたメモリ上における更新データが格納され、複数のノード間における共有メモリのデータが同一に保たれる一貫性制御処理が実現される。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】John B. Carter, John K. Bennett, and Willy Zwaenepoel, "Implementation and Performance of Munin, " 1991
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、上記非特許文献１であるＭｕｎｉｎシステムでは、共有メモリの複製を格納する冗長なメモリ領域が必要であり、またページメモリの初期値を送る通信が発生する。これはシステムによるプログラム実行性能を低下させるといった不都合がある。
【００１６】
［発明の目的］
本発明は、上記関連技術の有する不都合を改善し、メモリ資源を共有する異なる計算機ノード間で行われるデータ通信量を有効に軽減し得る分散共有メモリ管理システム、分散共有メモリ管理方法、および分散共有メモリ管理プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明に係る分散共有メモリ管理システムは、自己が保持する固有メモリに格納された格納データ値を更新する計算ノードと、前記計算ノードのメモリに対応したメモリ領域を含んだ共有メモリを管理するメモリ管理装置とを備えた分散共有メモリ管理システムであって、前記計算ノードは、前記格納データ値の更新を行うのに先立ち前記固有メモリの格納データ値を予め設定された共通初期値に初期化する初期化手段と、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定すると共に、前記共通初期値と異なる値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知する更新データ通知手段とを備え、前記メモリ管理装置は、前記共有メモリに格納されたデータを前記共通初期値で初期化する共有メモリ初期化部と、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新部とを備えた構成をとっている。
【００１８】
また、本発明にかかる分散共有メモリ管理方法は、自己が保持する固有メモリに格納された格納データ値を更新する計算処理を行う計算ノードと、前記固有メモリに対応したメモリ領域を含む共有メモリを有する共有メモリ管理装置とを備え、前記共有メモリに格納されたデータを管理する分散共通メモリ管理方法であって、前記共有メモリ管理装置が、前記共有メモリに格納されたデータを共通初期値で初期化し、前記計算ノードが、前記固有メモリのデータ値を前記共通初期値に初期化し、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定し、前記共通初期値との差分がある場合に当該差分値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知し、前記メモリ管理装置が、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新するようにしたことを特徴としている。
【００１９】
また、本発明にかかる分散共有メモリ管理プログラムは、自己の固有メモリに格納されたデータ値を更新し、当該更新された値が予め設定された共通初期値と異なる場合に前記更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、前記計算ノードの固有メモリに対応した共有メモリを有するメモリ管理装置とを備えた分散共有メモリ管理システムにあって、前記共有メモリのデータを管理するための分散共有メモリ管理プログラムであって、前記共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、前記計算ノードから前記更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能と、を前記メモリ管理装置のコンピュータに実現させることを特徴としている。
【発明の効果】
【００２０】
本発明は、以上のように構成され機能するので、これによると、異なるノード上に設定された共有メモリ内におけるデータの一貫性を保ちつつノード間通信を有効に軽減し得る分散共有メモリ管理システム、分散共有メモリ管理方法、分散共有メモリ管理プログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明による分散共有メモリ管理システムにおける一実施形態を示す概略ブロック図である。
【図２】図１に開示した分散共有メモリ管理システムの全体的な動作処理ステップを示すシーケンスチャートである。
【図３】関連技術としての分散共有メモリ管理システムの全体的な動作処理ステップを示すシーケンスチャートである。
【発明を実施するための形態】
【００２２】
［実施形態］
次に、本発明の実施形態について、その基本的構成内容を説明する。
【００２３】
本実施形態である分散共有メモリ管理システムは、データ通信用のネットワーク回線１０２により相互に接続された、異なる（ｎ＋１）台の計算機からなるネットワーク計算機システム１０であって、このネットワーク計算機システム１０は、上記（ｎ＋１）台の計算機として、データ読み書き用に利用する局所メモリ（固有メモリ）を有しネットワーク回線１０２を介して相互に接続されたｎ台の計算機１０１（１〜ｎ）と、ネットワーク回線１０２を介して接続され上記計算機１０１（１〜ｎ）それぞれが有する局所メモリ（固有メモリ）やキャッシュメモリ上に設定された特定のメモリ領域を共有メモリとして管理するメモリ管理用計算機５０を備えた構成を有する。
【００２４】
計算機１０１（１〜ｎ）はそれぞれプロセッサ、メインメモリ、補助記憶装置を有する通常のコンピュータであるものとする。
また、計算機１０１（１〜ｎ）それぞれが備えた局所メモリ（後述するメインメモリ１０６）にはそれぞれが独立した記憶アドレスが設定されているものとする。
【００２５】
これにより、メモリ管理用計算機５０はこの記憶アドレスに基づき各局所メモリ上に分散格納されたデータが論理的に共有されるように管理することが可能となる。
【００２６】
尚、計算機１０１（１〜ｎ）は、図１に示すように、それぞれ同一の内部構成を有するものとする。
このため、以下においては、計算機１０１（１〜ｎ）のうちの計算機１０１（１）について説明するが、その他の計算機１０１（２〜ｎ）も同様の内部構成、および動作機能を備えているものとする。
【００２７】
計算機１０１（１）は、図１に示すように、予め設定された応用プログラムなどを記憶保持する補助記憶装置１０５と、管理用メモリ３０に対応したメモリアドレス（ページメモリＸ１）を有するメインメモリ部１０６と、補助記憶装置１０５から読み出したプログラムの実行処理を行うプロセッサ部１０４と、ネットワーク１０２を介して他の計算機とのデータ通信を行う通信部１０７を有する。
通信部１０７は、ＵＳＢやイーサポートなどのネットワークインタフェースを備えており、このネットワークインタフェースを介してネットワーク回線１０２に接続されている。
【００２８】
尚、補助記憶装置１０５は、例えばＨＤＤ（ハードディスクドライブ）などのデータ記憶装置であって、プロセッサ部１０４による実行処理対象であるデータやプログラムが予め記憶されているものとする。また、これらデータおよびプログラムはシステム・バス１０３を介してメインメモリ部１０６やプロセッサ部１０４内に予め設置されたキャッシュメモリに送り込まれる。
【００２９】
計算機１０１のプロセッサ部１０４は、ローカルメモリであるメインメモリ１０６上のページメモリＸ１に格納されたデータ（キャッシュ）を初期値０に初期化するページメモリ初期化機能と、ページメモリＸ１のキャッシュを利用したプログラム処理を実行するプログラム実行処理機能を有する。
このプログラム実行処理機能の実行により、図２に示すように、ページメモリＸ１におけるキャッシュ（初期値）の一部が書き換えられるものとする。
【００３０】
また、プロセッサ部１０４は、ローカルメモリにおけるページメモリＸ１におけるキャッシュについて、初期値（ここでは「０」）に等しいか否か（つまり、データ更新が行われているか否か）の判定を行う初期値判定手段を有する。
尚、プロセッサ部１０４は、ページメモリＸ１におけるキャッシュについて、初期値に等しいか否かを判定する処理を定期的に実行する設定であってもよい。
【００３１】
また、プロセッサ部１０４（２０４）は、ローカルのページメモリＸ１（２）におけるキャッシュについて、初期値（ここでは「０」）に等しいか否か（つまり、データ更新が行われているか否か）の判定を行わず、通信部１０７（２０７）が更新されたデータ値を含むページメモリＸ１（２）のデータと各データのメモリアドレスとを取得し、更新データとしてメモリ管理用計算機５０に対して送信する設定であってもよい。
【００３２】
この場合、メモリ管理用計算機５０のメモリ管理部３１は、計算機１０１それぞれから送り込まれた更新データに初期値（例えば「０」）が含まれているか否かを調べ、この初期値および初期値のメモリアドレスを除外し、送り込まれた他の更新データに基づいて、管理用メモリ３０の対応するページメモリＸ０のキャッシュ（初期値）を書き換える。
【００３３】
メインメモリ部１０６は、管理用メモリ３０に設定された共有メモリ領域としてのページメモリＸ０に対応するページメモリＸ１が設定された半導体メモリ装置であって、当該メインメモリ部１０６上に格納されたデータは、プロセッサ部１０４による処理対象であり、当該処理により更新されるものとする。
【００３４】
尚、プロセッサ部１０４、通信部１０７における処理機能は、補助記憶装置１０５内に予め設定されたプログラムが実行されることにより、実現されるものとする。
【００３５】
通信部１０７は、共有メモリ上の更新データ、および更新データのメモリアドレスである更新アドレスを、システム・バス１０３を介して取得し、ネットワーク１０２を介してメモリ管理用計算機５０に対して送信する処理を行う（更新データ送信機能）。
【００３６】
また、通信部１０７は、例えば同一のキャッシュ（更新データ）が格納されたページメモリ内の連続するメモリアドレスを一組の連続アドレスブロックを設定し、この連続アドレスブロックのアドレス範囲と更新データをメモリ管理用計算機５０に対して送信するアドレスブロック送信機能を備えている。
【００３７】
通信部１０７は、初期値判定手段による判定結果として、ページメモリＸ１内に更新されたデータ、つまり、初期化値とは異なるデータが含まれている場合に、更新されたデータ値である更新データを抽出し、この更新データが格納されているメモリアドレスを示す更新アドレスを取得する更新データ取得機能を有する。
【００３８】
また、通信部１０７は、ページメモリＸ１における更新データ、およびその更新アドレスを、ネットワーク回線１０２を介してメモリ管理用計算機５０に対して送信する。
【００３９】
メモリ管理用計算機５０は、各計算機１０１（１〜ｎ）内に設置された固有メモリ（局所メモリ）のメモリアドレスに対応した管理用メモリ３０と、管理用メモリ３０上のデータを各計算機１０１（１〜ｎ-１）から送り込まれたメモリデータ（更新データ）に基づき更新するメモリ管理部３１を備えた構成を有する。
【００４０】
管理用メモリ３０は、各計算機１０１（１〜ｎ-１）内に設定された共有メモリのメモリアドレスに対応したページメモリＸ０を有するものとする。
【００４１】
これにより、計算機１における共有メモリ上のアドレス（ページＸ１）と、メモリ管理用計算機５０における管理用メモリ３０上のアドレス（ページＸ０）とが対応するので、例えば、計算機１０１（１）上の共有メモリ（分散共有されたメモリ領域）に対してデータ書込みがあった場合には、書込まれたデータ（更新データ）、およびそのデータのメモリ上のアドレス（更新アドレス）がメモリ管理用計算機５０に通知され、これにより、管理用メモリ３０上のメモリアドレスにも書込みが行われる。このため、共有メモリにおけるデータの一貫性が保証される。
【００４２】
メモリ管理部３１は、ページメモリＸ０に初期値０を書き込む（ページメモリ初期化機能を有する。これにより、管理用メモリ３０内における書込み範囲であるページメモリＸ０のキャッシュが値「０」に初期化される。
【００４３】
尚、メモリ管理部３１はページメモリＸ０を初期化した後、計算機１０１（例えば、１，２）それぞれに対して、対応するページメモリにおけるキャッシュの０初期化を要求する初期化要求を送信し、計算機１０１（１，２）はそれぞれこの初期化要求に応じてページメモリのキャッシュを初期化する設定であってもよい。
【００４４】
尚、ページメモリのキャッシュを初期化する値は０以外の値であってもよい。ただし、管理用メモリ３０のページメモリＸ０における初期化値と各計算機１０１（１，２）におけるページメモリＸ１、Ｘ２における初期化値とはそれぞれ同値であるものとする。
【００４５】
メモリ管理部３１は、計算機１０１それぞれから送り込まれた更新データおよび更新アドレスを受信し、更新アドレスに対応するページメモリＸ０のキャッシュ（初期値）を、上記更新アドレスに書き換える管理用キャッシュ更新機能を備えている。
【００４６】
尚、上述のように、計算機１０１（２）も計算機１０１（１）と同様の内部構成を有しており、計算機１０１（２）のプロセッサ部２０４は、計算機１０１（１）のプロセッサ部１０４と同様に、ローカルメモリであるメインメモリ２０６（１０６に対応）上のページメモリＸ２（Ｘ１に対応）に格納されたデータ（キャッシュ）を０初期化するページメモリ初期化機能を備えた構成を有する。
【００４７】
また、プロセッサ部２０４がページメモリＸ２のキャッシュを利用したプログラム処理を実行し、図２に示すように、ページメモリＸ２におけるキャッシュ（初期値）の一部が更新されるものとする。
【００４８】
更に、プロセッサ部２０４は、ローカルのページメモリＸ２におけるキャッシュについて、初期値（ここでは「０」）に等しいか否か（つまり、データ更新が行われているか否か）の判定を行う（初期値判定部）。
【００４９】
計算機１０１（２）の通信部２０７（通信部１０７に対応）は、ページメモリＸ２内に更新されたデータを含まれている場合に、更新されたデータ値である更新データを抽出すると共に、この更新データが格納されているメモリアドレスを示す更新アドレスを取得し、ページメモリＸ２における更新データ、およびその更新アドレスを、ネットワーク回線１０２を介してメモリ管理用計算機５０に対して送信する機能を有する。
【００５０】
ここで、メモリ管理部３１は、例えば、異なる複数の計算機１０１から更新データ（および更新アドレス）が送り込まれた場合には、先に送り込まれた更新データによりページメモリＸ０のキャッシュを更新し、次いで、送り込まれた更新データによりページメモリＸ０のキャッシュの更新を行なうものとする。
【００５１】
尚、メモリ管理部３１は、ページメモリＸ０における対応する同一の更新アドレスのキャッシュが更新されている場合には、更新データがメモリ管理部３１に送付された順にページメモリＸ０のキャッシュの更新を行うものとする。
【００５２】
以上のように、本実施形態では、各計算機１０１（１，２）において、ローカルメモリ上でデータ複製を行う必要がないため、各計算機上におけるメモリ使用量を有効に軽減することができる。
【００５３】
また、本実施形態における各計算機では、メモリ管理部３１からページメモリの初期値を読み込む必要がないため、ページメモリの初期化時におけるネットワーク通信量（トラフィック）を有効に抑制することができ、このため、通信部１０７、ネットワーク回線における通信負荷やプロセッサにおける処理負荷を軽減することが可能となる。
【００５４】
［実施形態の動作説明］
次に、上記実施形態の動作について、その概略を説明する。
メモリ管理装置５０のメモリ管理部３１が、共有メモリ３０に格納されたデータを共通初期値で初期化する（共有メモリ初期化工程）。
次いで、計算機（計算ノード）１０１が、固有メモリのデータ値を共通初期値に初期化し（固有メモリ初期化工程）、固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定する（差分判定工程）。
共通初期値との差分がある場合に当該差分値である更新値と、この更新値の前記固有メモリにおけるアドレスとを更新データとしてメモリ管理装置５０に通知する（更新データ送信工程）。
メモリ管理部３１が、計算機１０１から送り込まれた更新データに基づき、共有メモリにおける対応するアドレスのデータを前記更新値へと更新する（共有メモリ更新工程）。
【００５５】
ここで、上記共有メモリ初期化工程、固有メモリ初期化工程、差分判定工程、更新データ送信工程、および共有メモリ更新工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
【００５６】
また、本プログラムは、非一時的な記憶媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリなどに記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
【００５７】
次に、本実施形態である分散共有メモリ管理システムの動作について、図１に基づき具体的に説明する。
【００５８】
まず、メモリ管理部３１が、ページメモリＸ０に初期値０を書き込む（ステップＳ１０１）。これにより、書込み範囲（ページメモリＸ０）が値０に初期化される。
【００５９】
次いで、計算機１のプロセッサ部１０４が、ローカルメモリであるメインメモリ１０６上のページメモリＸ１に格納されたデータ（キャッシュ）を初期値０に書き変える（以下「０初期化」という）。また、計算機１０１（２）のプロセッサ部２０４も、同様に、ローカルメモリであるメインメモリ２０６上のページメモリＸ２に格納されたデータ（キャッシュ）を０初期化する（ステップＳ１０２）。
【００６０】
尚、メモリ管理部３１はページメモリＸ０を０初期化した後、計算機１０１（１，２）それぞれに対して、対応するページメモリにおけるキャッシュの０初期化を要求する初期化要求を送信し、計算機１０１（１，２）はそれぞれこの初期化要求に応じてページメモリのキャッシュを初期化する設定であってもよい。
【００６１】
尚、ページメモリのキャッシュを初期値する値は０以外の値であってもよい。ただし、管理用メモリ３０のページメモリＸ０における初期化値と各計算機１０１（１，２）におけるページメモリＸ１、Ｘ２はそれぞれ同値で初期化されるものとする。
【００６２】
ここで、計算機１０１（１）のプロセッサ部１０４は、ページメモリＸ１のキャッシュを利用したプログラム処理を実行する（ステップＳ１０３）。
これにより、図２に示すように、ページメモリＸ１におけるキャッシュ（初期値）の一部が書き換えられる（更新される）。
【００６３】
次いで、プロセッサ部１０４は、ローカルのページメモリＸ１におけるキャッシュについて、初期値（ここでは「０」）に等しいか否か（つまり、データ更新が行われているか否か）の判定を行う（ステップＳ１０４：初期値判定部）。
【００６４】
ここで、ページメモリＸ１内に更新されたデータを含まれている場合に、通信部１０７が、更新されたデータ値である更新データを抽出すると共に、この更新データが格納されているメモリアドレスを示す更新アドレスを取得する（ステップＳ１０５）。
【００６５】
次いで、通信部１０７は、ページメモリＸ１における更新データ、およびその更新アドレスを、ネットワーク回線１０２を介してメモリ管理用計算機５０に対して送信する（ステップＳ１０６：差分である更新データをＷｒｉｔｅｂａｃｋ）。
【００６６】
一方、計算機１０１（２）においても計算機１０１（１）と同様に、プロセッサ部２０４がページメモリＸ２のキャッシュを利用したプログラム処理を実行し（ステップＳ１０３’）、図２に示すように、ページメモリＸ２におけるキャッシュ（初期値）の一部が書き換えられる（更新される）。
【００６７】
次に、プロセッサ部２０４はローカルのページメモリＸ２におけるキャッシュについて、初期値（ここでは「０」）に等しいか否か（つまり、データ更新が行われているか否か）の判定を行う（ステップＳ１０４’：初期値判定部）。
【００６８】
ここで、ページメモリＸ２内に更新されたデータを含まれている場合に、通信部１０７が、更新されたデータ値である更新データを抽出すると共に、この更新データが格納されているメモリアドレスを示す更新アドレスを取得する（ステップＳ１０５’）。
【００６９】
次いで、通信部２０７がページメモリＸ２における更新データ、およびその更新アドレスを、ネットワーク回線１０２を介してメモリ管理用計算機５０に対して送信する（ステップＳ１０６’：差分である更新データをＷｒｉｔｅｂａｃｋ）。
【００７０】
次いで、メモリ管理用計算機５０のメモリ管理部３１は、計算機１０１（１，２）それぞれから送り込まれた更新データおよび更新アドレスを受信し、更新アドレスに対応するページメモリＸ０のキャッシュ（初期値）を、上記更新アドレスに書き換える管理用キャッシュ更新処理を行う（ステップＳ１０７）。
【００７１】
尚、図２では、計算機１０１（２）からの更新データ（および更新アドレス）がメモリ管理部３１に送り込まれ、その後、計算機１０１（１）からの更新データ（および更新アドレス）がメモリ管理部３１に送り込まれている。
【００７２】
このとき、メモリ管理部３１は、先に送り込まれた更新データによりページメモリＸ０のキャッシュを更新し、次いで、送り込まれた更新データによりページメモリＸ０のキャッシュの更新を行なっている。
【００７３】
ここで、メモリ管理部３１は、ページメモリＸ０における対応する同一の更新アドレスのキャッシュが更新されている場合には、更新データがメモリ管理部３１に送付された順にページメモリＸ０のキャッシュの更新を行うものとする。
【００７４】
尚、本実施形態では、各計算機１０１（１、２）のページメモリＸ１，２に、更新データとしての値０が書き込まれた場合でも、書き込まれた値０は、初期値０に等しいため更新データとしては送信されないものとする。
【００７５】
また、プロセッサ部１０４（２０４）が、ローカルのページメモリＸ１（２）におけるキャッシュについて、初期値（ここでは「０」）に等しいか否か（つまり、データ更新が行われているか否か）の判定を行わず、通信部１０７（２０７）が更新されたデータ値を含むページメモリＸ１（２）のデータと各データのメモリアドレスとを取得し、更新データとしてメモリ管理用計算機５０に対して送信する設定であってもよい。
【００７６】
この場合、メモリ管理用計算機５０のメモリ管理部３１は、計算機１０１それぞれから送り込まれた更新データに初期値（例えば「０」）が含まれているか否かを調べ、この初期値および初期値のメモリアドレスを除外し、送り込まれた他の更新データに基づいて、管理用メモリ３０の対応するページメモリＸ０のキャッシュ（初期値）を書き換える。
【００７７】
以上のように、本実施形態では、各計算機１０１（１，２）において、Ｍｕｎｉｎシステム（図３）に比して、ページメモリＸ１、Ｘ２でデータ複製を行う必要がないため、各計算機上におけるメモリ使用量を有効に軽減することができる。
【００７８】
また、本実施形態における各計算機では、メモリ管理部３１からページメモリの初期値を読み込む必要もないため、ページメモリの初期化時におけるネットワーク通信量（トラフィック）を有効に抑制することができ、このため、通信部１０７、ネットワーク回線における通信負荷やプロセッサにおける処理負荷を軽減することが可能となる。
【００７９】
このため、本実施形態では、異なるノード（計算機）内に設定された共有メモリ上に、複製データ格納用の冗長なメモリ領域を必要とすることなく、更には、共有メモリの初期化時に異なるノードそれぞれに対して初期値を送信する必要がないため、ノード間のネットワークにおける通信トラフィックを有効に軽減することができる。
【００８０】
更には、各ノードにおけるプロセッサの処理負荷を抑制することができるため、各ノード上におけるプログラム実行性能の低下を抑制し、異なるノード間における通信を有効に高速化することが可能となる。
【００８１】
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記の実施形態の一部又は全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００８２】
（付記１）
自己が保持する固有メモリに格納された格納データ値を更新する計算ノードと、前記計算ノードのメモリに対応したメモリ領域を含んだ共有メモリを管理するメモリ管理装置とを備えた分散共有メモリ管理システムであって、
前記計算ノードは、
前記格納データ値の更新を行うのに先立ち前記固有メモリの格納データ値を予め設定された共通初期値に初期化する初期化手段と、
前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定すると共に、前記共通初期値と異なる値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知する更新データ通知手段とを備え、
前記メモリ管理装置は、
前記共有メモリに格納されたデータを前記共通初期値で初期化する共有メモリ初期化部と、
前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新部とを備えたことを特徴とする分散共通メモリ管理システム。
【００８３】
（付記２）
付記１に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置の前記共有メモリデータ更新部は、
異なる計算ノードそれぞれから前記更新データが送り込まれた場合に、前記更新データの取得順に前記共有メモリにおける前記各更新データに対応するアドレスのデータを更新することを特徴とする時系列更新手段を備えたことを特徴とする分散共通メモリ管理システム。
【００８４】
（付記３）
付記１に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置は、前記共有メモリお初期化を行う際に前記各計算ノードに対して前記共通初期値を通知する初期値通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【００８５】
（付記４）
付記１に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリにおける前記更新値および共通初期値を前記更新データとして送信する固有メモリデータ送信機能を備え
前記メモリ管理装置は、
前記各計算ノードから前記共通初期値を含む前記固有メモリの更新データが送り込まれた場合に前記講師データから前記共通初期値と異なる更新値を抽出すると共に、前記共有メモリにおける前記更新値のアドレスに対応したアドレスの値を前記更新値へと更新する抽出更新機能を備えたことを特徴とする分散共通メモリ管理システム。
【００８６】
（付記５）
付記１に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリ上で同値が格納された連続するアドレスを同値メモリ領域として設定し、前記同値メモリ領域を含む前記更新データを前記メモリ管理装置に送信する連続メモリ送信手段を備えたことを特徴とする分散共通メモリ管理システム。
【００８７】
（付記６）
付記１に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記更新値が格納された格納アドレスを結合して更新データブロックを生成し、当該更新データブロックを前記更新データとして前記共通メモリデータ更新装置に通知する更新データブロック通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【００８８】
（付記７）
自己が保持する固有メモリに格納された格納データ値を更新する計算処理を行う計算ノードと、前記固有メモリに対応したメモリ領域を含む共有メモリを有する共有メモリ管理装置とを備え、前記共有メモリに格納されたデータを管理する分散共通メモリ管理方法であって、
前記共有メモリ管理装置が、前記共有メモリに格納されたデータを共通初期値で初期化し、
前記計算ノードが、前記固有メモリのデータ値を前記共通初期値に初期化し、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定し、前記共通初期値との差分がある場合に当該差分値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知し、
前記メモリ管理装置が、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新することを特徴とした分散共通メモリ管理方法。
【００８９】
（付記８）
自己の固有メモリに格納されたデータ値を更新し、当該更新された値が予め設定された共通初期値と異なる場合に前記更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、前記計算ノードの固有メモリに対応した共有メモリを有するメモリ管理装置とを備えた分散共有メモリ管理システムにあって、前記共有メモリのデータを管理するための分散共有メモリ管理プログラムであって、
前記共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、
前記計算ノードから前記更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能と、
を前記メモリ管理装置のコンピュータにより実現することを特徴とする分散共通メモリ管理プログラム。
【産業上の利用可能性】
【００９０】
本発明は、異なるノード上に設定された分散共有メモリを利用するネットワーク計算機システムに対して有効に適用することが可能である。
【符号の説明】
【００９１】
１０  ネットワーク計算機システム
３０  管理用メモリ
３１  メモリ管理部
５０  メモリ管理用計算機
１０１  計算機
１０２  ネットワーク回線
１０３  システム・バス
１０４  プロセッサ部
１０５  補助記憶装置
１０６  メインメモリ部
１０７  通信部
【図１】
2013011971.tif 000003
【図２】
2013011971.tif 000004
【図３】
2013011971.tif 000005