(57)【要約】【課題】インターコネクトデータ転送のアカウント情報を採取することのできるマルチノードシステムを提供する。【解決手段】プロセス１１０に含まれるデータ転送部１１１が、そのプロセスが実行されるときインターコネクトデータ転送を行なう。プロセス１１０に含まれる転送量採取部１１２が、データ転送部１１１によるインターコネクトデータ転送で転送されるデータ量を採取する。オペレーションシステムに含まれる転送量課金部１６０が、プロセス１１０の実行が終了するとき、転送量採取部１１２によって採取されたデータ量をカーネル空間に記録する。オペレーションシステムに含まれるアカウント書き込み部１３０が、プロセス１１０の実行が終了した後、転送量課金部１６０によってカーネル空間に記録されたデータ量をアカウント情報としてアカウントファイル１４０に記録する。【選択図】図１
2008217531.tif 000002
【特許請求の範囲】
【請求項１】
マルチノードジョブに含まれる複数のプロセスをそれぞれ実行する複数のノードがノード間クロスバスイッチを介してインターコネクトデータ転送を行なうマルチノードシステムのアカウント情報を採取するアカウント情報採取装置であって、
インターコネクトデータ転送を行うノードのプロセスに含まれ、該プロセスが実行されるときインターコネクトデータ転送を行なうデータ転送部と、
前記プロセスに含まれ、前記データ転送部によるインターコネクトデータ転送で転送されるデータ量を採取する転送量採取部と、
オペレーションシステムに含まれ、前記プロセスの実行が終了するとき、転送量採取部によって採取された前記データ量をカーネル空間に記録する転送量課金部と、
前記オペレーションシステムに含まれ、前記プロセスの実行が終了した後、前記転送量課金部によってカーネル空間に記録されたデータ量を前記アカウント情報としてアカウントファイルに記録するアカウント書き込み部と、を有するアカウント情報採取装置。
【請求項２】
前記プロセスには、前記転送量採取部が前記データ量を採取するために用いる転送量記録エリアが複数設けられ、
前記転送量採取部は、採取した前記データ量を複数の転送量記録エリアに格納し、
前記転送量課金部は、前記複数の転送量記録エリアから正しいデータ量の値を選択してカーネル空間に記録する、請求項１に記載のアカウント情報採取装置。
【請求項３】
前記プロセスには、前記転送量採取部が採取した前記データ量のハッシュ値を記録するためのハッシュ記録エリアが設けられ、
前記転送量採取部は、前記データ量を記録するとき、該データ量に対するハッシュ値を算出して前記ハッシュ記録エリアに記録する、請求項１または２に記載のアカウント情報採取装置。
【請求項４】
マルチノードジョブに含まれる複数のプロセスをそれぞれ実行する複数のノードがノード間クロスバスイッチを介してインターコネクトデータ転送を行なうマルチノードシステムのアカウント情報を採取するためのアカウント情報採取方法であって、
インターコネクトデータ転送を行うノードのプロセスに含まれるデータ転送部が、該プロセスが実行されるときインターコネクトデータ転送を行ない、
前記プロセスに含まれる転送量採取部が、前記データ転送部によるインターコネクトデータ転送で転送されるデータ量を採取し、
オペレーションシステムに含まれる転送量課金部が、前記プロセスの実行が終了するとき、転送量採取部によって採取された前記データ量をカーネル空間に記録し、
前記オペレーションシステムに含まれるアカウント書き込み部が、前記プロセスの実行が終了した後、前記転送量課金部によってカーネル空間に記録されたデータ量を前記アカウント情報としてアカウントファイルに記録する、アカウント情報採取方法。
【請求項５】
前記プロセスには、前記転送量採取部が前記データ量を採取するために用いる転送量記録エリアが複数設けられ、
前記転送量採取部は、採取した前記データ量を複数の転送量記録エリアに格納し、
前記転送量課金部は、前記複数の転送量記録エリアから正しいデータ量の値を選択してカーネル空間に記録する、請求項４に記載のアカウント情報採取方法。
【請求項６】
前記プロセスには、前記転送量採取部が採取した前記データ量のハッシュ値を記録するためのハッシュ記録エリアが設けられ、
前記転送量採取部は、前記データ量を記録するとき、該データ量に対するハッシュ値を算出して前記ハッシュ記録エリアに記録する、請求項４または５に記載のアカウント情報採取方法。
【請求項７】
マルチノードジョブに含まれる複数のプロセスをそれぞれ実行する複数のノードがノード間クロスバスイッチを介してインターコネクトデータ転送を行なうマルチノードシステムのアカウント情報を採取するコンピュータに実行させるためのアカウント情報採取プログラムであって、
インターコネクトデータ転送を行うノードのプロセスに含まれるデータ転送部が、該プロセスが実行されるときインターコネクトデータ転送を行なう手順と、
前記プロセスに含まれる転送量採取部が、前記データ転送部によるインターコネクトデータ転送で転送されるデータ量を採取する手順と、
オペレーションシステムに含まれる転送量課金部が、前記プロセスの実行が終了するとき、転送量採取部によって採取された前記データ量をカーネル空間に記録する手順と、
前記オペレーションシステムに含まれるアカウント書き込み部が、前記プロセスの実行が終了した後、前記転送量課金部によってカーネル空間に記録されたデータ量を前記アカウント情報としてアカウントファイルに記録する手順と、をコンピュータに実行させるためのアカウント情報採取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードをノード間クロスバスイッチによって相互に接続したマルチノードシステムに関し、特に、マルチノードシステムのアカウント情報の採取に関する。
【背景技術】
【０００２】
近年では、ノード間を接続するノード間クロスバスイッチの開発が進むにつれ、ノード間クロスバスイッチを利用したマルチノードシステムが増えてきている（例えば、特許文献１参照）。この種のマルチノードシステムでは、複数のノードにまたがるマルチノードジョブを実行するとき、ノード間クロスバスイッチを介してノード間でインターコネクトデータ転送が行なわれる。インターコネクトデータ転送によってノード間でデータを転送しながら複数のノードでジョブを実行することにより、マルチノードジョブの高速な実行が可能となっている。この種のマルチノードシステムではノードの利用に対してアカウント情報を採取し、そのアカウント情報に基づいて課金が行われる。
【特許文献１】特開２００３−１５０３９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
マルチノードシステムの資源にはノードとノード間クロスバスイッチが含まれる。本来であれば高価な資源であるノード間クロスバスイッチの利用に対しても課金をするのが好ましいが、実際にはノードの利用に対してだけ課金が行なわれていた。ノード間クロスバスイッチの利用に対して課金をするためには、そのアカウント情報を採取する必要があるが、以下の理由により採取が困難であった。また、アカウント情報が採取できれば、それを用いてノード間クロスバスイッチの使用状況を確認できるが、それもできなかった。
【０００４】
一般的にマルチノードジョブはＭＰＩ（メッセージパッシングインターフェース）ライブラリを使用して作成される。ＭＰＩでは、マルチノードジョブを構成する複数のプロセス同士によるプロセス間通信の情報は採取できる。しかし、ノード内でのデータ転送と、ノード間クロスバスイッチを介したノード間でのデータ転送とを区別することができない。したがって、ＭＰＩで採取される情報を、ノード間クロスバスイッチの利用に対する課金に用いることができない。
【０００５】
また、ＣＰＵの使用時間やディスクの使用量などの課金情報は、ＣＰＵやメモリ等を管理するＯＳ（カーネル空間）内で採取される。しかし、ＭＰＩライブラリは高速な実行を可能とするため、ノード間クロスバスイッチを経由するインターコネクトデータ転送がＯＳ（カーネル空間）を介さずに行なわれる。したがって、インターコネクトデータ転送のデータ量の情報は、ＣＰＵの使用時間やディスクの使用量と異なり、ＯＳ（カーネル空間）で採取することができなかった。
【０００６】
本発明の目的は、インターコネクトデータ転送のアカウント情報を採取することのできるマルチノードシステムを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のアカウント情報採取装置は、マルチノードジョブに含まれる複数のプロセスをそれぞれ実行する複数のノードがノード間クロスバスイッチを介してインターコネクトデータ転送を行なうマルチノードシステムのアカウント情報を採取するアカウント情報採取装置であって、
インターコネクトデータ転送を行うノードのプロセスに含まれ、該プロセスが実行されるときインターコネクトデータ転送を行なうデータ転送部と、
前記プロセスに含まれ、前記データ転送部によるインターコネクトデータ転送で転送されるデータ量を採取する転送量採取部と、
オペレーションシステムに含まれ、前記プロセスの実行が終了するとき、転送量採取部によって採取された前記データ量をカーネル空間に記録する転送量課金部と、
前記オペレーションシステムに含まれ、前記プロセスの実行が終了した後、前記転送量課金部によってカーネル空間に記録されたデータ量を前記アカウント情報としてアカウントファイルに記録するアカウント書き込み部と、を有している。
【０００８】
本発明によれば、プロセス実行時のデータ量の採取は、オペレーションシステムによる処理が不要で高速実行が可能なプロセスの転送量採取部が行い、プロセスを終了して資源を開放するとき、オペレーションシステムの転送量課金部とアカウント書き込み部とでデータ量をアカウントファイルに書き込むので、インターコネクトデータ転送のアカウント情報を採取することができる。インターコネクトデータ転送についてのアカウント情報が採取できるので、インターコネクトデータ転送つまりノード間クロスバスイッチの使用に対する課金が可能となる。また、転送データのデータ量の情報はユーザ空間で採取しておき、オペレーションシステムへの情報採取はプロセス終了時に行うので、オペレーションシステムはデータ転送の成功の度に情報を採取する処理を行わなくてよく負荷が軽い。また、アカウントファイルにアカウント情報が記録されるので、システム全体のインターコネクトデータ転送の使用状況を定量的に把握できる。
【０００９】
また、前記プロセスには、前記転送量採取部が前記データ量を採取するために用いる転送量記録エリアが複数設けられ、
前記転送量採取部は、採取した前記データ量を複数の転送量記録エリアに格納し、
前記転送量課金部は、前記複数の転送量記録エリアから正しいデータ量の値を選択してカーネル空間に記録することにしてもよい。
【００１０】
これによれば、インターコネクトデータ転送のデータ量を採取するための転送量記録エリアを複数設け、それら複数の転送量記録エリアを用いてデータ量を記録するので、転送量記録エリアに記録される値のデータ破壊に対する耐性が高い。
【００１１】
また、前記プロセスには、前記転送量採取部が採取した前記データ量のハッシュ値を記録するためのハッシュ記録エリアが設けられ、
前記転送量採取部は、前記データ量を記録するとき、該データ量に対するハッシュ値を算出して前記ハッシュ記録エリアに記録することにしてもよい。
【００１２】
これによれば、転送されたデータ量に対するハッシュ値を算出し、ハッシュ値を用いてデータ量の値を検証するので、転送量記録エリアに記録された値のデータ破壊を検出できる。
【発明の効果】
【００１３】
本発明によれば、マルチノードジョブに含まれる複数のプロセスをそれぞれ実行する複数のノードがノード間クロスバスイッチを介してインターコネクトデータ転送を行なうマルチノードシステムにおいて、インターコネクトデータ転送のアカウント情報を採取することができる。
【発明を実施するための最良の形態】
【００１４】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００１５】
図１は、本実施形態によるマルチノードシステムの構成を示すブロック図である。図１を参照すると、マルチノードシステムは、ノード１０１、２０１1〜２０１N、およびノード間クロスバスイッチ３０１を有している。ノード１０１、２０１1〜２０１Nは全てノード間クロスバスイッチ３０１に接続されており、相互にインターコネクトデータの転送が可能である。インターコネクトデータは、マルチノードシステムを構成するノード間を、ノード間クロスバスイッチ３０１経由で転送されるデータである。
【００１６】
本実施形態のマルチノードシステムは複数のプロセスで構成されるマルチノードジョブをプロセスに分割し、各プロセスをノード１０１、２０１1〜２０１Nで実行する。ここではマルチノードジョブはプロセス１１０およびプロセス２２０1を含んでいるものとする。
【００１７】
プロセス１１０はノード１０１上で実行され、プロセス２２０1はノード２０１1上で実行される。そして、プロセス１１０を実行するノード１０１とプロセス２２０1を実行するノード２０１1との間ではノード間クロスバスイッチ３０１を介したインターコネクトデータ転送が発生する。
【００１８】
プロセス１１０の実行によってノード１０１のユーザ空間には、データ転送部１１１および転送量採取部１１２が構成され、更に転送量記録エリア１７０1、１７０2およびハッシュ記録エリア１８０1、１８０2が確保される。転送量記録エリア１７０1、１７０2にはインターコネクトデータの転送量が記録される。ハッシュ記録エリア１８０1、１８０2には転送量記録エリア１７０1、１７０2に記録された転送量に対するハッシュ値が記録される。
【００１９】
なお、本実施形態では２つの転送量記録エリア１７０を設ける例を示すが、データ破壊の耐性をあげるために３つ以上の転送量記録エリア１７０を用意してもよい。転送量記録エリア１７０を３つ以上用意する場合にはハッシュ記録エリア１８０も同数だけ用意する。
【００２０】
また、ユーザ空間にはアカウントファイル１４０がある。アカウントファイル１４０は、終了したプロセスのアカウント情報を記録するためのファイルである。アカウントファイル１４０には、終了したプロセスの各種のアカウント情報が逐次書き込まれる。
【００２１】
オペレーションシステム（ＯＳ）のカーネル空間には、プロセス１１０の情報を管理するためのプロセス管理領域１５０が確保される。プロセス管理領域１５０には、一般的なＣＰＵ使用時間、ディスク使用量、メモリ使用量などの情報を記録するエリアの他に、アドレスポインタ配列１９０と転送量一時記録エリア２００が確保される。
【００２２】
アドレスポインタ配列１９０には、ユーザ空間に構成される転送量記録エリア１７０1、１７０2のアドレスへのポインタ配列が記録される。ポインタ配列は、転送量記録エリア１７０1、１７０2のアドレスを示すポインタであり、アドレスそのものの値であってもよい。アドレスポインタ配列１９０のエリアを用意する際には無効なアドレスの値で初期化しておくものとする。これにより、ユーザ空間に構成される転送量記録エリア１７０1、１７０2のアドレスへのポインタ配列が記録されていない状態では、アドレスポインタ配列１９０には無効なアドレスが提示される。
【００２３】
転送量一時記録エリア２００は、該当するプロセス１１０が終了してからアカウント情報がアカウントファイル１４０に書き込まれるまでの間、転送量の値を一時的に記録しておくためのエリアである。転送量一時記録エリア２００には、ユーザ空間の転送量記録エリア１７０1または１７０2から読み出された正しい転送量の値が記録される。
【００２４】
その他に、カーネル空間にはアカウント書き込み部１３０、転送量課金部１６０、および記録アドレス登録部２１０が構成される。
【００２５】
プロセスの初期化処理の段階では、記録アドレス登録部２１０が実行され、該当するプロセス１１０のプロセス管理領域１５０を特定し、アドレスポインタ配列１９０に転送量記録エリア１７０1、１７０2のアドレスへのポインタ配列をそれぞれ格納する。
【００２６】
初期化処理が終了すると、データ転送部１１１は、他のノード２０１1にて実行されているプロセス２２０1に対してインターコネクトデータの送信を開始する。インターコネクトデータは、ノード間クロスバスイッチ３０１によってノード２０１1に転送される。
【００２７】
転送量採取部１１２は、データ転送部１１１によるインターコネクトデータ転送が成功する毎に、転送量記録エリア１７０1および１７０2に転送データのデータ量の値を加算していく。その際、転送量採取部１１２は、転送量記録エリア１７０1、１７０2に記録されている転送量の値を検証し、その値が正しいことを確認してから転送データのデータ量を加算する。
【００２８】
具体的には、転送量採取部１１２は、転送量記録エリア１７０1に格納されている転送量に対して算出したハッシュ値と、ハッシュ記録エリア１８０1に格納されているハッシュ値とを比較し、転送量記録エリア１７０2に格納されている転送量に対するハッシュ値とハッシュ記録エリア１８０1に格納されているハッシュ値とを比較する。
【００２９】
それらの比較がいずれか一方でも一致しなければ転送量採取部１１２は異常終了する。それらの比較がいずれも一致したとき、転送量採取部１１２は、転送データのデータ量を、転送量記録エリア１７０1に記録されている転送量に加算し、転送量記録エリア１７０1の転送量に対するハッシュ値を計算しなおしてハッシュ記録エリア１８０1に格納する。更に、転送量採取部１１２は、転送量記録エリア１７０1に格納されている転送量を転送量記録エリア１７０2にも格納し、ハッシュ記録エリア１８０1に格納されているハッシュ値をハッシュ記録エリア１８０2にも格納する。
【００３０】
プロセス１１０が終了するとき、転送量課金部１６０は、転送量記録エリア１７０1または１７０2のいずれかから正しい転送量の値を選択して転送量一時記録エリア２００へ書き込む。その際、転送量課金部１６０は、プロセス１１０の転送量記録エリア１７０1、１７０2に記録されている値をハッシュ記録エリア１８０1、１８０2に記録されているハッシュ値で検証する。
【００３１】
具体的には、転送量課金部１６０は、終了するプロセスが占有している計算機資源が解放される前に、そのプロセスのプロセス管理領域１５０にあるアドレスポインタ配列１９０に登録されているポインタ配列で示されている、転送量記録エリア１７０1、１７０2のアドレスを参照する。参照したいずれかのアドレスが無効なアドレスであれば、転送量課金部１６０は、終了するプロセスがインターコネクトデータ転送を行わないプロセスであると判断し、インターコネクトデータ転送の転送量を記録せず処理を終了する。
【００３２】
参照したアドレスがいずれも有効なアドレスであれば、転送量課金部１６０は、転送量記録エリア１７０1に記録されている値をハッシュ記録エリア１８０1に記録されているハッシュ値で検証し、転送量記録エリア１７０2に記録されている値をハッシュ記録エリア１８０2に記録されているハッシュ値で検証する。そして、転送量課金部１６０はそれらの検証結果に基づいて、転送量記録エリア１７０1または１７０2のいずれかから正しい転送量の値を選択して転送量一時記録エリア２００へ書き込む。
【００３３】
アカウント書き込み部１３０は、転送量課金部１６０によって転送量一時記録エリア２００へ書き込まれた転送量を含むアカウント情報を、プロセス管理領域１５０から読み出してアカウントファイル１４０に書き込む。アカウントファイル１４０にノード間クロスバスイッチ３０１によるインターコネクトデータ転送の転送量が書き込まれるので、それを利用してノード間クロスバスイッチ３０１によるインターコネクトデータ転送に対する課金が可能となる。また、それを利用してノード間クロスバスイッチ３０１の使用状況を確認することもできる。
【００３４】
本実施形態によるマルチノードシステムの動作について説明する。
【００３５】
ここではノード１０１上のプロセス１１０から、ノード２０１1上のプロセス２１０1へノード間クロスバスイッチ３０１を介したインターコネクトデータ転送でデータを転送する例を示すが、本発明はこれに限定されるものではない。ノード間クロスバスイッチ３０１を介したノード同士のインターコネクトデータ転送であれば、どのノードからどのノードへのデータ転送であっても同様に本発明を適用できる。
【００３６】
図２は、本実施形態のマルチノードシステムの一連の動作の概略を示すフローチャートである。
【００３７】
一連の動作の概略としては、まずＯＳがプロセス１１０を生成し、プロセス１１０を実行させる。プロセス１１０の初期化処理では、記録アドレス登録部２１０が呼び出され、実行される（ステップ４０１）。
【００３８】
続いて、プロセス１１０の実行時、まずデータ転送部１１１がインターコネクトデータ転送を行い、転送量採取部１１２が転送データのデータ量を転送量記録エリア１７０に格納する（ステップ４０２）。
【００３９】
プロセス１１０の終了時、ＯＳによって呼び出された転送量課金部１６０が、ユーザ空間の転送量記録エリア１７０に記録されている転送量の値を、カーネル空間の転送量一時記録エリア２００に移す（ステップ４０３）。
【００４０】
最後に、ＯＳは、プロセス１１０が占有していたメモリやディスクなどの資源を解放する一連の手続の中で、アカウント書き込み部１３０を呼び出す。アカウント書き込み部１３０は、開放処理として、プロセス管理領域１５０からアカウント情報を読み出してアカウントファイル１４０に書き込む（ステップ４０４）。
【００４１】
次に図２に示した各ステップについて詳細に説明する。
【００４２】
ＯＳは、初期化処理としてプロセス１１０を生成するときプロセス１１０のプロセス管理領域１５０を作成する。その際、転送量記録エリア１７０1、１７０2のアドレスへのポインタ配列１９０は無効なアドレスを示す値で初期化される。プロセス１１０の初期化処理の中では記録アドレス登録部２１０が呼び出される。
【００４３】
記録アドレス登録部２１０は、プロセス１１０のプロセス管理領域１５０を特定し、プロセス管理領域１５０にあるアドレスポインタ配列１９０に転送量記録エリア１７０1、１７０2のアドレスをそれぞれ格納する。
【００４４】
図３は、プロセス実行処理におけるマルチノードシステムの動作を示すフローチャートである。プロセス１１０の処理の中でプロセス２１０1へインターコネクトデータ転送を行うとき、転送すべきデータが格納されている場所とデータ量とを引数として、データ転送部１１１が呼び出される。
【００４５】
データ転送部１１１は、ノード間クロスバスイッチ３０１を介して、ノード２０１上のプロセス２１０1へ転送データを転送する（ステップ５０１）。データ転送部１１１はデータ転送が成功か否かを判定し（ステップ５０２）、失敗であれば、エラーを返して処理を終了する（ステップ５０３）。この場合にはデータ転送量採取部１１２は呼ばれない。データ転送が成功であれば、データ転送部１１１は転送量採取部１１２を呼び出す。
【００４６】
転送量採取部１１２は、まず転送量記録エリア１７０1に格納されている転送量に対するハッシュ値を算出し（ステップ５０４）、ハッシュ記録エリア１８０1に格納されているハッシュ値と比較する（ステップ５０５）。
【００４７】
それらのハッシュ値が一致しなければ、転送量採取部１１２は不正なデータの書き込みが行われたものと判断してプロセスを異常終了する（ステップ５０６）。それらのハッシュ値が一致すれば、転送量採取部１１２は、ハッシュ記録エリア１８０2に格納されたハッシュ値とも同様に比較する（ステップ５０７）。ステップ５０７の比較でハッシュ値が一致しなければ、転送量採取部１１２は不正なデータの書き込みが行われたものと判断してプロセスを異常終了する（ステップ５０６）。
【００４８】
ステップ５０７の比較でハッシュ値が一致すれば、転送量採取部１１２は、転送量記録エリア１７０1に転送データのデータ量を加算して格納し、更に格納したデータに対するハッシュ値を計算してハッシュ記録エリア１８０1に格納する（ステップ５０８）。続いて、転送量採取部１１２は、転送量記録エリア１７０2およびハッシュ記録エリア１８０2に対して、転送量記録エリア１７０1およびハッシュ記録エリア１８０1のそれぞれと同じ値を格納する（ステップ５０９）。
【００４９】
図４は、プロセス終了処理におけるマルチノードシステムの動作を示すフローチャートである。プロセス１１０の実行が終了すると、ＯＳはプロセス１１０が占有している計算機資源を解放する前に、プロセス終了処理のために転送量課金部１６０を呼び出す。
【００５０】
転送量課金部１６０は、プロセス１１０のプロセス管理領域１５０にあるアドレスポインタ配列１９０に登録されている転送量記録エリア１７０1のアドレスを参照し、有効なアドレスか否か判定する（ステップ６０１）。転送量記録エリア１７０1のアドレスが無効なアドレスであれば、転送量課金部１６０は、該当プロセスがインターコネクトデータ転送を行わないプロセスであると判断し、以降の処理を行わない。
【００５１】
転送量記録エリア１７０1のアドレスが有効なアドレスであれば、転送量課金部１６０は、次に転送量記録エリア１７０2のアドレスを参照し、有効なアドレスであるか否か判定する（ステップ６０２）。転送量記録エリア１７０2のアドレスが無効なアドレスであれば、転送量課金部１６０は以降の処理を行わない。
【００５２】
転送量記録エリア１７０2のアドレスが有効なアドレスであれば、転送量課金部１６０は、次に転送量記録エリア１７０1に格納されている転送量のハッシュ値を算出し（ステップ６０３）、そのハッシュ値とハッシュ記録エリア１８０1のハッシュ値とを比較する（ステップ６０４）。
【００５３】
ステップ６０４でハッシュ値が一致すれば、転送量課金部１６０は、次に転送量記録エリア１７０2に格納されている転送量のハッシュ値を算出し（ステップ６０５）、この値とハッシュ記録エリア１８０2のハッシュ値とを比較する（ステップ６０６）。ハッシュ値が一致しなければ、転送量課金部１６０は、転送量記録エリア１７０1の転送量を転送量一時記録エリア２００に格納する（ステップ６０７）。ハッシュ値が一致すれば、転送量課金部１６０は転送量記録エリア１７０1の転送量と転送量記録エリア１７０2の転送量とを比較する（ステップ６０８）。転送量記録エリア１７０1の転送量が転送量記録エリア１７０2の転送量以上であれば、転送量課金部１６０は、転送量記録エリア１７０1の転送量を転送量一時記録エリア２００に格納する（ステップ６０７）。転送量記録エリア１７０2の転送量が転送量記録エリア１７０1の転送量より大きければ、転送量課金部１６０は、転送量記録エリア１７０2の転送量を転送量一時記録エリア２００に格納する（ステップ６０９）。
【００５４】
ステップ６０４でハッシュ値が一致しなければ、転送量課金部１６０は、次に、転送量記録エリア１７０2に格納されている転送量のハッシュ値を算出し（ステップ６１０）、そのハッシュ値とハッシュ記録エリア１８０2のハッシュ値とを比較する（ステップ６１１）。ハッシュ値が一致すれば、転送量課金部１６０は、転送量記録エリア１７０2のデータ転送量を転送量一時記録エリア２００に格納する（ステップ６０９）。ハッシュ値が一致しなければ、転送量課金部１６０は、転送量が正しく記録されていないことを示す値を転送量一時記録エリア２００に格納する（ステップ６１２）。
【００５５】
プロセス終了処理の後ＯＳは、プロセス開放処理として、プロセス１１０が占有していたメモリやディスクなどの全ての計算機資源を解放する一連の手続きを行なう。その手続の中でＯＳはアカウント書き込み部１３０を呼び出す。
【００５６】
アカウント書き込み部１３０は、プロセス１１０のプロセス管理領域１５０にある、ＣＰＵ使用時間、ディスク使用量などの一般的なアカウント情報と共に、転送量一時記録エリア２００に格納されているインターコネクトデータ転送についてのアカウント情報をアカウントファイル１４０へ書き込む。図５はアカウントファイル１４０の内部構造を示す図である。図５を参照すると、ユーザＩＤおよびプロセス名によって識別されるエントリに、ＣＰＵ使用時間やディスク使用量などとともに、インターコネクトデータ転送量が記録されている。
【００５７】
以上説明したように、本実施形態によれば、インターコネクトデータ転送を行うプロセス１１０にデータ転送部１１１と転送量採取部１１２が含まれ、オペレーションシステムにプロセス１１０の実行に伴って動作する転送量課金部１６０とアカウント書き込み部１３０が含まれている。プロセス１１０の実行時に、データ転送部１１１がインターコネクトデータ転送を行ない、転送量採取部１１２が転送データのデータ量をユーザ空間に記録する。プロセス１１０の終了時に、転送量課金部１６０が、転送量採取部１１２によって採取されたデータ量をカーネル空間に記録する。プロセス開放時に、アカウント書き込み部１３０が、転送量課金部１６０によって記録されたデータ量をユーザ空間のアカウントファイルに記録する。
【００５８】
プロセス１１０実行時のデータ量の採取は、オペレーションシステムによる処理が不要で高速実行が可能なプロセス１１０の転送量採取部１１２が行い、プロセス１１０を終了して資源を開放するとき、オペレーションシステムの転送量課金部１６０とアカウント書き込み部１３０とでデータ量をアカウントファイル１４０に書き込むので、インターコネクトデータ転送のアカウント情報を採取することができる。
【００５９】
インターコネクトデータ転送についてのアカウント情報が採取できるので、インターコネクトデータ転送つまりノード間クロスバスイッチの使用に対する課金が可能となる。
【００６０】
また、転送データのデータ量の情報はユーザ空間で採取しておき、オペレーションシステム（カーネル）への情報採取はプロセス終了時に行うので、オペレーションシステムはデータ転送の成功の度に情報を採取する処理を行わなくてよく、負荷が軽い。
【００６１】
また、インターコネクトデータ転送のデータ量を採取するための転送量記録エリア１７０を複数設け、それら複数の転送量記録エリア１７０を用いてデータ量を記録するので、転送量記録エリアに記録される値のデータ破壊に対する耐性が高い。
【００６２】
また、転送されたデータ量に対するハッシュ値を算出し、ハッシュ値を用いてデータ量の値を検証するので、転送量記録エリア１７０に記録された値のデータ破壊を検出できる。
【００６３】
また、アカウントファイル１４０にアカウント情報が記録されるので、システム全体のインターコネクトデータ転送の使用状況を定量的に把握できる。また、その使用状況の情報からインターコネクトデータ転送の利用の推奨、つまり資源の有効活用を推奨することもきる。
【００６４】
なお、本実施形態において、インターコネクトデータ転送のデータ量をアカウント情報としてアカウントファイル１４０に記録するためのプロセス１１０およびＯＳで動作する各部はコンピュータがソフトウェアプログラムを実行することにより実現することもできる。
【図面の簡単な説明】
【００６５】
【図１】本実施形態によるマルチノードシステムの構成を示すブロック図である。
【図２】本実施形態のマルチノードシステムの一連の動作の概略を示すフローチャートである。
【図３】プロセス実行処理におけるマルチノードシステムの動作を示すフローチャートである。
【図４】プロセス終了処理におけるマルチノードシステムの動作を示すフローチャートである。
【図５】アカウントファイル１４０の内部構造を示す図である。
【符号の説明】
【００６６】
１０１、２０１1〜２０１N    ノード
１１０    プロセス
１１１    データ転送部
１１２    転送量採取部
１４０    アカウントファイル
１５０    プロセス管理領域
１７０1、１７０2    転送量記録エリア
１８０1、１８０2    ハッシュ記録エリア
１９０    アドレスポインタ配列
２００    転送量一時記録エリア
２２０1    プロセス
３０１    ノード間クロスバスイッチ
４０１〜４０４、５０１〜５０９、６０１〜６１２    ステップ
【図１】
2008217531.tif 000003
【図２】
2008217531.tif 000004
【図３】
2008217531.tif 000005
【図４】
2008217531.tif 000006
【図５】
2008217531.tif 000007