(57)【要約】      （修正有）【課題】収集したリソースおよび課金データを基にして統計学的手法を用いてリソース同士の静的・動的のリレーション機能の結果及びそれに基づいたリソース使用量の予測を算出・表示する仮想化機構での共分散構造分析によるリソース課金管理・分析装置を提供する。【解決手段】クライアント及び外部システムからリソース実測値及びリソース課金情報を読み込み、静的分析処理部１０６にてＧＰＵによる超並列処理を利用して平均値を算出し、平均値からＧＰＵによる行列計算を利用して標本共分散を算出し、相関関係、回帰係数及び業務との関連性を算出して画面表示し、動的分析処理部１１９にてＧＰＵによる超並列処理を利用して相関関係、回帰係数、業務との関連性及びリソース使用量の将来予測を算出して画面表示する。【選択図】図２
2016189125.tif 000002
【特許請求の範囲】
【請求項１】
仮想化環境におけるリソース課金管理を実行するリソース課金管理システムであって、
クライアントおよび外部システムから複数の仮想サーバのリソース実測値およびリソース課金情報を読み込んで分析を行い、瞬時的な分析値を算出する静的分析装置と、
前記静的分析装置による前記瞬時的な分析値を所定期間収集して分析し、リソースの将来予測を算出する動的分析装置と、を備え、
前記静的分析装置は、前記読み込んだリソース実測値及びリソース課金情報の平均値を算出し、当該平均値と複数の仮想サーバのそれぞれの前記リソース実測値又は前記リソース課金情報とから標本共分散を算出し、当該標本共分散から前記仮想サーバ間の相関関係を示すＶＭ相関関係を算出し、当該ＶＭ相関関係を出力する、
リソース課金管理システム。
【請求項２】
請求項１において、
前記静的分析装置は、前記標本共分散から前記仮想サーバにおけるリソース間の相関関係を示すリソース項目相関関係を算出し、当該リソース項目相関関係を出力する、リソース課金管理システム。
【請求項３】
請求項１において、
前記静的分析装置は、前記ＶＭ相関関係にガウス消去法を適用して行列式を算出し、当該行列式に基づいて前記仮想サーバの偏回帰係数であるＶＭ偏回帰係数を算出し、当該ＶＭ偏回帰係数を出力する、リソース課金管理システム。
【請求項４】
請求項２において、
前記静的分析装置は、前記リソース項目相関関係にガウス消去法を適用して行列式を算出し、当該行列式に基づいて前記仮想サーバのリソースの偏回帰係数であるリソース項目偏回帰係数を算出し、当該リソース項目偏回帰係数を出力する、リソース課金管理システム。
【請求項５】
請求項１において、
前記静的分析装置は、前記標本共分散から前記仮想サーバと複数の業務のそれぞれとの間の影響度を示す影響指標を算出し、当該影響指標から前記仮想サーバと前記複数の業務との間の関連性を示す業務間関係を算出し、当該業務間関係を出力する、リソース課金管理システム。
【請求項６】
請求項１において、
前記動的分析装置は、前記ＶＭ相関関係の単純移動平均を算出して前記ＶＭ相関関係の将来予測を実行し、当該ＶＭ相関関係の将来予測を出力する、リソース課金管理システム。
【請求項７】
請求項２において、
前記動的分析装置は、前記リソース項目相関関係の単純移動平均を算出して前記リソース項目相関関係の将来予測を実行し、当該リソース項目相関関係の将来予測を出力する、リソース課金管理システム。
【請求項８】
請求項３において、
前記動的分析装置は、前記ＶＭ偏回帰係数の単純移動平均を算出して前記ＶＭ偏回帰係数の将来予測を実行し、当該ＶＭ偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項９】
請求項４において、
前記動的分析装置は、前記リソース項目偏回帰係数の単純移動平均を算出して前記リソース項目偏回帰係数の将来予測を実行し、当該リソース項目偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項１０】
請求項５において、
前記動的分析装置は、前記業務間関係の単純移動平均を算出して当該業務間関係の将来予測を実行し、当該業務間関係の将来予測を出力する、リソース課金管理システム。
【請求項１１】
請求項１において、
前記動的分析装置は、前記ＶＭ相関関係の加重移動平均を算出して前記ＶＭ相関関係の将来予測を実行し、当該ＶＭ相関関係の将来予測を出力する、リソース課金管理システム。
【請求項１２】
請求項２において、
前記動的分析装置は、前記リソース項目相関関係の加重移動平均を算出して前記リソース項目相関関係の将来予測を実行し、当該リソース項目相関関係の将来予測を出力する、リソース課金管理システム。
【請求項１３】
請求項３において、
前記動的分析装置は、前記ＶＭ偏回帰係数の加重移動平均を算出して前記ＶＭ偏回帰係数の将来予測を実行し、当該ＶＭ偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項１４】
請求項４において、
前記動的分析装置は、前記リソース項目偏回帰係数の加重移動平均を算出して前記リソース項目偏回帰係数の将来予測を実行し、当該リソース項目偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項１５】
請求項５において、
前記動的分析装置は、前記業務間関係の加重移動平均を算出して前記業務間関係の将来予測を実行し、当該業務間関係の将来予測を出力する、リソース課金管理システム。
【請求項１６】
請求項１において、
前記動的分析装置は、前記ＶＭ相関関係を１次関数近似して前記ＶＭ相関関係の将来予測を実行し、当該ＶＭ相関関係の将来予測を出力する、リソース課金管理システム。
【請求項１７】
請求項２において、
前記動的分析装置は、前記リソース項目相関関係を１次関数近似して前記リソース項目相関関係の将来予測を実行し、当該リソース項目相関関係の将来予測を出力する、リソース課金管理システム。
【請求項１８】
請求項３において、
前記動的分析装置は、前記ＶＭ偏回帰係数を１次関数近似して前記ＶＭ偏回帰係数の将来予測を実行し、当該ＶＭ偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項１９】
請求項４において、
前記動的分析装置は、前記リソース項目偏回帰係数を１次関数近似して前記リソース項目偏回帰係数の将来予測を実行し、当該リソース項目偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項２０】
請求項５において、
前記動的分析装置は、前記業務間関係を１次関数近似して前記業務間関係の将来予測を実行し、当該業務間関係の将来予測を出力する、リソース課金管理システム。
【請求項２１】
請求項１において、
前記動的分析装置は、前記ＶＭ相関関係を多項式近似して前記ＶＭ相関関係の将来予測を実行し、当該ＶＭ相関関係の将来予測を出力する、リソース課金管理システム。
【請求項２２】
請求項２において、
前記動的分析装置は、前記リソース項目相関関係を多項式近似して前記リソース項目相関関係の将来予測を実行し、当該リソース項目相関関係の将来予測を出力する、リソース課金管理システム。
【請求項２３】
請求項３において、
前記動的分析装置は、前記ＶＭ偏回帰係数を多項式近似して前記ＶＭ偏回帰係数の将来予測を実行し、当該ＶＭ偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項２４】
請求項４において、
前記動的分析装置は、前記リソース項目偏回帰係数を多項式近似して前記リソース項目偏回帰係数の将来予測を実行し、当該リソース項目偏回帰係数の将来予測を出力する、リソース課金管理システム。
【請求項２５】
請求項５において、
前記動的分析装置は、前記業務間関係を多項式近似して前記業務間関係の将来予測を実行し、当該業務間関係の将来予測を出力する、リソース課金管理システム。
【請求項２６】
請求項３において、
前記動的分析装置は、前記ＶＭ偏回帰係数と、前記リソース実測値と、前記リソース課金情報とから前記仮想サーバのリソース使用量を示すＶＭリソース使用量の将来予測を実行し、当該ＶＭリソース使用量の将来予測を出力する、リソース課金管理システム。
【請求項２７】
請求項２６において、
前記動的分析装置は、前記ＶＭリソース使用量の将来予測の偏差値を計算し、当該偏差値から負荷の大小による課金の割増／割引率を決定する、リソース課金管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース課金管理システムに関し、例えば、仮想化環境におけるリソース課金管理のための技術に関するものである。
【背景技術】
【０００２】
ハードウェアベンダーが顧客へハードウェアを提供する場合、ハードウェア一式を顧客へ直接販売する方法がある。この場合、ベンダーにとっては顧客に対して最初に一括してハードウェア製作にかかった費用を一括で回収し、早期に利益を上げることが可能である。しかし、顧客にとっては初期投資が高額となり、経営に大きな影響を与える。また、顧客は購入したハードウェアの維持保守のため、ベンダーに対して定期的に保守費用を支払う必要がある。このため、ハードウェア資産を持つというのは顧客にとって経営上大きなリスクとなりうる。
【０００３】
また、ハードウェアベンダーは顧客へハードウェアを一括で提供せず、資産をベンダーに残したまま、顧客へリースという形式で提供する方法が考えられる。この場合、ベンダーにとっては製作にかかった費用を回収し、利益をあげるためには数年リースし続ける必要がある。一方、顧客にとっては一括で購入するより、初期投資を抑えることが可能である。しかし、使用状況によらず維持保守料込みで定額払いであるため、あまり使用されていない時期にとっては無駄な出費が多くなるというリスクが存在する。
【０００４】
そこで、ハードウェアを仮想化し、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）、メモリ、ディスク、ネットワーク等のリソース使用状況を考慮した従量課金方式で顧客に請求する方法が考えられる。こうすることで顧客は無駄な出費を抑えることが可能となる。しかし、ベンダーにとっては回収が少なくなるため、製作にかかった費用に対するリスクが大きい。
【０００５】
最近、仮想化環境においてリソース使用量から課金計算に必要な情報を収集し、分析するソフトウェアが提供され、ベンダーはこれらを組み合わせて顧客に適切な課金情報を提供し、回収を実施している。
【０００６】
図１は、ＶＭｗａｒｅ  ｖＣｅｎｔｅｒ  Ｃｈａｒｇｅｂａｃｋ  Ｍａｎａｇｅｒ（米国ＶＭｗａｒｅ社の登録商標）を導入した仮想化環境における課金管理システム（既存システム）を示している。管理対象のデータセンタ１〜Ｎ（３０００１）、３０００１を管理するサーバｖＣｅｎｔｅｒ  Ｓｅｒｖｅｒ（米国ＶＭｗａｒｅ社の登録商標）（３０００２）、管理情報ＤＢ（３０００３）、課金管理サーバｖＣｅｎｔｅｒ  Ｃｈａｒｇｅｂａｃｋ  Ｍａｎａｇｅｒ（３０００４）と課金管理情報ＤＢ（３０００５）で構成されている。
【０００７】
このシステムは、電源を投入すると、ｖＣｅｎｔｅｒ  Ｓｅｒｖｅｒ（３０００２）がデータセンタ１〜Ｎ（３０００１）のリソース使用情報を管理情報ＤＢ（３０００３）に格納する。その後、ｖＣｅｎｔｅｒ  Ｃｈａｒｇｅｂａｃｋ  Ｍａｎａｇｅｒ（３０００４）が管理情報ＤＢにあるリソース使用情報を課金管理情報ＤＢ（３０００５）に格納し、課金計算を実施した結果をレポート（３０００６）に出力する。
【０００８】
本発明に関連する公知技術文献としては特許文献１、２、ｖＣｅｎｔｅｒ  Ｃｈａｒｇｅｂａｃｋ  Ｍａｎａｇｅｒを含む非特許文献１〜３が挙げられる。仮想化環境において非特許文献１〜３の通り、課金管理ツールが多くのベンダーによって提供されている。
【０００９】
一般に、課金管理ツール導入・運用開始および月次等で定期的に顧客と提供者との合意により単価を決定するため、主観的な要素が多く入り込み、ＶＭの単価の妥当性について客観性に欠けるという課題がある。非特許文献１〜３は、この課題を解決するための技術を開示している。特許文献１は、需要パターンやサービスレベルに応じた適切な価格とＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）関連単価の設定を効率的に行うことにより、サービス利用要求の変化に合わせた課金とＳＬＡを提供している。また、特許文献２は、ＶＭ対するリソースの割当量の変動を適切な範囲で制御するプログラムを提供している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−２２７９５２号公報
【特許文献２】特開２０１２−１９０１０９号公報
【非特許文献】
【００１１】
【非特許文献１】VMware, Inc, ‘vCenter Chargeback Manager’ :<http://www.vmware.com/products/vcenter-chargeback.html>
【非特許文献２】Red Hat, Inc, ‘CloudForms’ :<http://www.redhat.com/products/cloud-computing/cloudforms/>
【非特許文献３】Scalr, ‘Scalr Cloud Management Platform’ :<http://www.scalr.com/product/overview>
【非特許文献４】CUDAで行列演算：行列式  :<http://www.slis.tsukuba.ac.jp/~fujisawa.makoto.fu/cgi-bin/wiki/index.php?CUDA%A4%C7%B9%D4%CE%F3%B1%E9%BB%BB%A1%A7%B9%D4%CE%F3%BC%B0>
【非特許文献５】豊田秀樹，共分散構造分析［入門偏］：朝倉書店
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、非特許文献１乃至３においてはリソース同士のリレーション機能が存在しないため、ＶＭのＣａｐａｃｉｔｙ評価サービスが困難であり、複数のシステムでの課金の最適化が不可能である。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、ＶＭの単価を客観的に評価し、複数のＶＭシステムの課金を最適化することを可能にする技術を提供するものである。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、収集したリソースおよび課金データを基にして統計学的手法を用いてリソース同士の静的・動的のリレーション機能の結果およびそれに基づいたリソース使用量の予測を算出・表示することができる仮想化機構での共分散構造分析によるリソース課金管理・分析技術を開示する。
【００１５】
本発明の仮想化機構での共分散構造分析によるリソース課金管理・分析装置は、静的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、変換した数値からＧＰＵによる超並列処理を利用して平均値を算出する手段と、平均値からＧＰＵによる行列計算を利用して標本共分散を算出する手段と、標本共分散からＶＭ相関関係を算出する手段と算出したＶＭ相関関係を画面に表示する手段と、を備える。
【００１６】
当該リソース課金管理・分析装置は、静的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、変換した数値からＧＰＵによる超並列処理を利用して平均値を算出する手段と、平均値からＧＰＵによる行列計算を利用して標本共分散を算出する手段と、標本共分散からリソース項目相関関係を算出する手段と、算出したリソース項目相関関係を画面に表示する手段と、を備える。
【００１７】
当該リソース課金管理・分析装置は、静的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、変換した数値からＧＰＵによる超並列処理を利用して平均値を算出する手段と、平均値からＶＭ相関関係を算出する手段と、ＶＭ相関関係を行列としてガウス消去法により行列式を算出する手段と、行列式から行列計算を利用して逆行列を算出する手段と、逆行列からＶＭ偏回帰係数を算出する手段と、算出したＶＭ偏回帰係数を画面に表示する手段と、を備える。
【００１８】
当該リソース課金管理・分析装置は、静的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、変換した数値からＧＰＵによる超並列処理を利用して平均値を算出する手段と、平均値からリソース項目相関関係を算出する手段と、リソース項目相関関係を行列としてガウス消去法により行列式を算出する手段と、行列式から行列計算を利用して逆行列を算出する手段と、逆行列からリソース項目偏回帰係数を算出する手段と、算出したリソース項目偏回帰係数を画面に表示する手段と、を備える。
【００１９】
当該リソース課金管理・分析装置は、静的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、変換した数値からＧＰＵによる超並列処理を利用して平均値を算出する手段と、平均値からＧＰＵによる行列計算を利用して標本共分散を算出する手段と、標本共分散から影響指標を算出する手段と、算出した影響指標からＶＭと業務との関連性を示す業務間関係を算出する手段と、業務間関係を画面に表示する手段と、を備えている。
【００２０】
当該リソース課金管理・分析装置は、動的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、静的分析装置で算出したＶＭ相関関係を読み込む手段と、単純移動平均によりＶＭ相関関係の将来予測を算出する手段と、ＶＭ相関関係の将来予測を表示する手段と、を備えている。
【００２１】
当該リソース課金管理・分析装置は、動的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、静的分析装置で算出したＶＭ相関関係を読み込む手段と、単純移動平均によりリソース項目相関関係の将来予測を算出する手段と、リソース項目相関関係の将来予測を表示する手段と、を備えている。
【００２２】
当該リソース課金管理・分析装置は、動的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、静的分析装置で算出したＶＭ偏回帰係数を読み込む手段と、単純移動平均によりＶＭ偏回帰係数の将来予測を算出する手段と、ＶＭ偏回帰係数の将来予測を表示する手段と、を備えている。
【００２３】
当該リソース課金管理・分析装置は、動的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、静的分析装置で算出したＶＭ偏回帰係数を読み込む手段と、単純移動平均によりリソース項目偏回帰係数の将来予測を算出する手段と、リソース項目偏回帰係数の将来予測を表示する手段と、を備えている。
【００２４】
当該リソース課金管理・分析装置は、動的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、静的分析装置で算出した業務間関係を読み込む手段と、単純移動平均により業務間関係の将来予測を算出する手段と、業務間関係の将来予測を表示する手段と、を備えている。
【００２５】
当該リソース課金管理・分析装置は、動的分析装置として、クライアントおよび外部システムからリソース実測値およびリソース課金情報を読み込む手段と、読み込んだ情報を数値に変換する手段と、静的分析装置で算出したＶＭ偏回帰係数を読み込む手段と、リソース実測値およびリソース課金情報とＶＭ偏回帰係数からＶＭリソース使用量の将来予測を算出する手段と、ＶＭリソース使用量の将来予測を表示する手段と、を備えている。
【００２６】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
【００２７】
本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【００２８】
本発明のリソース課金管理・分析装置によれば、収集したリソースおよび課金データを基にして統計学的手法を用いてリソース同士の静的・動的のリレーション機能の結果およびそれに基づいたリソース使用量の予測を算出・表示する。よって、ＶＭの単価を客観的に評価し、複数のＶＭシステムの課金を最適化することができるようになる。
【図面の簡単な説明】
【００２９】
【図１】ＶＭｗａｒｅ  ｖＣｅｎｔｅｒ  Ｃｈａｒｇｅｂａｃｋ  Ｍａｎａｇｅｒ（米国ＶＭｗａｒｅ社の登録商標）を導入した仮想化環境における課金管理システムの一例を示す図である。
【図２】本発明の実施形態による共分散構造分析による課金管理・分析システムの構成例を示す図である。
【図３】処理対象のリソース実測値の一例を示す図である。
【図４】課金管理・分析システムにおける静的分析処理部（静的分析装置）の構成例を示す図である。
【図５】課金管理・分析システムにおける動的分析処理部（動的分析装置）の構成例を示す図である。
【図６】処理対象のリソース課金情報の一例を示す図である。
【図７】クライアント、他システムおよび課金管理・分析装置における静的分析処理部内部とのデータフロー例を示す図である。
【図８】クライアント、他システムおよび課金管理・分析装置における動的分析処理部内部とのデータフロー例を示す図である。
【図９】処理を実施する項目データの一例を示す図である。
【図１０】本実施形態に係る課金管理・分析システムにおける静的分析処理部による処理内容を説明するためのフローチャート（１）である。
【図１１】本実施形態に係る課金管理・分析システムにおける静的分析処理部による処理内容を説明するためのフローチャート（２）である。
【図１２】本実施形態に係る課金管理・分析システムにおける動的分析処理部による処理内容を説明するためのフローチャート（１）である。
【図１３】本実施形態に係る課金管理・分析システムにおける動的分析処理部による処理内容を説明するためのフローチャート（２）である。
【図１４】本実施形態に係る課金管理・分析システムにおける動的分析処理部による処理内容を説明するためのフローチャート（３）である。
【図１５】処理対象のリソース実測値（図３）およびリソース課金情報（図６）のデータに誤りが存在する場合のエラーメッセージの出力例を示す図である。
【図１６】ＶＭ相関関係表示処理（図１１のステップ６１６）による標準出力（画面）の一例を示す図である。
【図１７】リソース項目相関関係表示、リソース項目偏回帰係数表示、およびＶＭリソース使用量予測表示に出力する項目名一覧の一例を示す図である。
【図１８】リソース項目相関関係表示処理（図１１のステップ６１７）による標準出力（画面）の一例を示す図である。
【図１９】ＶＭ偏回帰係数表示処理（図１１のステップ６１８）による標準出力（画面）の一例を示す図である。
【図２０】リソース項目偏回帰係数表示処理（図１１のステップ６１９）による標準出力（画面）の一例を示す図である。
【図２１】ＶＭと業務との関係上、業務間関係の計算が不可能な場合のエラーメッセージの出力例を示す図である。
【図２２】業務間関係表示処理（図１１のステップ６２０）による標準出力（画面）の一例を示す図である。
【図２３】リソース実測値およびリソース課金情報におけるリソース項目の平均との差をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図２４】ＶＭ相関係数をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図２５】リソース項目相関係数をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図２６】ＶＭ偏回帰係数をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図２７】リソース項目偏回帰係数をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図２８】業務間関係を示す影響指標をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図２９】ネットワークを経由して処理を実施する項目データ、静的分析結果およびリソース実測値・課金情報を受信する処理（図１２のステップ１１０１）においてデータに誤りが存在する場合のエラーメッセージの出力例を示す図である。
【図３０】単純移動平均算出処理（図１３のステップ７１０）の詳細を説明するためのフローチャートである。
【図３１】加重移動平均算出処理（図１３のステップ７１１）の詳細を説明するためのフローチャートである。
【図３２】１次関数近似算出処理（図１３のステップ７１２）の詳細を説明するためのフローチャートである。
【図３３】多項式近似算出処理（図１３のステップ７１３）の詳細を説明するためのフローチャートである。
【図３４】将来予測表示処理（図１４のステップ７１８）の詳細を説明するためのフローチャートである。
【図３５】ＶＭ相関関係の将来予測表示処理（図３４のステップ１０００２）による標準出力（画面）の一例を示す図である。
【図３６】リソース項目相関関係の将来予測表示処理（図３４のステップ１０００４）による標準出力（画面）の一例を示す図である。
【図３７】ＶＭ偏回帰係数の将来予測表示処理（図３４のステップ１０００６）による標準出力（画面）の一例を示す図である。
【図３８】リソース項目偏回帰係数の将来予測表示処理（図３４のステップ１０００８）による標準出力（画面）の一例を示す図である。
【図３９】業務間関係の将来予測表示処理（図３４のステップ１００１０）による標準出力（画面）の一例を示す図である。
【図４０】ＶＭリソース使用量予測表示処理（図３４のステップ１００１２）の詳細を説明するためのフローチャートである。
【図４１】ＶＭリソース使用量予測表示処理（図３４のステップ１００１２）による標準出力（画面）の一例を示す図である。
【図４２】負荷計算処理（図１４のステップ７２０）の詳細を説明するためのフローチャートを示す図である。
【図４３】負荷の大小による割増／割引率の設定処理（図４２のステップ１２０１０）の詳細を説明するためのフローチャートである。
【図４４】割増／割引率の設定不可能なエラーメッセージを標準出力（画面）の一例を示す図である。
【図４５】ＶＭリソース使用量予測結果をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図４６】ＶＭ相関係数予測結果をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図４７】リソース項目相関係数予測結果をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図４８】ＶＭ偏回帰係数予測結果をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図４９】リソース項目偏回帰係数予測結果をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【図５０】業務間関係の予測結果をカンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【発明を実施するための形態】
【００３０】
本発明は、仮想化機構での共分散構造分析によるリソース課金管理・分析であって、統計的手法を用いてリソース同士の関連性を分析するための技術に関するものである。
【００３１】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００３２】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００３３】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００３４】
＜共分散構造分析による課金管理・分析システムの構成＞
図２は、本発明の実施形態に係る共分散構造分析による課金管理・分析システム（リソース課金管理システム）の構成例を示す図である。
【００３５】
共分散構造分析による課金管理・分析システムは、複数（Ｋ台）の課金管理・分析装置（サーバ）１０１と、入力部のリソース情報ネットワーク１０２と、ネットワークストレージ（ＳＡＮ（Storage Area Network）／ＮＡＳ（Network Attached Storage））１０３と、一時保存部の外部ストレージ（ＳＡＮ／ＮＡＳ）１０８と、出力部のリソース情報ネットワーク１１５及び１２３と、ネットワークストレージ（ＳＡＮ／ＮＡＳ）１１６及び１２４と、画面表示部１１７及び１２５と、帳票出力部１１８及び１２６と、を備える。
【００３６】
課金管理・分析装置（サーバ）１０１は、ある時点（時刻）におけるＶＭ同士、及びリソース同士の相関性を分析する静的分析処理部１０６と、静的分析結果に基づいて将来のＶＭの相関性を予測する動的分析処理部１１９と、入力部からの外部インタフェース（外部Ｉ／Ｆ）１０４と、入力部の内部ストレージ（ＳＳＤ（Solid State Drive）／ＳＡＳ（Serial Attached SCSI）／ＳＡＴＡ（Serial ATA））１０５と、静的分析処理部１０６から一時保存部への外部Ｉ／Ｆ１０７と、一時保存部であるホストメモリ１１０と、静的分析処理部１０６からホストメモリ１１０へのメモリインタフェース（メモリＩ／Ｆ）１０９と、ホストメモリ１１０から動的分析処理部１１９へのメモリＩ／Ｆ１１１と、一時保存部から動的分析処理部１１９への外部Ｉ／Ｆ１２０と、一時保存部の内部ストレージ（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）１１２と、静的分析処理部１０６から出力部への外部Ｉ／Ｆ１１４と、静的分析処理部１０６からの出力部である内部ストレージ（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）１１３と、動的分析処理部１１９からの出力部である内部ストレージ（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）１２１と、動的分析処理部１１９から出力部への外部Ｉ／Ｆ１２２と、を有している。図１では、静的分析処理部１０６や動的分析処理部１１９は、共分散構造分析による課金管理・分析装置１０１の一部である「処理部」として示されているが、静的分析装置や動的分析装置のように独立した「装置」とする構成を採っても良い。
【００３７】
入力部のリソース情報ネットワーク１０２とネットワークストレージ（ＳＡＮ／ＮＡＳ）１０３は、外部Ｉ／Ｆ１０４を経由して課金管理・分析装置（サーバ）１０１に接続されている。出力部のリソース情報ネットワーク１１５及び１２３と、ネットワークストレージ（ＳＡＮ／ＮＡＳ）１１６及び１２４と、帳票出力部１１８及び１２６のそれぞれは、外部Ｉ／Ｆ１１４及び１２２を経由して各課金管理・分析装置（サーバ）１０１に接続されている。また、画面表示部１１７は静的分析処理部１０６に接続され、画面表示部１２５は動的分析処理部１１９に接続されている。さらに、入力部および出力部のリソース情報ネットワーク１０２、１１５、及び１２３と、ネットワークストレージ１０３、１１６、及び１２４と、内蔵ストレージ１０５、１１２、１１３、及び１２１は、同一装置であってもよい。
【００３８】
＜リソース実測値の例＞
図３は、処理対象となるリソース実測値の一例を示す図である。リソース実測値は、ＶＭのＩＤ番号２０１、ＣＰＵ利用値（ＧＨｚ）２０２、メモリ利用値（ＧＢ）２０３、ストレージＲｅａｄ（ＧＢ／時）２０４、ストレージＷｒｉｔｅ（ＧＢ／時）２０５、ストレージＲｅａｄ＆Ｗｒｉｔｅ（ＧＢ／時）２０６、ストレージ利用値（ＧＢ）２０７、ネットワーク送信（ＧＢ／時）２０８、ネットワーク受信（ＧＢ／時）２０９、ネットワーク送受信（ＧＢ／時）２１０、仮想ＣＰＵの数２１１、ネットワーク数２１２、ＩＰｓｅｃＶＰＮトンネル有効化２１３、ＮＡＴ有効化２１４、ＤＨＣＰ有効化２１５、Ｆｉｒｅｗａｌｌ有効化２１６、ロードバランサ有効化２１７、静的ルーティング有効化２１８、ゲートウェイＨＡ有効化２１９、フルゲートウェイ設定利用有無２２０、外部ネットワークアップロード（ＭＢ）２２１、外部ネットワークダウンロード（ＭＢ）２２２、外部ネットワークアップロード速度（ＭＢ／時）２２３、外部ネットワークダウンロード速度（ＭＢ／時）２２４、画面出力の有無（有：１、無；０）２２５、利用している業務ＩＤ２２６で構成されていて、これらがカンマ区切りで一つのＶＭにつき、１行で出力されているテキストファイルである。ただし、業務ＩＤ２２６について複数存在する場合は存在する業務ＩＤすべてを画面出力の有無（有：１、無：０）２２５の後ろにカンマ区切りで出力されている。また、ＩＰｓｅｃＶＰＮトンネル有効化２１３〜フルゲートウェイ設定利用有無については数値ではなく文字列で出力されている。
【００３９】
＜静的分析処理部の内部構成＞
図４は、課金管理・分析システムにおける静的分析処理部（静的分析装置）１０６の内部構成例を示す図である。
【００４０】
静的分析処理部１０６は、ＣＰＵ（中央演算装置）３０１、ホストメモリ（主記憶）３０２、入力部の外部Ｉ／Ｆ１０４、メモリＩ／Ｆ３０３、内部インタフェース（内部Ｉ／Ｆ）３０４、ホストメモリへ出力するためのメモリＩ／Ｆ１０９、一時保存部である外部ストレージ１０８へ出力するための外部Ｉ／Ｆ１０７、出力部の外部Ｉ／Ｆ１１４、および複数（Ｌ枚、静的分析処理部１０６  １台当たり）のＧＰＵ（並列処理装置）３０５を有する。
【００４１】
ＧＰＵ３０５にはデバイスメモリ３０６と、複数の計算コア群３０７とで構成される。デバイスメモリ３０６と計算コア群３０７の間は広帯域メモリＩ／Ｆ３０８で接続されている。デバイスメモリはＬ枚のＧＰＵ３０５全体に対して１個存在し、Ｌ枚のＧＰＵ３０５はデバイスメモリに個別にアクセスすることが可能である。
【００４２】
入力部のリソース情報ネットワーク１０２とネットワークストレージ（ＳＡＮ／ＮＡＳ）１０３は外部Ｉ／Ｆ１０４を経由して静的分析処理部１０６に接続されており、出力部のリソース情報ネットワーク１１５、ネットワークストレージ（ＳＡＮ／ＮＡＳ）１１６と帳票出力部１１８は外部Ｉ／Ｆ１１４を経由して静的分析処理部１０６に接続されている。外部ストレージ（一時保存部）１０８は外部Ｉ／Ｆ１０７を経由して、一時保存部であるホストメモリ１１０はメモリＩ／Ｆ１０９を経由して静的分析処理部１０６に接続されている。内部ストレージ１０５、１１２、１１３も静的分析処理部１０６に接続されている。また、画面表示部１１７は、ＧＰＵ３０５を経由して各静的分析処理部１０６に接続されている。
【００４３】
課金管理・分析装置（サーバ）１０１をクライアントとして利用する場合、表示部１１７は例えば検証結果を表示する装置（モニタ）に相当する。その場合、ＧＰＵ３０５の内の１枚がビデオボードに相当する。また、入力部および出力部のリソース情報ネットワーク１０２、１１５、ネットワークストレージ１０３、１１６、内部ストレージ１０５、１１２、１１３は同一装置であってもよい。
【００４４】
＜動的分析処理部の内部構成＞
図５は、課金管理・分析システムにおける動的分析処理部（動的分析装置）１１９の内部構成例を示す図である。
【００４５】
動的分析処理部１１９は、ＣＰＵ（中央演算装置）４０１、ホストメモリ（主記憶）４０２、メモリＩ／Ｆ４０３、内部インタフェース（内部Ｉ／Ｆ）４０４、ホストメモリから読み込むためのメモリＩ／Ｆ１１１、一時保存部である外部ストレージ１０８から読み込むための外部Ｉ／Ｆ１２０、出力部の外部Ｉ／Ｆ１１４、および複数（Ｍ枚、動的分析処理部１１９  １台当たり）のＧＰＵ（並列処理装置）４０５を有する。
【００４６】
ＧＰＵ４０５にはデバイスメモリ４０６と、複数の計算コア群４０７とで構成される。デバイスメモリ４０６と計算コア群４０７の間は広帯域メモリＩ／Ｆ４０８で接続されている。デバイスメモリはＭ枚のＧＰＵ４０５全体に対して１個存在し、Ｍ枚のＧＰＵ３０５はデバイスメモリに個別にアクセスすることが可能である。
【００４７】
外部ストレージ（一時保存部）１０８は外部Ｉ／Ｆ１２０を経由して動的分析処理部１１９に接続されており、出力部のリソース情報ネットワーク１２３、ネットワークストレージ（ＳＡＮ／ＮＡＳ）１２４と帳票出力部１２６は外部Ｉ／Ｆ１２２を経由して動的分析処理部１１９に接続されている。一時保存部であるホストメモリ１１０はメモリＩ／Ｆ１１１を経由して動的分析処理部１１９に接続されている。また、画面表示部１２５は、ＧＰＵ４０５を経由して各動的分析処理部１１９に接続されている。
【００４８】
課金管理・分析装置（サーバ）１０１をクライアントとして利用する場合、表示部１２５は例えば検証結果を表示する装置（モニタ）に相当する。その場合、ＧＰＵ４０５の内の１枚がビデオボードに相当する。また、内部ストレージ１１２、１２１は同一装置であってもよい。リソース情報ネットワークは単一または複数の仮想環境で運用しているコンピュータが接続されたネットワークである。例えば、仮想環境で運用しているコンピュータ（サーバ）では、仮想マシン（ＶＭ）毎にＣＰＵ利用量、メモリ使用量等を収集している。これらの情報を基にＶＭおよびリソース項目同士の相関関係や回帰分析、業務との関係を分析したい場合、静的および動的分析処理を実行する。このとき、収集しているリソース実測値の格納場所がリソース情報ネットワーク１０２、ネットワークストレージ１０３または内部ストレージ１０５に相当し、分析処理結果の格納場所がリソース情報ネットワーク１１５、１２３、ネットワークストレージ１１６、１２４または内部ストレージ１１３、１２１に相当する。この時、分析処理装置が共分散構造分析による課金管理・分析装置（サーバ）１０１に相当する。
【００４９】
＜リソース課金情報の例＞
図６は、処理対象のリソース課金情報の一例を示す図である。リソース課金情報は、ＶＭのＩＤ番号５０１、ＣＰＵ利用料金（円／月）５０２、メモリ利用料金（円／月）５０３、ストレージＲｅａｄ料金（円／月）５０４、ストレージＷｒｉｔｅ料金（円／月）５０５、ストレージＲｅａｄ＆Ｗｒｉｔｅ料金（円／月）５０６、ストレージ利用料金（円／月）５０７、ネットワーク送信料金（円／月）５０８、ネットワーク受信料金（円／月）５０９、ネットワーク送受信料金（円／月）５１０、仮想ＣＰＵの数に応じた料金（円／月）５１１、ネットワーク数に応じた料金（円／月）５１２、ＩＰｓｅｃＶＰＮトンネル有効化に伴う料金（円／月）５１３、ＮＡＴ有効化に伴う料金（円／月）５１４、ＤＨＣＰ有効化に伴う料金（円／月）５１５、Ｆｉｒｅｗａｌ有効化に伴う料金（円／月）５１６、ロードバランサ有効化に伴う料金（円／月）５１７、静的ルーティング有効化に伴う料金（円／月）５１８、ゲートウェイＨＡ有効化に伴う料金（円／月）５１９、フルゲートウェイ設定に伴う料金（円／月）５２０、外部ネットワークアップロード料金（円／月）５２１、外部ネットワークダウンロード料金（円／月）５２２、外部ネットワークアップロード速度に伴う料金（円／月）５２３、外部ネットワークダウンロード速度に伴う料金（円／月）５２４、画面出力の有無（有：１、無：０）５２５、利用している業務ＩＤ５２６で構成されていて、これらがカンマ区切りで一つのＶＭにつき、１行で出力されているテキストファイルである。ただし、業務ＩＤ５２６について複数存在する場合は存在する業務ＩＤすべてを画面出力の有無（有：１、無：０）５２５の後ろにカンマ区切りで出力されている。
【００５０】
＜静的分析処理の概要＞
図７は、クライアント、他システムを含む課金管理・分析システムにおける静的分析処理の概要を示すデータフロー例である。
【００５１】
クライアント（例えば、管理者の管理コンピュータ）６００から処理実行命令６０１が静的分析処理部１０６に送信されると、ホスト部３０９はリソース実測値２００またはリソース課金情報５００が格納されている他システム（例えば、ネットワークストレージ）６０２と接続し、リソース実測値／リソース課金情報／パス解析要相関係数値／処理を実施する項目データ（以上６０３）を読み込む。パス解析要相関係数値（0以上1未満）とは絶対値がその値以上の相関を持つ場合のみ分析結果として標準出力（画面）に出力するための値である。
【００５２】
図４に示す通り、静的分析処理部１０６にはＬ枚のＧＰＵ３０５が接続されており、デバイスメモリ３０６の容量の約４分の１がＧＰＵ１枚当たりの超並列処理可能なリソース実測値２００またはリソース課金情報５００の最大値である。４分の１というのはリソース実測値２００またはリソース課金情報５００を行列に置き換えた上で、１回の行列計算を実施するのに必要な容量が元の行列の３倍〜４倍必要であるからである。つまり、静的分析処理部１０６  一つに対して、分析可能なリソース実測値２００またはリソース課金情報５００は最大、デバイスメモリ３０６の容量×Ｌ÷４である。
【００５３】
読み込んだリソース実測値２００またはリソース課金情報５００は、ホスト部３０９とデバイス部３１０両方からアクセスされることを目的としたＵｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４上で数値変換処理（例えば、「ｅｎａｂｌｅ」等を数値化する処理）６１０、及び平均値算出処理６１１を実施する。当該平均値算出処理６１１では、図３のリソース実測値の各項目について平均値が算出される。そして、処理を依頼する項目データの内容により、ＶＭ相関関係算出処理６１２、リソース項目相関関係算出処理６１３、ＶＭ偏回帰係数算出処理６１４、リソース項目偏回帰係数算出処理６１５、ＶＭ相関関係表示処理６１６、リソース項目相関関係表示処理６１７、ＶＭ偏回帰係数表示処理６１８、リソース項目偏回帰係数表示処理６１９、そして業務間関係表示処理６２０を実施する。
【００５４】
ＶＭ相関関係算出処理６１２では、２つのＶＭ同士の相関値が算出される。具体的には、平均値算出処理で得られた各項目の平均値と各ＶＭの実測値との差分を取り、対象となるＶＭの各項目について差分値同士を乗算し、その乗算値の和を取り、その値に対象となる２つのＶＭについて各項目の差分値の2乗の和の正の平方根２つで割ることにより、当該相関値が算出される。
【００５５】
また、リソース項目相関関係算出処理６１３では、２つのリソース間（例えば、ＣＰＵとメモリ）に関し、平均値と実測値との差分を取り、差分同士を乗算し、その乗算値の和を取り、その値に対象となる２つのリソースについて差分値の2乗の和の正の平方根２つで割ることにより、当該相関値が算出される。
【００５６】
ＶＭ編回帰係数算出処理６１４では、１つのＶＭが他のＶＭでどのように線形結合されて表されるかが算出される（線形係数が算出される）。具体的には実測値との差（誤差係数）を最小にするような係数を最小二乗法によって算出する。その際に行列式および逆行列の計算が必要となる。
【００５７】
リソース項目偏回帰係数算出処理６１５では、１つのリソースが他のリソースでどのように線形結合されて表されるかが算出される（線形係数が算出される）。具体的には実測値との差（誤差係数）を最小にするような係数を最小二乗法によって算出する。その際に行列式および逆行列の計算が必要となる。
【００５８】
処理結果（６０１および６０３の出力：静的分析結果）は、クライアント６００や他システム６０２に出力および送信される。これらについての詳細は図１０以降でさらに説明する。
【００５９】
＜動的分析処理概要＞
図８は、クライアント、他システムを含む課金管理・分析システムにおける動的分析処理の概要を示すデータフロー例である。
【００６０】
クライアント７００から処理実行命令７０１が動的分析処理部１１９に送信されると、ホスト部４０９は、静的分析結果が格納されている他システム７０２と接続し、一部数値変換済みリソース実測値／リソース課金情報／静的分析結果／処理を実施する項目データ（以上７０３）を読み込む。
【００６１】
図５に示す通り、動的分析処理部１１９にはＭ枚のＧＰＵ４０５が接続されており、デバイスメモリ４０６の容量の約４分の１がＧＰＵ１枚当たりの超並列処理可能な静的分析結果の最大値である。４分の１というのは静的分析結果を行列に置き換えた上で、１回の行列計算を実施するのに必要な容量が元の行列の３倍〜４倍必要であるからである。
【００６２】
読み込んだ一部数値変換済みリソース実測値／リソース課金情報／静的分析結果／処理を実施する項目データ（以上７０３）は、ホスト部４０９とデバイス部４１０両方からアクセスされることを目的としたＵｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４上で単純移動平均算出処理７１０および将来予測表示処理７１８を実施する。それらの処理を実施した結果（７０１および７０３の出力：動的分析結果）をクライアント７００や他システム７０２に出力および送信する。これらについての詳細は図１１以降でさらに説明する。
【００６３】
＜項目データ例＞
図９は、処理を実施する項目データの一例を示す図である。処理を実施する項目データ８００には、処理を実施する項目番号８０１と処理の実施有無８０２がカンマ区切りで項目番号毎に１行出力されているテキストファイルである。図８の処理を実施する項目番号８０１では括弧で処理名が記載されているが、実際のファイルには記載されていない。また、処理の実施有無８０２は「０」（処理を実施しない）、「１」（処理を実施する）のいずれかである。
【００６４】
＜静的分析処理の内容＞
図１０は、本発明の実施形態による静的分析処理の内容を説明するためのフローチャート（一例）である。
【００６５】
（i）ＳＴＡＲＴ９００は、クライアント６００から送信された処理実行命令６０１を静的分析処理部１０６が受信した時点である。
【００６６】
（ii）静的分析処理部１０６は、他システム６０２からネットワークを経由してリソース実測値２００またはリソース課金情報５００を受信する（ステップ９０１）。ステップ９０１では、他システム６０２からリソース実測値２００またはリソース課金情報５００を受信する前に、内部参照配列変数vmresources[][]の初期化、他システム６０２との通信に必要なソケットを作成、ソケットに名称を付与、他システム６０２からの接続を許可した後、他システム６０２からの接続が開始される。その後、内部参照配列変数vmresources[][]のメモリを確保した後、他システムからリソース実測値２００またはリソース課金情報５００を最大（デバイスメモリ３０６の容量×Ｌ÷４）バイト受信する。この時、受信したバイト数が０かどうかの判定を実施し、バイト数が０の場合、再度受信を試みる。受信したバイト数が０でない場合、リソース実測値２００またはリソース課金情報５００を内部参照変数vmresources[][]のホストメモリにコピーする。以上でネットワークを経由してリソース実測値またはリソース課金情報を受信する処理（図９の９０１）は終了する。
【００６７】
（iii）静的分析処理部１０６はリソース実測値２００またはリソース課金情報５００を受信した後、ネットワークを経由してパス解析要相関係数値および処理を実施する項目データ８００を受信する（ステップ９０２）。ステップ９０２では、他システム６０２からパス解析要相関係数値および処理を実施する項目データを受信する前に、内部参照配列変数process[][]および内部参照変数correlationの初期化を実施する。その後、他システム６０２との通信に必要なソケットを作成、ソケットに名称を付与、他システム６０２からの接続を許可した後、他システム６０２からの接続が開始される。内部参照配列変数process[][]およびcorrelationのメモリを確保した後、他システムから処理を実施する項目データ８００を受信する。この時、受信したバイト数が０かどうかの判定を実施し、バイト数が０の場合、再度受信を試みる。受信したバイト数が０でない場合、引き続き他システムからパス解析要相関係数値を受信する。この時、受信したバイト数が０かどうかの判定を実施し、バイト数が０の場合、再度受信を試みる。受信したバイト数が０でない場合、処理を実施する項目データ８００を内部参照配列変数process[][]のホストメモリにコピーおよびパス解析要相関係数値を内部参照変数correlationにコピーする。以上でネットワークを経由してパス解析要相関係数値および処理を実施する項目データを受信する処理（図９の９０２）は終了する。
【００６８】
（iv）静的分析処理部１０６は、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４上においてステップ９０１で受信したリソース実測値２００またはリソース課金情報５００について、数値変換処理を実施する（ステップ６１０）。ステップ６１０では、始めに、リソース実測値読み込みフラグ＝ｆａｌｓｅ、リソース課金情報読み込みフラグ＝ｆａｌｓｅ、リソース実測値読み込みエラーフラグ＝ｆａｌｓｅを設定する。次に、図２の「２０２：ＣＰＵ利用値（ＧＨｚ）」〜「２１２：ネットワーク数」の少なくとも一つが非数字であるならリソース実測値読み込みエラーフラグをｔｒｕｅに設定する。また、「２１３：ＩＰｓｅｃＶＰＮトンネル有効化」〜「２２０：フルゲートウェイ設定利用有無」のいずれも非数字の場合、リソース実測値読み込みフラグをｔｒｕｅに設定し、「２１３：ＩＰｓｅｃＶＰＮトンネル有効化」〜「２２０：フルゲートウェイ設定利用有無」のいずれも数字の場合、リソース課金情報読み込みフラグをｔｒｕｅに設定する。「２１３：ＩＰｓｅｃＶＰＮトンネル有効化」〜「２２０：フルゲートウェイ設定利用有無」について、数字、非数字が混在する場合、リソース実測値読み込みエラーフラグをｔｒｕｅに設定する。リソース実測値読み込みフラグがｔｒｕｅの場合、「２１３：ＩＰｓｅｃＶＰＮトンネル有効化」〜「２２０：フルゲートウェイ設定利用有無」について値が”ｅｎａｂｌｅ“、または”ｕｓｅｄ“の場合、該当するvmresource[][]の値を1に設定し、それ以外の場合、該当するvmresource[][]の値を0に設定する。以上で数値変換処理（ステップ６１０）は終了する。
【００６９】
（v）静的分析処理部１０６は、数値変換処理６１０において変換エラーの有無を判定する（ステップ９０３）。エラーが有る（フラグ＝ｔｒｕｅ）の場合、静的分析処理部１０６は、クライアントに静的分析結果エラーを表示し（ステップ９０４）、静的分析処理が終了する（ステップ９０５）。フラグの生成はステップ６１０の詳細で説明し、ステップ９０４のエラー表示の具体例を図１７で説明する。
【００７０】
（vi）エラーが無い（フラグ＝ｆａｌｓｅ）の場合、静的分析処理部１０６は、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４に対する事前処理（ステップ９０６）を実施してから、数値変換処理を実施したリソース実測値またはリソース課金情報に対してリソース毎に平均値を算出する（ステップ６１１）。
【００７１】
事前処理（ステップ９０６）では、内部参照配列変数defferencewithavg[][][]の初期化、vmcorrelation[][][]の初期化、resourcecorrelation[][]の初期化、vmregression[][]の初期化、resourceregression[][]の初期化およびavg[]の初期化を実施する。これらはそれぞれ平均との差、ＶＭ相関関係、リソース項目相関関係、ＶＭ偏回帰係数、リソース項目偏回帰係数および平均値を格納する。続いて、内部参照配列変数defferencewithavg[][][]のデバイスメモリの確保、vmcorrelation[][][]のデバイスメモリの確保、resourcecorrelation[][]のデバイスメモリの確保、vmregression[][]のデバイスメモリの確保、resourceregression[][]のデバイスメモリの確保を実施する。最後に平均値avg[]=0をリソース項目の数だけ繰り返す。以上で事前処理（図９の９０６）は終了する。
【００７２】
（vii）平均値算出処理（ステップ６１１）の前半では、静的分析処理部１０６は、読み込んだすべてのＶＭに対して、リソース毎の平均値を算出する部分である。そのため、リソースの項目の数だけ繰り返す。リソース毎の平均値を算出するため、配列変数avg[]をＶＭの数だけリソース項目に対してリソース項目の値vmresources[][]を加える。加算した値avg[]をＶＭの数（値N）だけ割った値を新たにavg[]に設定することにより、各リソース項目に対する平均を算出する。平均値算出処理の後半はリソース項目の値と平均との差を算出する。この部分についてはＧＰＵによる超並列処理を実施するため、最初に利用するＧＰＵの数を「リソース実測値２００またはリソース課金情報５００の受信バイト数×４÷デバイスメモリ３０６の容量」に1を加えた値で算出する。例えは、受信バイト数を4GB、デバイスメモリ３０６の容量が2GBの場合、利用するＧＰＵの数は4×4÷2+1=9である。この値をLとし、リソース項目の値と平均値との差の算出をＧＰＵ（デバイス）で実施する。そのため以下の処理はＧＰＵの数（i=0,…,L-1）だけ繰り返す。まず、利用するＧＰＵ（i番目）を指定し、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４を設定する。次に、平均との差defferencewithavg[i][j][k]=vmresources[p×i+j][k+1]-avg[k+1]を設定する。ただし、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を示す。例えば、リソース実測値２００またはリソース課金情報５００のＶＭ一つ当たりの情報が平均200B、デバイスメモリ３０６の容量が2GBの場合、ＧＰＵ１枚で処理可能なＶＭ数は2500000である。ステップ６１１において変数jおよびkに対して超並列処理を実施する。超並列処理の実施後はホストとデバイスとの同期化を実施する。リソース項目の値と平均との差の算出が終了することにより平均値算出処理（図９の６１１）は終了する。
【００７３】
（viii）静的分析処理部１０６は、処理を実施する項目データ８００の項目番号０１０に対する判定（ステップ９０８）において、カンマの後の値が１である場合、ＶＭ相関関係算出処理（ステップ６１２）を実施する。処理を実施する項目データ８００の項目番号０１０のカンマの後の値が０である場合はＶＭ相関関係算出処理（ステップ６１２）を実施せず、次の項目データ８００の項目番号０１１に対する判定（ステップ９０９）を実施する。
【００７４】
（ix）ステップ６１２では、静的分析処理部１０６は、内部参照配列変数s[][][]の初期化およびd[][][]の初期化を実施する。これらはそれぞれ標本共分散、標本標準偏差の２乗（分散）を格納する。次の処理はＧＰＵの数（i=0,…,L-1）だけ繰り返す。利用するＧＰＵ（i番目）を指定し、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４を設定する。さらに、ＧＰＵの数（n=0,…,L-1）だけ、標本共分散s[i][j][np+k]を以下の式で設定する。
【００７５】
2016189125.tif 000003
【００７６】
ただし、ここで、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を、NはＶＭ数を示す。続いて、標本標準偏差の２乗d[i][j][k]を以下の式で設定する。
【００７７】
2016189125.tif 000004
【００７８】
続いて、上記二つの式を以下のとおり組み合わせることにより、ＶＭ同士の相関係数を算出する。
【００７９】
2016189125.tif 000005
【００８０】
ただし、k’（0≦k’＜L）およびk”（0≦k”＜p）はk’×p＋k”＝kを満たす唯一の整数である。これらの値の設定では変数jおよびkに対して超並列処理を実施する。超並列処理の実施後はホストとデバイスとの同期化を実施する。ＶＭ同士の相関係数の算出が終了することによりＶＭ相関関係算出処理（図１０の６１２）は終了する。
【００８１】
（x）処理を実施する項目データ８００の項目番号０１１に対する判定（ステップ９０９）において、カンマの後の値が１である場合、リソース項目相関関係算出処理（ステップ６１３）を実施する。その後、図１１の処理へ進む（ステップ９１０）。
処理を実施する項目データ８００の項目番号０１１のカンマの後の値が０である場合はリソース項目相関関係算出処理（ステップ６１３）を実施せず、図１１の処理へ進む（ステップ９１０）。
【００８２】
（xi）ステップ６１３では、静的分析処理部１０６は、内部参照配列変数s[] []の初期化およびd [][]の初期化を実施する。これらはそれぞれ標本共分散、標本標準偏差の２乗（分散）を格納する。次の処理はＧＰＵの数（i=0,…,L-1）だけ繰り返す。利用するＧＰＵ（i番目）を指定し、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４を設定する。標本共分散s[j][k]を以下の式で設定する。
【００８３】
2016189125.tif 000006
【００８４】
ただし、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を、NはＶＭ数を示す。この設定では変数jおよびkに対して超並列処理を実施する。超並列処理の実施後はホストとデバイスとの同期化を実施する。
【００８５】
利用するＧＰＵの数だけ繰り返す部分はここまでであり、再度利用するＧＰＵを指定する。
【００８６】
続いて、標本標準偏差の２乗d[j][k]を以下の式で設定する。
【００８７】
2016189125.tif 000007
【００８８】
また、上記二つの式を以下のとおり組み合わせることにより、リソース項目同士の相関係数を算出する。
【００８９】
2016189125.tif 000008
【００９０】
これらの値の設定では変数jおよびkに対して超並列処理を実施する。超並列処理の実施後はホストとデバイスとの同期化を実施する。
【００９１】
リソース項目同士の相関係数の算出が終了することによりリソース項目相関関係算出処理（図１０の６１３）は終了する。
【００９２】
（xii）図１１は、図１０の続きのフローチャートである。
【００９３】
（xiii）項目データ８００（図９参照）の項目番号０１２についての判定処理（ステップ１００１）において、静的分析処理部１０６は、カンマの後の値が１である場合、ＶＭ偏回帰係数算出処理（ステップ６１４）を実施する。処理を実施する項目データ８００の項目番号０１２のカンマの後の値が０である場合は、静的分析処理部１０６は、ＶＭ偏回帰係数算出処理（ステップ６１４）を実施せず、次の項目データ８００の項目番号０１３に対する判定（ステップ１００２）を実施する。
【００９４】
（xiv）ステップ６１４において、静的分析処理部１０６は、まず、内部参照配列変数det[]の初期化、r [][]の初期化、co[][][]の初期化、およびinv[][][]の初期化を実施する。これらはそれぞれ相関行列から配列のインデックスに対応する行および列を除いた行列の行列式、相関行列の各成分、相関行列から配列の第一インデックスに対応する行および列、第二インデックスに対応する行、第三インデックスに対応する列を除いた行列の行列式、相関行列の逆行列の各成分を格納する。初期化の際、値を0に設定しておく。
【００９５】
次に、静的分析処理部１０６は、r[][]をＶＭ相関関係vmcorrelation[i][j][k]の値から設定する。ただし、この設定は変数i=0,…,L-1、j=0,…,p-1、k=0,…,N-1だけ繰りかえし、以下の式で設定する。
【００９６】
r[i×p+j][k]=vmcorrelation[i][j][k]
【００９７】
ただし、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を、NはＶＭ数を示す。
【００９８】
続いて、静的分析処理部１０６は、以下の処理では変数hをＶＭの数（h=0,…,N-1）だけ繰り返す。
【００９９】
ガウスの消去法による行列式計算（非特許文献４参照）によりdet[h]を以下の式で算出する。
【０１００】
2016189125.tif 000009
【０１０１】
ただし、-1≦r[i][j]=r[j][i]≦1、かつr[i][i]=1を満たす。
【０１０２】
この結果、det[h]の値が0かどうか判定する。det[h]＝0でない場合、変数iおよびjを0からh-1およびh+1からN-1まで、ガウスの消去法による行列式計算によりco[h][i][j]を以下の式で算出およびinv[h][i][j]を以下の式で算出する処理を繰り返す。
【０１０３】
2016189125.tif 000010
【０１０４】
ただし、-1≦r[k][l]=r[l][k]≦1、かつr[k][k]=1を満たす。inv[h][i][j]をi行j列とする行列は以下の行列の逆行列となる。
【０１０５】
2016189125.tif 000011
【０１０６】
また、det[h]が0である場合、上記の行列の逆行列の計算を実施しない。
【０１０７】
続いて、ＶＭ偏回帰係数を格納するvmregression[h][i]の値を0に設定する処理を変数iについて0からN-1まで繰り返す。
【０１０８】
次に、det[h]が0であるかどうか判定する。det[h]＝0でない場合、変数iを0からh-1およびh+1からN-1まで、vmregression[h][i]を以下の式で設定する処理を繰り返す。
【０１０９】
2016189125.tif 000012
【０１１０】
処理変数hについて0からN-1まで繰り返した後、ＶＭ偏回帰係数算出処理（ステップ６１４）を終了する。
【０１１１】
（xv）静的分析処理部１０６は、項目データ８００の項目番号０１３に対する判定（ステップ１００２）において、カンマの後の値が１である場合、リソース項目偏回帰係数算出処理（ステップ６１５）を実施する。処理を実施する項目データ８００の項目番号０１３のカンマの後の値が０である場合はリソース項目偏回帰係数算出処理（ステップ６１５）を実施せず、ＶＭ相関関係表示処理（ステップ６１６）を実施する。
【０１１２】
（xvi）ステップ６１５において、静的分析処理部１０６は、まず、内部参照配列変数rdet[]の初期化、rr [][]の初期化、rco[][][]の初期化、およびrinv[][][]の初期化を実施する。これらはそれぞれ相関行列から配列のインデックスに対応する行および列を除いた行列の行列式、相関行列の各成分、相関行列から配列の第一インデックスに対応する行および列、第二インデックスに対応する行、第三インデックスに対応する列を除いた行列の行列式、相関行列の逆行列の各成分を格納する。
【０１１３】
次に、rr[][]をリソース項目相関関係resourcecorrelation[i][j]の値から設定する。ただし、この設定は変数i=0,…,22、j=0,…,22だけ繰り返し、以下の式で設定する。
【０１１４】
rr[i][j]=resourcecorrelation[i][j]
【０１１５】
続いて、以下の処理では変数hをリソース項目の数（h=0,…,22）だけ繰り返す。
【０１１６】
ガウスの消去法による行列式計算（非特許文献４参照）によりrdet[h]を以下の式で算出する。
【０１１７】
2016189125.tif 000013
【０１１８】
ただし、-1≦rr[i][j]=rr[j][i]≦1、かつrr[i][i]=1を満たす。
【０１１９】
この結果、rdet[h]の値が0かどうか判定する。rdet[h]＝0でない場合、変数iおよびjを0からh-1およびh+1から22まで、ガウスの消去法による行列式計算によりrco[h][i][j]を以下の式で算出およびrinv[h][i][j]を以下の式で算出する処理を繰り返す。
【０１２０】
2016189125.tif 000014
【０１２１】
rinv[h][i][j]=rco[h][i][j]÷rdet[h]
【０１２２】
ただし、-1≦r[k][l]=r[l][k]≦1、かつr[k][k]=1を満たす。rinv[h][i][j]をi行j列とする行列は以下の行列の逆行列となる。
【０１２３】
2016189125.tif 000015
【０１２４】
また、det[h]が0である場合、上記の行列の逆行列の計算を実施しない。
【０１２５】
続いてリソース項目偏回帰係数を格納するresourceregression[h][i]の値を0に設定する処理を変数iについて0からN-1まで繰り返す。
【０１２６】
次に、rdet[h]が0であるかどうか判定する。rdet[h]＝0でない場合、変数iを0からh-1およびh+1からN-1まで、resourceregression[h][i]を以下の式で設定する処理を繰り返す。
【０１２７】
2016189125.tif 000016
【０１２８】
処理変数hについて0からN-1まで繰り返した後、リソース項目偏回帰係数算出処理を終了する。
【０１２９】
（xvii）その後、静的分析処理部１０６は、ＶＭ相関関係表示処理（ステップ６１６）を実施する。ステップ６１６で出力される図については、図１６で説明する。
【０１３０】
ステップ６１６では、静的分析処理部１０６は、最初にパス解析要相関係数値を読み込み、変数eに設定する。
【０１３１】
次に、静的分析処理部１０６は、項目データ８００から処理番号０１０の項目からの依頼有無を判定する。判定が無（図９の８０２の値が0）の場合、処理を実施せず、直ちに終了する。判定が有（図９の８０２の値が1）の場合、vmresource[i][24]の値が1かどうか判定し、値が1ならばＶＭのＩＤ番号（vmresource[i][0]の値）を標準出力に出力する処理を変数iについて0からN-1（ＶＭ数分）まで繰り返す。
【０１３２】
続いて、静的分析処理部１０６は、vmcorrelation[i÷p][i mod p][j]の絶対値がe以上かどうか判定し、e以上ならばＶＭiとＶＭjとの相関係数vmcorrelation[i/p][i mod p]とＶＭiとＶＭjとを結ぶ関係線を標準出力に出力する処理を変数iおよびjに対して0≦i＜j≦N-1を満たす分だけ繰り返す。但し、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を、NはＶＭ数を示す。また、i÷pの値は小数点以下を切り捨てた値とし、i mod pはiをpで割った余りを示す。
【０１３３】
なお、後に説明する図１６に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また、「次へ」ボタンをクリックすると、ＶＭ相関関係表示処理が終了し、次のリソース項目相関関係表示処理（図１１のステップ６１７）に遷移する。
【０１３４】
（xviii）静的分析処理部１０６は、ＶＭ相関関係表示処理（ステップ６１６）実施後、引き続いてリソース項目相関関係表示処理（ステップ６１７）を実施する。入力となるリソース項目相関関係表示に出力する項目名一覧については図１７で、ステップ６１７で出力される図については図１８で説明する。
【０１３５】
ステップ６１７では、静的分析処理部１０６は、最初に、パス解析要相関係数値を読み込み、変数eに設定する。次に、内部参照配列変数rname[]を空文字に初期化する。rname[]はリソース項目名を格納する変数である。次に、項目データ８００から処理番号０１１の項目からの依頼有無を判定する。判定が無（図９の８０２の値が0）の場合、処理を実施せず、直ちに終了する。判定が有（図９の８０２の値が1）の場合、リソース項目相関関係図に表示する項目名（図１７）を読み込み、rname[i]に設定する処理を変数iについて0から22（リソース項目数）まで繰り返す。
【０１３６】
続いて、静的分析処理部１０６は、rname[i]が空文字でないかどうか判定し、空文字で無い場合、項目名（rname[i]の値）を標準出力に出力する処理を変数iについて0から22まで繰り返す。
【０１３７】
また、静的分析処理部１０６は、resourcecorrelation[i] [j]の絶対値がe以上かどうか判定し、e以上ならばrname[i]とrname[j]との相関係数resourcecorrelation[i][j]とrname[i]とrname[j]とを結ぶ関係線を標準出力に出力する処理を変数iおよびjに対して0≦i＜j≦22を満たす分だけ繰り返す。
【０１３８】
なお、後に説明する図１８に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また「次へ」ボタンをクリックすると、リソース項目相関関係表示処理が終了し、次のＶＭ偏回帰係数表示処理（図１１のステップ６１８）に遷移する。
【０１３９】
（xix）リソース項目相関関係表示処理（ステップ６１７）実施後、引き続いてＶＭ偏回帰係数表示処理（ステップ６１８）を実施する。ステップ６１８で出力される図については、図１９で説明する。
【０１４０】
ステップ６１８では、静的分析処理部１０６は、最初に項目データ８００から処理番号０１２の項目からの依頼有無を判定する。判定が無（図９の８０２の値が0）の場合、処理を実施せず、直ちに終了する。判定が有（図９の８０２の値が1）の場合、ＶＭの数の分だけ（h=0,…,N-1）以下の処理を繰り返す。
【０１４１】
また、静的分析処理部１０６は、繰り返し処理について、画面出力の対象のＶＭかどうか判定する。具体的には、vmresources[h][24]の値が1かどうかで判定する。対象でないＶＭの場合、次のＶＭの処理に遷移する。対象ＶＭの場合、ＩＤ番号（vmresources[h][0]の値）を標準出力に出力する。この繰り返し処理の中でさらに他のＶＭに対して（i=0,…,N-1,i≠h）、vmresources[i][24]の値が1かどうかで判定し、値が1ならＩＤ番号（vmresources[i][0]の値）を標準出力に出力、そのＶＭ（vmresources[i][0]）から対象ＶＭ（vmresources[h][0]）への偏回帰係数vmregression[h][i]と関係線を標準出力に出力する処理を繰り返す。変数iに対する繰り返しの後、対象ＶＭ（vmresources[h][0]）への誤差係数”e”を標準出力に出力する。
【０１４２】
なお、後に説明する図１９に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また「次へ」ボタンをクリックすると、次のＶＭの処理に遷移する。次のＶＭの処理が存在しない（h=N-1）場合、ＶＭ偏回帰係数表示処理が終了し、リソース項目偏回帰係数表示処理（図１１のステップ６１９）に遷移する。
【０１４３】
（xx）静的分析処理部１０６は、ＶＭ偏回帰係数表示処理（ステップ６１８）実施後、引き続いてリソース項目偏回帰係数表示処理（ステップ６１９）を実施する。ステップ６１９で出力される図については、図２０で説明する。
【０１４４】
ステップ６１８では、静的分析処理部１０６は、最初に、内部参照配列変数rname[]を空文字に初期化する。rname[]はリソース項目名を格納する変数である。次に、項目データ８００から処理番号０１３の項目からの依頼有無を判定する。判定が無（図９の８０２の値が0）の場合、処理を実施せず、直ちに終了する。判定が有（図９の８０２の値が1）の場合、リソース項目偏回帰係数の表示する項目名（図１７）を読み込み、rname[i]に設定する処理を変数iについて0から22（リソース項目数）まで繰り返す。
【０１４５】
続いて、リソースの数の分だけ（h=0,…,22）以下の処理を繰り返す。繰り返し処理について、rname[h]が空文字かどうか判定する。rname[h]が空文字である場合、次のリソース項目の処理に遷移する。rname[h]が空文字でない場合、対象リソース項目名（rname[h]の値）を標準出力に出力する。この繰り返し処理の中でさらに他のリソース項目に対して（i=0,…,22,i≠h）、rname[i]が空文字かどうか判定し、rname[i]が空文字でない場合、リソース項目名（rname[i]の値）を標準出力に出力、そのリソース項目名（rname[i]）から対象リソース項目名（rname[h]）への偏回帰係数resourceregression[h][i]と関係線を標準出力に出力する処理を繰り返す。変数iに対する繰り返しの後、対象リソース項目（rname[h]）への誤差係数”e”を標準出力に出力する。
【０１４６】
なお、後に説明する図２０に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また、「次へ」ボタンをクリックすると、次のリソース項目の処理に遷移する。次のリソース項目の処理が存在しない（h=22）場合、リソース項目偏回帰係数表示処理が終了し、業務間関係表示処理（図１０の６２０）に遷移する。
【０１４７】
（xxi）静的分析処理部１０６は、リソース項目偏回帰係数表示処理（ステップ６１９）実施後、引き続いて業務間関係表示処理（ステップ６２０）を実施する。ステップ６２０で発生するエラーメッセージについては図２１で、出力される図については図２２で説明する。
【０１４８】
ステップ６２０では、静的分析処理部１０６は、最初に項目データ８００から処理番号０１４の項目からの依頼有無を判定する。判定が無（図９の８０２の値が0）の場合、処理を実施せず、直ちに終了する。判定が有（図９の８０２の値が1）の場合、処理を実施する項目データ８００から処理番号０１０の項目から依頼有無かどうか判定する。判定が無（図９の８０２の値が0）の場合、ＶＭ相関関係算出処理を実施し、内部参照配列変数s[][][]を設定する。ＶＭ相関関係算出処理の詳細は図１０のステップ６１２で説明済である。その後、内部参照マップ変数bidmapを初期化する。
【０１４９】
一方、判定が有（図９の８０２の値が1）の場合、すでにs[][][]が設定済であるので、改めてＶＭ相関関係算出処理を実施する必要は無く、直接内部参照マップ変数bidmapを初期化する。続いて、リソース実測値２００またはリソース課金情報５００から利用している業務ＩＤ（図３の２２６または図６の５２６）を読み込む。マップ変数とはキーとキーに対応する値をセットとしていくつも格納することが可能な変数である。ただし、キーの重複は不可能である。さらに業務ＩＤを格納する内部参照配列変数bid[]を初期化する。
【０１５０】
次に、以下の処理を業務ＩＤの数N’（j=0,…,N’-1）だけ繰り返す。繰り返し処理の最初は内部参照リスト変数vmlistの初期化を実施する。リスト変数とは、値をいくつも格納することが可能な変数である。続いて、リソース実測値２００またはリソース課金情報５００からvmlistに業務ＩＤに対応したＶＭのＩＤ番号５０１の追加を実施する。次に業務ＩＤをキー、キーに対応した値をvmlistとしてマップ変数bidmapに格納する。最後に内部参照配列変数bid[j]に業務ＩＤを設定する。
【０１５１】
業務ＩＤの数N’による繰り返し処理実施後、内部参照配列変数hvm[][]を0で初期化する。この配列変数hvm[][]が「影響指標」であり、業務からＶＭへの影響力の強さを表現する。
【０１５２】
次に、以下の処理をＶＭの数N分（i=0,…,N-1）繰り返し、各ＶＭにおいて業務の数N’分（j=0,…,N’-1）さらに繰り返す。繰り返しの処理はbidmapに対して業務ＩＤをキーとして取り出したリストにＶＭのＩＤ番号が含まれているかどうか判定する。含まれている場合、hvm[i][j]=1に設定する。含まれていない場合は何も実施しない。
【０１５３】
繰り返しの処理の後、hvm[i][j]の総和（i=0,…,N-1,j=0,…,N’-1）がN×(N+1)÷2以下であるかどうか判定する。N×(N+1)÷2以下である場合、業務間関係計算・表示処理を実施する。この処理の詳細については後で説明する。N×(N+1)÷2よりも大きい場合、業務とＶＭとを関連付ける方程式モデルを識別することが不可能である（非特許文献５参照）。そのため、識別不可能なエラーメッセージを標準出力に出力（ステップ３５２１）する。メッセージの具体例については図２１で説明する。エラーメッセージを出力した後、名オブ参照配列変数hvm[][]を0に初期化する。
【０１５４】
以上で業務間関係表示処理は終了し、静的分析結果をネットワークで他システムへ送信処理（図１１のステップ１００３）に遷移する。
【０１５５】
（xxii）業務間関係計算・表示処理では、静的分析処理部１０６は、最初に内部参照配列変数ss[][]を0で初期化する。続いて、hvm[][]を推定するために変数qを1から32まで繰り返す。その繰り返しの中でさらにＶＭの数の２乗分（i,j=0,…,N-1）以下の処理を繰り返す。ＶＭの数の２乗分の繰り返しの中で、内部参照配列変数ss[][]を以下の通りに設定する。
【０１５６】
2016189125.tif 000017
【０１５７】
続いて、変数k’（0≦k’＜L）およびk”（0≦k”＜p）をk’×p＋k”＝1を満たす唯一の整数に設定する。LはＧＰＵの枚数、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を示す。
【０１５８】
ＶＭの数の２乗分の繰り返しの最後として、以下の通り、変数diffを設定する。
【０１５９】
2016189125.tif 000018
【０１６０】
ここで、s[][][]は図１０のステップ６１２の説明で定義した値であり標本共分散という。diffは繰り返しの中で次の項目をすべて足し合わせる。
【０１６１】
2016189125.tif 000019
【０１６２】
ここまでがＶＭの数の２乗分の繰り返しである。
【０１６３】
その後、diffの値が2の-q乗より大きいかどうか判定する。2の-q乗以下の場合は変数qの値に1加算し、再度ステップ３７０２から処理を実施する。diffの値が2の-q乗より大きい場合、以下ＶＭの数の２乗（i,j=0,…,N-1）およびi,j毎に業務ＩＤの数（k=0,…,N’-1）分繰り返しの処理でhvm[][]の値を補正する。
【０１６４】
最初にhvm[i][k]の値が0であるかどうか判定し、0であるなら補正を実施せず、変数kの値に1加算し、再度hvm[i][k]の値が0であるかどうか判定する。kの値がN’-1の場合はk=0、jの値に1加算する。Jの値がN-1の場合はj=k=0、iの値に1加算する。hvm[i][k]の値が0でない場合、以下の関係式が成立するか判定する。
【０１６５】
2016189125.tif 000020
【０１６６】
成立する場合、hvm[i][j]を以下の通りに設定する。
【０１６７】
2016189125.tif 000021
【０１６８】
続いて、次の関係式が成立するか判定する。
【０１６９】
2016189125.tif 000022
【０１７０】
成立する場合、hvm[i][j]を以下の通りに設定する。
【０１７１】
2016189125.tif 000023
【０１７２】
以上の補正を繰り返し、変数qが32まで繰り返す処理の終了後、ＶＭの数の分だけ（i=0,…,N-1）以下の処理を繰り返す。
【０１７３】
画面出力の対象のＶＭかどうか判定する。具体的には、vmresources[i][24]の値が1かどうかで判定する。対象でないＶＭの場合、次のＶＭの処理に遷移する。対象ＶＭの場合、ＩＤ番号（vmresources[i][0]の値）を標準出力に出力する。この繰り返し処理の中でさらに業務ＩＤに対して（j=0,…,N’-1）、hvm[i][j]の値が0かどうかで判定し、値が0でないなら変数jに対応する業務ＩＤ（bid[j]の値）を標準出力に出力、業務ＩＤからＶＭへの影響指標hvm[i][j]と関係線を標準出力に出力する処理を繰り返す。
【０１７４】
なお、図２２に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また「次へ」ボタンをクリックすると、次のＶＭの処理に遷移する。次のＶＭの処理が存在しない（i=N-1）場合、業務間関係計算・表示処理が終了し、業務間関係処理終了を経由して、静的分析結果をネットワーク経由で他システムへの送信処理（図１１の１００３）に遷移する。
【０１７５】
（xxiii）静的分析処理部１０６は、業務間関係表示処理（ステップ６２０）実施後、静的分析結果をネットワーク経由で他システムへ送信する（ステップ１００３）。ステップ１００３で出力されるファイルの詳細を図２３〜図２８で説明する。
【０１７６】
ステップ１００３では、静的分析処理部１０６は、図１０のステップ９０６から図１１のステップ６２０で算出したデータの内、図１２〜図１４での動的分析処理に必要なデータをＣＳＶファイルとして保存し、図４の出力部および一時保存部に出力する。ただし、画面表示部１１７および帳票出力部１１８への出力を除く。
【０１７７】
vmresources[][][]の値をカンマ区切りのＣＳＶファイル（図２３）として生成する。ファイル名は「vmresources_YYYYMMDDhhmmss.csv」で定義する。ただしYYYYMMDDhhmmssは年月日時分秒を当てはめたものである。YYYYMMDDhhmmssは以下同様である。
【０１７８】
vmcorrelation[][][]の値をカンマ区切りのCVSファイル（図２４）として生成する。ファイル名は「vmcorrelation_YYYYMMDDhhmmss.csv」で定義する。
【０１７９】
resourcecorrelation[][][]の値をカンマ区切りのCVSファイル（図２５）として生成する。ファイル名は「resourcecorrelation_YYYYMMDDhhmmss.csv」で定義する。
【０１８０】
vmregression[][][]の値をカンマ区切りのCVSファイル（図２６）として生成する。ファイル名は「vmregression_YYYYMMDDhhmmss.csv」で定義する。
【０１８１】
resourceregression[][][]の値をカンマ区切りのCVSファイル（図２７）として生成する。ファイル名は「resourceregression_YYYYMMDDhhmmss.csv」で定義する。
【０１８２】
hvm[][][]の値をカンマ区切りのCVSファイル（図２８）として生成する。ファイル名は「hvm_YYYYMMDDhhmmss.csv」で定義する。
【０１８３】
続いて、静的分析処理部１０６は、図１１のステップ１００３で生成したＣＳＶファイルを図３の出力部（１１３、１１５、１１６）および一時保存部（１０８、１１０、１１２）に出力する。
【０１８４】
ＣＳＶファイルを出力した後、事後処理（図１１のステップ１００４）へ進む。
（xxiv）静的分析処理部１０６は、静的分析結果を他システムへ送信した後、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ６０４に対する事後処理（ステップ１００４）を実施する。
【０１８５】
ステップ１００４では、静的分析処理部１０６は、主にＧＰＵのデバイスメモリの開放処理を行う。ＧＰＵの数（i=0,…,L-1）だけ繰り返し処理を実施する。
【０１８６】
利用するＧＰＵ（i番目）を指定してから、内部参照配列変数defferencewithavg[i][][]のデバイスメモリを開放する。続いて、内部参照配列変数vmcorrelation[i][][]のデバイスメモリの開放、resourcecorrelation[][]のデバイスメモリの開放、vmregression[][]のデバイスメモリの開放、resourceregression[][]のデバイスメモリの開放を実施する。
【０１８７】
繰り返し処理の後、内部参照配列変数vmresources[][]のホストメモリを開放する。
【０１８８】
以上の処理で事後処理を終了し、静的分析処理全体が終了、そして動的分析処理へ進む。
【０１８９】
＜動的分析処理の内容＞
図１２は、本発明の実施形態による動的分析処理の内容を説明するためのフローチャートである。
【０１９０】
（i）ＳＴＡＲＴ１１００は、クライアント７００から送信された処理実行命令７０１を動的分析処理部１１９が受信した時点である。
【０１９１】
（ii）動的分析処理部１１９は、他システム７０２からネットワークを経由して項目データ８００と静的分析結果を受信する（ステップ１１０１）。
【０１９２】
ステップ１１０１では始めに、内部参照配列変数vmcorrelation[][][]の初期化、resourcecorrelation[][][]の初期化、vmregression[][][]の初期化、resourceregression[][][]の初期化、hvm[][][]の初期化、movingavginfo[]の初期化およびvmresources[][][]の初期化を実施する。これらはＶＭ相関関係、リソース項目相関関係、ＶＭ偏回帰係数、リソース項目偏回帰係数、業務とＶＭとの影響指標、動的処理を実施するための過去データの数および将来予測結果の期間の情報、およびリソース実測値２００またはリソース課金情報５００を格納する。
【０１９３】
続いて、受信エラーフラグをｆａｌｓｅに設定する。その後、他システム７００および７０２との通信に必要なソケットを作成、ソケットに名称を付与、他システム７００および７０２からの接続を許可した後、他システム７００および７０２からの接続が開始される。
【０１９４】
接続開始後、内部参照配列変数vmcorrelation[][][]のホストメモリの確保、resourcecorrelation[][][]のホストメモリの確保、vmregression[][][]のホストメモリの確保、resourceregression[][][]のホストメモリの確保、hvm[][][]のホストメモリの確保、movingavginfo[]のホストメモリの確保、およびvmresources[][][]のホストメモリの確保を実施する。
【０１９５】
次に、項目データ８００を読み込み、読み込んだ項目データ８００の中から、項目番号１００の１行をmovingavginfo[]にコピーする。ただし、コピーの方法はカンマ区切りで配列の次の項に設定する。例えば項目番号１００の１行が「100,1,2,3」の場合、movingavginfo[0]=100、movingavginfo[1]=1、movingavginfo[2]=2、movingavginfo[3]=3に設定される。
【０１９６】
続いて、movingavginfo[2]の値が1以上の整数であるかどうか判定し、0以下である、または整数でない場合、過去データが読み込み不可能なエラーメッセージを標準出力に出力する。メッセージの具体例は図５０で説明する。さらに、受信エラーフラグをｔｒｕｅに設定し、処理が終了する。
【０１９７】
一方、movingavginfo[2]の値が1以上の整数である場合、引き続きmovingavginfo[3]の値が1以上の整数かどうか判定し、0以下である、または整数でない場合、将来予測が算出不可能なエラーメッセージを標準出力に出力する。メッセージの具体例は図２９で説明する。さらに、受信エラーフラグをｔｒｕｅに設定し、処理が終了する。
【０１９８】
一方、movingavginfo[3]の値が1以上の整数である場合、以下movingavginfo[2]の値（平均算出処理に利用する過去データの数）の分だけ（i=0,…, movingavginfo[2]-1）繰り返しの処理を実施する。
【０１９９】
他システム７００および７０２からi+1番目に新しい「vmcorrelation_YYYYMMDDhhmmss.csv」ファイルを受信、「resourcecorrelation_YYYYMMDDhhmmss.csv」ファイルを受信、「vmregression_YYYYMMDDhhmmss.csv」ファイルを受信、「resourceregression_YYYYMMDDhhmmss.csv」ファイルを受信、「hvm_YYYYMMDDhhmmss.csv」ファイルを受信、および「vmresources_YYYYMMDDhhmmss.csv」ファイルを受信する。受信バイトの合計が0であるかどうか判定し、0バイトである場合、再度「vmcorrelation_YYYYMMDDhhmmss.csv」ファイルから読み込む。
【０２００】
受信バイトの合計が0バイトでない場合、i+1番目に新しい「vmresources_YYYYMMDDhhmmss.csv」ファイルの中身をvmresource[movingavginfo[2]-1-i][][]に代入する。ただし、代入方法は行を配列の2項目に、列を配列の3項目に割り当てる。具体的に、vmresources_YYYYMMDDhhmmss.csvが図４１の場合、vmresources はvmresources[movingavginfo[2]-1-i][0][0]=VM_1、vmresources[movingavginfo[2]-1-i][0][1]=2.56、vmresources[movingavginfo[2]-1-i][1][0]=VM_2、vmresources[movingavginfo[2]-1-i][1][1]=2.00に設定される。この代入方法はvmcorrelation、resourcecorrelation、vmregression、resourceregressionおよびhvmについても同様である。
【０２０１】
続いて、i+1番目に新しい「vmcorrelation_YYYYMMDDhhmmss.csv」ファイルの中身をvmcorrelation[movingavginfo[2]-1-i][][]に代入、「resourcecorrelation_YYYYMMDDhhmmss.csv」ファイルの中身をresourcecorrelation[movingavginfo[2]-1-i][][]に代入、「vmregression_YYYYMMDDhhmmss.csv」ファイルの中身をvmregression[movingavginfo[2]-1-i][][]に代入、「resourceregression_YYYYMMDDhhmmss.csv」ファイルの中身をresourceregression[movingavginfo[2]-1-i][][]に代入、および「hvm_YYYYMMDDhhmmss.csv」ファイルの中身をhvm[movingavginfo[2]-1-i][][]に代入する。
【０２０２】
以上の処理をmovingavginfo[2]の値分（i=0,…, movingavginfo[2]-1）繰り返した後、静的分析結果受信処理は終了し、受信エラー有無の判定（図１２のステップ１１０２）に進む。
【０２０３】
（iii）動的分析処理部１１９は、ネットワークを経由して項目データ８００と静的分析結果を受信（ステップ１１０１）の際に受信エラーのフラグを生成し、受信エラーの有無を判定する（ステップ１１０２）。エラーが有る（フラグ＝ｔｒｕｅ）の場合、動的分析処理は終了する（ステップ１１０３）。エラーが無い（フラグ＝ｆａｌｓｅ）の場合、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４に対する事前処理（ステップ１１０４）を実施する。
【０２０４】
（iv）ステップ１１０４では、動的分析処理部１１９は、ＧＰＵのデバイスメモリを確保する処理である。内部参照配列変数毎に異なるＧＰＵを使用する。利用するＧＰＵ（0番目）の指定、vmcorrelation[][][]のデバイスメモリの確保、利用するＧＰＵ（1番目）の指定、resourcecorrelation[][][]のデバイスメモリの確保、利用するＧＰＵ（2番目）の指定、vmregression[][][]のデバイスメモリの確保、利用するＧＰＵ（3番目）の指定、resourceregression[][][]のデバイスメモリの確保、利用するＧＰＵ（4番目）の指定、hvm[][][]のデバイスメモリの確保を実施する。以上で事前処理は終了する。事前処理（ステップ１１０４）終了後、図１３へ進む（ステップ１１０５）。
【０２０５】
（v）図１３は、図１２の続きのフローチャートである。
【０２０６】
（vi）ステップ１２０１において、動的分析処理部１１９は、項目データ８００の項目番号１１０に対する判定を行う。カンマの後の値が１である場合、単純移動平均算出処理（ステップ７１０）を実施する。ステップ７１０の詳細は図３０で説明する。
【０２０７】
ステップ１２０１において、カンマの後の値が０である場合、単純移動平均算出処理（ステップ７１０）は実施しない。
【０２０８】
（vii）ステップ１２０２において、動的分析処理部１１９は、項目データ８００の項目番号１１１に対する判定を行う。カンマの後の値が１である場合、加重移動平均算出処理（ステップ７１１）を実施する。ステップ７１１の詳細は図３１で説明する。
【０２０９】
ステップ１２０２において、カンマの後の値が０である場合、加重移動平均算出処理（ステップ７１１）は実施しない。
【０２１０】
（viii）ステップ１２０３において、動的分析処理部１１９は、項目データ８００の項目番号１１２に対する判定を行う。カンマの後の値が１である場合、１次関数近似算出処理（ステップ７１２）を実施する。ステップ７１２の詳細は図３２で説明する。
【０２１１】
ステップ１２０３において、カンマの後の値が０である場合、１次関数近似算出処理（ステップ７１２）は実施しない。
【０２１２】
（ix）ステップ１２０４において、動的分析処理部１１９は、項目データ８００の項目番号１１３に対する判定を行う。カンマの後の値が１である場合、多項式近似算出処理（ステップ７１３）を実施する。ステップ７１３の詳細は図３３で説明する。ステップ７１３終了後、図１４へ進む（ステップ１２９９）。また、ステップ１２０４において、カンマの後の値が０である場合、多項式近似算出処理（ステップ７１３）は実施せず、処理は図１４に進む（ステップ１２９９）。
【０２１３】
（x）図１４は、図１３の続きのフローチャートである。
【０２１４】
（xi）ステップ１３００から、将来予測表示処理（ステップ７１８）が実施される。ステップ７１８の詳細は図３４で説明する。
【０２１５】
（xii）動的分析処理部１１９は、将来予測表示処理（ステップ７１８）を実施後、動的分析結果をネットワーク経由で他システムへ送信する（ステップ１３０１）。ステップ１３０１の詳細を図４５〜図５０で説明する。
【０２１６】
ステップ１３０１では、動的分析処理部１１９は、まずに図１２のステップ１１０４から図１４のステップ７１８で算出したデータの内、動的分析処理で算出した予測データをＣＳＶファイルとして保存し、図５の出力部に出力する。ただし、画面表示部１２５および帳票出力部１２６への出力を除く。
【０２１７】
vmresources[][][]の値をカンマ区切りのＣＳＶファイル（図４５）として生成する。ファイル名は「vmresources_YYYYMMDDhhmmss_{10}d.csv」で定義する。ただし、YYYYMMDDhhmmssは年月日時分秒を当てはめたもの、{10}dは配列の1項目の値を10桁の数字で当てはめたものである。ただし後者については0〜 movingavginfo[2]-1までは生成しない。
【０２１８】
vmcorrelation[][][]の値をカンマ区切りのCVSファイル（図４６）として生成する。ファイル名は「vmcorrelation_YYYYMMDDhhmmss_{10}d.csv」で定義する。ただし、YYYYMMDDhhmmssは年月日時分秒を当てはめたもの、{10}dは配列の1項目の値を10桁の数字で当てはめたものである。以下同様である。
【０２１９】
resourcecorrelation[][][]の値をカンマ区切りのCVSファイル（図４７）として生成する。ファイル名は「resourcecorrelation_YYYYMMDDhhmmss_{10}d.csv」で定義する。
【０２２０】
vmregression[][][]の値をカンマ区切りのCVSファイル（図４８）として生成する。ファイル名は「vmregression_YYYYMMDDhhmmss_{10}d.csv」で定義する。
【０２２１】
resourceregression[][][]の値をカンマ区切りのCVSファイル（図４９）として生成する。ファイル名は「resourceregression_YYYYMMDDhhmmss_{10}d.csv」で定義する。
【０２２２】
hvm[][][]の値をカンマ区切りのCVSファイル（図５０）として生成する。ファイル名は「hvm_YYYYMMDDhhmmss_{10}d.csv」で定義する。
【０２２３】
続いて、生成したＣＳＶファイルを図５の出力部（１２１、１２３、１２４）に出力する。
【０２２４】
（xiii）動的分析結果を他システムへ送信した後、ステップ１３０２において、動的分析処理部１１９は、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４に対する事後処理を実施する。ステップ１３０２では、主にＧＰＵのデバイスメモリの開放処理が実行される。
【０２２５】
利用するＧＰＵ（0番目）を指定してから、内部参照配列変数vmcorrelation[][][]のデバイスメモリを開放する。続いて、利用するＧＰＵ（1番目）を指定してから、内部参照配列変数resourcecorrelation[][][]のデバイスメモリを開放する。続いて、利用するＧＰＵ（2番目）を指定してから、内部参照配列変数vmregression[][][]のデバイスメモリを開放する。続いて、利用するＧＰＵ（3番目）を指定してから、内部参照配列変数resourceregression[][][]のデバイスメモリを開放する。最後に、利用するＧＰＵ（4番目）を指定してから、内部参照配列変数hvm[][][]のデバイスメモリを開放する。
【０２２６】
以上の処理で動的分析処理全体が終了（ステップ１３０３）し、課金管理・分析装置の一連の処理は終了する。
【０２２７】
＜エラーメッセージの例＞
図１５は、処理対象のリソース実測値（図３）およびリソース課金情報（図６）のデータに誤りが存在する場合のエラーメッセージの出力の一例を示す図である。
【０２２８】
図１０の「数値変換エラー有無」はリソース実測値読み込みエラーフラグが担っている。
【０２２９】
図１０のステップ６１０において、リソース実測値読み込みエラーフラグがｔｒｕｅの場合、リソース実測値読み込みフラグ、リソース課金情報読み込みフラグのいずれかがｆａｌｓｅの場合は、図１５の１７０１〜１７０３のようにエラーが発生した行および項目に誤りがあるメッセージを該当する行とともに標準出力に出力（図１０のステップ９０４）する。なお、複数の項目に誤りがある場合、最初の誤りの項目のみメッセージが標準出力に出力する（１７０２）。
【０２３０】
一方、リソース実測値読み込みフラグ、リソース課金情報読み込みフラグのいずれもｔｒｕｅである場合、読み込んだリソース情報のデータにおいて実測値と課金情報が混在しているメッセージを該当する2行とともに標準出力に出力（図１０のステップ９０４）する。
【０２３１】
＜ＶＭ相関関係表示例＞
図１６は、ＶＭ相関関係表示処理（図１１のステップ６１６）において標準出力（画面）に出力される表示例を示す図である。
【０２３２】
画面の中心を中心とする円周（２７０３）上にＶＭのID番号を四角枠で囲って出力（２７０２、２７０４）する。最初に出力されるＶＭは必ず右側に出力するものとする。出力対象のＶＭは円周（２７０３）上に等間隔にＶＭのID番号を四角枠で囲って出力（２７０４）される。具体例として、出力対象のＶＭがＶＭ1〜ＶＭ4の場合、ＶＭ1は右側、ＶＭ2は真上、ＶＭ3は左側、ＶＭ4は真下に出力される。つまり、この場合は中心をＯとすると、∠ＶＭ1ＯＶＭ2＝∠ＶＭ2ＯＶＭ3＝∠ＶＭ3ＯＶＭ4＝∠ＶＭ4ＯＶＭ1＝90°である（２７０１）。なお、円周および中心からＶＭへの線は画面には出力されない。
【０２３３】
ＶＭ間の関係線は、相関係数の絶対値が入力したパス解析要相関係数値以上のもののみ出力（２７０６）される。また、相関係数はこの関係線の中間に破線の四角枠に囲って出力（２７０５）される。
【０２３４】
相関関係以外には画面の左上に「印刷」ボタン（２７０７）、「次へ」ボタン（２７０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１１８）において画面上のＶＭ相関関係表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。一方、「次へ」ボタンをクリックすると、リソース項目相関関係表示（図３０）へ遷移する。
【０２３５】
＜リソース項目相関関係表示等として出力される項目例＞
図１７は、リソース項目相関関係表示、リソース項目偏回帰係数表示、およびＶＭリソース使用量予測表示として出力される項目名一覧の一例を示す図である。
【０２３６】
項目番号（２９０１）と出力対象の項目名（２９０２）がカンマ区切りで記載されている。ここに記載されている項目名（２９０２）が図１０のステップ６１７の説明したrname[]に格納され、標準出力に出力される。項目番号（２９０１）はrname[]のインデックスに対応する。
【０２３７】
＜リソース項目相関関係表示例＞
図１８は、リソース項目相関関係表示処理（図１１のステップ６１７）において標準出力（画面）に出力される表示例を示す図である。
【０２３８】
画面の中心を中心とする円周（３００３）上にリソース項目名（rmane[]の値）を四角枠で囲って出力（３００２、３００４）する。最初に出力されるリソース項目名は必ず右側に出力する。出力対象のリソース項目は円周（３００３）上に等間隔にリソース項目名を四角枠で囲って出力（３００２）される。具体例として、出力対象のリソース項目がＣＰＵ使用量、メモリ使用量、ストレージＲｅａｄ＆Ｗｒｉｔｅ、ストレージ使用量の場合、ＣＰＵ使用量は右側、メモリ使用量は真上、ストレージＲｅａｄ＆Ｗｒｉｔｅは左側、ストレージ使用量は真下に出力される。つまり、この場合は中心をＯとすると、∠「ＣＰＵ使用量」Ｏ「メモリ使用量」＝∠「メモリ使用量」Ｏ「ストレージＲｅａｄ＆Ｗｒｉｔｅ」＝∠「ストレージＲｅａｄ＆Ｗｒｉｔｅ」Ｏ「ストレージ使用量」＝∠「ストレージ使用量」Ｏ「ＣＰＵ使用量」＝90°である（３００１）。なお、円周および中心からＶＭへの線は画面には出力されない。
【０２３９】
リソース項目間の関係線は、相関係数の絶対値が入力したパス解析要相関係数値以上のもののみ出力（３００６）される。また、相関係数はこの関係線の中間に破線の四角枠に囲って出力（３００５）される。
【０２４０】
相関関係以外には画面の左上に「印刷」ボタン（３００７）、「次へ」ボタン（３００８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１１８）において画面上のリソース項目相関関係表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。一方、「次へ」ボタンをクリックすると、ＶＭ偏回帰係数表示（図１９）へ遷移する。
【０２４１】
＜ＶＭ偏回帰係数表示例＞
図１９は、ＶＭ偏回帰係数表示処理（図１１のステップ６１８）において標準出力（画面）に出力される表示例を示す図である。
【０２４２】
偏回帰係数以外の表示について、画面の左上に「印刷」ボタン（３２０７）、「次へ」ボタン（３２０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図１の１１８）において画面上のＶＭ偏回帰係数表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０２４３】
一方、「次へ」ボタンをクリックすると、次の対象ＶＭに対するＶＭ偏回帰係数表示へ遷移する。次の対象ＶＭが存在しない場合、リソース項目偏回帰係数表示（図２０）へ遷移する。
【０２４４】
「印刷」ボタンの直下に誤差係数”e”を標準出力に出力（３２０１）する。その誤差係数から対象ＶＭへ右矢印を出力（３２０２）する。対象ＶＭは実線四角枠でＩＤ番号を囲み（３２０３）、３２０２および関係線３２０４の矢印の先端で枠が接するように出力する。その他のＶＭの内、出力対象のＶＭは実線四角枠で囲む（３２０５）。記載の順は読み込んだリソース実測値２００またはリソース課金情報５００の記載順に縦一列に出力される。また、誤差係数３２０１、対象ＶＭ３２０３およびその他のＶＭ３２０５の一番上に出力されるＶＭが横一列に出力される。
【０２４５】
対象ＶＭと同じ高さに位置しない場合、中間で直角に折り曲がる。関係線３２０４上で対象ＶＭとその他のＶＭとの距離が３：１となる場所で偏回帰係数３２０６を出力。偏回帰係数は破線四角枠で囲む。
【０２４６】
＜リソース項目偏回帰係数表示例＞
図２０は、リソース項目偏回帰係数表示処理（図１１のステップ６１９）において標準出力（画面）に出力される表示例を示す図である。
【０２４７】
リソース項目偏回帰係数以外の表示について、画面の左上に「印刷」ボタン（３４０７）、「次へ」ボタン（３４０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１１８）において画面上のリソース項目偏回帰係数表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０２４８】
一方、「次へ」ボタンをクリックすると、次の対象リソース項目に対するリソース項目偏回帰係数表示へ遷移する。次の対象リソース項目が存在しない場合、業務間関係表示（図２２）へ遷移する。
【０２４９】
「印刷」ボタンの直下に誤差係数”e”を標準出力に出力（３４０１）する。その誤差係数から対象リソース項目へ右矢印を出力（３４０２）する。対象リソース項目は実線四角枠でＩＤ番号を囲み（３４０３）、３４０２および関係線３４０４の矢印の先端で枠が接するように出力する。その他のリソース項目の内、出力対象のリソース項目は実線四角枠で囲む（３４０５）。記載の順は読み込んだrname[]のインデックス順に縦一列に出力される。また、誤差係数３４０１、対象リソース項目３４０３およびその他のリソース項目３４０５の一番上に出力されるＶＭが横一列に出力される。対象リソース項目と同じ高さに位置しない場合、中間で直角に折り曲がる。関係線３４０４上で対象リソース項目とその他のリソース項目との距離が３：１となる場所で偏回帰係数３４０６を出力。偏回帰係数は破線四角枠で囲む。
【０２５０】
＜業務間関係の計算が不可能な場合のエラーメッセージ例＞
図２１は、ＶＭと業務との関係上、業務間関係の計算が不可能な場合のエラーメッセージの出力の一例を示す図である。
【０２５１】
「ＶＭと業務間関係とを表現するモデルが識別されていません。」とメッセージを標準出力に出力（３６０１）する。
【０２５２】
＜業務間関係表示例＞
図２２は、業務間関係表示処理（図１１のステップ６２０）において標準出力（画面）に出力される表示例を示す図である。
【０２５３】
業務間関係以外の表示について、画面の左上に「印刷」ボタン（３９０５）、「次へ」ボタン（３９０６）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図１の１１８）において画面上の業務間関係表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。一方、「次へ」ボタンをクリックすると、次の対象ＶＭに対する業務間関係表示へ遷移する。次の対象ＶＭが存在しない場合、静的分析結果をネットワーク経由で他システムへ送信する。
【０２５４】
「印刷」ボタンの直下に業務ＩＤを標準出力に出力（３９０２）する。業務ＩＤは実線丸枠で囲む。複数業務ＩＤが存在する場合、業務ＩＤはbid[]のインデックス順に縦一列に出力される。その業務ＩＤから対象ＶＭへ右矢印または途中で直角に折り曲がった矢印を出力（３９０３）する。対象ＶＭと同じ高さに位置しない場合、中間で直角に折り曲がる。対象ＶＭは一番上に出力されている業務ＩＤと同じ高さに出力する（３９０１）。対象ＶＭは実線四角枠で囲み、３９０３の矢印の先端で枠が接するように出力される。関係線３９０３上で対象業務ＩＤとＶＭとの距離が１：３となる場所で影響指標３９０４を出力。影響指標は破線四角枠で囲む。
【０２５５】
＜リソース実測値およびリソース課金情報におけるリソース項目の平均との差＞
図２３は、リソース実測値およびリソース課金情報におけるリソース項目の平均との差（例）を示す図である。図２３では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０２５６】
図２３は、vmresources[][][]の値をカンマ区切りのＣＳＶファイル「vmresources_YYYYMMDDhhmmss.csv」で表現した例である。各ＶＭに関する平均との差は、vmresources[0][0][0]〜vmresources[0][0][q]（q≧25）に相当し、１行で記載されている。q≧25となっているのは、業務ＩＤが複数記載されている可能性があるためである。２行目にはvmresources[0][1][]、p行目にはvmresources[0][p-1][]、p+1行目にはvmresources[1][0][]、そしてN行目にはvmresources[L][k’][]が記載されている（４１０１〜４１０６）。ただし、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を示し、NはＶＭの数である。また、Lおよびk’（0≦k’≦p-1）はN=L×p＋k’を満たす唯一の整数である。
【０２５７】
＜ＶＭ相関係数の例＞
図２４は、ＶＭ相関係数の例を示す図である。図２４では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０２５８】
図２４は、vmcorrelation[][][]の値をカンマ区切りのＣＳＶファイル「vmcorrelation_YYYYMMDDhhmmss.csv」で表現した例である。各ＶＭ相関係数は、vmcorrelation[0][0][0]〜vmcorrelation[0][0][N-1]に相当し、１行で記載している。２行目にはvmcorrelation[0][1][]、p行目にはvmcorrelation[0][p-1][]、p+1行目にはvmcorrelation[1][0][]、そしてN行目にはvmcorrelation[L][k’][]が記載されている（４２０１〜４２０８）。ただし、pはリソース実測値２００またはリソース課金情報５００においてＧＰＵ１枚で処理可能なＶＭ数（行数）を示し、NはＶＭの数である。また、Lおよびk’（0≦k’≦p-1）はN=L×p＋k’を満たす唯一の整数である。
【０２５９】
＜リソース項目相関係数の例＞
図２５は、リソース項目相関係数の例を示す図である。図２５では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０２６０】
図２５は、resourcecorrelation[][]の値をカンマ区切りのＣＳＶファイル「resourcecorrelation_YYYYMMDDhhmmss.csv」で表現した例である。リソース項目相関係数は、resourcecorrelation[0][0][0]〜resourcecorrelation[0][0][22]に相当し、１行で記載している。２行目にはresourcecorrelation[0][1][]、そして２３行目にはresourcecorrelation[0][22][]が記載されている（４３０１〜４３０５）。
【０２６１】
＜ＶＭ偏回帰係数の例＞
図２６は、ＶＭ偏回帰係数の例を示す図である。図２６では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０２６２】
図２６は、vmregression[][]の値をカンマ区切りのＣＳＶファイル「vmregression_YYYYMMDDhhmmss.csv」で表現した例である。ＶＭ偏回帰係数は、vmregression[0][0]〜vmregression[0] [N-1]に相当し、１行に記載している。２行目にはvmregression[1][]、そしてN行目にはvmregression[N-1][]が記載されている（４４０１〜４４０５）。ただし、NはＶＭの数である。
【０２６３】
＜リソース項目偏回帰係数の例＞
図２７は、リソース項目偏回帰係数の例を示す図である。図２７では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０２６４】
図２７は、resourceregression[][]の値をカンマ区切りのＣＳＶファイル「resourceregression_YYYYMMDDhhmmss.csv」で表現した例である。リソース偏回帰係数は、vmregression[0][0]〜resourceregression[0] [22]に相当し、１行で記載している。２行目にはresourceregression[1][]、そして２３行目にはresourceregression[22][]が記載されている（４５０１〜４５０５）。
【０２６５】
＜業務間関係の例＞
図２８は、業務間関係を示す影響指標の例を示す図である。図２８では、カンマ区切りで生成したＣＳＶファイルの一例を示す図である。
【０２６６】
図２８は、hvm[][]の値をカンマ区切りのＣＳＶファイル「hvm_YYYYMMDDhhmmss.csv」で表現した例である。業務関係を示す影響指標は、hvm[0][0]〜hvm[0] [N’-1]に相当し、１行で記載している。２行目にはhvm[1][]、そしてN行目にはhvm[N-1][]が記載されている（４６０１〜４６０５）。ただし、NはＶＭの数、N’は業務ＩＤの数である。
【０２６７】
＜データに誤りがある場合のエラーメッセージの例＞
図２９は、ネットワークを経由して処理を実施する項目データ、静的分析結果、及びリソース実測値・課金情報を受信する処理（図１２のステップ１１０１）において、データに誤りが存在する場合のエラーメッセージの出力例を示す図である。
【０２６８】
過去データを取り込むことが不可能な場合、「過去データが取り込めません。」というエラーメッセージが標準出力に出力される（５００１）。
【０２６９】
将来予測が算出不可能な場合、「将来予測が算出できません。」というエラーメッセージが標準出力に出力される（５００２）。
【０２７０】
＜単純移動平均算出処理の内容＞
図３０は、単純移動平均算出処理（図１３のステップ７１０）の詳細を説明するためのフローチャートである。
【０２７１】
（i）ステップ５２０１において、動的分析処理部１１９は、項目データ８００の項目番号０１０に対する判定（ステップ５２０１）を行う。カンマの後の値が１である場合、ＶＭ相関関係の単純移動平均算出処理（ステップ５２０２）が実施される。カンマの後の値が０である場合は、ＶＭ相関関係の単純移動平均算出処理（ステップ５２０２）は実施されず、次の項目データ８００の項目番号０１１に対する判定（ステップ５２０３）が実施される。
【０２７２】
（ii）ステップ５２０２では、動的分析処理部１１９は、最初に利用するＧＰＵ（0番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０２７３】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でvmcorrelation[movingavginfo[2]+i][][]の値にvmcorrelation[i+j][][]を加算した値をvmcorrelation[movingavginfo[2]+i][][]に設定する。
【０２７４】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、vmcorrelation[movingavginfo[2]+i][][]の値からmovingavginfo[2]の値を除算した値をvmcorrelation[movingavginfo[2]+i][][]に設定する。
【０２７５】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、ＶＭ相関関係の単純移動平均算出処理は終了する。
【０２７６】
（iii）ステップ５２０３において、動的分析処理部１１９は、項目データ８００の項目番号０１１に対する判定を行う。カンマの後の値が１である場合、リソース項目相関関係の単純移動平均算出処理（ステップ５２０４）を実施する。カンマの後の値が０である場合は、リソース項目相関関係の単純移動平均算出処理（ステップ５２０４）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ５２０５）を実施する。
【０２７７】
（iv）ステップ５２０４において、動的分析処理部１１９は、最初に利用するＧＰＵ（1番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０２７８】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でresourcecorrelation[movingavginfo[2]+i][][]の値にresourcecorrelation[i+j][][]を加算した値をresourcecorrelation[movingavginfo[2]+i][][]に設定する。
【０２７９】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、resourcecorrelation[movingavginfo[2]+i][][]の値からresourcevingavginfo[2]の値を除算した値をresourcecorrelation[movingavginfo[2]+i][][]に設定する。
【０２８０】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目相関関係の単純移動平均算出処理は終了する。
【０２８１】
（v）ステップ５２０５において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。カンマの後の値が１である場合、ＶＭ偏回帰係数の単純移動平均算出処理（ステップ５２０６）を実施する。カンマの後の値が０である場合はＶＭ偏回帰係数の単純移動平均算出処理（ステップ５２０６）を実施せず、次の項目データ８００の項目番号０１３に対する判定（ステップ５２０７）を実施する。
【０２８２】
（vi）ステップ５２０６において、動的分析処理部１１９は、最初に利用するＧＰＵ（2番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０２８３】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でvmregression[movingavginfo[2]+i][][]の値にvmregression[i+j][][]を加算した値をvmregression[movingavginfo[2]+i][][]に設定する。
【０２８４】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、vmregression[movingavginfo[2]+i][][]の値からmovingavginfo[2]の値を除算した値をvmregression[movingavginfo[2]+i][][]に設定する。
【０２８５】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、ＶＭ偏回帰係数の単純移動平均算出処理は終了する。
【０２８６】
（vii）ステップ５２０７において、動的分析処理部１１９は、項目データ８００の項目番号０１３に対する判定を行う。カンマの後の値が１である場合、リソース項目偏回帰係数の単純移動平均算出処理（ステップ５２０８）を実施する。カンマの後の値が０である場合は、リソース項目偏回帰係数の単純移動平均算出処理（ステップ５２０８）を実施せず、次の項目データ８００の項目番号０１４に対する判定（ステップ５２０９）を実施する。
【０２８７】
（viii）ステップ５２０８において、動的分析処理部１１９は、最初に利用するＧＰＵ（3番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０２８８】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でresourceregression[movingavginfo[2]+i][][]の値にresourceregression[i+j][][]を加算した値をresourceregression[movingavginfo[2]+i][][]に設定する。
【０２８９】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、resourceregression[movingavginfo[2]+i][][]の値からmovingavginfo[2]の値を除算した値をresourceregression[movingavginfo[2]+i][][]に設定する。
【０２９０】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目偏回帰係数の単純移動平均算出処理は終了する。
【０２９１】
（ix）ステップ５２０９において、動的分析処理部１１９は、項目データ８００の項目番号０１４に対する判定を行う。カンマの後の値が１である場合、業務間関係の単純移動平均算出処理（ステップ５２１０）を実施する。カンマの後の値が０である場合は業務間関係の単純移動平均算出処理（ステップ５２１０）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ５２１１）を実施する。
【０２９２】
（x）ステップ５２１０において、動的分析処理部１１９は、最初に利用するＧＰＵ（4番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０２９３】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でhvm[movingavginfo[2]+i][][]の値にhvm[i+j][][]を加算した値をhvm[movingavginfo[2]+i][][]に設定する。
【０２９４】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、hvm[movingavginfo[2]+i][][]の値からmovingavginfo[2]の値を除算した値をhvm[movingavginfo[2]+i][][]に設定する。
【０２９５】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、業務間関係の単純移動平均算出処理は終了する。
【０２９６】
（xi）ステップ５２１１において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。このように再度判定するのは、この判定が存在しない場合、ＶＭ偏回帰係数の値が存在しない可能性があり、ＶＭリソース使用量予測を算出することが不可能であるためである。カンマの後の値が１である場合、ＶＭリソース使用量予測算出処理（ステップ５２１２）を実施する。カンマの後の値が０である場合はＶＭリソース使用量予測算出処理（ステップ５２１２）を実施せず、単純移動平均処理は終了（ステップ５２１３）する。
【０２９７】
（xii）ステップ５２１２において、動的分析処理部１１９は、最初に内部参照配列変数vmid[]の初期化、ホストメモリの確保、内部参照配列変数vmalpha[]を0に初期化、ホストメモリの確保、内部参照配列変数vmoutput[]の初期化、およびホストメモリの確保を実施する。
【０２９８】
その後、ＶＭの数（i=0,…, N-1）だけ繰り返す。この繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（j=0,…, 24）だけ繰り返す。
【０２９９】
これら二重の繰り返しの中でj=0かどうか判定し、0である場合、vmid[i]=vmresources[movingavginfo[2]-1][i][j]に設定し、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０３００】
続いて、jが１１より大きく２０未満、またはj=24かどうか判定し、条件を満たす場合、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０３０１】
二重の繰り返し処理が終了後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）+1の分だけ（i=0,…,movingavginfo[3]）繰り返す。この繰り返し処理の中でさらにＶＭの数（j=0,…, N-1）だけ繰り返す。この二重繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（l=0,…, 24）だけ繰り返す。この三重繰り返しの処理の中でさらにＶＭの数（k=0,…, N-1）だけ繰り返す。
【０３０２】
これら四重繰り返しの中で、vmalpha[i][j][l] にvmregression[movingavginfo[2]-1+i][j][k]とvmresources[movingavginfo[2]-1+i][k][l]とを乗算した値を加算したものをvmalpha[i][j][l]に設定する。
【０３０３】
変数kについての繰り返しの終了後、三重繰り返しの中で、iが自然数（1以上の整数）であるかどうか判定し、自然数である場合、vmaplha[0][j][l]の値が0であるかどうか判定する。vmaplha[0][j][l]の値が0である場合、vmresources[movingavginfo[2]-1+i][j][l]の値を0に設定する。vmaplha[0][j][l]の値が0でない場合、vmalpha[i][j][l]にvmresources[movingavginfo[2]-1][j][l]を乗算した値をvmalpha[0][j][l]で除算した値をvmresources[movingavginfo[2]-1+i][j][l]に設定する。iが自然数でない場合、vmresources[movingavginfo[2]-1+i][j][l]の設定処理は実施しない。
【０３０４】
これら三重繰り返しの処理が終了することにより、ＶＭリソース使用量予測算出処理が終了する。
【０３０５】
＜加重移動平均算出処理の内容＞
図３１は、加重移動平均算出処理（図１３のステップ７１１）の詳細を説明するためのフローチャートである。
【０３０６】
（i）ステップ６００１において、動的分析処理部１１９は、項目データ８００の項目番号０１０に対する判定を行う。項目番号０１０のカンマの後の値が１である場合、ＶＭ相関関係の加重移動平均算出処理（ステップ６００２）を実施する。カンマの後の値が０である場合、ＶＭ相関関係の加重移動平均算出処理（ステップ６００２）を実施せず、次の項目データ８００の項目番号０１１に対する判定（ステップ６００３）を実施する。
【０３０７】
（ii）ステップ６００２において、動的分析処理部１１９は、最初に利用するＧＰＵ（0番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３０８】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でvmcorrelation[movingavginfo[2]+i][][]の値にvmcorrelation[i+j][][]×(j+1)を加算した値をvmcorrelation[movingavginfo[2]+i][][]に設定する。
【０３０９】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、vmcorrelation[movingavginfo[2]+i][][]の値を2倍し、movingavginfo[2]×(movingavginfo[2]+1)の値を除算した値をvmcorrelation[movingavginfo[2]+i][][]に設定する。
【０３１０】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、ＶＭ相関関係の加重移動平均算出処理は終了する。
【０３１１】
（iii）ステップ６００３において、動的分析処理部１１９は、項目データ８００の項目番号０１１に対する判定を行う。項目番号０１１のカンマの後の値が１である場合、リソース項目相関関係の加重移動平均算出処理（ステップ６００４）を実施する。項目番号０１１のカンマの後の値が０である場合は、リソース項目相関関係の加重移動平均算出処理（ステップ６００４）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ６００５）を実施する。
【０３１２】
（iv）ステップ６００４では、動的分析処理部１１９は、最初に利用するＧＰＵ（1番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３１３】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でresourcecorrelation[movingavginfo[2]+i][][]の値にresourcecorrelation[i+j][][]×(j+1)を加算した値をresourcecorrelation[movingavginfo[2]+i][][]に設定する。
【０３１４】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、resourcecorrelation[movingavginfo[2]+i][][]の値を2倍し、resourcevingavginfo[2]×(resourcevingavginfo[2]+1)の値を除算した値をresourcecorrelation[movingavginfo[2]+i][][]に設定する。
【０３１５】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目相関関係の加重移動平均算出処理は終了する。
【０３１６】
（v）ステップ６００５において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭ偏回帰係数の加重移動平均算出処理（ステップ６００６）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭ偏回帰係数の加重移動平均算出処理（ステップ６００６）を実施せず、次の項目データ８００の項目番号０１３に対する判定（ステップ６００７）を実施する。
（vi）ステップ６００６において、動的分析処理部１１９は、最初に利用するＧＰＵ（2番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３１７】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でvmregression[movingavginfo[2]+i][][]の値にvmregression[i+j][][]×(j+1)を加算した値をvmregression[movingavginfo[2]+i][][]に設定する。
【０３１８】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、vmregression[movingavginfo[2]+i][][]の値を2倍し、movingavginfo[2]×（movingavginfo[2]+1）の値を除算した値をvmregression[movingavginfo[2]+i][][]に設定する。
【０３１９】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、ＶＭ偏回帰係数の加重移動平均算出処理は終了する。
【０３２０】
（vii）ステップ６００７において、動的分析処理部１１９は、項目データ８００の項目番号０１３に対する判定を行う。項目番号０１３のカンマの後の値が１である場合、リソース項目偏回帰係数の加重移動平均算出処理（ステップ６００８）を実施する。項目番号０１３のカンマの後の値が０である場合は、リソース項目偏回帰係数の加重移動平均算出処理（ステップ６００８）を実施せず、次の項目データ８００の項目番号０１４に対する判定（ステップ６００９）を実施する。
【０３２１】
（viii）ステップ６００８では、動的分析処理部１１９は、最初に利用するＧＰＵ（3番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３２２】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でresourceregression[movingavginfo[2]+i][][]の値にresourceregression[i+j][][]×(j+1)を加算した値をresourceregression[movingavginfo[2]+i][][]に設定する。
【０３２３】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、resourceregression[movingavginfo[2]+i][][]の値を2倍し、movingavginfo[2]×(movingavginfo[2]+1)の値を除算した値をresourceregression[movingavginfo[2]+i][][]に設定する。
【０３２４】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目偏回帰係数の加重移動平均算出処理は終了する。
【０３２５】
（ix）ステップ６００９において、動的分析処理部１１９は、項目データ８００の項目番号０１４に対する判定を行う。項目番号０１４のカンマの後の値が１である場合、業務間関係の加重移動平均算出処理（ステップ６０１０）を実施する。項目番号０１４のカンマの後の値が０である場合は、業務間関係の加重移動平均算出処理（ステップ６０１０）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ６０１１）を実施する。
【０３２６】
（x）ステップ６０１０では、動的分析処理部１１９は、最初に利用するＧＰＵ（4番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３２７】
その後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）分（i=0,…, movingavginfo[3]-1）だけ繰り返す。この繰り返しの処理の中でさらにmovingavginfo[2]の値（平均算出処理に利用する過去データの数）分（j=0,…, movingavginfo[2]-1）だけ繰り返す。これら二重の繰り返しの中でhvm[movingavginfo[2]+i][][]の値にhvm[i+j][][]×(j+1)を加算した値をhvm[movingavginfo[2]+i][][]に設定する。
【０３２８】
その後のmovingavginfo[3]の値分だけの繰り返しの中で、hvm[movingavginfo[2]+i][][]の値を2倍し、movingavginfo[2]×(movingavginfo[2]+1)の値を除算した値をhvm[movingavginfo[2]+i][][]に設定する。
【０３２９】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、業務間関係の単純移動平均算出処理は終了する。
【０３３０】
（xi）ステップ６０１１において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭリソース使用量予測算出処理（ステップ６０１２）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭリソース使用量予測算出処理（ステップ６０１２）を実施せず、加重移動平均処理は終了（ステップ６０１３）する。
【０３３１】
（xii）ステップ６０１２では、動的分析処理部１１９は、最初に内部参照配列変数vmid[]の初期化、ホストメモリの確保、内部参照配列変数vmalpha[]を0に初期化、ホストメモリの確保、内部参照配列変数vmoutput[]の初期化、およびホストメモリの確保を実施する。
【０３３２】
その後、ＶＭの数（i=0,…, N-1）だけ繰り返す。この繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（j=0,…, 24）だけ繰り返す。
【０３３３】
これら二重の繰り返しの中でj=0かどうか判定し、0である場合、vmid[i]=vmresources[movingavginfo[2]-1][i][j]に設定し、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０３３４】
続いて、jが１１より大きく２０未満、またはj=24かどうか判定し、条件を満たす場合、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０３３５】
二重の繰り返し処理が終了後、movingavginfo[3]の値（平均算出処理に利用する将来予測の期間）+1の分だけ（i=0,…,movingavginfo[3]）繰り返す。この繰り返し処理の中でさらにＶＭの数（j=0,…, N-1）だけ繰り返す。この二重繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（l=0,…, 24）だけ繰り返す。この三重繰り返しの処理の中でさらにＶＭの数（k=0,…, N-1）だけ繰り返す。
【０３３６】
これら四重繰り返しの中で、vmalpha[i][j][l] にvmregression[movingavginfo[2]-1+i][j][k]とvmresources[movingavginfo[2]-1+i][k][l]とを乗算した値を加算したものをvmalpha[i][j][l]に設定する。
【０３３７】
変数kについての繰り返しの終了後、三重繰り返しの中で、iが自然数（1以上の整数）であるかどうか判定し、自然数である場合、vmaplha[0][j][l]の値が0であるかどうか判定する。vmaplha[0][j][l]の値が0である場合、vmresources[movingavginfo[2]-1+i][j][l]の値を0に設定する。vmaplha[0][j][l]の値が0でない場合、vmalpha[i][j][l]にvmresources[movingavginfo[2]-1][j][l]を乗算した値をvmalpha[0][j][l]で除算した値をvmresources[movingavginfo[2]-1+i][j][l]に設定する。iが自然数でない場合、vmresources[movingavginfo[2]-1+i][j][l]の設定処理は実施しない。
【０３３８】
これら三重繰り返しの処理が終了することにより、ＶＭリソース使用量予測算出処理が終了する。
【０３３９】
＜１次関数近似算出処理の内容＞
図３２は、１次関数近似算出処理（図１３のステップ７１２）の詳細を説明するためのフローチャートである。
【０３４０】
（i）動的分析処理部１１９は、最初に内部参照配列変数tempa[][]の設定、メモリの確保、および値を0として初期化する（ステップ６８０１）。また、動的分析処理部１１９は、tempb[][]、a[][]、b[][]も同様にして初期化する（ステップ６８０２〜ステップ６８０４）。
【０３４１】
（ii）ステップ６８０５において、動的分析処理部１１９は、項目データ８００の項目番号０１０に対する判定を行う。項目番号０１０のカンマの後の値が１である場合、ＶＭ相関関係の１次関数近似算出処理（ステップ６８０６）を実施する。項目番号０１０のカンマの後の値が０である場合は、ＶＭ相関関係の１次関数近似算出処理（ステップ６８０６）を実施せず、次の項目データ８００の項目番号０１１に対する判定（ステップ６８０７）を実施する。
【０３４２】
（iii）ステップ６８０６では、動的分析処理部１１９は、最初に利用するＧＰＵ（0番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３４３】
その後、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ繰り返す。この繰り返しの処理の中でtempa[][]の値にj×vmcorrelation[j][][]の値を加算し、tempb[][]の値にvmcorrelation[j][][]の値を加算する。
【０３４４】
繰り返し処理終了後、a[][]の値に12×(movingavginfo[2]×tempa[][]-movingavginfo[2]×(movingavginfo[2]-1)×tempb[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を、b[][]の値に12×(movingavginfo[2]×(movingavginfo[2]-1)×(2×movingavginfo[2]-1)×tempb[][]÷6 - movingavginfo[2]×(movingavginfo[2]-1)×tempa[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を設定する。
【０３４５】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ繰り返す。この繰り返しの中でvmcorrelation[movingavginfo[2]+i][][]の値にa[][]×(movingavginfo[2]+i)+b[][]の値を設定する。
【０３４６】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、ＶＭ相関関係の１次関数近似算出処理は終了する。
【０３４７】
（iv）ステップ６８０７において、動的分析処理部１１９は、項目データ８００の項目番号０１１に対する判定を行う。項目番号０１１のカンマの後の値が１である場合、リソース項目相関関係の１次関数近似算出処理（ステップ６８０８）を実施する。項目番号０１１のカンマの後の値が０である場合は、リソース項目相関関係の１次関数近似算出処理（ステップ６８０８）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ６８０９）を実施する。
【０３４８】
（v）ステップ６８０８では、動的分析処理部１１９は、最初に利用するＧＰＵ（1番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
その後、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ繰り返す。この繰り返しの処理の中でtempa[][]の値にj×resourcecorrelation[j][][]の値を加算し、tempb[][]の値にresourcecorrelation[j][][]の値を加算する。
【０３４９】
繰り返し処理終了後、a[][]の値に12×(movingavginfo[2]×tempa[][]-movingavginfo[2]×(movingavginfo[2]-1)×tempb[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を、b[][]の値に12×(movingavginfo[2]×(movingavginfo[2]-1)×(2×movingavginfo[2]-1)×tempb[][]÷6 - movingavginfo[2]×(movingavginfo[2]-1)×tempa[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を設定する。
【０３５０】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ繰り返す。この繰り返しの中でresourcecorrelation[movingavginfo[2]+i][][]の値にa[][]×(movingavginfo[2]+i)+b[][]の値を設定する。
【０３５１】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目相関関係の１次関数近似算出処理は終了する。
【０３５２】
（vi）ステップ６８０９において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭ偏回帰係数の１次関数近似算出処理（ステップ６８１０）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭ偏回帰係数の１次関数近似算出処理（ステップ６８１０）を実施せず、次の項目データ８００の項目番号０１３に対する判定（ステップ６８１１）を実施する。
【０３５３】
（vii）ステップ６８１０では、動的分析処理部１１９は、最初に利用するＧＰＵ（2番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３５４】
その後、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ繰り返す。この繰り返しの処理の中でtempa[][]の値にj×vmregression [j][][]の値を加算し、tempb[][]の値にvmregression [j][][]の値を加算する。
【０３５５】
繰り返し処理終了後、a[][]の値に12×(movingavginfo[2]×tempa[][]-movingavginfo[2]×(movingavginfo[2]-1)×tempb[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を、b[][]の値に12×(movingavginfo[2]×(movingavginfo[2]-1)×(2×movingavginfo[2]-1)×tempb[][]÷6 - movingavginfo[2]×(movingavginfo[2]-1)×tempa[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を設定する。
【０３５６】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ繰り返す。この繰り返しの中でvmregression[movingavginfo[2]+i][][]の値にa[][]×(movingavginfo[2]+i)+b[][]の値を設定する。
【０３５７】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目相関関係の１次関数近似算出処理は終了する。
【０３５８】
（viii）ステップ６８１１において、動的分析処理部１１９は、項目データ８００の項目番号０１３に対する判定を行う。項目番号０１３のカンマの後の値が１である場合、リソース項目偏回帰係数の１次関数近似算出処理（ステップ６８１２）を実施する。項目番号０１３のカンマの後の値が０である場合は、リソース項目偏回帰係数の１次関数近似算出処理（ステップ６８１２）を実施せず、次の項目データ８００の項目番号０１４に対する判定（ステップ６８１３）を実施する。
【０３５９】
（ix）ステップ６８１２では、動的分析処理部１１９は、最初に利用するＧＰＵ（3番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３６０】
その後、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ繰り返す。この繰り返しの処理の中でtempa[][]の値にj×resourceregression [j][][]の値を加算し、tempb[][]の値にresourceregression [j][][]の値を加算する。
【０３６１】
繰り返し処理終了後、a[][]の値に12×(movingavginfo[2]×tempa[][]-movingavginfo[2]×(movingavginfo[2]-1)×tempb[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を、b[][]の値に12×(movingavginfo[2]×(movingavginfo[2]-1)×(2×movingavginfo[2]-1)×tempb[][]÷6 - movingavginfo[2]×(movingavginfo[2]-1)×tempa[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を設定する。
【０３６２】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ繰り返す。この繰り返しの中でresourceregression[movingavginfo[2]+i][][]の値にa[][]×(movingavginfo[2]+i)+b[][]の値を設定する。
【０３６３】
繰り返し処理終了後、ホストとデバイスとの同期化処理を実施し、リソース項目相関関係の１次関数近似算出処理は終了する。
【０３６４】
（x）ステップ６８１３において、動的分析処理部１１９は、処理を実施する項目データ８００の項目番号０１４に対する判定を行う。項目番号０１４のカンマの後の値が１である場合、業務間関係の１次関数近似算出処理（ステップ６８１４）を実施する。項目番号０１４のカンマの後の値が０である場合は、業務間関係の１次関数近似算出処理（ステップ６８１４）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ６８１５）を実施する。
【０３６５】
（xi）ステップ６８１４では、動的分析処理部１１９は、最初に利用するＧＰＵ（4番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３６６】
その後、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ繰り返す。この繰り返しの処理の中でtempa[][]の値にj×hvm [j][][]の値を加算し、tempb[][]の値にhvm [j][][]の値を加算する。
【０３６７】
繰り返し処理終了後、a[][]の値に12×(movingavginfo[2]×tempa[][]-movingavginfo[2]×(movingavginfo[2]-1)×tempb[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を、b[][]の値に12×(movingavginfo[2]×(movingavginfo[2]-1)×(2×movingavginfo[2]-1)×tempb[][]÷6 - movingavginfo[2]×(movingavginfo[2]-1)×tempa[][]÷2)÷(movingavginfo[2]×movingavginfo[2]×(movingavginfo[2]+1)×(movingavginfo[2]-1))を設定する。
【０３６８】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ繰り返す。この繰り返しの中でhvm[movingavginfo[2]+i][][]の値にa[][]×(movingavginfo[2]+i)+b[][]の値を設定する。
【０３６９】
繰り返し処理終了後、ホストとデバイスとの同期化処理実施し、業務間関係の１次関数近似算出処理は終了する。
【０３７０】
（xii）ステップ６８１５において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭリソース使用量予測算出処理（ステップ６８１６）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭリソース使用量予測算出処理（ステップ６８１６）を実施せず、１次関数近似処理は終了（ステップ６８１７）する。
【０３７１】
（xiii）ステップ６８１６では、動的分析処理部１１９は、最初に内部参照配列変数vmid[]の初期化、ホストメモリの確保、内部参照配列変数vmalpha[]を0に初期化、ホストメモリの確保、内部参照配列変数vmoutput[]の初期化、およびホストメモリの確保を実施する。
【０３７２】
その後、ＶＭの数（i=0,…, N-1）だけ繰り返す。この繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（j=0,…, 24）だけ繰り返す。
【０３７３】
これら二重の繰り返しの中でj=0かどうか判定し、0である場合、vmid[i]=vmresources[movingavginfo[2]-1][i][j]に設定し、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０３７４】
続いて、jが１１より大きく２０未満、またはj=24かどうか判定し、条件を満たす場合、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０３７５】
二重の繰り返し処理が終了後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）+1の分だけ（i=0,…,movingavginfo[3]）繰り返す。この繰り返し処理の中でさらにＶＭの数（j=0,…, N-1）だけ繰り返す。この二重繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（l=0,…, 24）だけ繰り返す。この三重繰り返しの処理の中でさらにＶＭの数（k=0,…, N-1）だけ繰り返す。
【０３７６】
これら四重繰り返しの中で、vmalpha[i][j][l] にvmregression[movingavginfo[2]-1+i][j][k]とvmresources[movingavginfo[2]-1+i][k][l]とを乗算した値を加算したものをvmalpha[i][j][l]に設定する。
【０３７７】
変数kについての繰り返しの終了後、三重繰り返しの中で、iが自然数（1以上の整数）であるかどうか判定し、自然数である場合、vmaplha[0][j][l]の値が0であるかどうか判定する。vmaplha[0][j][l]の値が0である場合、vmresources[movingavginfo[2]-1+i][j][l]の値を0に設定する。vmaplha[0][j][l]の値が0でない場合、vmalpha[i][j][l]にvmresources[movingavginfo[2]-1][j][l]を乗算した値をvmalpha[0][j][l]で除算した値をvmresources[movingavginfo[2]-1+i][j][l]に設定する。iが自然数でない場合、vmresources[movingavginfo[2]-1+i][j][l]の設定処理は実施しない。
【０３７８】
これら三重繰り返しの処理が終了することにより、ＶＭリソース使用量予測算出処理が終了する。
【０３７９】
＜多項式近似算出処理の内容＞
図３３は、多項式近似算出処理（図１３のステップ７１３）の詳細を説明するためのフローチャートである。
【０３８０】
（i）動的分析処理部１１９は、最初に内部参照配列変数l[][]の設定、メモリの確保、および値を1として初期化する（ステップ７６０１）。また、動的分析処理部１１９は、tempb[][]、a[][]、b[][]も同様にして値0として初期化する（ステップ７６０２〜ステップ７６０４）。
【０３８１】
（ii）ステップ７６０５では、動的分析処理部１１９は、項目データ８００の項目番号０１０に対する判定を行う。項目番号０１０のカンマの後の値が１である場合、ＶＭ相関関係の多項式近似算出処理（ステップ７６０６）を実施する。項目番号０１０のカンマの後の値が０である場合は、ＶＭ相関関係の多項式近似算出処理（ステップ７６０６）を実施せず、次の項目データ８００の項目番号０１１に対する判定（ステップ７６０７）を実施する。
【０３８２】
（iii）ステップ７６０６では、動的分析処理部１１９は、最初に利用するＧＰＵ（0番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３８３】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ（i=0,…, movingavginfo[3]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（j=0,…, movingavginfo[2]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（k=0,…, movingavginfo[2]-1）繰り返す。一番内側の繰り返しの中でjとkが等しいかどうか判定し、等しくない場合、l[movingavginfo[2]+i][j]の値にmovingavginfo[2]+i-kの値を乗算し、j-kで除算する。一番内側の繰り返し終了後、vmcorrelation[movingavginfo[2]+i][][]の値にvmcolleration[j][][]×l[movingavginfo[2]+ i][j]の値を加算する。
【０３８４】
movingavginfo[2]の値およびmovingavginfo[3]の値の分だけの重複繰り返しの終了後、ホストとデバイスの同期化を実施し、ＶＭ相関関係の多項式近似算出処理は終了する。
【０３８５】
（iv）ステップ７６０７において、動的分析処理部１１９は、項目データ８００の項目番号０１１に対する判定を行う。項目番号０１１のカンマの後の値が１である場合、リソース項目相関関係の多項式近似算出処理（ステップ７６０８）を実施する。項目番号０１１のカンマの後の値が０である場合は、リソース項目相関関係の多項式近似算出処理（ステップ７６０８）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ７６０９）を実施する。
【０３８６】
（v）ステップ７６０８では、動的分析処理部１１９は、最初に利用するＧＰＵ（1番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３８７】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ（i=0,…, movingavginfo[3]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（j=0,…, movingavginfo[2]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（k=0,…, movingavginfo[2]-1）繰り返す。一番内側の繰り返しの中でjとkが等しいかどうか判定し、等しくない場合、l[movingavginfo[2]+i][j]の値にmovingavginfo[2]+i-kの値を乗算し、j-kで除算する。一番内側の繰り返し終了後、resourcecorrelation[movingavginfo[2]+i][][]の値にresourcecolleration[j][][]×l[movingavginfo[2]+ i][j]の値を加算する。
【０３８８】
movingavginfo[2]の値およびmovingavginfo[3]の値の分だけの重複繰り返しの終了後、ホストとデバイスの同期化を実施し、リソース項目相関関係の多項式近似算出処理は終了する。
【０３８９】
（v）ステップ７６０９において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭ偏回帰係数の多項式近似算出処理（ステップ７６１０）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭ偏回帰係数の多項式近似算出処理（ステップ７６１０）を実施せず、次の項目データ８００の項目番号０１３に対する判定（ステップ７６１１）を実施する。
【０３９０】
（vi）ステップ７６１０では、動的分析処理部１１９は、最初に利用するＧＰＵ（2番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３９１】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ（i=0,…, movingavginfo[3]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（j=0,…, movingavginfo[2]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（k=0,…, movingavginfo[2]-1）繰り返す。一番内側の繰り返しの中でjとkが等しいかどうか判定し、等しくない場合、l[movingavginfo[2]+i][j]の値にmovingavginfo[2]+i-kの値を乗算し、j-kで除算する。一番内側の繰り返し終了後、vmregression[movingavginfo[2]+i][][]の値にvmregression[j][][]×l[movingavginfo[2]+ i][j]の値を加算する。
【０３９２】
movingavginfo[2]の値およびmovingavginfo[3]の値の分だけの重複繰り返しの終了後、ホストとデバイスの同期化を実施し、ＶＭ偏回帰係数の多項式近似算出処理は終了する。
【０３９３】
（vii）ステップ７６１１において、動的分析処理部１１９は、項目データ８００の項目番号０１３に対する判定を行う。項目番号０１３のカンマの後の値が１である場合、リソース項目偏回帰係数の多項式近似算出処理（ステップ７６１２）を実施する。項目番号０１３のカンマの後の値が０である場合は、リソース項目偏回帰係数の多項式近似算出処理（ステップ７６１２）を実施せず、次の項目データ８００の項目番号０１４に対する判定（ステップ７６１３）を実施する。
【０３９４】
（viii）ステップ７６１２では、動的分析処理部１１９は、最初に利用するＧＰＵ（3番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３９５】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ（i=0,…, movingavginfo[3]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（j=0,…, movingavginfo[2]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（k=0,…, movingavginfo[2]-1）繰り返す。一番内側の繰り返しの中でjとkが等しいかどうか判定し、等しくない場合、l[movingavginfo[2]+i][j]の値にmovingavginfo[2]+i-kの値を乗算し、j-kで除算する。一番内側の繰り返し終了後、resourceregression[movingavginfo[2]+i][][]の値にresourceregression[j][][]×l[movingavginfo[2]+ i][j]の値を加算する。
【０３９６】
movingavginfo[2]の値およびmovingavginfo[3]の値の分だけの重複繰り返しの終了後、ホストとデバイスの同期化を実施し、リソース項目偏回帰係数の多項式近似算出処理は終了する。
【０３９７】
（ix）ステップ７６１３において、動的分析処理部１１９は、項目データ８００の項目番号０１４に対する判定を行う。項目番号０１４のカンマの後の値が１である場合、業務間関係の多項式近似算出処理（ステップ７６１４）を実施する。項目番号０１４のカンマの後の値が０である場合は、業務間関係の多項式近似算出処理（ステップ７６１４）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ７６１５）を実施する。
【０３９８】
（x）ステップ７６１４では、動的分析処理部１１９は、最初に利用するＧＰＵ（4番目）を指定する。続いて、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定を実施する。
【０３９９】
その後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）の分だけ（i=0,…, movingavginfo[3]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（j=0,…, movingavginfo[2]-1）繰り返す。この繰り返しの中でさらに、movingavginfo[2]の値（近似算出処理に利用する過去データの数）の分だけ（k=0,…, movingavginfo[2]-1）繰り返す。一番内側の繰り返しの中でjとkが等しいかどうか判定し、等しくない場合、l[movingavginfo[2]+i][j]の値にmovingavginfo[2]+i-kの値を乗算し、j-kで除算する。一番内側の繰り返し終了後、hvm[movingavginfo[2]+i][][]の値にhvm[j][][]×l[movingavginfo[2]+ i][j]の値を加算する。
【０４００】
movingavginfo[2]の値およびmovingavginfo[3]の値の分だけの重複繰り返しの終了後、ホストとデバイスの同期を実施し、リソース項目偏回帰係数の多項式近似算出処理は終了する。
【０４０１】
（xi）ステップ７６１５において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭリソース使用量予測算出処理（ステップ７６１６）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭリソース使用量予測算出処理（ステップ７６１６）を実施せず、ステップ７６１７へ移行し、メモリを開放する。
【０４０２】
（xii）ステップ７６１６では、動的分析処理部１１９は、最初に内部参照配列変数vmid[]の初期化、ホストメモリの確保、内部参照配列変数vmalpha[]を0に初期化、ホストメモリの確保、内部参照配列変数vmoutput[]の初期化、およびホストメモリの確保を実施する。
【０４０３】
その後、ＶＭの数（i=0,…, N-1）だけ繰り返す。この繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（j=0,…, 24）だけ繰り返す。
【０４０４】
これら二重の繰り返しの中でj=0かどうか判定し、0である場合、vmid[i]=vmresources[movingavginfo[2]-1][i][j]に設し、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０４０５】
続いて、jが１１より大きく２０未満、またはj=24かどうか判定し、条件を満たす場合、vmresources[movingavginfo[2]-1][i][j]=1に設定する。
【０４０６】
二重の繰り返し処理が終了後、movingavginfo[3]の値（近似算出処理に利用する将来予測の期間）+1の分だけ（i=0,…,movingavginfo[3]）繰り返す。この繰り返し処理の中でさらにＶＭの数（j=0,…, N-1）だけ繰り返す。この二重繰り返しの処理の中でさらに読み込んだリソース実測値２００またはリソース課金情報５００の業務ＩＤを除いた項目分（l=0,…, 24）だけ繰り返す。この三重繰り返しの処理の中でさらにＶＭの数（k=0,…, N-1）だけ繰り返す。
【０４０７】
これら三重繰り返しの中で、vmalpha[i][j][l] にvmregression[movingavginfo[2]-1+i][j][k]とvmresources[movingavginfo[2]-1+i][k][l]とを乗算した値を加算したものをvmalpha[i][j][l]に設定する。
【０４０８】
変数kについての繰り返しの終了後、三重繰り返しの中で、iが自然数（1以上の整数）であるかどうか判定し、自然数である場合、vmaplha[0][j][l]の値が0であるかどうか判定する。vmaplha[0][j][l]の値が0である場合、vmresources[movingavginfo[2]-1+i][j][l]の値を0に設定する。vmaplha[0][j][l]の値が0でない場合、vmalpha[i][j][l]にvmresources[movingavginfo[2]-1][j][l]を乗算した値をvmalpha[0][j][l]で除算した値をvmresources[movingavginfo[2]-1+i][j][l]に設定する。iが自然数でない場合、vmresources[movingavginfo[2]-1+i][j][l]の設定処理は実施しない。
【０４０９】
これら三重繰り返しの処理が終了することにより、ＶＭリソース使用量予測算出処理が終了する。
【０４１０】
＜将来予測表示処理の内容＞
図３４は、将来予測表示処理（図１４のステップ７１８）の詳細を説明するためのフローチャートである。
【０４１１】
（i）動的分析処理部１１９は、項目データ８００の項目番号０１０に対する判定を行う。項目番号０１０のカンマの後の値が１である場合、ＶＭ相関関係の将来予測表示処理（ステップ１０００２）を実施する。項目番号０１０のカンマの後の値が０である場合は、ＶＭ相関関係の将来予測表示処理（ステップ１０００２）を実施せず、次の項目データ８００の項目番号０１１に対する判定（ステップ１０００３）を実施する。
【０４１２】
（ii）ステップ１０００２では、動的分析処理部１１９は、最初にパス解析要相関係数値を読み込み、変数eに設定する。次に、movingavginfo[3]の値の数の分（i=0,…,movingavginfo[3]-1）だけ繰り返す。
【０４１３】
この繰り返しの処理の中で、さらにＶＭの数の分（j=0,…,N-1）だけ繰り返す。二重繰り返しの処理の中で、vmresources[movingavginfo[2]+i][j][24]の値が1かどうか判定し、値が1ならばＶＭのＩＤ番号（vmresources[movingavginfo[2]+i][j][0]の値）を標準出力に出力する。ＶＭの数の分（j=0,…,N-1）だけの繰り返しはここで終了する。
【０４１４】
続いて、変数jおよびkを0≦j＜k≦N-1を満たすように繰り返す。
【０４１５】
この繰り返しの中で、vmcorrelation[movingavginfo[2]+i][j][k]の絶対値がe以上かどうか判定し、e以上ならばＶＭiとＶＭjとの相関係数vmcorrelation[movingavginfo[2]+i][j][k]とＶＭiとＶＭjとを結ぶ関係線を標準出力に出力する。NはＶＭ数を示す。変数jおよびkに関する繰り返しはここで終了する。
【０４１６】
なお、図３５に表示されている「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また「次へ」ボタンをクリックすると、次のＶＭ相関関係の予測を表示する。次のＶＭ相関関係の予測が存在しない（i=movingavginfo[3]-1）の場合、次のリソース項目相関関係の将来予測表示処理の実施判定に遷移する。
【０４１７】
（iii）ステップ１０００３において、動的分析処理部１１９は、項目データ８００の項目番号０１１に対する判定を行う。項目番号０１１のカンマの後の値が１である場合、リソース項目相関関係の将来予測表示処理（ステップ１０００４）を実施する。項目番号０１１のカンマの後の値が０である場合は、リソース項目相関関係の将来予測表示処理（ステップ１０００４）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ１０００５）を実施する。
【０４１８】
（iv）ステップ１０００４では、動的分析処理部１１９は、最初にパス解析要相関係数値を読み込み、変数eに設定する。
【０４１９】
次に、movingavginfo[3]の値の数の分（i=0,…,movingavginfo[3]-1）だけ繰り返す。この繰り返し処理の中で、内部参照配列変数rname[]を空文字に初期化する。rname[]はリソース項目名を格納する変数である。この処理の後、さらにリソース項目の数の分（j=0,…,22）だけ繰り返す。この二重の繰り返し処理の中でリソース項目相関関係図に表示する項目名（図１７）を読み込み、rname[i]に設定する。この処理だけでリソース項目の数の分だけの繰り返しは終了し、再度リソース項目の数の分（j=0,…,22）だけ繰り返す。この二重の繰り返しの処理の中でrname[i]が空文字でないかどうか判定し、空文字で無い場合、項目名（rname[i]の値）を標準出力に出力する。この処理でもってリソース項目の数の分だけの繰り返しは終了する。
【０４２０】
続いて、変数jおよびkを0≦j＜k≦N-1を満たすように繰り返す。
【０４２１】
この繰り返しの中で、resourcecorrelation[movingavginfo[2]+i][j][k]の絶対値がe以上かどうか判定し、e以上ならばrname[j]とrname[k]との相関関係係数 resourcecorrelation[movingavginfo[2]+i][j][k]と関係線を標準出力に出力する。変数jおよびkに関する繰り返しはここで終了する。
【０４２２】
なお、図３６に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１１８）において紙に出力する。また、「次へ」ボタンをクリックすると、次のリソース項目相関関係の予測を表示する。次のリソース項目相関関係の予測が存在しない（i=movingavginfo[3]-1）の場合、次のＶＭ偏回帰係数の将来予測表示処理の実施判定（図３４のステップ１０００５）に遷移する。
【０４２３】
（v）ステップ１０００５において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭ偏回帰係数の将来予測表示処理（ステップ１０００６）を実施する。項目番号０１２のカンマの後の値が０である場合は、ＶＭ偏回帰係数の将来予測表示処理（ステップ１０００６）を実施せず、次の項目データ８００の項目番号０１３に対する判定（ステップ１０００７）を実施する。
【０４２４】
（vi）ステップ１０００６では、動的分析処理部１１９は、ＶＭの数の分だけ（h=0,…,N-1）繰り返す。この繰り返し処理の中で、さらにmovingavginfo[3]の値の数の分（i=0,…,movingavginfo[3]-1）だけ繰り返す。
【０４２５】
この二重繰り返し処理の中で、画面出力の対象のＶＭかどうか判定する。具体的には、vmresources[movingavginfo[2]+i][h][24]の値が1かどうかで判定する。対象でないＶＭの場合、次のＶＭの処理に遷移する。
【０４２６】
対象ＶＭの場合、ＩＤ番号（vmresources[movingavginfo[2]+i][h][0]の値）を標準出力に出力する。この二重繰り返し処理の中でさらに他のＶＭに対して（j=0,…,N-1,j≠h）繰り返す。これら三重繰り返し処理の中で、vmresources[movingavginfo[2]+i][j] [24]の値が1かどうかで判定し、値が1ならＩＤ番号（vmresources[movingavginfo[2]+i][j][0]の値）を標準出力に出力し、そのＶＭ（vmresources[movingavginfo[2]+i][j][0]）から対象ＶＭ（vmresources[movingavginfo[2]+i][h][0]）への偏回帰係数vmregression[movingavginfo[2]+i][h][j]と関係線を標準出力に出力する。以上で他のＶＭに対する（j=0,…,N-1,j≠h）繰り返し処理は終了し、対象ＶＭ（vmresources[movingavginfo[2]+i][h][0]）への誤差係数”e”を標準出力に出力する。
【０４２７】
なお、図３７に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１２６）において紙に出力する。また、「次へ」ボタンをクリックすると、次のＶＭ偏回帰係数の予測を図で表示する。次の予測が存在しない（i= movingavginfo[3]-1）場合、次の対象ＶＭに対するＶＭ偏回帰係数の予測を図で表示する。次の予測も対象ＶＭの処理も存在しない（i= movingavginfo[3]-1かつh=N-1）場合、ＶＭ偏回帰係数の将来予測表示処理が終了し、次のリソース項目偏回帰係数の将来予測表示処理の実施判定（図３４のステップ１０００７）に遷移する。
【０４２８】
（vii）ステップ１０００７において、動的分析処理部１１９は、項目データ８００の項目番号０１３に対する判定を行う。項目番号０１３のカンマの後の値が１である場合、リソース項目偏回帰係数の将来予測表示処理（ステップ１０００８）を実施する。項目番号０１３のカンマの後の値が０である場合は、リソース項目偏回帰係数の将来予測表示処理（ステップ１０００８）を実施せず、次の項目データ８００の項目番号０１４に対する判定（ステップ１０００９）を実施する。
【０４２９】
（viii）ステップ１０００８では、動的分析処理部１１９は、リソース項目の数の分だけ（h=0,…,22）繰り返す。この繰り返し処理の中で、さらにmovingavginfo[3]の値の数の分（i=0,…,movingavginfo[3]-1）だけ繰り返す。
【０４３０】
この二重繰り返し処理の中で、内部参照配列変数rname[]を空文字に初期化する。その後、さらにリソース項目の数の分だけ（j=0,…,22）繰り返す。この三重繰り返しの処理の中でリソース項目偏回帰係数の表示する項目名（図２９）を読み込み、rname[j]に設定する。リソース項目の数の分だけ（j=0,…,22）繰り返しはこの処理だけで終了し、rname[h]が空文字でないかどうか判定する。空文字の場合は次のリソース項目回帰係数予測の処理に遷移する。rname[h]が空文字でない場合、以下の処理を実施する。
【０４３１】
対象リソース項目名（rname[h]）を標準出力に出力し、リソース項目を数の分-1だけ（j=0,…,22,j≠h）繰り返す。
【０４３２】
この三重繰り返し処理の中でrname[j]が空文字でないかどうか判定する。空文字でない場合のみ限り、その他のリソース項目名（rname[j]）を標準出力に出力し、rname[j] からrname[h] への回帰係数 resourceregression[movingavginfo[2]+i][h][j]と関係線 を標準出力に出力する。以上で他のリソース項目に対する（j=0,…,22,j≠h）繰り返し処理は終了し、対象リソース項目（rname[h]）への誤差係数”e”を標準出力に出力する。
【０４３３】
なお、図３８に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１２６）において紙に出力する。また、「次へ」ボタンをクリックすると、次のリソース項目偏回帰係数の予測を図で表示する。次の予測が存在しない（i= movingavginfo[3]-1）場合、次の対象リソース項目に対するリソース項目偏回帰係数の予測を図で表示する。次の予測も対象リソース項目の処理も存在しない（i= movingavginfo[3]-1かつh=22）場合、リソース項目偏回帰係数の将来予測表示処理が終了し、次の業務間関係の将来予測表示処理の実施判定（図３４のステップ１０００９）に遷移する。
【０４３４】
（ix）ステップ１０００９において、動的分析処理部１１９は、項目データ８００の項目番号０１４に対する判定を行う。項目番号０１４のカンマの後の値が１である場合、業務間関係の将来予測表示処理（ステップ１００１０）を実施する。項目番号０１４のカンマの後の値が０である場合は、業務間関係の将来予測表示処理（ステップ１００１０）を実施せず、次の項目データ８００の項目番号０１２に対する判定（ステップ１００１１）を実施する。
【０４３５】
（x）ステップ１００１０では、動的分析処理部１１９は、ＶＭの数の分だけ（j=0,…,N-1）繰り返し、この繰り返し処理の中でさらにmovingavginfo[3]の値の数の分（i=0,…,movingavginfo[3]-1）だけ繰り返す。
【０４３６】
この二重繰り返しの処理の中で画面出力の対象のＶＭかどうか判定する。具体的には、vmresources[movinganginfo[2]+i][j][24]の値が1かどうかで判定する。対象でないＶＭの場合、次の予測表示の処理に遷移する。対象ＶＭの場合、変数jに対応する業務ＩＤ設定処理を実施し、ＩＤ番号（vmresources[movinganginfo[2]+i][j][0]の値）を標準出力に出力する。この二重繰り返し処理の中でさらに業務ＩＤに対して（k=0,…,N’-1）繰り返す。これら三重繰り返し処理の中で、hvm[movingavginfo[2]+i][j][k]の値が0かどうかで判定し、値が0でないなら変数jに対応する業務ＩＤ（bid[j]の値）を標準出力に出力、業務ＩＤからＶＭへの影響指標hvm[i][j]と関係線を標準出力に出力する。業務ＩＤに対する（k=0,…,N’-1）繰り返し処理はここで終了する。
【０４３７】
なお、図３９に示される「印刷」ボタンをクリックすると、標準出力に出力された図を帳票出力部（図２の１２６）において紙に出力する。また、「次へ」ボタンをクリックすると、表示されている業務間関係予測の次の予測を図で表示する。次の予測が存在しない（i=movingavginfo[3]-1）の場合、次の対象ＶＭに対するＶＭに対する業務間関係を図で表示する。次の予測も次の対象ＶＭも存在しない場合（i= movingavginfo[3]-1かつj=N-1）場合、業務間関係の将来予測表示処理が終了し、次のＶＭリソース使用量予測表示処理の実施判定（図３４のステップ１００１１）に遷移する。
【０４３８】
（xi）ステップ１００１１において、動的分析処理部１１９は、項目データ８００の項目番号０１２に対する判定を行う。項目番号０１２のカンマの後の値が１である場合、ＶＭリソース使用量予測表示処理（ステップ１００１２）を実施する。ステップ１００１２の詳細は図４０と図４１で説明する。項目番号０１２のカンマの後の値が０である場合は、ＶＭリソース使用量予測表示処理（ステップ１００１２）を実施せず、将来予測表示処理は終了（ステップ１００１３）する。
【０４３９】
＜ＶＭ相関関係の将来予測表示出力例＞
図３５は、ＶＭ相関関係の将来予測表示処理（図３４のステップ１０００２）で標準出力（画面）に出力される表示例を示す図である。
【０４４０】
図３５では、画面の中心を中心とする円周（１０２０３）上にＶＭのID番号を四角枠で囲って出力（１０２０２、１０２０４）される。最初に出力されるＶＭは必ず右側に出力する。出力対象のＶＭは円周（１０２０３）上に等間隔にＶＭのID番号を四角枠で囲って出力（１０２０４）される。具体例として、出力対象のＶＭがＶＭ1〜ＶＭ4の場合、ＶＭ1は右側、ＶＭ2は真上、ＶＭ3は左側、ＶＭ4は真下に出力される。つまり、この場合は中心をＯとすると、∠ＶＭ1ＯＶＭ2＝∠ＶＭ2ＯＶＭ3＝∠ＶＭ3ＯＶＭ4＝∠ＶＭ4ＯＶＭ1＝90°である（２７０１）。なお、円周および中心からＶＭへの線は画面には出力されない。
【０４４１】
ＶＭ間の関係線は相関係数の絶対値が入力したパス解析要相関係数値以上のもののみ出力（１０２０６）される。また、相関係数はこの関係線の中間に破線の四角枠に囲って出力（１０２０５）される。
【０４４２】
相関関係以外には画面の左上に「印刷」ボタン（１０２０７）、「次へ」ボタン（１０２０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１２６）において画面上のＶＭ相関関係予測表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０４４３】
一方、「次へ」ボタンをクリックすると、表示されている相関関係予測からさらに次の相関関係予測へ遷移する。次の相関関係予測が存在しない場合、リソース項目相関関係予測（図３６）へ遷移する。
【０４４４】
＜リソース項目相関関係の将来予測表示出力例＞
図３６は、リソース項目相関関係の将来予測表示処理（図３４のステップ１０００４）で標準出力（画面）に出力される表示例を示す図である。
【０４４５】
画面の中心を中心とする円周（１０４０３）上にリソース項目名（rmane[]の値）を四角枠で囲って出力（１０４０２、１０４０４）する。最初に出力されるリソース項目名は必ず右側に出力する。出力対象のリソース項目は円周（１０４０３）上に等間隔にリソース項目名を四角枠で囲って出力（１０４０２）される。具体例として、出力対象のリソース項目がＣＰＵ使用量、メモリ使用量、ストレージＲｅａｄ＆Ｗｒｉｔｅ、ストレージ使用量の場合、ＣＰＵ使用量は右側、メモリ使用量は真上、ストレージＲｅａｄ＆Ｗｒｉｔｅは左側、ストレージ使用量は真下に出力される。つまり、この場合は中心をＯとすると、∠「ＣＰＵ使用量」Ｏ「メモリ使用量」＝∠「メモリ使用量」Ｏ「ストレージＲｅａｄ＆Ｗｒｉｔｅ」＝∠「ストレージＲｅａｄ＆Ｗｒｉｔｅ」Ｏ「ストレージ使用量」＝∠「ストレージ使用量」Ｏ「ＣＰＵ使用量」＝90°である（１０４０１）。なお、円周および中心からＶＭへの線は画面には出力されない。
【０４４６】
リソース項目間の関係線は、相関係数の絶対値が入力したパス解析要相関係数値以上のもののみ出力（１０４０６）される。また、相関係数はこの関係線の中間に破線の四角枠に囲って出力（１０４０５）される。
【０４４７】
相関関係以外には画面の左上に「印刷」ボタン（１０４０７）、「次へ」ボタン（１０４０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１２６）において画面上のリソース項目相関関係予測表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。一方、「次へ」ボタンをクリックすると、ＶＭ偏回帰係数予測表示（図３７）へ遷移する。
【０４４８】
＜ＶＭ偏回帰係数の将来予測表示出力例＞
図３７は、ＶＭ偏回帰係数の将来予測表示処理（図３４のステップ１０００６）で標準出力（画面）に出力される表示例を示す図である。
【０４４９】
偏回帰係数以外の表示について、画面の左上に「印刷」ボタン（１０６０７）、「次へ」ボタン（１０６０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１２６）において画面上のＶＭ偏回帰係数予測表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０４５０】
一方、「次へ」ボタンをクリックすると、表示されているＶＭ偏回帰係数予測の次のＶＭ偏回帰係数予測を図で表示する。次の予測が存在しない場合、次の対象ＶＭに対するＶＭ偏回帰係数の予測を図で表示する。次の予測も次の対象ＶＭも存在しない場合、リソース項目偏回帰係数予測表示（図３８）へ遷移する。
【０４５１】
「印刷」ボタンの直下に誤差係数”e”を標準出力に出力（１０６０１）する。その誤差係数から対象ＶＭへ右矢印を出力（１０６０２）する。対象ＶＭは実線四角枠でＩＤ番号を囲み（１０６０３）、１０６０２および関係線１０６０４の矢印の先端で枠が接するように出力する。その他のＶＭの内、出力対象のＶＭは実線四角枠で囲む（１０６０５）。記載の順は読み込んだリソース実測値２００またはリソース課金情報５００の記載順に縦一列に出力される。また、誤差係数１０６０１、対象ＶＭ１０６０３およびその他のＶＭ１０６０５の一番上に出力されるＶＭが横一列に出力される。対象ＶＭと同じ高さに位置しない場合、中間で直角に折り曲がる。関係線１０６０４上で対象ＶＭとその他のＶＭとの距離が３：１となる場所で偏回帰係数１０６０６を出力。偏回帰係数は破線四角枠で囲む。
【０４５２】
＜リソース項目偏回帰係数の将来予測表示出力例＞
図３８は、リソース項目偏回帰係数の将来予測表示処理（図３４のステップ１０００８）で標準出力（画面）に出力される表示例を示す図である。
【０４５３】
偏回帰係数以外の表示について、画面の左上に「印刷」ボタン（１０８０７）、「次へ」ボタン（１０８０８）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１２６）において画面上のリソース項目偏回帰係数予測表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０４５４】
一方、「次へ」ボタンをクリックすると、表示されているリソース項目偏回帰係数予測の次のリソース項目偏回帰係数予測を図で表示する。次の予測が存在しない場合、次の対象リソースに対するリソース項目偏回帰係数予測を図で表示する。次の予測も次の対象リソース項目も存在しない場合、業務間関係予測表示（図３９）へ遷移する。
【０４５５】
「印刷」ボタンの直下に誤差係数”e”を標準出力に出力（１０８０１）する。その誤差係数から対象リソース項目へ右矢印を出力（１０８０２）する。対象リソース項目は実線四角枠でＩＤ番号を囲み（１０８０３）、１０８０２および関係線１０８０４の矢印の先端で枠が接するように出力する。その他のリソース項目の内、出力対象のリソース項目は実線四角枠で囲む（１０８０５）。記載の順は読み込んだrname[]のインデックス順に縦一列に出力される。また、誤差係数１０８０１、対象リソース項目１０８０３およびその他のリソース項目１０８０５の一番上に出力されるＶＭが横一列に出力される。対象リソース項目と同じ高さに位置しない場合、中間で直角に折り曲がる。関係線１０８０４上で対象リソース項目とその他のリソース項目との距離が３：１となる場所で偏回帰係数１０８０６を出力。偏回帰係数は破線四角枠で囲む。
【０４５６】
＜業務間関係の将来予測表示出力例＞
図３９は、業務間関係の将来予測表示処理（図３４のステップ１００１０）で標準出力（画面）に出力される表示例を示す図である。
【０４５７】
業務間関係以外の表示について、画面の左上に「印刷」ボタン（１１００５）、「次へ」ボタン（１１００６）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１２６）において画面上の業務間関係の予測表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０４５８】
一方、「次へ」ボタンをクリックすると、表示されている業務間関係予測の次の予測を図で表示する。次の予測が存在しない場合、次の対象ＶＭに対する業務間関係を図で表示する。次の予測も次の対象ＶＭも存在しない場合、ＶＭのリソース使用量予測表示（図４１）へ遷移する。
【０４５９】
「印刷」ボタンの直下に業務ＩＤを標準出力に出力（１１００２）する。業務ＩＤは実線丸枠で囲む。複数業務ＩＤが存在する場合、業務ＩＤはbid[]のインデックス順に縦一列に出力される。その業務ＩＤから対象ＶＭへ右矢印または途中で直角に折り曲がった矢印を出力（１１００３）する。対象ＶＭと同じ高さに位置しない場合、中間で直角に折り曲がる。対象ＶＭは一番上に出力されている業務ＩＤと同じ高さに出力する（１１００１）。対象ＶＭは実線四角枠で囲み、１１００３の矢印の先端で枠が接するように出力される。関係線１１００３上で対象業務ＩＤとＶＭとの距離が１：３となる場所で影響指標１１００４を出力。影響指標は破線四角枠で囲む。
【０４６０】
＜ＶＭリソース使用量予測表示処理の内容＞
図４０は、ＶＭリソース使用量予測表示処理（図３４のステップ１００１２）の詳細を説明するためのフローチャートである。
【０４６１】
（i）動的分析処理部１１９は、最初に内部参照配列変数rname[]を空文字に初期化（ステップ１１１０１）する。続いて、動的分析処理部１１９は、リソース項目の数の分だけ（i=0,…,22）繰り返す（ステップ１１１０２〜ステップ１１１０４）。この繰り返し処理の中で、リソース項目相関関係図に表示する項目名（図１７）を読み込み、rname[i]に設定（ステップ１１１０３）する。この繰り返し処理はrname[i]の設定（ステップ１１１０３）のみであり、続いてリソース項目の数の分だけ（h=0,…,22）繰り返す（ステップ１１１０５〜ステップ１１１１３）。
【０４６２】
（ii）ステップ１１１０６において、動的分析処理部１１９は、hが11未満または18より大きいかどうか判定する。hが11以上、18以下の場合は繰り返しの中の処理を実施しない（直接ステップ１１１１３を経由して再度ステップ１１１０５に進む）。hが11未満または18より大きい場合、rname[h]が空文字かどうか判定（ステップ１１１０７）する。空文字である場合は、繰り返しの中の処理を実施しない（直接ステップ１１１１３を経由して再度ステップ１１１０５に進む）。
【０４６３】
（iii）空文字でない場合、動的分析処理部１１９は、リソース項目名（rname[h]）を標準出力に出力（ステップ１１１０８）し、グラフ表示処理（ステップ１１１０９）を実施する。グラフ表示処理では、最初に縦軸および横軸を標準出力に出力し、変数maxを値0として初期化する。続いて、ＶＭの数（j=0,…,N-1）だけ繰り返す。この繰り返し処理の中でvmoutput[j]の値が1かどうか判定する。値が1である場合、実線とvmid[j]の値を標準出力に出力し、破線とvmid[j]の値と「（予測）」も標準出力に出力する。値が1でない場合は次のＶＭに対して同じ判定を実施する。なお、配列変数vmoutput[]およびvmid[]は図３０のステップ５２１２で設定したものである。
【０４６４】
この繰り返し処理の中で、さらにmovingavginfo[2]とmovingavginfo[3]の値の数の和の分だけ（i=0,…, movingavginfo[2]+ movingavginfo[3]-1）繰り返す。この二重繰り返し（図４０では三重繰り返し）の中で変数maxとvmresources[i][j][h]の値を比較する。max＜vmresources[i][j][h]である場合、max= vmresources[i][j][h]に設定する。movingavginfo[2]とmovingavginfo[3]の値の数の和の分だけの繰り返しの中の処理はここまでであり、ＶＭの数による繰り返しもここまでである。
【０４６５】
次に、縦軸の数値を0〜maxに設定し、0とmaxを標準出力に出力し、横軸の数値を-movingavginfo[2]+1 〜 movingavginfo[3]に設定し、-movingavginfo[2]+1、0とmovingavginfo[3]の値を標準出力に出力する。その後、ＶＭの数Nだけ（j=0,…,N-1）繰り返しの処理を実施する。この繰り返し処理の中でvmoutput[j]の値が1かどうか判定する。vmoutput[j]の値が1である場合に限り、さらにmovingavginfo[2]とmovingavginfo[3]の値の数の和の分だけ（i=0,…, movingavginfo[2]+ movingavginfo[3]-1）繰り返す。この二重繰り返し（図４０では三重繰り返し）の中で縦：vmresoutces[i][j][h] 、横：i- movingavginfo[2]+1に該当する部分に点（印）を標準出力に出力する。次にiが0より大きくかつmovingavginfo[2]未満であるかどうか判定する。iが0より大きくかつmovingavginfo[2]未満である場合、縦：vmresoutces[i-1][j][h] 、横：i- movingavginfo[2]と縦：vmresoutces[i][j][h] 、横：i- movingavginfo[2]+1とを結ぶ実線を標準出力に出力する。続いて、iがmovingavginfo[2]-1より大きいかどうか判定する。iがmovingavginfo[2]-1より大きい場合、縦：vmresoutces[i-1][j][h] 、横：i- movingavginfo[2]と縦：vmresoutces[i][j][h] 、横：i- movingavginfo[2]+1とを結ぶ破線を標準出力に出力する。movingavginfo[2]とmovingavginfo[3]の値の数の和の分だけの繰り返しの中の処理はここまでであり、ＶＭの数による繰り返しもここまでである。
【０４６６】
以上でグラフ表示処理は終了し、ＶＭリソース使用量予測処理も終了する。
【０４６７】
（iv）図４１に示される「印刷」ボタンをクリックする（ステップ１１１１０）と、標準出力に出力された図を帳票出力部（図２の１２６）において紙に出力（ステップ１１１１１）する。また、「次へ」ボタンをクリックする（ステップ１１１１２）と、ステップ１１１１３に進み、表示されている対象リソース使用量の予測の次の対象リソース使用量の予測を図で表示する。
【０４６８】
次の対象リソースが存在しない（空文字でないrname[h]が存在しない）場合、ＶＭリソース使用量予測表示処理が終了（ステップ１１１１４）し、動的分析結果をネットワーク経由で他システムへの送信処理へ遷移する。
【０４６９】
＜ＶＭリソース使用量予測表示出力例＞
図４１は、ＶＭリソース使用量予測表示処理（図３４のステップ１００１２）で標準出力（画面）に出力される表示例を示す図である。
【０４７０】
業務間関係以外の表示について、画面の左上に「印刷」ボタン（１１４１０）、「次へ」ボタン（１１４１１）も出力される。ボタンは角丸四角形で囲んで出力される。「印刷」ボタンをクリックすると帳票出力部（図２の１２６）において画面上のリソース使用量の予測表示を紙に出力する。ただし、ボタンそのものは紙には出力されない。
【０４７１】
一方、「次へ」ボタンをクリックすると、表示されている対象リソース使用量の予測の次の対象リソース使用量の予測を図で表示する。次の対象リソースが存在しない場合、動的分析結果をネットワーク経由で他システムへ送信する。
【０４７２】
「印刷」、「次へ」ボタンの下の行の中央にリソース項目名を出力（１１４０１）する。画面の左側に縦軸を出力（１１４０２）し、縦軸の左側の一番下（横軸と交わるところの左側）に0.000000を、縦軸の一番上の左側に最大値（maxの値）を出力（１１４０６）する。画面の下側には横軸を出力（１１４０３）し、縦軸と横軸が交わるところの直下に予測算出に利用した最も遠い過去（-movingavginfo[2]+1）、横軸の一番右側の直下に予測可能な最も遠い将来（movingavginfo[3]）、そして0をマイナス値出力部分とプラス値出力部分をmovingaveinfo[2]-1：movingaveinfo[3]となるような場所に出力する（１１４０７）。例えばmovingaveinfo[2]=2、movingaveinfo[3]=3であるなら、横軸には-1、0、3を出力する。
【０４７３】
グラフの凡例を縦が縦軸の中間、横が横軸の右側となる部分に出力する。凡例は上からＶＭ毎に実線と凡例を出力（１１４０４）し、その下にＶＭ毎に破線と凡例を出力（１１４０５）する。例えば、グラフを表示するＶＭがＶＭ1およびＶＭ2の場合、上から順にＶＭ1の実線と「ＶＭ1」、ＶＭ2の実線と「ＶＭ2」、ＶＭ1の破線と「ＶＭ1（予測）」、ＶＭ2の破線と「ＶＭ2（予測）」を出力する。
【０４７４】
グラフについては、過去の実績は時間と値に対応する部分を点で示し、前の時間の対応する点同士を実線で出力（１１４０８）する。将来の予測は時間と値に対応する部分を点で示し、前の時間の対応する点同士を破線で出力（１１４０９）する。
【０４７５】
＜負荷計算処理の内容＞
図４２は、負荷計算処理（図１４のステップ７２０）の詳細を説明するためのフローチャートである。
【０４７６】
（i）動的分析処理部１１９は、最初に内部参照配列変数unitpriceratio[][]の設定、メモリを確保し、値を0として初期化する（ステップ１２００１）。内部参照配列変数vmresourceavg[][]も同様にして値0として初期化する（ステップ１２００２）。続いて、内部参照配列変数calcload[][]の設定、メモリの確保（ステップ１２００３）、内部参照配列変数resourceavg[]および内部参照配列変数standarddev[]の設定、メモリを確保し、値0として初期化する（ステップ１２００４、ステップ１２００５）。さらに、内部参照配列変数vmdev[][]を設定し、メモリを確保する（ステップ１２００６）。
【０４７７】
（ii）ステップ１２００７において、動的分析処理部１１９は、処理を実施する項目データ（図９の８００）を読み込む。
（iii）ステップ１２００８において、動的分析処理部１１９は、読み込んだ項目データの内、項目番号200の1行をcalcload[]にコピーする。この1行はカンマ区切りで配列の次の項に代入する。例えば、1行が”200,1,1”の場合、calcload[0]に”200”を、 calcload[1]に”1”を、 calcload[2]に”1”を代入する。
【０４７８】
（iv）ステップ１２００９において、動的分析処理部１１９は、項目番号”200”（=calcload[0]）についての依頼有無を判定する。具体的にはcalcload[1]の値が0（依頼無し）または1（依頼有り）であることを判定する。calcload[1]の値が1の場合、負荷の大小による割増／割引率の設定処理（ステップ１２０１０）を実施する。負荷の大小による割増／割引率の設定処理の詳細は図４３で説明する。この処理が終了することによって負荷計算処理が終了（ステップ１２０１１）し、図１４のステップ１３０１に遷移する。
【０４７９】
＜負荷の大小による割増／割引率の設定処理の内容＞
図４３は、負荷の大小による割増／割引率の設定処理（図４２のステップ１２０１０）の詳細を説明するためのフローチャートである。
【０４８０】
（i）動的分析処理部１１９は、始めに図４２のステップ１２００８で設定したcalcload[2]の値が非負であるかどうか判定する（ステップ１２１０１）。値が負である場合、割増／割引率の設定不可能な エラーメッセージを標準出力に出力する（ステップ１２１０２）。エラーメッセージの詳細は図４４で説明する。
【０４８１】
（ii）値が非負である場合、動的分析処理部１１９は、利用するＧＰＵ（0番目）を指定（ステップ１２１０３）する。
【０４８２】
（iii）続いて、動的分析処理部１１９は、Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  ７０４の設定（ステップ１２１０４）を実施する。
【０４８３】
（iv）そして、動的分析処理部１１９は、リソース使用量将来予測の平均値の算出処理（ステップ１２１０５）、リソース毎の将来予測の平均値の算出処理（ステップ１２１０６）、リソース毎の将来予測の標準偏差の算出処理（ステップ１２１０７）、リソース毎の将来予測の偏差値の算出処理（ステップ１２１０８）、及び割増／割引率の算出処理（ステップ１２１０９）を順に実施する。
【０４８４】
（v）ステップ１２１０５では、動的分析処理部１１９は、最初に将来予測の数だけ繰り返す（i=movingavginfo[2], ・・・, movingavginfo[2]+movingavginfo[3]-1）。この繰り返しの中でvmresourceavg[][]の値にvmresouorces[i][][]の値を加算する。
【０４８５】
繰り返し処理終了後、vmresourceavg[][]の値にmovingavginfo[3]の値を除算する。除算後のvmresourceavg[][]の値がリソース使用量将来予測の平均値である。以上でリソース使用量将来予測の平均値の算出処理は終了し、図４３のリソース毎の将来予測の平均値の算出処理（ステップ１２１０６）に進む。
【０４８６】
（vi）ステップ１２１０６では、動的分析処理部１１９は、最初にＶＭの数だけ繰り返す（j=0, ・・・, N-1）。この繰り返しの中でresourceavg[][]の値にvmresouorceavg[j][][]の値を加算する。
【０４８７】
繰り返し処理終了後、resourceavg[][]の値にＶＭの数（=N）を除算する。除算後のresourceavg[][]の値がリソース毎の将来予測の平均値である。以上でリソース毎の将来予測の平均値の算出処理は終了し、図４３のリソース毎の将来予測の標準偏差の算出処理（ステップ１２１０７）に進む。
【０４８８】
（vii）ステップ１２１０７では、動的分析処理部１１９は、最初にＶＭの数だけ繰り返す（j=0, ・・・, N-1）。この繰り返しの中でstandarddev[]の値に(vmresouorceavg[j][]-resourceavg[])×(vmresouorceavg[j][]-resourceavg[])の値を加算する。繰り返し処理終了後、standarddev[]を以下の通りに設定する。
【０４８９】
2016189125.tif 000024
【０４９０】
除算後のstandarddev[]の値がリソース毎の将来予測の標準偏差である。以上でリソース毎の将来予測の標準偏差の算出処理は終了し、図４３のリソース毎の将来予測の偏差値の算出処理（ステップ１２１０８）に進む。
【０４９１】
（viii）ステップ１２１０８では、動的分析処理部１１９は、最初にＶＭの数だけ繰り返す（j=0, ・・・, N-1）。この繰り返しの中でvmdev[]に(vmresourceavg[j][]-resourceavg[])÷standarddev[]の値を設定する。
繰り返し処理終了後のvmdev[]の値がリソース毎の将来予測の偏差値である。以上でリソース毎の将来予測の偏差値の算出処理は終了し、図４３の割増／割引率の算出処理（ステップ１２１０９）に進む。
（ix）ステップ１２１０９では、動的分析処理部１１９は、ＶＭの数だけ繰り返す（j=0, ・・・, N-1）。この繰り返しの中で、vmdev[j][]が-1より小さいかどうか判定する。-1より小さい場合、割引率を設定する。なお、当該割引率は以下のように表される。
【０４９２】
2016189125.tif 000025
【０４９３】
割引率中、ｅは自然対数の底であり、およそ2.71828である。-1以上の場合、割引率を設定しない。
【０４９４】
続いて、vmdev[j][]が1より大きいかどうか判定する。1より大きい場合、割増率を
2016189125.tif 000026
に設定する。1以下の場合、割増率を設定しない。なお、割増率も以下のように表される。
【０４９５】
2016189125.tif 000027
【０４９６】
以上で繰り返し処理は終了し、割増／割引率の算出処理は終了する。
【０４９７】
（x）最後に、動的分析処理部１１９は、ホストとデバイスの同期化（ステップ１２１１０）を実施し、負荷の大小による割増／割引率の設定処理は終了（ステップ１２１１１）する。
【０４９８】
＜割増／割引率の設定不可能なエラーメッセージ例＞
図４４は、割増／割引率の設定不可能なエラーメッセージを標準出力（画面）に出力される表示例を示す図である。
【０４９９】
メッセージは「読み込んだ割増／割引係数が誤っているため、割増／割引率の設定できません。」という文字列を標準出力に出力する（ステップ１２２０１）。
【０５００】
＜ＶＭリソース使用量予測結果＞
図４５は、ＶＭリソース使用量予測結果の例を示す図である。図４５では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０５０１】
図４５は、vmresources[][][]の値をカンマ区切りのＣＳＶファイル「vmresources_YYYYMMDDhhmmss_0000000051.csv」で表現した例である。図４５において、ＶＭリソース使用量予測結果は、vmresources[51][0][0]〜vmresources[51][0][24]に相当し、１行で記載されている。２行目にはvmresources[51][1][]、そしてN行目にはvmresources[51][N-1][]が記載されている（２０１０１〜２０１０４）。ただしNはＶＭの数である。
【０５０２】
＜ＶＭ相関係数予測結果＞
図４６は、ＶＭ相関係数予測結果の例を示す図である。図４６では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０５０３】
図４６は、vmcorrelation[][][]の値をカンマ区切りのＣＳＶファイル「vmcorrelation_YYYYMMDDhhmmss_0000000000.csv」で表現した例である。図４６において、ＶＭ相関係数予測結果は、vmcorrelation[0][0][0]〜vmcorrelation[0][0][N-1]に相当し、１行で記載されている。２行目にはvmcorrelation[0][1][]、そしてN行目にはvmcorrelation[0][N-1][]が記載されている（２０２０１〜２０２０４）。ただしNはＶＭの数である。
【０５０４】
＜リソース項目相関係数予測結果＞
図４７は、リソース項目相関係数予測結果の例を示す図である。図４７では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０５０５】
図４７は、resourcecorrelation[][][]の値をカンマ区切りのＣＳＶファイル「resourcecorrelation_YYYYMMDDhhmmss_0000000000.csv」で表現した例である。図４７において、リソース項目相関係数予測結果は、resourcecorrelation[0][0][0]〜resourcecorrelation[0][0][22]に相当し、１行で記載されている。２行目にはresourcecorrelation[0][1][]、そして２３行目にはresourcecorrelation[0][22][]が記載されている（２０３０１〜２０３０５）。
【０５０６】
＜ＶＭ偏回帰係数予測結果＞
図４８は、ＶＭ偏回帰係数予測結果の例を示す図である。図４８では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０５０７】
図４８は、vmregression[][][]の値をカンマ区切りのＣＳＶファイル「vmregression_YYYYMMDDhhmmss_0000000001.csv」で表現した例である。図４８において、vmregression[1][0][0]〜vmregression[1][0][N-1]に相当し、１行で記載されている。２行目にはvmregression[1][1][]、そしてN行目にはregression[1][N-1][]が記載されている（２０４０１〜２０４０５）。ただしNはＶＭの数である。
【０５０８】
＜リソース項目偏回帰係数予測結果＞
図４９は、リソース項目偏回帰係数予測結果の例を示す図である。図４９では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０５０９】
図４９は、resourceregression[][][]の値をカンマ区切りのＣＳＶファイル「resourceregression_YYYYMMDDhhmmss_0000000004.csv」で表現した例である。図４９において、resourceregression[4][0][0]〜resourceregression[4][0][22]に相当し、１行で記載されいる。２行目にはresourceregression[4][1][]、そして２３行目にはresourceregression[4][22][]が記載されている（２０５０１〜２０５０５）。
【０５１０】
＜業務間関係の予測結果＞
図５０は、業務間関係の予測結果の例を示す図である。図５０では、カンマ区切りで生成したＣＳＶファイルの一例が示されている。
【０５１１】
図５０は、hvm[][][]の値をカンマ区切りのＣＳＶファイル「hvm_YYYYMMDDhhmmss_0000000016.csv」で表現した例である。図５０において、hvm[16][0][0]〜hvm[16][0][N’-1]に相当し、１行で記載されている。２行目にはresourceregression[4][1][]、そしてN行目にはresourceregression[4][N-1][]が記載されている（２０６０１〜２０６０４）。ただしNはＶＭの数、N’は業務の数である。
【０５１２】
＜その他＞
本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０５１３】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０５１４】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【０５１５】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０５１６】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【０５１７】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び／又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【０５１８】
１０１…共分散構造分析による課金管理・分析装置（サーバ）
１０２…リソース情報ネットワーク（入力部）
１０３…ネットワークストレージ（入力部）（ＳＡＮ／ＮＡＳ）
１０４…外部Ｉ／Ｆ（ＰＣＩ  Ｅｘｐｒｅｓｓ）
１０５…内部ストレージ（入力部）（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）
１０６…静的分析処理部
１０７…外部Ｉ／Ｆ（ＰＣＩ  Ｅｘｐｒｅｓｓ）
１０８…外部ストレージ（一時保存部）（ＳＡＮ／ＮＡＳ）
１０９…メモリＩ／Ｆ
１１０…ホストメモリ（ＰＣＩ  Ｅｘｐｒｅｓｓ）
１１１…メモリＩ／Ｆ
１１２…内部ストレージ（一時保存部）（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）
１１３…内部ストレージ（出力部）（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）
１１４…外部Ｉ／Ｆ（ＰＣＩ  Ｅｘｐｒｅｓｓ）
１１５…リソース情報ネットワーク（出力部）
１１６…ネットワークストレージ（出力部）（ＳＡＮ／ＮＡＳ）
１１７…画面表示部（出力部）
１１８…帳票出力部（出力部）
１１９…動的分析処理部
１２０…外部Ｉ／Ｆ（ＰＣＩ  Ｅｘｐｒｅｓｓ）
１２１…内部ストレージ（出力部）（ＳＳＤ／ＳＡＳ／ＳＡＴＡ）
１２２…外部Ｉ／Ｆ（ＰＣＩ  Ｅｘｐｒｅｓｓ）
１２３…リソース情報ネットワーク（出力部）
１２４…ネットワークストレージ（出力部）（ＳＡＮ／ＮＡＳ）
１２５…画面表示部（出力部）
１２６…帳票出力部（出力部）
【図１】
2016189125.tif 000028
【図２】
2016189125.tif 000029
【図３】
2016189125.tif 000030
【図４】
2016189125.tif 000031
【図５】
2016189125.tif 000032
【図６】
2016189125.tif 000033
【図７】
2016189125.tif 000034
【図８】
2016189125.tif 000035
【図９】
2016189125.tif 000036
【図１０】
2016189125.tif 000037
【図１１】
2016189125.tif 000038
【図１２】
2016189125.tif 000039
【図１３】
2016189125.tif 000040
【図１４】
2016189125.tif 000041
【図１５】
2016189125.tif 000042
【図１６】
2016189125.tif 000043
【図１７】
2016189125.tif 000044
【図１８】
2016189125.tif 000045
【図１９】
2016189125.tif 000046
【図２０】
2016189125.tif 000047
【図２１】
2016189125.tif 000048
【図２２】
2016189125.tif 000049
【図２３】
2016189125.tif 000050
【図２４】
2016189125.tif 000051
【図２５】
2016189125.tif 000052
【図２６】
2016189125.tif 000053
【図２７】
2016189125.tif 000054
【図２８】
2016189125.tif 000055
【図２９】
2016189125.tif 000056
【図３０】
2016189125.tif 000057
【図３１】
2016189125.tif 000058
【図３２】
2016189125.tif 000059
【図３３】
2016189125.tif 000060
【図３４】
2016189125.tif 000061
【図３５】
2016189125.tif 000062
【図３６】
2016189125.tif 000063
【図３７】
2016189125.tif 000064
【図３８】
2016189125.tif 000065
【図３９】
2016189125.tif 000066
【図４０】
2016189125.tif 000067
【図４１】
2016189125.tif 000068
【図４２】
2016189125.tif 000069
【図４３】
2016189125.tif 000070
【図４４】
2016189125.tif 000071
【図４５】
2016189125.tif 000072
【図４６】
2016189125.tif 000073
【図４７】
2016189125.tif 000074
【図４８】
2016189125.tif 000075
【図４９】
2016189125.tif 000076
【図５０】
2016189125.tif 000077