説明

分散共有メモリ管理システム、分散共有メモリ管理方法、および分散共有メモリ管理プログラム

【課題】メモリを共有する異なるノードにおけるメモリ資源・通信資源の使用効率を高める。
【解決手段】固有メモリに格納されたデータ値を更新し、更新された値が予め設定された共通初期値と異なる場合に更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、計算ノードから更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能を有するメモリ管理装置を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、相互に接続された計算機ノード上のメモリ資源を共有メモリとして管理する分散共有メモリ管理システムに関する。
【背景技術】
【0002】
複数の計算機ノードが相互に接続されたネットワーク計算機システムにおいて、各計算機ノード上に設けられたメモリ資源をあたかも論理的に共有された、単一のメモリ資源のように扱うことにより、複数の計算機ノードにまたがる並列プログラムの実行等を可能とする分散共有メモリシステムが利用されている。
【0003】
分散共有メモリシステムでは、共有されたメモリ上に格納された格納データを複数のマシン間で同一に保つ制御処理(一貫性制御処理)が行われるが、この場合、各ノード上のプロセッサが共有メモリを書き換えた結果を、共有メモリ上のデータを管理する他の計算機ノードに対して転送する必要がある。
【0004】
しかしながら、一般的な分散共有メモリシステムにおける、一貫性制御処理の実行時に、計算機ノード間における通信トラフィックが膨大となり、各計算機ノードにおいても通信処理負担が増大してしまう、といった不都合があった。
【0005】
この関連技術として、共有された異なる計算機ノード上のメモリ領域の一貫性保証に要する通信や制御の負荷を少なくするために、各メモリ領域に必要な一貫性制御のタイプと一貫性制御の開始タイミングと終了タイミングをプログラムから明示的に指定できるようにし、これらを適切に使い分ける方式が用いるシステム(Muninシステム)が開示されている(非特許文献1)。
【0006】
Muninシステムの一貫性制御タイプの例としては、読み出しのみ許容するRead−Onlyタイプ、1つの計算機が書き込みを行い他の複数の計算機が同時に読み出すProducer−Consumerタイプ、複数計算機による同時書き込みを許容するWrite−Sharedタイプがある。
【0007】
上記Read−Onlyタイプの一貫性制御では、一貫性制御に要する通信や処理の少ないタイプを優先的に使うプログラムは効率良く実行できる。
また、Write−Sharedタイプの一貫性制御では、当該共有メモリ領域への複数の計算機への書き込みを許容する。ただし、同一アドレスへの書き込みは、複数の計算機からは行われない(フォールスシェアリング)ものとし、他の計算機から書き込まれた結果は一貫性制御の時間区間内で参照されない制約をプログラムに課している。
【0008】
このため、各計算機が共有メモリ領域に書き込んだデータを他の計算機に反映処理は一貫性制御の終了時にまとめて行えばよく、Muninシステムではページメモリ単位でこの更新処理を行っている。
【0009】
また、Muninシステムでは、共有メモリにおけるデータの更新については、共有メモリを管理する管理部と各計算機からの更新データを管理部に送信する更新データ送信部とにより行われ、その際、更新データ送信部は更新後のデータだけでなく共有メモリ領域内のどのアドレスに書き込みを行ったかを管理部に伝送する必要がある。その書き込みアドレスの検出にTwining (複製)と呼ばれる技術が使われている。
【0010】
複製によるWrite−Shared一貫性制御処理の動作では、図3に示すように、Muninにおけるメモリの分散共有は、CPUによる仮想物理アドレス変換の管理単位である、ページメモリ単位で行われている。
この例では、ある共有メモリ領域Sに対してWrite−Sharedタイプの一貫性制御が指示されていて、ページメモリXはメモリ領域Sに含まれるとする。
【0011】
ここでは、簡単のため1ページに8個の整数データが格納できるものとし、一貫性制御区間に入る前にデータ(0,1,2,3,0,1,2,3)が格納されている。また、このシステムでは、計算機1、2を備えておりこれらが同時に動作しページメモリXを更新している。
また、計算機1は、ページメモリXが必要になるとメモリ管理部にページメモリXのデータを要求する。すると、メモリ管理部はページXの初期データを計算機1に送信する。
【0012】
次いで、計算機1はこれを受け取り、計算機1のローカルのページメモリにこれを置き、さらに、同じサイズのメモリ領域を確保しページメモリXの複製を作成する。
ここで、計算機1はプログラム実行を開始し、適当なタイミングで書き戻しを行う際に複製データと比較を行い、値が異なるアドレスのデータを更新値として管理部に送信する。
【0013】
尚、以上の計算機1における機能動作は計算機2においても同様に実行されるものとする。
最後に、メモリ管理部が、計算機1、計算機2から送られた更新データと更新アドレスを元に、ページメモリXのデータを更新する。
これにより、ページメモリX上に、共有されたメモリ上における更新データが格納され、複数のノード間における共有メモリのデータが同一に保たれる一貫性制御処理が実現される。
【先行技術文献】
【非特許文献】
【0014】
【非特許文献1】John B. Carter, John K. Bennett, and Willy Zwaenepoel, "Implementation and Performance of Munin, " 1991
【発明の概要】
【発明が解決しようとする課題】
【0015】
しかしながら、上記非特許文献1であるMuninシステムでは、共有メモリの複製を格納する冗長なメモリ領域が必要であり、またページメモリの初期値を送る通信が発生する。これはシステムによるプログラム実行性能を低下させるといった不都合がある。
【0016】
[発明の目的]
本発明は、上記関連技術の有する不都合を改善し、メモリ資源を共有する異なる計算機ノード間で行われるデータ通信量を有効に軽減し得る分散共有メモリ管理システム、分散共有メモリ管理方法、および分散共有メモリ管理プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【0017】
上記目的を達成するために、本発明に係る分散共有メモリ管理システムは、自己が保持する固有メモリに格納された格納データ値を更新する計算ノードと、前記計算ノードのメモリに対応したメモリ領域を含んだ共有メモリを管理するメモリ管理装置とを備えた分散共有メモリ管理システムであって、前記計算ノードは、前記格納データ値の更新を行うのに先立ち前記固有メモリの格納データ値を予め設定された共通初期値に初期化する初期化手段と、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定すると共に、前記共通初期値と異なる値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知する更新データ通知手段とを備え、前記メモリ管理装置は、前記共有メモリに格納されたデータを前記共通初期値で初期化する共有メモリ初期化部と、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新部とを備えた構成をとっている。
【0018】
また、本発明にかかる分散共有メモリ管理方法は、自己が保持する固有メモリに格納された格納データ値を更新する計算処理を行う計算ノードと、前記固有メモリに対応したメモリ領域を含む共有メモリを有する共有メモリ管理装置とを備え、前記共有メモリに格納されたデータを管理する分散共通メモリ管理方法であって、前記共有メモリ管理装置が、前記共有メモリに格納されたデータを共通初期値で初期化し、前記計算ノードが、前記固有メモリのデータ値を前記共通初期値に初期化し、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定し、前記共通初期値との差分がある場合に当該差分値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知し、前記メモリ管理装置が、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新するようにしたことを特徴としている。
【0019】
また、本発明にかかる分散共有メモリ管理プログラムは、自己の固有メモリに格納されたデータ値を更新し、当該更新された値が予め設定された共通初期値と異なる場合に前記更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、前記計算ノードの固有メモリに対応した共有メモリを有するメモリ管理装置とを備えた分散共有メモリ管理システムにあって、前記共有メモリのデータを管理するための分散共有メモリ管理プログラムであって、前記共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、前記計算ノードから前記更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能と、を前記メモリ管理装置のコンピュータに実現させることを特徴としている。
【発明の効果】
【0020】
本発明は、以上のように構成され機能するので、これによると、異なるノード上に設定された共有メモリ内におけるデータの一貫性を保ちつつノード間通信を有効に軽減し得る分散共有メモリ管理システム、分散共有メモリ管理方法、分散共有メモリ管理プログラムを提供することができる。
【図面の簡単な説明】
【0021】
【図1】本発明による分散共有メモリ管理システムにおける一実施形態を示す概略ブロック図である。
【図2】図1に開示した分散共有メモリ管理システムの全体的な動作処理ステップを示すシーケンスチャートである。
【図3】関連技術としての分散共有メモリ管理システムの全体的な動作処理ステップを示すシーケンスチャートである。
【発明を実施するための形態】
【0022】
[実施形態]
次に、本発明の実施形態について、その基本的構成内容を説明する。
【0023】
本実施形態である分散共有メモリ管理システムは、データ通信用のネットワーク回線102により相互に接続された、異なる(n+1)台の計算機からなるネットワーク計算機システム10であって、このネットワーク計算機システム10は、上記(n+1)台の計算機として、データ読み書き用に利用する局所メモリ(固有メモリ)を有しネットワーク回線102を介して相互に接続されたn台の計算機101(1〜n)と、ネットワーク回線102を介して接続され上記計算機101(1〜n)それぞれが有する局所メモリ(固有メモリ)やキャッシュメモリ上に設定された特定のメモリ領域を共有メモリとして管理するメモリ管理用計算機50を備えた構成を有する。
【0024】
計算機101(1〜n)はそれぞれプロセッサ、メインメモリ、補助記憶装置を有する通常のコンピュータであるものとする。
また、計算機101(1〜n)それぞれが備えた局所メモリ(後述するメインメモリ106)にはそれぞれが独立した記憶アドレスが設定されているものとする。
【0025】
これにより、メモリ管理用計算機50はこの記憶アドレスに基づき各局所メモリ上に分散格納されたデータが論理的に共有されるように管理することが可能となる。
【0026】
尚、計算機101(1〜n)は、図1に示すように、それぞれ同一の内部構成を有するものとする。
このため、以下においては、計算機101(1〜n)のうちの計算機101(1)について説明するが、その他の計算機101(2〜n)も同様の内部構成、および動作機能を備えているものとする。
【0027】
計算機101(1)は、図1に示すように、予め設定された応用プログラムなどを記憶保持する補助記憶装置105と、管理用メモリ30に対応したメモリアドレス(ページメモリX)を有するメインメモリ部106と、補助記憶装置105から読み出したプログラムの実行処理を行うプロセッサ部104と、ネットワーク102を介して他の計算機とのデータ通信を行う通信部107を有する。
通信部107は、USBやイーサポートなどのネットワークインタフェースを備えており、このネットワークインタフェースを介してネットワーク回線102に接続されている。
【0028】
尚、補助記憶装置105は、例えばHDD(ハードディスクドライブ)などのデータ記憶装置であって、プロセッサ部104による実行処理対象であるデータやプログラムが予め記憶されているものとする。また、これらデータおよびプログラムはシステム・バス103を介してメインメモリ部106やプロセッサ部104内に予め設置されたキャッシュメモリに送り込まれる。
【0029】
計算機101のプロセッサ部104は、ローカルメモリであるメインメモリ106上のページメモリXに格納されたデータ(キャッシュ)を初期値0に初期化するページメモリ初期化機能と、ページメモリXのキャッシュを利用したプログラム処理を実行するプログラム実行処理機能を有する。
このプログラム実行処理機能の実行により、図2に示すように、ページメモリXにおけるキャッシュ(初期値)の一部が書き換えられるものとする。
【0030】
また、プロセッサ部104は、ローカルメモリにおけるページメモリXにおけるキャッシュについて、初期値(ここでは「0」)に等しいか否か(つまり、データ更新が行われているか否か)の判定を行う初期値判定手段を有する。
尚、プロセッサ部104は、ページメモリXにおけるキャッシュについて、初期値に等しいか否かを判定する処理を定期的に実行する設定であってもよい。
【0031】
また、プロセッサ部104(204)は、ローカルのページメモリX1(2)におけるキャッシュについて、初期値(ここでは「0」)に等しいか否か(つまり、データ更新が行われているか否か)の判定を行わず、通信部107(207)が更新されたデータ値を含むページメモリX1(2)のデータと各データのメモリアドレスとを取得し、更新データとしてメモリ管理用計算機50に対して送信する設定であってもよい。
【0032】
この場合、メモリ管理用計算機50のメモリ管理部31は、計算機101それぞれから送り込まれた更新データに初期値(例えば「0」)が含まれているか否かを調べ、この初期値および初期値のメモリアドレスを除外し、送り込まれた他の更新データに基づいて、管理用メモリ30の対応するページメモリXのキャッシュ(初期値)を書き換える。
【0033】
メインメモリ部106は、管理用メモリ30に設定された共有メモリ領域としてのページメモリXに対応するページメモリXが設定された半導体メモリ装置であって、当該メインメモリ部106上に格納されたデータは、プロセッサ部104による処理対象であり、当該処理により更新されるものとする。
【0034】
尚、プロセッサ部104、通信部107における処理機能は、補助記憶装置105内に予め設定されたプログラムが実行されることにより、実現されるものとする。
【0035】
通信部107は、共有メモリ上の更新データ、および更新データのメモリアドレスである更新アドレスを、システム・バス103を介して取得し、ネットワーク102を介してメモリ管理用計算機50に対して送信する処理を行う(更新データ送信機能)。
【0036】
また、通信部107は、例えば同一のキャッシュ(更新データ)が格納されたページメモリ内の連続するメモリアドレスを一組の連続アドレスブロックを設定し、この連続アドレスブロックのアドレス範囲と更新データをメモリ管理用計算機50に対して送信するアドレスブロック送信機能を備えている。
【0037】
通信部107は、初期値判定手段による判定結果として、ページメモリX内に更新されたデータ、つまり、初期化値とは異なるデータが含まれている場合に、更新されたデータ値である更新データを抽出し、この更新データが格納されているメモリアドレスを示す更新アドレスを取得する更新データ取得機能を有する。
【0038】
また、通信部107は、ページメモリXにおける更新データ、およびその更新アドレスを、ネットワーク回線102を介してメモリ管理用計算機50に対して送信する。
【0039】
メモリ管理用計算機50は、各計算機101(1〜n)内に設置された固有メモリ(局所メモリ)のメモリアドレスに対応した管理用メモリ30と、管理用メモリ30上のデータを各計算機101(1〜n-1)から送り込まれたメモリデータ(更新データ)に基づき更新するメモリ管理部31を備えた構成を有する。
【0040】
管理用メモリ30は、各計算機101(1〜n-1)内に設定された共有メモリのメモリアドレスに対応したページメモリXを有するものとする。
【0041】
これにより、計算機1における共有メモリ上のアドレス(ページX)と、メモリ管理用計算機50における管理用メモリ30上のアドレス(ページX)とが対応するので、例えば、計算機101(1)上の共有メモリ(分散共有されたメモリ領域)に対してデータ書込みがあった場合には、書込まれたデータ(更新データ)、およびそのデータのメモリ上のアドレス(更新アドレス)がメモリ管理用計算機50に通知され、これにより、管理用メモリ30上のメモリアドレスにも書込みが行われる。このため、共有メモリにおけるデータの一貫性が保証される。
【0042】
メモリ管理部31は、ページメモリXに初期値0を書き込む(ページメモリ初期化機能を有する。これにより、管理用メモリ30内における書込み範囲であるページメモリXのキャッシュが値「0」に初期化される。
【0043】
尚、メモリ管理部31はページメモリXを初期化した後、計算機101(例えば、1,2)それぞれに対して、対応するページメモリにおけるキャッシュの0初期化を要求する初期化要求を送信し、計算機101(1,2)はそれぞれこの初期化要求に応じてページメモリのキャッシュを初期化する設定であってもよい。
【0044】
尚、ページメモリのキャッシュを初期化する値は0以外の値であってもよい。ただし、管理用メモリ30のページメモリXにおける初期化値と各計算機101(1,2)におけるページメモリX、Xにおける初期化値とはそれぞれ同値であるものとする。
【0045】
メモリ管理部31は、計算機101それぞれから送り込まれた更新データおよび更新アドレスを受信し、更新アドレスに対応するページメモリXのキャッシュ(初期値)を、上記更新アドレスに書き換える管理用キャッシュ更新機能を備えている。
【0046】
尚、上述のように、計算機101(2)も計算機101(1)と同様の内部構成を有しており、計算機101(2)のプロセッサ部204は、計算機101(1)のプロセッサ部104と同様に、ローカルメモリであるメインメモリ206(106に対応)上のページメモリX(Xに対応)に格納されたデータ(キャッシュ)を0初期化するページメモリ初期化機能を備えた構成を有する。
【0047】
また、プロセッサ部204がページメモリXのキャッシュを利用したプログラム処理を実行し、図2に示すように、ページメモリXにおけるキャッシュ(初期値)の一部が更新されるものとする。
【0048】
更に、プロセッサ部204は、ローカルのページメモリXにおけるキャッシュについて、初期値(ここでは「0」)に等しいか否か(つまり、データ更新が行われているか否か)の判定を行う(初期値判定部)。
【0049】
計算機101(2)の通信部207(通信部107に対応)は、ページメモリX内に更新されたデータを含まれている場合に、更新されたデータ値である更新データを抽出すると共に、この更新データが格納されているメモリアドレスを示す更新アドレスを取得し、ページメモリXにおける更新データ、およびその更新アドレスを、ネットワーク回線102を介してメモリ管理用計算機50に対して送信する機能を有する。
【0050】
ここで、メモリ管理部31は、例えば、異なる複数の計算機101から更新データ(および更新アドレス)が送り込まれた場合には、先に送り込まれた更新データによりページメモリXのキャッシュを更新し、次いで、送り込まれた更新データによりページメモリXのキャッシュの更新を行なうものとする。
【0051】
尚、メモリ管理部31は、ページメモリXにおける対応する同一の更新アドレスのキャッシュが更新されている場合には、更新データがメモリ管理部31に送付された順にページメモリXのキャッシュの更新を行うものとする。
【0052】
以上のように、本実施形態では、各計算機101(1,2)において、ローカルメモリ上でデータ複製を行う必要がないため、各計算機上におけるメモリ使用量を有効に軽減することができる。
【0053】
また、本実施形態における各計算機では、メモリ管理部31からページメモリの初期値を読み込む必要がないため、ページメモリの初期化時におけるネットワーク通信量(トラフィック)を有効に抑制することができ、このため、通信部107、ネットワーク回線における通信負荷やプロセッサにおける処理負荷を軽減することが可能となる。
【0054】
[実施形態の動作説明]
次に、上記実施形態の動作について、その概略を説明する。
メモリ管理装置50のメモリ管理部31が、共有メモリ30に格納されたデータを共通初期値で初期化する(共有メモリ初期化工程)。
次いで、計算機(計算ノード)101が、固有メモリのデータ値を共通初期値に初期化し(固有メモリ初期化工程)、固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定する(差分判定工程)。
共通初期値との差分がある場合に当該差分値である更新値と、この更新値の前記固有メモリにおけるアドレスとを更新データとしてメモリ管理装置50に通知する(更新データ送信工程)。
メモリ管理部31が、計算機101から送り込まれた更新データに基づき、共有メモリにおける対応するアドレスのデータを前記更新値へと更新する(共有メモリ更新工程)。
【0055】
ここで、上記共有メモリ初期化工程、固有メモリ初期化工程、差分判定工程、更新データ送信工程、および共有メモリ更新工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
【0056】
また、本プログラムは、非一時的な記憶媒体、例えば、DVD、CD、フラッシュメモリなどに記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
【0057】
次に、本実施形態である分散共有メモリ管理システムの動作について、図1に基づき具体的に説明する。
【0058】
まず、メモリ管理部31が、ページメモリXに初期値0を書き込む(ステップS101)。これにより、書込み範囲(ページメモリX)が値0に初期化される。
【0059】
次いで、計算機1のプロセッサ部104が、ローカルメモリであるメインメモリ106上のページメモリXに格納されたデータ(キャッシュ)を初期値0に書き変える(以下「0初期化」という)。また、計算機101(2)のプロセッサ部204も、同様に、ローカルメモリであるメインメモリ206上のページメモリXに格納されたデータ(キャッシュ)を0初期化する(ステップS102)。
【0060】
尚、メモリ管理部31はページメモリXを0初期化した後、計算機101(1,2)それぞれに対して、対応するページメモリにおけるキャッシュの0初期化を要求する初期化要求を送信し、計算機101(1,2)はそれぞれこの初期化要求に応じてページメモリのキャッシュを初期化する設定であってもよい。
【0061】
尚、ページメモリのキャッシュを初期値する値は0以外の値であってもよい。ただし、管理用メモリ30のページメモリXにおける初期化値と各計算機101(1,2)におけるページメモリX、Xはそれぞれ同値で初期化されるものとする。
【0062】
ここで、計算機101(1)のプロセッサ部104は、ページメモリXのキャッシュを利用したプログラム処理を実行する(ステップS103)。
これにより、図2に示すように、ページメモリXにおけるキャッシュ(初期値)の一部が書き換えられる(更新される)。
【0063】
次いで、プロセッサ部104は、ローカルのページメモリXにおけるキャッシュについて、初期値(ここでは「0」)に等しいか否か(つまり、データ更新が行われているか否か)の判定を行う(ステップS104:初期値判定部)。
【0064】
ここで、ページメモリX1内に更新されたデータを含まれている場合に、通信部107が、更新されたデータ値である更新データを抽出すると共に、この更新データが格納されているメモリアドレスを示す更新アドレスを取得する(ステップS105)。
【0065】
次いで、通信部107は、ページメモリXにおける更新データ、およびその更新アドレスを、ネットワーク回線102を介してメモリ管理用計算機50に対して送信する(ステップS106:差分である更新データをWriteback)。
【0066】
一方、計算機101(2)においても計算機101(1)と同様に、プロセッサ部204がページメモリXのキャッシュを利用したプログラム処理を実行し(ステップS103’)、図2に示すように、ページメモリXにおけるキャッシュ(初期値)の一部が書き換えられる(更新される)。
【0067】
次に、プロセッサ部204はローカルのページメモリXにおけるキャッシュについて、初期値(ここでは「0」)に等しいか否か(つまり、データ更新が行われているか否か)の判定を行う(ステップS104’:初期値判定部)。
【0068】
ここで、ページメモリX内に更新されたデータを含まれている場合に、通信部107が、更新されたデータ値である更新データを抽出すると共に、この更新データが格納されているメモリアドレスを示す更新アドレスを取得する(ステップS105’)。
【0069】
次いで、通信部207がページメモリXにおける更新データ、およびその更新アドレスを、ネットワーク回線102を介してメモリ管理用計算機50に対して送信する(ステップS106’:差分である更新データをWriteback)。
【0070】
次いで、メモリ管理用計算機50のメモリ管理部31は、計算機101(1,2)それぞれから送り込まれた更新データおよび更新アドレスを受信し、更新アドレスに対応するページメモリXのキャッシュ(初期値)を、上記更新アドレスに書き換える管理用キャッシュ更新処理を行う(ステップS107)。
【0071】
尚、図2では、計算機101(2)からの更新データ(および更新アドレス)がメモリ管理部31に送り込まれ、その後、計算機101(1)からの更新データ(および更新アドレス)がメモリ管理部31に送り込まれている。
【0072】
このとき、メモリ管理部31は、先に送り込まれた更新データによりページメモリXのキャッシュを更新し、次いで、送り込まれた更新データによりページメモリXのキャッシュの更新を行なっている。
【0073】
ここで、メモリ管理部31は、ページメモリXにおける対応する同一の更新アドレスのキャッシュが更新されている場合には、更新データがメモリ管理部31に送付された順にページメモリXのキャッシュの更新を行うものとする。
【0074】
尚、本実施形態では、各計算機101(1、2)のページメモリX1,2に、更新データとしての値0が書き込まれた場合でも、書き込まれた値0は、初期値0に等しいため更新データとしては送信されないものとする。
【0075】
また、プロセッサ部104(204)が、ローカルのページメモリX1(2)におけるキャッシュについて、初期値(ここでは「0」)に等しいか否か(つまり、データ更新が行われているか否か)の判定を行わず、通信部107(207)が更新されたデータ値を含むページメモリX1(2)のデータと各データのメモリアドレスとを取得し、更新データとしてメモリ管理用計算機50に対して送信する設定であってもよい。
【0076】
この場合、メモリ管理用計算機50のメモリ管理部31は、計算機101それぞれから送り込まれた更新データに初期値(例えば「0」)が含まれているか否かを調べ、この初期値および初期値のメモリアドレスを除外し、送り込まれた他の更新データに基づいて、管理用メモリ30の対応するページメモリXのキャッシュ(初期値)を書き換える。
【0077】
以上のように、本実施形態では、各計算機101(1,2)において、Muninシステム(図3)に比して、ページメモリX、Xでデータ複製を行う必要がないため、各計算機上におけるメモリ使用量を有効に軽減することができる。
【0078】
また、本実施形態における各計算機では、メモリ管理部31からページメモリの初期値を読み込む必要もないため、ページメモリの初期化時におけるネットワーク通信量(トラフィック)を有効に抑制することができ、このため、通信部107、ネットワーク回線における通信負荷やプロセッサにおける処理負荷を軽減することが可能となる。
【0079】
このため、本実施形態では、異なるノード(計算機)内に設定された共有メモリ上に、複製データ格納用の冗長なメモリ領域を必要とすることなく、更には、共有メモリの初期化時に異なるノードそれぞれに対して初期値を送信する必要がないため、ノード間のネットワークにおける通信トラフィックを有効に軽減することができる。
【0080】
更には、各ノードにおけるプロセッサの処理負荷を抑制することができるため、各ノード上におけるプログラム実行性能の低下を抑制し、異なるノード間における通信を有効に高速化することが可能となる。
【0081】
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記の実施形態の一部又は全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【0082】
(付記1)
自己が保持する固有メモリに格納された格納データ値を更新する計算ノードと、前記計算ノードのメモリに対応したメモリ領域を含んだ共有メモリを管理するメモリ管理装置とを備えた分散共有メモリ管理システムであって、
前記計算ノードは、
前記格納データ値の更新を行うのに先立ち前記固有メモリの格納データ値を予め設定された共通初期値に初期化する初期化手段と、
前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定すると共に、前記共通初期値と異なる値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知する更新データ通知手段とを備え、
前記メモリ管理装置は、
前記共有メモリに格納されたデータを前記共通初期値で初期化する共有メモリ初期化部と、
前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新部とを備えたことを特徴とする分散共通メモリ管理システム。
【0083】
(付記2)
付記1に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置の前記共有メモリデータ更新部は、
異なる計算ノードそれぞれから前記更新データが送り込まれた場合に、前記更新データの取得順に前記共有メモリにおける前記各更新データに対応するアドレスのデータを更新することを特徴とする時系列更新手段を備えたことを特徴とする分散共通メモリ管理システム。
【0084】
(付記3)
付記1に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置は、前記共有メモリお初期化を行う際に前記各計算ノードに対して前記共通初期値を通知する初期値通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【0085】
(付記4)
付記1に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリにおける前記更新値および共通初期値を前記更新データとして送信する固有メモリデータ送信機能を備え
前記メモリ管理装置は、
前記各計算ノードから前記共通初期値を含む前記固有メモリの更新データが送り込まれた場合に前記講師データから前記共通初期値と異なる更新値を抽出すると共に、前記共有メモリにおける前記更新値のアドレスに対応したアドレスの値を前記更新値へと更新する抽出更新機能を備えたことを特徴とする分散共通メモリ管理システム。
【0086】
(付記5)
付記1に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリ上で同値が格納された連続するアドレスを同値メモリ領域として設定し、前記同値メモリ領域を含む前記更新データを前記メモリ管理装置に送信する連続メモリ送信手段を備えたことを特徴とする分散共通メモリ管理システム。
【0087】
(付記6)
付記1に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記更新値が格納された格納アドレスを結合して更新データブロックを生成し、当該更新データブロックを前記更新データとして前記共通メモリデータ更新装置に通知する更新データブロック通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【0088】
(付記7)
自己が保持する固有メモリに格納された格納データ値を更新する計算処理を行う計算ノードと、前記固有メモリに対応したメモリ領域を含む共有メモリを有する共有メモリ管理装置とを備え、前記共有メモリに格納されたデータを管理する分散共通メモリ管理方法であって、
前記共有メモリ管理装置が、前記共有メモリに格納されたデータを共通初期値で初期化し、
前記計算ノードが、前記固有メモリのデータ値を前記共通初期値に初期化し、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定し、前記共通初期値との差分がある場合に当該差分値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知し、
前記メモリ管理装置が、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新することを特徴とした分散共通メモリ管理方法。
【0089】
(付記8)
自己の固有メモリに格納されたデータ値を更新し、当該更新された値が予め設定された共通初期値と異なる場合に前記更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、前記計算ノードの固有メモリに対応した共有メモリを有するメモリ管理装置とを備えた分散共有メモリ管理システムにあって、前記共有メモリのデータを管理するための分散共有メモリ管理プログラムであって、
前記共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、
前記計算ノードから前記更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能と、
を前記メモリ管理装置のコンピュータにより実現することを特徴とする分散共通メモリ管理プログラム。
【産業上の利用可能性】
【0090】
本発明は、異なるノード上に設定された分散共有メモリを利用するネットワーク計算機システムに対して有効に適用することが可能である。
【符号の説明】
【0091】
10 ネットワーク計算機システム
30 管理用メモリ
31 メモリ管理部
50 メモリ管理用計算機
101 計算機
102 ネットワーク回線
103 システム・バス
104 プロセッサ部
105 補助記憶装置
106 メインメモリ部
107 通信部

【特許請求の範囲】
【請求項1】
自己が保持する固有メモリに格納された格納データ値を更新する計算ノードと、前記計算ノードのメモリに対応したメモリ領域を含んだ共有メモリを管理するメモリ管理装置とを備えた分散共有メモリ管理システムであって、
前記計算ノードは、
前記格納データ値の更新を行うのに先立ち前記固有メモリの格納データ値を予め設定された共通初期値に初期化する初期化手段と、
前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定すると共に、前記共通初期値と異なる値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知する更新データ通知手段とを備え、
前記メモリ管理装置は、
前記共有メモリに格納されたデータを前記共通初期値で初期化する共有メモリ初期化部と、
前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新部とを備えたことを特徴とする分散共通メモリ管理システム。
【請求項2】
請求項1に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置の前記共有メモリデータ更新部は、
異なる計算ノードそれぞれから前記更新データが送り込まれた場合に、前記更新データの取得順に前記共有メモリにおける前記各更新データに対応するアドレスのデータを更新することを特徴とする時系列更新手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項3】
請求項1に記載の分散共通メモリ管理システムにおいて、
前記メモリ管理装置は、前記共有メモリお初期化を行う際に前記各計算ノードに対して前記共通初期値を通知する初期値通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項4】
請求項1に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリにおける前記更新値および共通初期値を前記更新データとして送信する固有メモリデータ送信機能を備え
前記メモリ管理装置は、
前記各計算ノードから前記共通初期値を含む前記固有メモリの更新データが送り込まれた場合に前記講師データから前記共通初期値と異なる更新値を抽出すると共に、前記共有メモリにおける前記更新値のアドレスに対応したアドレスの値を前記更新値へと更新する抽出更新機能を備えたことを特徴とする分散共通メモリ管理システム。
【請求項5】
請求項1に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記固有メモリ上で同値が格納された連続するアドレスを同値メモリ領域として設定し、前記同値メモリ領域を含む前記更新データを前記メモリ管理装置に送信する連続メモリ送信手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項6】
請求項1に記載の分散共通メモリ管理システムにおいて、
前記計算ノードは、
前記更新値が格納された格納アドレスを結合して更新データブロックを生成し、当該更新データブロックを前記更新データとして前記共通メモリデータ更新装置に通知する更新データブロック通知手段を備えたことを特徴とする分散共通メモリ管理システム。
【請求項7】
自己が保持する固有メモリに格納された格納データ値を更新する計算処理を行う計算ノードと、前記固有メモリに対応したメモリ領域を含む共有メモリを有する共有メモリ管理装置とを備え、前記共有メモリに格納されたデータを管理する分散共通メモリ管理方法であって、
前記共有メモリ管理装置が、前記共有メモリに格納されたデータを共通初期値で初期化し、
前記計算ノードが、前記固有メモリのデータ値を前記共通初期値に初期化し、前記固有メモリにおける格納データ値の前記共通初期値との差分の有無を判定し、前記共通初期値との差分がある場合に当該差分値である更新値と当該更新値の前記固有メモリにおけるアドレスとを前記更新データとして前記メモリ管理装置に通知し、
前記メモリ管理装置が、前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新することを特徴とした分散共通メモリ管理方法。
【請求項8】
自己の固有メモリに格納されたデータ値を更新し、当該更新された値が予め設定された共通初期値と異なる場合に前記更新された値と該値の固有メモリにおけるアドレスを送出する計算ノードと、前記計算ノードの固有メモリに対応した共有メモリを有するメモリ管理装置とを備えた分散共有メモリ管理システムにあって、前記共有メモリのデータを管理するための分散共有メモリ管理プログラムであって、
前記共有メモリに格納されたデータを共通初期値で初期化するデータ初期化機能と、
前記計算ノードから前記更新データが送り込まれた場合に前記更新データに基づき前記共有メモリにおける対応するアドレスのデータを前記更新値へと更新する共有メモリデータ更新機能と、
を前記メモリ管理装置のコンピュータにより実現することを特徴とする分散共通メモリ管理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate