(57)【要約】【課題】機能が異なる複数のサーバが接続されたネットワークの結線及び経路の評価が可能な情報を算出する。【解決手段】複数のサーバおよび複数のスイッチを有するネットワークの評価支援方法であって、複数のサーバを機能によって分類した複数のサーバ群情報、複数のサーバが発信するデータ量情報、複数のサーバ群の一つのサーバ群が発信するデータ量の受信先サーバ群毎の割合情報、複数のサーバおよび複数のスイッチのデータを送信するときの経路を定義した経路情報、および複数のサーバおよび複数のスイッチの結線を定義した結線情報を読み出し、データ量情報と割合情報とから各サーバ群間の通信量を算出し、算出した各サーバ群間の通信量をサーバ群内に含まれるサーバ数で割ることによりサーバ群内の各サーバの通信量を算出し、算出したサーバ群内の各サーバの通信量を経路の各結線に積算することで各結線の通信量を算出する。【選択図】  図２
2010220103.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバおよび複数のスイッチを有するネットワークの評価処理を実行する制御部と、該複数のサーバを機能によって分類した複数のサーバ群情報、該複数のサーバが発信するデータ量情報、該複数のサーバ群の一つのサーバ群が発信するデータ量の受信先サーバ群毎の割合情報、該複数のサーバおよび該複数のスイッチのデータを送信するときの経路を定義した経路情報、および該複数のサーバおよび該複数のスイッチの結線を定義した結線情報を格納するメモリとを有する情報処理装置の処理プログラムであって、該制御部を、
該データ量情報と該割合情報とから各サーバ群間の通信量を算出する手段、
算出した該各サーバ群間の通信量を該サーバ群内に含まれるサーバ数で割ることにより該サーバ群内の各サーバの通信量を算出する手段、
算出した該サーバ群内の各サーバの通信量を経路の各結線に積算することで各結線の通信量を算出する手段、
として機能させることを特徴とする情報処理装置の処理プログラム。
【請求項２】
該複数のサーバの一つのサーバが該複数のサーバの他のサーバから受信したデータ量に対応する応答データを該他のサーバに発信するものとして各サーバの応答通信量を算出する手段を更に有することを特徴とする請求項１に記載の情報処理装置の処理プログラム。
【請求項３】
該サーバ間の通信データ量とホップ数とを乗算して該サーバ間の重み付ホップ数を算出する手段を更に有することを特徴とする請求項１に記載の情報処理装置の処理プログラム。
【請求項４】
複数のサーバおよび複数のスイッチを有するネットワークの評価処理を実行する情報処理装置の処理方法であって、
該複数のサーバを機能によって分類した複数のサーバ群情報、該複数のサーバが発信するデータ量情報、該複数のサーバ群の一つのサーバ群が発信するデータ量の受信先サーバ群毎の割合情報、該複数のサーバおよび該複数のスイッチのデータを送信するときの経路を定義した経路情報、および該複数のサーバおよび該複数のスイッチの結線を定義した結線情報を読み出し、
該データ量情報と該割合情報とから各サーバ群間の通信量を算出し、
算出した各サーバ群間の通信量を該サーバ群内に含まれるサーバ数で割ることにより該サーバ群内の各サーバの通信量を算出し、
算出した該サーバ群内の各サーバの通信量を経路の各結線に積算することで各結線の通信量を算出する
ことを特徴とする情報処理装置の処理方法。
【請求項５】
該複数のサーバの一つのサーバが該複数のサーバの他のサーバから受信したデータ量に応じた応答データを該他のサーバに発信するものとして各サーバの通信量を算出することを特徴とする請求項４に記載の情報処理装置の処理方法。
【請求項６】
該サーバ間の通信データ量とホップ数とを乗算して該サーバ間の重み付ホップ数を算出することを特徴とする請求項４に記載の情報処理装置の処理方法。
【請求項７】
複数のサーバおよび複数のスイッチを有するネットワークを評価する情報処理装置であって、
該複数のサーバを機能によって分類した複数のサーバ群情報、該複数のサーバが発信するデータ量情報、該複数のサーバ群の一つのサーバ群が発信するデータ量の受信先サーバ群毎の割合情報、該複数のサーバおよび該複数のスイッチのデータを送信するときの経路を定義した経路情報、および該複数のサーバおよび該複数のスイッチの結線を定義した結線情報を格納する記憶部と、
該データ量情報と該割合情報とから各サーバ群間の通信量を算出し、算出した各サーバ群間の通信量を該サーバ群内に含まれるサーバ数で割ることにより該サーバ群内の各サーバの通信量を算出し、算出した該サーバ群内の各サーバの通信量を経路の各結線に積算することで各結線の通信量を算出する制御部とを
有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークの結線及び経路の評価を支援する技術に関する。
【背景技術】
【０００２】
ネットワークの構築前にネットワークが十分に機能するか否かを評価する技術がある。従来の評価技術はネットワークに接続する各サーバに対して各サーバの通信量を通信可能か否かに基づき評価するものであった。しかし、各サーバ間の接続が十分であっても、サーバ群でみた場合に十分な性能ではない場合がある。
【０００３】
例えば、コンピュータ・クラスタ技術は、ネットワークに接続された演算処理を実行する複数の計算サーバをまとめることで、並列コンピュータ環境を実現する。複数の計算サーバはそれぞれ割り当てられた演算を行い、ネットワークに接続する他の計算サーバ間で演算結果を送受信し、演算結果に基づきさらに演算を行う。並列コンピュータ環境の各計算サーバ間は大量のデータが送受信されるため、ネットワークは高速かつ十分な伝送容量を有することが望ましい。並列コンピュータ環境のシステムは、機能で分類した演算サーバ、入出力サーバ、管理サーバ等を有する。並列コンピュータ環境のシステムは計算処理を行うサーバのみが高速ネットワークに接続され、他の入出力サーバは通常のネットワークで接続するように設計されていた。近年、入出力サーバのネットワークの性能の高性能化が求められており、入出力サーバも高速ネットワークに接続されるようになった。データ入出力の処理を実行する入出力サーバおよび並列コンピュータ環境を管理する処理を実行する管理サーバが送受信するデータ量は、計算サーバが送受信するデータ量よりも少ない。この結果、ネットワークは異なる通信量を必要とする複数のサーバ群を含むことになった。
【０００４】
しかし、機能で分類したサーバ群が接続されたネットワークの評価をする技術は無かった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−０８３５４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
機能で分類したサーバ群が接続されたネットワークの結線及び経路の評価を可能にする技術の提供を目的とする。
【課題を解決するための手段】
【０００７】
本課題を解決する処理プログラムは複数のサーバおよび複数のスイッチを有するネットワークの評価処理を実行する制御部と、複数のサーバを機能によって分類した複数のサーバ群情報、複数のサーバが発信するデータ量情報、複数のサーバ群の一つのサーバ群が発信するデータ量の受信先サーバ群毎の割合情報、複数のサーバおよび複数のスイッチのデータを送信するときの経路を定義した経路情報、および複数のサーバおよび複数のスイッチの結線を定義した結線情報を格納するメモリとを有する情報処理装置により実行される。処理プログラムは制御部を、データ量情報と割合情報とから各サーバ群間の通信量を算出する手段、算出した各サーバ群間の通信量をサーバ群内に含まれるサーバ数で割ることによりサーバ群内の各サーバの通信量を算出する手段、算出したサーバ群内の各サーバの通信量を経路の各結線に積算することで各結線の通信量を算出する手段、として機能させる。
【発明の効果】
【０００８】
本処理プログラムは、機能で分類したサーバ群間で通信されるデータ量から個々のサーバ間で通信されるデータ量を求め、ネットワークの各結線で通信されるデータ量を算出する。この結果、本処理プログラムは機能が異なる複数のサーバが接続されたネットワークの結線及び経路の評価が可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は本実施例の情報処理装置１のハードウェア構成例である。
【図２】図２は演算部４の機能ブロック図である。
【図３】図３は結線情報８０である。
【図４】図４は経路情報９０である。
【図５】図５はサーバ群情報５０である。
【図６】図６は発信データ量情報６０である。
【図７】図７は比率情報７０である。
【図８】図８は本実施例の通信量を算出する対象のシステム１０である。
【図９】図９は発信量情報テーブル１００である。
【図１０】図１０は発信量情報テーブル１００を生成する処理のフローチャートである。
【図１１】図１１は応答量情報テーブル１１０である。
【図１２】図１２は通信量情報テーブル１２０である。
【図１３】図１３は、平均通信量算出部４３が実行する処理のフローチャートである。
【図１４】図１４はサーバ２１がサーバ２２に発信するデータ量を各結線毎に積算するときの説明図である。
【図１５】図１５はサーバ２１がサーバ２３およびサーバ２４に発信するデータ量を各結線毎に積算するときの説明図である。
【図１６】図１６はサーバ２１がサーバ２５に発信するデータ量を各結線毎に積算するときの説明図である。
【図１７】図１７はサーバ２１がサーバ２６に発信するデータ量を各結線毎に積算するときの説明図である。
【図１８】図１８はサーバ２１とサーバ２９およびサーバ３０に発信するデータ量を各結線毎に積算するときの説明図である。
【図１９】図１９は各サーバが発信したデータを経路毎に積算した状態の説明図である。
【図２０】図２０は各結線のデータ通信量の積算結果を算出した状態の説明図である。
【図２１】図２１は各結線のデータ通信量の平均値を算出した状態の説明図である。
【図２２】図２２はホップ数情報テーブル１３０である。
【図２３】図２３は発信ホップ数を算出する処理のフローチャートである。
【図２４】図２４は応答ホップ数を算出する処理のフローチャートである。
【図２５】図２５はシステム１０の構成を改良したネットワーク構成例の説明図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【００１１】
図１は本実施例の情報処理装置１のハードウェア構成例である。情報処理装置１は、受信した情報から通信量算出の対象のシステムを特定し、システムのネットワークの通信量を算出する。ネットワークの通信量を算出する対象のシステムは複数のサーバおよび複数のスイッチを有する。情報処理装置１は入力された情報からシステムを特定するため、システムは実際に存在する必要はない。設計者は、例えば、ＰＣクラスタシステムのネットワークを以下の手順で設計する。（１）設計者はサーバとスイッチとの間およびスイッチとスイッチとの間の結線を設計する。（２）設計者は設計した結線を基に経路を設計する。（３）設計者は結線と経路に基づきネットワークの平均ホップ数あるいは各結線の通信量等の性能を評価する。設計者は評価結果に基づき、必要に応じて（１）乃至（３）を繰り返す。ネットワークの接続形態や並列環境で実行するアプリケーションによってネットワークを流れるデータ量は異なる。例えばアプリケーションＡ向けに最適化したネットワークの場合、アプリケーションＡを高速に処理する。しかし、アプリケーションＢを高速に処理できるとは限らない。したがって、様々なネットワークの結線、経路についてシミュレーションすることにより、最適な構成を決定する必要がある。設計者が以上の手順に基づきＰＣクラスタシステムのネットワークの設計を行うためには、結線と経路情報に基づきネットワークの性能を評価する必要がある。本実施例の情報処理装置１は結線と経路情報に基づきネットワークの性能を評価するための情報を出力する。情報処理装置１がシステムのネットワークの通信量を算出することで、設計者はシステムの実際の運用を開始することなくシステムの不具合を検出することができる。この結果、設計者はシステムの構造を評価および改善することができる。情報処理装置１は入力部２、記憶部３、演算部４、および出力部５を有する。入力部２、記憶部３、演算部４、および出力部５はバス６により接続される。
【００１２】
入力部２はネットワークの結線情報８０、経路情報９０、サーバ群情報５０、発信データ量情報６０、および比率情報７０の定義情報を取得する。入力部２は例えばキーボード、マウスなどの入力機器である。また、入力部２は他の装置からネットワーク経由で定義情報を受信するネットワークインターフェースである場合もある。
【００１３】
記憶部３は入力部２が受信したネットワークの結線情報８０、経路情報９０、サーバ群情報５０、発信データ量情報６０、および比率情報７０の定義情報を記憶する。また、記憶部３は演算部４が通信量算出処理を実行するための通信量算出プログラム７（処理プログラム）を記憶する。また、演算部４が通信量算出プログラム７を実行するときの途中結果の情報を記憶する。記憶部３は例えば半導体メモリ、磁気ディスク装置等である。
【００１４】
演算部４は記憶部３に格納された通信量算出プログラム７を読み出して実行することにより、発信通信量算出部４１、応答通信量算出部４２、平均通信量算出部４３、発信ホップ数算出部４４、応答ホップ数算出部４５、平均ホップ数算出部４６、評価決定部４７として機能する。演算部４は例えば中央演算ユニット（ＣＰＵ）である。
【００１５】
出力部５は演算部４が通信量算出プログラム７を実行した処理結果を出力する。出力部５はディスプレイ、プリンタなどの出力機器である。また、出力部５は他の装置にネットワーク経由で定義情報を送信するネットワークインターフェースである場合もある。出力部５は処理結果をデータファイルとして出力する場合もある。
【００１６】
ここで、演算部４の機能について説明する。図２は演算部４の機能ブロック図である。発信通信量算出部４１は定義情報により特定されるシステムの各サーバが発信するデータ量を算出する。応答通信量算出部４２は定義情報により特定されるシステムの各サーバが応答のために発信するデータ量を算出する。平均通信量算出部４３は発信通信量算出部４１および応答通信量算出部４２が算出したデータ量から発信と応答の平均の通信量を結線毎に算出する。発信ホップ数算出部４４は定義情報により特定されるシステムの各サーバの発信データ量を考慮したサーバ間の重み付ホップ数を算出する。応答ホップ数算出部４５は定義情報により特定されるシステムの各サーバの応答のための発信データ量を考慮したサーバ間の重み付ホップ数を算出する。平均ホップ数算出部４６は発信ホップ数算出部４４および応答ホップ数算出部４５で算出した重み付ホップ数から発信と応答の平均の重み付ホップ数をサーバ間毎に算出する。評価決定部４７は発信通信量算出部４１、応答通信量算出部４２、平均通信量算出部４３、発信ホップ数算出部４４、応答ホップ数算出部４５、および平均ホップ数算出部４６で算出した結果を出力する。
【００１７】
次に情報処理装置１が実行する処理について説明する。情報処理装置１は受信した定義情報からシステムを特定し、特定したシステムの各ノード間の通信量およびサーバ間のホップ数を算出する。まず、情報処理装置１の入力部２が受信する定義情報について説明する。定義情報は結線情報８０、経路情報９０、サーバ群情報５０、発信データ量情報６０、および比率情報７０を含む。
【００１８】
図３は結線情報８０である。結線情報８０はシステムの各ノード間の接続を定義する情報である。ノードはネットワークの節点であり、例えば、サーバあるいはスイッチである。具体的には結線情報８０は複数のサーバおよび該複数のスイッチのポート間の結線が定義される。結線は各ノードのポート番号の対応関係によって定義される。結線情報８０は、第一のノード識別子（サーバ／スイッチ識別子）８１、第一のノードのポート番号（ポート番号）８２、第二のノード識別子（サーバ／スイッチ識別子）８３、および第二のノードのポート番号（ポート番号）８４を含む。ノード識別子はシステム内のサーバあるいはスイッチの識別子情報である。ポート番号はサーバあるいはスイッチのポート番号情報である。各ノード間は、例えば、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ（商標））やミリネット（Ｍｙｒｉｎｅｔ（商標））などの高速通信技術によって接続される。
【００１９】
図４は経路情報９０である。経路情報９０はノード間を伝送されるデータの経路を定義する情報である。経路情報９０はサーバ／スイッチ識別子９１、受信先サーバ識別子９２、および出力ポート番号９３を含む。サーバ／スイッチ識別子９１はシステム内のサーバあるいはスイッチを特定するための識別子である。受信先サーバ識別子９２はサーバ／スイッチ識別子９１から送信するデータの受信先のサーバの識別子である。出力ポート番号９３はサーバ／スイッチ識別子９１のノードが受信先サーバ識別子９２のサーバにデータを伝送する場合に、データを出力するサーバ／スイッチ識別子９１のノードのポート番号である。
【００２０】
図５はサーバ群情報５０である。サーバ群情報５０はシステムに含まれるサーバを機能によって複数のサーバ群に分類して定義する情報である。サーバ群情報５０は、システムが有する複数のサーバ群を識別するサーバ群識別子情報５１、サーバ群に含まれるサーバの数を示すサーバ数情報５２、およびサーバ群に含まれるサーバを識別するサーバ識別子情報５３を含む。サーバ群識別子５１が「Ａ」のサーバ群（サーバ群Ａ）は計算サーバ群であり、サーバ群識別子５１が「Ｂ」のサーバ群（サーバ群Ｂ）は入出力サーバ群であるとする。サーバ群Ａはサーバ数が８台であり、８台のサーバのそれぞれのサーバ識別子は、「２１」、「２２」、「２３」、「２４」、「２５」、「２６」、「２７」、および「２８」である。サーバ群Ｂはサーバ数が２台であり、２台のサーバのそれぞれのサーバ識別子は「２９」および「３０」である。
【００２１】
図６は発信データ量情報６０である。発信データ量情報６０は各サーバ群が発信する通信量を定義する情報である。発信データ量情報６０はサーバ群識別子情報６１および発信データ量６２を含む。サーバ群識別子６１はシステムのサーバ群を識別する情報である。サーバ群識別子６１はサーバ群情報５０のサーバ群識別子５１に対応する。発信データ量６２はサーバ群識別子６１で特定されるサーバ群の各サーバが発信するデータ量を示す情報である。本実施例の対象のシステムは例えばＰＣクラスタの並列コンピュータである。本実施例のＰＣクラスタを構成する計算サーバは同じ性能であるとする。本実施例では、サーバ群Ａの各サーバが発信するデータ量は同じであるとして定義する。サーバが発信するデータ量は、例えば、サーバの処理能力などの性能情報に基づき定義する。本実施例では、サーバ群Ａのサーバが発信するデータ量を「１．００」とする。発信データ量６２はサーバが自発的に発信するデータ量を示す。他のサーバからの要求に応じて送信するデータ量は発信データ量に含まない。サーバが発信するデータ量は比較的容易に設計することが可能だが、受信したデータに対して応答するデータ量を設計することは困難である。本実施例の入出力サーバ群であるサーバ群Ｂの各サーバは自発的にデータを発信しない。そこで、サーバ群Ｂのサーバが発信するデータ量を「０．００」と定義する。発信データ量情報６２は、例えば、各サーバの単位時間当たりの仕事量に比例した値を用いる。仮にサーバ群Ｃが存在し、サーバ群Ａの２倍の性能である場合、サーバ群Ｃの発信データ量は「２．００」と定義できる。
【００２２】
図７は比率情報７０である。比率情報７０は一つサーバ群が発信する全てのデータ量に対するそれぞれのサーバ群が受信するデータ量の割合を定義する情報である。比率情報７０は発信元サーバ群７１、受信先サーバ群７２、および割合７３を有する。発信元サーバ群７１はデータを発信するサーバ群を識別する情報である。受信先サーバ群７２は発信元サーバ群７１が送信したデータを受信するサーバ群を識別する情報である。割合７３は発信元サーバ群７１が送信する全てのデータ量に対する受信先サーバ群７２に送信するデータの割合の情報である。比率情報７０はサーバ群の組み合わせ毎に定義される。サーバ群Ａが発信する全てのデータ量に対してサーバ群Ａがサーバ群Ａに発信するデータ量の比率は０．９５である。サーバ群Ａが発信する全てのデータ量に対してサーバ群Ａがサーバ群Ｂに発信するデータ量の比率は０．０５である。サーバ群Ｂは自発的に発信しないためサーバ群Ａおよびサーバ群Ｂに対して送信するデータの比率は共に「０．００」になる。
【００２３】
次に通信状態を算出する対象のシステムについて説明する。図８は本実施例の通信量を算出する対象のシステム１０である。情報処理装置１は受信した定義情報から通信状態を算出する対象のシステムを決定する。本実施例の計算の対象となるシステム１０は複数のサーバおよび複数のスイッチを含む。システム１０は例えば並列コンピュータである。システム１０の複数のサーバは、機能に応じて複数のサーバ群に分類される。本実施例においてサーバ群は計算サーバ群（サーバ群Ａ）と入出力サーバ群（サーバ群Ｂ）に分類される。システム１０はサーバ群毎にデータ転送量が不均等である。計算サーバ群に含まれる核サーバは並列コンピュータの処理対象の計算処理を実行する。計算サーバ間は計算処理の実行時に計算サーバ間で演算結果の情報を送受信する。入出力サーバ群の各サーバはデータの入出力を管理および格納するサーバである。データは、例えば、計算サーバが実行するプログラム、計算サーバが計算プログラムを実行するために必要な情報である。入出力サーバは計算サーバからの読出アクセスあるいは書込アクセスに応じてデータを送信あるいは受信する。
【００２４】
図８のシステム１０において、計算サーバはサーバ２１、サーバ２２、サーバ２３、サーバ２４、サーバ２５、サーバ２６、サーバ２７およびサーバ２８である。入出力サーバはサーバ２９およびサーバ３０である。スイッチはデータの転送先のノードを条件に応じて切り替える。スイッチはスイッチ３１、スイッチ３２、スイッチ３３、およびスイッチ３４である。サーバおよびスイッチの間を結ぶ線はシステム１０のネットワークの結線を示す。また結線に隣接する数字は各ノードのポート番号を示す。例えば、サーバ２９のポート１はスイッチ３１のポート３に接続する。
【００２５】
本実施例のＰＣクラスタシステムは計算処理を行う計算サーバおよびデータ入出力を行う入出力サーバは全て高速なネットワークで結合される。計算サーバのみが結合されたＰＣクラスタシステムの場合、全てのサーバ間の通信量は同一であると定義することができる。しかし、本実施例のＰＣクラスタシステムの計算サーバおよび入出力サーバは異なるデータ量が通信される。本実施例のＰＣクラスタシステムは計算サーバおよび入出力サーバのような役割の異なるサーバが結合される点、複数のスイッチを介してサーバが結合される点が従来のＰＣクラスタシステムとは異なる。ＰＣクラスタシステム内の計算サーバあるいは入出力サーバは役割が異なるため、サーバ間の通信量は不均等になる。例えば計算サーバ同士で通信されるデータ量は計算サーバと入出力サーバとの間で通信されるデータ量よりも非常に多い。更に、本実施例の入出力サーバは計算サーバからのデータの入出力要求に対しては応答するが、計算サーバに対してデータを発信しない。また、計算サーバ間の通信は、計算サーバが発信する通信と他の計算サーバから受信した通信要求に対して応答する通信の二種類の通信が発生する。このように本実施例の対象とするＰＣクラスタシステムでは、サーバの機能の違いによって通信量や通信の性質が異なる。
【００２６】
次に、情報処理装置１がシステムを評価可能な情報を算出する処理について説明する。演算部４は各サーバが発信するデータ量を発信元サーバと受信先サーバの組み合わせ毎に算出する。また、演算部４は各サーバが受信したデータに対して応答するデータ量を発信元サーバと受信先サーバの組み合わせ毎に算出する。また、演算部４は発信時および応答時の各結線に伝送されるデータ量を算出する。また、演算部４はサーバが発信するデータ量を考慮した重み付ホップ数を発信元サーバと受信先サーバの組み合わせ毎に算出する。また、演算部４はサーバが受信したデータに対して応答するデータ量を考慮した重み付ホップ数を発信元サーバと受信先サーバの組み合わせ毎に算出する。また、演算部４は発信および応答の重み付ホップ数から平均ホップ数を算出する。
【００２７】
［発信通信量］
まず、演算部４が発信元サーバと受信先サーバの組み合わせ毎に各サーバの発信するデータ量を算出する処理を説明する。演算部４は発信通信量算出部４１として機能し、サーバ群情報５０、発信データ量情報６０、および比率情報７０から発信量情報テーブル１００を作成する。図９は発信量情報テーブル１００である。発信量情報テーブル１００はシステム１０内の一つのサーバが他のサーバに発信するデータ量を記憶するテーブルである。発信量情報テーブル１００は発信元サーバ識別子１０１、受信先サーバ識別子１０２、および発信データ量１０３を有する。発信元サーバ識別子１０１は発信元のサーバを特定する識別子である。受信先サーバ識別子１０２は受信先のサーバを特定する識別子である。発信データ量１０３は発信元サーバから受信先サーバに送信されるデータ量である。以下、演算部４が発信量情報テーブル１００を生成する処理を説明する。図１０は発信量情報テーブル１００を生成する処理のフローチャートである。
【００２８】
発信通信量算出部４１は発信量情報テーブル１００を生成する処理において、定数および変数として「ｉ」、「ｊ」、「Ｆｒｏｍ［ｉ］」、「Ｔｏ［ｊ］」、「ＦｒｏｍＮｕｍ」、「ＴｏＮｕｍ」、「ＦｒｏｍＯｕｔｐｕｔ」、「ＳｅｎｄＡｍｏｕｎｔ」、「Ｗｅｉｇｈｔ」を使用する。「ＦｒｏｍＮｕｍ」は発信元サーバ群に含まれるサーバの台数である。「ＴｏＮｕｍ」は受信先サーバ群に含まれるサーバの台数である。「ｉ」は発信元サーバ群に含まれるサーバを特定する変数である。例えば、サーバ群Ａが８台の発信元サーバを有する場合、「ｉ」は０から７の値になる。「ｊ」は受信先サーバ群に含まれるサーバを特定するための変数である。例えば、サーバ群Ａが８台の受信先サーバを有する場合、「ｊ」は０から７の値になる。「Ｆｒｏｍ［ｉ］」は発信元サーバ群に属するサーバを特定する発信元のサーバ識別子である。「Ｔｏ［ｊ］」は受信先サーバ群に属するサーバを特定する受信先のサーバ識別子である。「ＦｒｏｍＯｕｔｐｕｔ」は発信元サーバが発信するデータ量である。「Ｗｅｉｇｈｔ」は発信元サーバが発信する全てのデータの内、受信先サーバ群に送信するデータに対する割合を定めた値である。「ＳｅｎｄＡｍｏｕｎｔ」は発信元サーバが受信先サーバに送信するデータ量である。
【００２９】
発信通信量算出部４１は比率情報７０、サーバ群情報５０および発信データ量情報６０を記憶部３から読み出して、初期情報を取得する（Ｓ０１）。発信通信量算出部４１は「ＦｒｏｍＮｕｍ」に比率情報７０の発信元サーバ群７１に対応する発信元サーバ群のサーバ数５２をサーバ群情報５０から読み出して設定する。発信通信量算出部４１は「ＴｏＮｕｍ」に比率情報７０の受信先サーバ群７２に対応する受信先サーバ群のサーバ数５２をサーバ群情報５０から読み出して設定する。発信通信量算出部４１は「ＦｒｏｍＯｕｔｐｕｔ」に発信データ量情報６０の発信データ量６２に応じて発信元サーバ群の各サーバが発信するデータ量を設定する。発信通信量算出部４１は「Ｗｅｉｇｈｔ」に比率情報７０の割合７３に応じて比率を設定する。
【００３０】
発信通信量算出部４１は発信量情報テーブル１００の発信元サーバ識別子１０１および受信先サーバ識別子１０２に、システム１０の全てのサーバが発信元サーバあるいは受信先サーバになるときの組み合わせを登録する（Ｓ０２）。発信通信量算出部４１は発信量情報テーブル１００から一つのレコードを読み出す（Ｓ０３）。
【００３１】
発信通信量算出部４１は発信量情報テーブル１００のレコード読み出しに成功したか否かを判別する（Ｓ０４）。全レコードの読出しが終了している場合（Ｓ０４：Ｎｏ）、発信通信量算出部４１は発信量情報テーブル１００の作成を完了しているため発信データ量の算出処理を終了する。全レコードの読出しが完了していない場合（Ｓ０４：Ｙｅｓ）、発信通信量算出部４１は変数「ｉ」を「０」に初期化する（Ｓ０５）。
【００３２】
発信通信量算出部４１は、変数「ｉ」の値が「ＦｒｏｍＮｕｍ」よりも小さいか否かを判別する（Ｓ０４）。発信通信量算出部４１は変数「ｉ」の値が「ＦｒｏｍＮｕｍ」以上の場合（Ｓ０４：Ｎｏ）、発信通信量算出部４１はステップＳ０３の処理に戻る。変数「ｉ」の値が「ＦｒｏｍＮｕｍ」以上の場合、発信量情報テーブル１００の全ての発信元サーバについて登録が完了した状態である。一方、変数「ｉ」の値が「ＦｒｏｍＮｕｍ」よりも小さい場合、発信通信量算出部４１は変数「ｊ」を「０」に初期化する（Ｓ０７）。
【００３３】
発信通信量算出部４１は、変数「ｊ」の値が「ＴｏＮｕｍ」よりも小さいか否かを判別する（Ｓ０８）。発信通信量算出部４１は変数「ｊ」の値が「ＴｏＮｕｍ」以上の場合（Ｓ０８：Ｎｏ）、変数「ｉ」の値を「１」だけ増し（Ｓ０９）、ステップＳ０６に移行する。一方、発信通信量算出部４１は「ｊ」の値が「ＴｏＮｕｍ」以上の場合（Ｓ０８：Ｙｅｓ）、発信元サーバ群のサーバが発信する発信データ量を算出する（Ｓ１０）。発信通信量算出部４１は発信元サーバが発信するデータ量の受信先サーバ群に送信する割合７３を乗算し、受信先サーバ群に含まれるサーバ数５２で除算することにより発信データ量「ＳｅｎｄＡｍｏｕｎｔ」を算出する。発信通信量算出部４１は具体的には式「ＳｅｎｄＡｍｏｕｎｔ」＝「ＦｒｏｍＯｕｔｐｕｔ」＊「Ｗｅｉｇｈｔ」／「ＴｏＮｕｍ」により「ＳｅｎｄＡｍｏｕｎｔ」の値を算出する。サーバＡ群のサーバからサーバＡ群のサーバにデータを転送する場合、発信量は、「１．００」×「０．９５」／「８」＝「０．１１９」になる。サーバＡ群のサーバからサーバＢ群のサーバにデータを転送する場合、発信量は、「１．００」×「０．０５」／「２」＝「０．０２５」になる。サーバＢ群のサーバからサーバＢ群のサーバにデータを転送する場合、発信量は、「０．００」×「０．００」／「２」＝「０．０００」になる。サーバＢ群のサーバからサーバＡ群のサーバにデータを転送する場合、発信量は、「０．００」×「０．００」／「８」＝「０．０００」になる。
【００３４】
発信通信量算出部４１は発信量情報テーブル１００に算出結果を格納する（Ｓ１１）。具体的には、発信通信量算出部４１は発信元サーバ識別子１０１に発信元サーバ群内の変数「ｉ」に対応するサーバ「Ｆｒｏｍ［ｉ］」を、受信先サーバ識別子１０２に受信先サーバ群内の変数「ｊ」に対応するサーバ「Ｔｏ［ｊ］」を、および発信データ量１０３に「ＳｅｎｄＡｍｏｕｎｔ」を格納する。発信通信量算出部４１は変数「ｊ」の値を１だけ増し（Ｓ１２）、ステップ（Ｓ０８）に移行する。発信通信量算出部４１は以上の処理をサーバ群の全ての組み合わせについて実行し、発信量情報テーブル１００を作成する。
【００３５】
［応答通信量］
次に、サーバ群の応答通信量について説明する。応答通信量はサーバが他サーバから受信したデータに対して応答する際に発信する応答情報のデータ量である。応答通信量は受信したデータに応じて変化するため、設計者は容易に定義することは困難である。応答通信量算出部４２は他のサーバから受信するデータ量に等しいデータ量を他のサーバに発信する応答通信量として算出する。本実施例では受信したデータ量に等しい量を応答するが、対象のアプリケーションによって応答通信量は受信したデータ量に等しい量ではなく、例えば、一定の割合にするなどの設定変更をすることは可能である。
【００３６】
応答通信量算出部４２は、各サーバが発信する応答通信量から応答量情報テーブル１１０を作成する。図１１は応答量情報テーブル１１０である。応答量情報テーブル１１０はシステム１０内の一つのサーバが他のサーバに応答として発信するデータ量を記憶するテーブルである。応答量情報テーブル１１０は発信元サーバ識別子１１１、受信先サーバ識別子１１２、および応答データ量１１３を有する。発信元サーバ識別子１１１は応答情報を発信する発信元のサーバを特定する識別子である。受信先サーバ識別子１１２は応答情報を受信する受信先のサーバを特定する識別子である。応答データ量１１３は発信元サーバ識別子１１１が受信先サーバ識別子１１２に送信するデータ量である。
【００３７】
［結線毎の通信量］
次に、各結線毎の通信量について説明する。平均通信量算出部４３は通信量情報テーブル１２０を生成する。図１２は通信量情報テーブル１２０である。通信量情報テーブル１２０は結線毎の通信データ量が格納される。通信量情報テーブル１２０は第一ノード識別子１２１、第一ポート番号１２２、第二ノード識別子１２３、第二ポート番号１２４、上り発信量１２５、下り発信量１２６、上り応答量１２７、および下り応答量１２８を有する。第一ノード識別子１２１は結線で結ばれるノードの組の一方のサーバ識別子あるいはスイッチ識別子である。第一ポート番号１２２は結線に接続する第一ノード識別子のポートの番号である。第二ノード識別子１２３は結線で結ばれるノードの組の他方のサーバ識別子あるいはスイッチ識別子である。第二ポート番号１２４は結線に接続する第二ノード識別子１２３のポートの番号である。通信量情報テーブル１２０の第一ノード識別子１２１、第一ポート番号１２２、第二ノード識別子１２３、および第二ポート番号１２４は結線情報８０のサーバ／スイッチ識別子８１、ポート番号８２、サーバ／スイッチ識別子８３、およびポート番号８４に対応する。
【００３８】
上り発信量１２５はサーバが発信するデータでかつノード間で上り方向に転送されるデータ量である。下り発信量１２６はサーバが発信するデータでかつノード間で下り方向に転送されるデータ量である。上り応答量１２７はサーバが応答するデータでかつノード間で上り方向に転送されるデータ量である。下り応答量１２８はサーバが応答するデータでかつノード間で下り方向に転送されるデータ量である。通信量情報テーブル１２０の発信量および応答量の上り方向および下り方向は、所定の基準により定める。例えば特定のノード群を定め、そのノード群に近づく方向に流れるときを上り方向、ノード群から離れる方向に流れるときを下り方向と定義する。本実施例では、図８において下に配置されたノードから上に配置されたノードの方向に流れる方向を上り方向とし、上に配置されたノードから下に配置されたノードの方向に流れる方向を下り方向とする。例えば、スイッチ３１からサーバ２９に流れるデータは上り方向である。スイッチ３３からサーバ２１に流れるデータは下り方向である。上り発信量１２５および下り発信量１２６は発信量情報テーブル１００から求める。上り応答量１２７および下り応答量１２８は応答量情報テーブル１１０から求める。
【００３９】
ここで、平均通信量算出部４３が実行する処理を説明する。図１３は平均通信量算出部４３が実行する処理のフローチャートである。
【００４０】
平均通信量算出部４３は結線情報８０を読出し通信量情報テーブル１２０の第一ノード識別子１２１、第一ポート番号１２２、第二ノード識別子１２３、第二ポート番号１２４に展開する（Ｓ２１）。平均通信量算出部４３は発信量情報テーブル１００の全てのレコードの処理が終了したか否かを判別する（Ｓ２２）。発信量情報テーブル１００の全てのレコードについて処理が終了している場合（Ｓ２２：Ｙｅｓ）、平均通信量算出部４３は処理を終了する。発信量情報テーブル１００に全てのレコードについて処理が終了していない場合（Ｓ２２：Ｎｏ）、平均通信量算出部４３は発信量情報テーブル１００の一つのレコードを読み出す（Ｓ２３）。
【００４１】
平均通信量算出部４３は変数情報、定数情報を初期化する（Ｓ２４）。本処理で使用する変数情報、定数情報は「Ｆｒｏｍ」、「Ｔｏ」、「Ｃｕｒｒｅｎｔ」および「Ｎｅｘｔ」である。「Ｆｒｏｍ」は発信元サーバを特定する情報である。「Ｔｏ」は受信先サーバを特定する情報である。「Ｃｕｒｒｅｎｔ」は現在の処理の対象のノードを特定する情報である。「Ｎｅｘｔ」は「Ｃｕｒｒｅｎｔ」の次にデータが移動する先のノードを特定する情報である。平均通信量算出部４３は「Ｆｒｏｍ」および「Ｔｏ」を発信量情報テーブル１００の発信元サーバ識別子１０１および受信先サーバ識別子１０２をそれぞれ対応付けることで初期化する。
【００４２】
平均通信量算出部４３は「Ｆｒｏｍ」の発信元サーバ情報を「Ｃｕｒｒｅｎｔ」に代入する（Ｓ２５）。平均通信量算出部４３は経路情報９０から「Ｔｏ」にデータを転送するための「Ｃｕｒｒｅｎｔ」のポートを特定する（Ｓ２６）。平均通信量算出部４３は結線情報からステップＳ２６で特定した「Ｃｕｒｒｅｎｔ」のポートに接続するノードを特定する（Ｓ２７）。平均通信量算出部４３は特定したノードを「Ｎｅｘｔ」に代入する（Ｓ２８）。平均通信量算出部４３は「Ｃｕｒｒｅｎｔ」と「Ｎｅｘｔ」とを接続する結線に対応する通信量情報テーブル１２０のレコードに現在の処理の対象の発信量情報テーブル１００のレコードの発信データ量１０３を加算する（Ｓ２９）。なお、平均通信量算出部４３は上り下りを判別して加算する。
【００４３】
平均通信量算出部４３は「Ｎｅｘｔ」と「Ｔｏ」とが同じノードを示すか否かを判別する（Ｓ３０）。「Ｎｅｘｔ」と「Ｔｏ」とが同じノードを示さない場合（Ｓ３０：Ｎｏ）、平均通信量算出部４３は「Ｎｅｘｔ」のノードで「Ｃｕｒｒｅｎｔ」を更新する（Ｓ３１）。平均通信量算出部４３はステップＳ２６に移行する。一方、「Ｎｅｘｔ」と「Ｔｏ」とが同じノードを示す場合（Ｓ３０：Ｙｅｓ）、応答通信量算出部４２は「Ｆｒｏｍ」と「Ｔｏ」とによって応答量情報テーブル１１０のレコードを特定し、発信データ量１０３を登録する（Ｓ３２）。その後、ステップＳ２２に移行する。
【００４４】
以上の処理によって平均通信量算出部４３は通信量情報テーブル１２０を生成する。また、ステップＳ３２によって平均通信量算出部４３は応答量情報テーブル１１０の応答データ量１１３を登録する。なお、平均通信量算出部４３は上り応答量１２７および下り応答量１２８について、上り発信量１２５および下り発信量１２６を求めた手順と同様にして生成する。応答量１２７および下り応答量１２８を求める場合、平均通信量算出部４３は発信量情報テーブル１００ではなく応答量情報テーブル１１０のレコードを読み出す。評価決定部４７は算出した結果情報を、出力部５を介して出力する。
【００４５】
以下、システム１０に対する通信量算出までの具体例を説明する。
【００４６】
図１４はサーバ２１がサーバ２２に発信するデータ量を各結線毎に積算するときの説明図である。サーバ２１とサーバ２２とはスイッチ３３を介して接続する。サーバ２１がサーバ２２に対して発信するデータ量は「０．１１９」である。従って、「０．１１９」の大きさのデータ量がサーバ２１とスイッチ３３の間の結線の上り方向に流れる。また、「０．１１９」の大きさのデータ量がスイッチ３３とサーバ２２の間の結線の下り方向に流れる。平均通信量算出部４３は図１４のスイッチ３３のポート１とサーバ２１のポート１とを結ぶ結線に「０．１１９／０．０００」を設定する。「０．１１９／０．０００」の左側「０．１１９」は結線の上り方向のデータ量を示し、右側「０．０００」は結線の下り方向のデータ量を示す。以降同様とする。平均通信量算出部４３は図１４のスイッチ３３のポート２とサーバ２２のポート１とを結ぶ結線に「０．０００／０．１１９」を設定する。
【００４７】
図１５はサーバ２１がサーバ２３およびサーバ２４に発信するデータ量を各結線毎に積算するときの説明図である。サーバ２１とサーバ２３とサーバ２４とはスイッチ３３を介して接続する。サーバ２１がサーバ２３あるいはサーバ２４に対して発信するデータ量は「０．１１９」である。従って、サーバ２１がサーバ２３に発信するデータ量として「０．１１９」がサーバ２１とスイッチ３３の間の結線の上り方向に流れる。また、「０．１１９」の大きさのデータ量がスイッチ３３とサーバ２３の間の結線の下り方向に流れる。サーバ２１がサーバ２４に発信するデータ量として「０．１１９」がサーバ２１とスイッチ３３の間の結線の上り方向に流れる。また、「０．１１９」の大きさのデータ量がスイッチ３３とサーバ２４の間の結線の下り方向に流れる。平均通信量算出部４３は図１５のスイッチ３３のポート１とサーバ２１のポート１とを結ぶ結線の上り方向に「０．３５６／０．０００」を設定する。「０．３５６」はサーバ２１からサーバ２２、２３、および２４にデータを発信する場合に、サーバ２１とスイッチ３３とを結ぶ結線に流れるデータ量の合計値である。平均通信量算出部４３は図１５のスイッチ３３のポート３とサーバ２３のポート１とを結ぶ結線に「０．０００／０．１１９」を設定する。平均通信量算出部４３は図１５のスイッチ３３のポート４とサーバ２４のポート１とを結ぶ結線に「０．０００／０．１１９」を設定する。
【００４８】
図１６はサーバ２１がサーバ２５に発信するデータ量を各結線毎に積算するときの説明図である。サーバ２１とサーバ２５とはスイッチ３３、スイッチ３１、およびスイッチ３４を介して接続するものとする。サーバ２１がサーバ２５に対して発信するデータ量は「０．１１９」である。従って、サーバ２１がサーバ２５に発信するデータ量である「０．１１９」は、サーバ２１とスイッチ３３の間の結線の上り方向、スイッチ３３とスイッチ３１の間の結線の上り方向、スイッチ３１とスイッチ３４の間の結線の下り方向、およびスイッチ３３とサーバ２５の間の結線の下り方向に流れる。平均通信量算出部４３は図１６のスイッチ３３のポート１とサーバ２１のポート１とを結ぶ結線の上り方向に「０．４７５／０．０００」を設定する。「０．４７５」はサーバ２１からサーバ２２、２３、２４、および２５にデータを発信する場合に、サーバ２１とスイッチ３３とを結ぶ結線に流れるデータ量の合計値である。平均通信量算出部４３は図１６のスイッチ３３のポート５とスイッチ３１のポート１とを結ぶ結線に「０．１１９／０．０００」を設定する。平均通信量算出部４３は図１６のスイッチ３３のポート５とスイッチ３１のポート１とを結ぶ結線に「０．０００／０．１１９」を設定する。平均通信量算出部４３は図１６のスイッチ３４のポート１とサーバ２５のポート１とを結ぶ結線に「０．０００／０．１１９」を設定する。
【００４９】
図１７はサーバ２１がサーバ２６に発信するデータ量を各結線毎に積算するときの説明図である。サーバ２１とサーバ２６とはスイッチ３３、スイッチ３１、およびスイッチ３４を介して接続するものとする。サーバ２１がサーバ２６に対して発信するデータ量は「０．１１９」である。従って、サーバ２１がサーバ２６に発信するデータ量である「０．１１９」は、サーバ２１とスイッチ３３の間の結線の上り方向、スイッチ３３とスイッチ３１の間の結線の上り方向、スイッチ３１とスイッチ３４の間の結線の下り方向、およびスイッチ３３とサーバ２６の間の結線の下り方向に流れる。平均通信量算出部４３は図１７のスイッチ３３のポート１とサーバ２１のポート１とを結ぶ結線の上り方向に「０．５９４／０．０００」を設定する。「０．５９４」はサーバ２１からサーバ２２、２３、２４、２５、および２６にデータを発信する場合に、サーバ２１とスイッチ３３とを結ぶ結線に流れるデータ量の合計値である。平均通信量算出部４３は図１７のスイッチ３３のポート５とスイッチ３１のポート１とを結ぶ結線に「０．２３８／０．０００」を設定する。平均通信量算出部４３は図１７のスイッチ３３のポート５とスイッチ３４のポート１とを結ぶ結線に「０．０００／０．２３８」を設定する。平均通信量算出部４３は図１７のスイッチ３４のポート１とサーバ２６のポート１とを結ぶ結線に「０．０００／０．１１９」を設定する。
【００５０】
平均通信量算出部４３は同様にサーバ２１からサーバ２７およびサーバ２８に発信するデータ量を各結線毎に積算する。サーバ２１とサーバ２７およびサーバ２８とはスイッチ３３、スイッチ３２、およびスイッチ３４を介して接続するものとする。
【００５１】
次に平均通信量算出部４３はサーバ２１からサーバ２９およびサーバ３０に発信するデータ量を各結線毎に積算する。サーバ２１とサーバ２９とはスイッチ３３およびスイッチ３１を介して接続するものとする。サーバ２１とサーバ３０とはスイッチ３３およびスイッチ３２を介して接続するものとする。サーバ２１がサーバ２９あるいはサーバ３０に対して発信するデータ量は「０．０２５」である。図１８はサーバ２１とサーバ２９およびサーバ３０に発信するデータ量を各結線毎に積算するときの説明図である。平均通信量算出部４３は図１８のスイッチ３３のポート１とサーバ２１のポート１とを結ぶ結線の上り方向に「０．８８１／０．０００」を設定する。「０．８８１」はサーバ２１からサーバ２２乃至サーバ３０にデータを発信する場合に、サーバ２１とスイッチ３３とを結ぶ結線に流れるデータ量の合計値である。平均通信量算出部４３は図１８のスイッチ３３のポート５とスイッチ３１のポート１とを結ぶ結線に「０．２６３／０．０００」を設定する。平均通信量算出部４３は図１８のスイッチ３１のポート３とサーバ２９のポート１とを結ぶ結線に「０．０２５／０．０００」を設定する。平均通信量算出部４３は図２１のスイッチ３３のポート５とスイッチ３２のポート１とを結ぶ結線に「０．２６３／０．０００」を設定する。平均通信量算出部４３は図１８のスイッチ３２のポート４とサーバ３０のポート１とを結ぶ結線に「０．０２５／０．０００」を設定する。
【００５２】
以上から平均通信量算出部４３はサーバ２１が発信するデータの結線毎の通信量を算出する。平均通信量算出部４３他のサーバが発信するデータについても同様に各結線毎の通信量を算出する。図１９は各サーバが発信したデータを経路毎に積算した状態を示す図である。平均通信量算出部４３はシステム１０内の各サーバが応答するデータについても同様に各結線毎の通信量を算出する。平均通信量算出部４３は、システム１０内の各サーバが発信および応答のために発信するデータの通信量を各結線毎に積算する。図２０は各結線のデータ通信量の積算結果を算出した状態の説明図である。平均通信量算出部４３は発信と応答のデータの平均値を算出する。図２１は各結線のデータ通信量の平均値を算出した状態を示す。平均通信量算出部４３は算出結果を出力する。
【００５３】
設計者は出力された算出結果からシステム１０の評価を行う。情報処理装置１はシステム１０の定義情報を取得することによって、システム１０のネットワークで通信されるデータ量の偏りなどの状態を評価可能な結果を出力することができる。設計者はシステム１０のネットワークの各結線の通信量を把握することができる。例えば、図２１の結果からスイッチ３１およびスイッチ３２とスイッチ３３およびスイッチ３４の間の通信量は「１．９５」である。設計者は、例えば、スイッチあるいはサーバの性能と通信されるデータ量とを比較することで、結線を追加するか否かを判断することができる。設計者は「１．９５」が大きいと考えれば、スイッチ３１およびスイッチ３２とスイッチ３３およびスイッチ３４の間の結線を増加させるなどの対応が可能である。また、とサーバ２９およびサーバ３０はスイッチ３１およびスイッチ３２に結線されているが、スイッチ３１あるいはスイッチ３２のいずれかに結線されていれば処理性能に問題が無いことが判断できる。
【００５４】
［ホップ数］
次に、システムの平均ホップ数の算出について説明する。本実施例のホップ数は発信元サーバから受信先サーバまでに通過するスイッチの数である。
【００５５】
図２２はホップ数情報テーブル１３０である。ホップ数情報テーブルはデータが発信元サーバから受信先サーバに通信されるときの発信時および応答時の重み付ホップ数を示す。重み付ホップ数はホップ数に通信データ量を重み情報として関連付けた値である。重み付ホップ数はサーバ間のホップ数とサーバ間で通信されるデータ量とから算出される。例えば、サーバ２１とサーバ２２とから求まるホップ数は「１」であり、サーバ２１とサーバ３０とから定まるホップ数は「２」である。また、サーバ２１とサーバ２２との間で通信されるデータ量は「０．１１９」であり、サーバ２１とサーバ３０との間で通信されるデータ量は「０．０２５」である。従い、サーバ２１とサーバ２２の間の重み付ホップ数の大きさは「０．１１９」×「１」＝「０．１１９」であり、サーバ２１とサーバ３０の間の重み付ホップ数の大きさ「０．０２５」×「２」＝「０．０５」である。
【００５６】
ホップ数情報テーブル１３０は発信元サーバ識別子１３１、受信先サーバ識別子１３２、発信ホップ数１３３、および応答ホップ数１３４を有する。発信元サーバ識別子１３１は発信元のサーバを識別する識別子情報である。受信先サーバ識別子１３２は受信先のサーバを識別する識別子情報である。発信ホップ数１３３は発信時の重み付ホップ数である。応答ホップ数１３４は応答時の重み付ホップ数である。
【００５７】
ここで、発信ホップ数算出部４４が実行する処理を説明する。図２３は発信ホップ数算出部４４がシステム１０内の各サーバがデータを発信したときの重み付ホップ数を算出し、ホップ数情報テーブル１３０に格納する処理のフローチャートである。図２４は応答ホップ数算出部４５がシステム１０内の各サーバがデータを発信したときの重み付ホップ数を算出し、ホップ数情報テーブル１３０に格納する処理のフローチャートである。
【００５８】
発信ホップ数算出部４４は発信量情報テーブル１００の全てのレコードについて処理を終了したか否かを判別する（Ｓ４１）。発信量情報テーブル１００の全てのレコードについて処理が終了している場合（Ｓ４１：Ｙｅｓ）、発信ホップ数算出部４４は処理を終了する。一方、発信量情報テーブル１００の全てのレコードについて処理が終了していない場合（Ｓ４１：Ｎｏ）、発信ホップ数算出部４４は発信量情報テーブル１００の一つのレコードを読み出す（Ｓ４２）。
【００５９】
発信ホップ数算出部４４は変数情報、定数情報を初期化する（Ｓ４３）。本処理で使用する情報は「Ｆｒｏｍ」、「Ｔｏ」、「Ｃｕｒｒｅｎｔ」、「Ｎｅｘｔ」、「ｈｏｐ」、および「ｗｈｏｐ」である。「Ｆｒｏｍ」は発信元サーバを特定する情報である。「Ｔｏ」は受信先サーバを特定する情報である。「Ｃｕｒｒｅｎｔ」は現在の処理の対象のノードを特定する情報である。「Ｎｅｘｔ」は「Ｃｕｒｒｅｎｔ」の次にデータが移動する先のノードを特定する情報である。「ｈｏｐ」は「Ｆｒｏｍ」から「Ｃｕｒｒｅｎｔ」までのホップ数である。「ｗｈｏｐ」は「Ｆｒｏｍ」から「Ｔｏ」までの重み付ホップ数である。発信ホップ数算出部４４は発信量情報テーブル１００の発信元サーバ識別子１０１に基づき「Ｆｒｏｍ」を設定し、受信先サーバ識別子１０２に基づき「Ｔｏ」を設定する。発信ホップ数算出部４４は「ｈｏｐ」を「０」に初期化する。
【００６０】
発信ホップ数算出部４４は「Ｆｒｏｍ」の発信元サーバ識別子１３１を「Ｃｕｒｒｅｎｔ」に設定する（Ｓ４４）。発信ホップ数算出部４４は経路情報９０から、「Ｔｏ」にデータを送信するための「Ｃｕｒｒｅｎｔ」のポートを特定する（Ｓ４５）。発信ホップ数算出部４４は結線情報８０からステップＳ４５で特定した「Ｃｕｒｒｅｎｔ」のポートに接続するノードを特定する（Ｓ４６）。発信ホップ数算出部４４は特定したノードを「Ｎｅｘｔ」に設定する（Ｓ４７）。発信ホップ数算出部４４は「ｈｏｐ」に「１」を加える（Ｓ４８）。
【００６１】
発信ホップ数算出部４４は「Ｎｅｘｔ」と「Ｔｏ」とが同一のノードか否かを判定する（Ｓ４９）。「Ｎｅｘｔ」と「Ｔｏ」とが同じノードではない場合（Ｓ４９：Ｎｏ）、発信ホップ数算出部４４は「Ｎｅｘｔ」のノードで「Ｃｕｒｒｅｎｔ」を更新する（Ｓ５０）。更新後、発信ホップ数算出部４４はステップＳ４５に移行する。一方、「Ｎｅｘｔ」と「Ｔｏ」とが同じノードである場合（Ｓ４９：Ｙｅｓ）、発信ホップ数算出部４４は発信元サーバから受信先サーバに送信するデータ量にホップ数を乗算することにより重み付ホップ数を算出する（Ｓ５１）。具体的には、発信ホップ数算出部４４は「ｗｈｏｐ」＝「ｈｏｐ」＊「発信データ量１０３」によって算出する。サーバ２１がデータを発信する場合、サーバ２２、２３、２４、２５、２６、２７、２８、２９、および３０が受信先サーバになる。サーバ２１からサーバ２２、２３、あるいは２４にデータを送信する場合、送信データ量は「０．１１９」でありホップ数は「１」である。よって重み付の発信ホップ数は、「０．１１９」×「１」＝「０，１１９」になる。サーバ２１からサーバ２５、２６、２７、あるいは２８にデータを送信する場合、送信データ量は「０．１１９」でありホップ数は「３」である。よって重み付の発信ホップ数は、「０．１１９」×「３」＝「０，３５６」になる。サーバ２１からサーバ２９あるいは３０にデータを送信する場合、送信データ量は「０．０２５」でありホップ数は「５」である。よって重み付の発信ホップ数は、「０．０２５」×「２」＝「０，０５０」になる。
【００６２】
発信ホップ数算出部４４は「Ｆｒｏｍ」を発信元サーバ識別子１３１に格納し、「Ｔｏ」を受信先サーバ識別子１３２に格納し、「ｗｈｏｐ」を発信ホップ数１３３に格納する（Ｓ５２）。その後、発信ホップ数算出部４４はステップＳ４１に移行する。以上の処理によって、発信ホップ数算出部４４はホップ数情報テーブル１３０の発信に対する発信ホップ数１３３を生成する。
【００６３】
次に、応答ホップ数算出部４５はホップ数情報テーブル１３０の応答ホップ数１３４を格納する処理を説明する。応答ホップ数算出部４５は応答量情報テーブル１１０の一つのレコードを読み出す（Ｓ６１）。応答ホップ数算出部４５は応答量情報テーブル１１０の全てのレコードについて処理を終了したか否かを判別する（Ｓ６２）。応答量情報テーブル１１０の全てのレコードについて処理が終了している場合（Ｓ６２：Ｙｅｓ）、応答ホップ数算出部４５は処理を終了する。一方、応答量情報テーブル１１０の全てのレコードについて処理が終了していない場合（Ｓ６２：Ｎｏ）、応答ホップ数算出部４５は変数情報、定数情報を初期化する（Ｓ６３）。本処理で使用する情報は「Ｆｒｏｍ」、「Ｔｏ」、「Ｃｕｒｒｅｎｔ」、「Ｎｅｘｔ」、「ｈｏｐ」、および「ｗｈｏｐ」である。「Ｆｒｏｍ」は発信元サーバを特定する情報である。「Ｔｏ」は受信先サーバを特定する情報である。「Ｃｕｒｒｅｎｔ」は現在の処理の対象のノードを特定する情報である。「Ｎｅｘｔ」は「Ｃｕｒｒｅｎｔ」の次にデータが移動する先のノードを特定する情報である。「ｈｏｐ」は「Ｆｒｏｍ」から「Ｃｕｒｒｅｎｔ」までのホップ数である。「ｗｈｏｐ」は「Ｆｒｏｍ」から「Ｔｏ」までの重み付ホップ数である。応答ホップ数算出部４５は応答量情報テーブル１１０の発信元サーバ識別子１１１に基づき「Ｆｒｏｍ」を設定し、受信先サーバ識別子１１２に基づき「Ｔｏ」を設定する。応答ホップ数算出部４５は「ｈｏｐ」を「０」に初期化する。
【００６４】
応答ホップ数算出部４５は「Ｆｒｏｍ」の発信元サーバ識別子１１１を「Ｃｕｒｒｅｎｔ」に設定する（Ｓ６４）。応答ホップ数算出部４５は経路情報９０から、「Ｔｏ」にデータを送信するための「Ｃｕｒｒｅｎｔ」のポートを特定する（Ｓ６５）。応答ホップ数算出部４５は結線情報８０からステップＳ６５で特定した「Ｃｕｒｒｅｎｔ」のポートに接続するノードを特定する（Ｓ６６）。応答ホップ数算出部４５は特定したノードを「Ｎｅｘｔ」に設定する（Ｓ６７）。応答ホップ数算出部４５は「ｈｏｐ」に「１」を加える（Ｓ６８）。
【００６５】
応答ホップ数算出部４５は「Ｎｅｘｔ」と「Ｔｏ」とが同一のノードか否かを判定する（Ｓ６９）。「Ｎｅｘｔ」と「Ｔｏ」とが同じノードではない場合（Ｓ６９：Ｎｏ）、応答ホップ数算出部４５は「Ｎｅｘｔ」のノードで「Ｃｕｒｒｅｎｔ」を更新する（Ｓ７０）。更新後、応答ホップ数算出部４５はステップＳ６５に移行する。一方、「Ｎｅｘｔ」と「Ｔｏ」とが同じノードである場合（Ｓ６９：Ｙｅｓ）、応答ホップ数算出部４５は発信元サーバから受信先サーバに送信するデータ量にホップ数を乗算することにより応答ホップ数を算出する（Ｓ７１）。具体的には、応答ホップ数算出部４５は「ｗｈｏｐ」＝「ｈｏｐ」＊「応答データ量１１３」によって算出する。
【００６６】
応答ホップ数算出部４５は「Ｆｒｏｍ」を発信元サーバ識別子１３１に格納し、「Ｔｏ」を受信先サーバ識別子１３２に格納し、「ｗｈｏｐ」を発信ホップ数１３３に格納する（Ｓ７２）。その後、応答ホップ数算出部４５はステップＳ４１に移行する。以上の処理によって、発信ホップ数算出部４４はホップ数情報テーブル１３０の発信に対する応答ホップ数１３４を生成する。
【００６７】
平均ホップ数算出部４６は平均ホップ数を算出する。具体的には、平均ホップ数算出部４６はホップ数情報テーブル１３０の発信ホップ数１３３と応答ホップ数１３４との合計値を求め、求めた合計値を発信量と応答量とを合計した総通信量で割ることにより、平均ホップ数を算出する。評価決定部４７は算出した結果情報を、出力部５を介して出力する。以下に平均ホップ数の算出の具体例を説明する。
【００６８】
サーバ２１はサーバ２２、サーバ２３、およびサーバ２４の３台のサーバにスイッチ３３を介して接続する。サーバ２１はサーバ２５、サーバ２６、サーバ２７、およびサーバ２８の４台のサーバにスイッチ３３、スイッチ３１、およびスイッチ３４を介して接続する。サーバ２１はサーバ２９およびサーバ３０の２台のサーバにスイッチ３３およびスイッチ３１を介して接続する。サーバ２１が発信するデータの重み付ホップ数の合計は、「０．１１９」×「３」台＋「０．３５６」×「４」台＋「０．０５０」×「２」台＝１．８３になる。本実施例ではサーバ２１からサーバ２８までは同様のネットワーク構成である。よってサーバ２１からサーバ２８までの重み付の発信ホップ数の合計は「１．８３」×「８」＝「１４．６４」になる。サーバ２９が発信するデータの重み付の発信ホップ数の合計は「０」である。本実施例ではサーバ２９とサーバ３０は同様のネットワーク構成である。よってサーバ２９とサーバ３０の重み付の発信ホップ数の合計は「０」である。以上より、システム１０の重み付の発信ホップ数の合計は「１４．６４」になる。
【００６９】
同様に、平均ホップ数算出部４６は各サーバの重み付の応答ホップ数の合計を算出する。サーバ２１が応答するデータの重み付ホップ数の合計は、「０．１１９」×「３」台＋「０．３５６」×「４」台＝１．７８になる。本実施例ではサーバ２１からサーバ２８までは同様のネットワーク構成である。よってサーバ２１からサーバ２８までの重み付ホップ数応答の合計は「１．７８」×「８」＝「１４．３４」になる。サーバ２９が応答するデータの重み付の応答ホップ数の合計は「０．４」である。本実施例ではサーバ２９とサーバ３０は同様のネットワーク構成である。よってサーバ２９とサーバ３０の重み付の応答ホップ数の合計は「０．８」である。以上より、システム１０の重み付の応答ホップ数の合計は「１４．３４」＋「０．８」＝「１５．０４」になる。平均ホップ数は（１４．６４＋１５．０４）／（１．００×８×２）＝１．８５５になる。
【００７０】
設計者は出力された算出結果からシステム１０の評価を行う。情報処理装置１はシステム１０の定義情報を取得することによって、システム１０のネットワークで通信されるデータ量の偏りなどの状態を評価可能な結果を出力することができる。設計者はシステム１０のネットワークの重み付のホップ数を把握することができる。設計者は重み付ホップ数の算出結果からシステム１０の構成を改良することができる。図２５はシステム１０の構成を改良したネットワーク構成例である。サーバ２７およびサーバ２８の配置とサーバ２９およびサーバ３０の配置とを変更した。この構成によってサーバ２１乃至サーバ２４とサーバ２７およびサーバ２８のホップ数が「３」から「２」に減少するため、システム全体の重み付ホップ数は減少する。
【００７１】
以上に説明した情報処理装置１は不均等な通信量のサーバ群を含むシステムに対するシミュレーションができる。入出力サーバと計算サーバとを共通したネットワークで結線することによって、ネットワークの設計のコストの削減が可能になる。さらに情報処理装置１応答通信量を含めたシミュレーションができる。
【符号の説明】
【００７２】
１  情報処理装置
２  入力部
３  記憶部
４  演算部
５  出力部
６  バス
７  通信量算出プログラム
４１  発信通信量算出部
４２  応答通信量算出部
４３  平均通信量算出部
４４  発信ホップ数算出部
４５  応答ホップ数算出部
４６  平均ホップ数算出部
４７  評価決定部
【図１】
2010220103.tif 000003
【図２】
2010220103.tif 000004
【図３】
2010220103.tif 000005
【図４】
2010220103.tif 000006
【図５】
2010220103.tif 000007
【図６】
2010220103.tif 000008
【図７】
2010220103.tif 000009
【図８】
2010220103.tif 000010
【図９】
2010220103.tif 000011
【図１０】
2010220103.tif 000012
【図１１】
2010220103.tif 000013
【図１２】
2010220103.tif 000014
【図１３】
2010220103.tif 000015
【図１４】
2010220103.tif 000016
【図１５】
2010220103.tif 000017
【図１６】
2010220103.tif 000018
【図１７】
2010220103.tif 000019
【図１８】
2010220103.tif 000020
【図１９】
2010220103.tif 000021
【図２０】
2010220103.tif 000022
【図２１】
2010220103.tif 000023
【図２２】
2010220103.tif 000024
【図２３】
2010220103.tif 000025
【図２４】
2010220103.tif 000026
【図２５】
2010220103.tif 000027