(57)【要約】　　　（修正有）【課題】ロードバランスが保たれていない場合にも、ヘテロなプロセッサ環境を含め多数の並列処理に適用でき、並列効率と並列性能評価指標であるロードバランス寄与率及び仮想並列化率、並びに並列性能阻害要因間の定量的関係付けを行う。【解決手段】並列効率Ｅｐ（ｐ）は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒｂ（ｐ）と、並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒｐ（ｐ）と、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒｊ（ｐ）とを用いて以下のように計算される。2004054680.tif 000124【選択図】　なし【特許請求の範囲】
【請求項１】
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項２】
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項３】
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項４】
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項５】
並列計算機システムの並列効率を計算する並列効率計算方法であって、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第１の処理時間と、前記第２の処理時間とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項６】
目標並列効率を設定するステップと、
計算された前記並列効率とプロセッサ数の積を前記目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップと、
をさらに含む請求項１乃至５のいずれか１つ記載の並列効率計算方法。
【請求項７】
システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和と、前記増加分の稼働時間及び前記予測並列効率の積との和を、前記並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し、記憶装置に格納するステップと、
をさらに含む請求項１乃至５のいずれか１つ記載の並列効率計算方法。
【請求項８】
前記並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、
前記新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップと、
をさらに含む請求項１乃至５のいずれか１つ記載の並列効率計算方法。
【請求項９】
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和を、前記並列計算機システムに現在含まれる各プロセッサの全稼働時間で除することにより、システム運用効率を計算し、記憶装置に格納するステップと、
をさらに含む請求項１乃至５のいずれか１つ記載の並列効率計算方法。
【請求項１０】
並列計算機システムの並列効率を計算するためのプログラムであって、
コンピュータに、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、並列計算機システムの性能評価技術及び当該性能評価の結果の利用技術に関する。なお、本発明の技術は、従来のハイパフォーマンス・コンピューティング（ＨＰＣ：Ｈｉｇｈ　Ｐｅｒｆｏｒｍａｎｃｅ　Ｃｏｍｐｕｔｉｎｇ）で扱われる分野（構造解析、流体解析、計算化学等）、グリッド又はクラスタ上に展開されるバイオシミュレーション、ウェブ（Ｗｅｂ）サービス（例えばＭｔｏＭ（Ｍａｃｈｉｎｅ　ｔｏ　Ｍａｃｈｉｎｅ））等、並列処理を行う全ての分野に適用可能である。
【０００２】
【従来の技術】
アプリケーション毎に並列計算機システムの性能は著しく異なる。従ってその性能評価は重要である。並列計算機システムの性能評価方法には、（１）ある特定の処理を種々の計算機で実施して比較するものと、（２）ある計算機が自己のポテンシャルに対しどの位の性能を発揮しているかを評価する自己完結型の２通りがある。前者はベンチマークテストとして主に計算機間の性能比較に使用される。後者は導入後の実運用で実施する必要がある。この自己完結型の性能評価は並列効率という指標を用いて行うことができるが、実際には実施されていない。また並列効率の代わりにプロセッサ数ｐを変えながら時間測定を行い、理想的な減少の度合い１／ｐと比較する並列性能評価（いわゆるスケーラビリティ評価）も可能であるが、数回の時間測定を必要とするため通常は実施されない。またスケーラビリティ評価は定性的であり、厳密な並列性能評価を行うことはできない。従って現在、並列効率の悪い処理を検知できず、それらは野放し状態である。
【０００３】
並列効率による並列処理の性能評価は、以下に示す式（１）及び（２）より決定される並列効率Ｅｐ（ｐ）を求めることにより行われる。なお、ｐはプロセッサ数、τ（１）は１プロセッサで実行した場合の処理時間、τ（ｐ）は同じ処理をｐ個のプロセッサで実行した場合の処理時間、τｉ（ｐ）は１≦ｉ≦ｐでｉ番目のプロセッサの処理時間である。
【数１】
2004054680.tif 000002
例えば式（１）は、柄谷，中村，奥田，矢川；並列有限要素法コードのＧｅｏＦＥＭの性能評価，Ｔｒａｎｓａｃｔｉｏｎｓ　ｏｆ　ＪＳＣＥＳ，　Ｎｏ．２０００００２２　（２０００）という文献に開示されている。
【０００４】
【発明が解決しようとする課題】
しかし、従来の方法で並列効率を決定しても、並列性能阻害要因との定量的関係が明確でなかったため、どの阻害要因がどの位並列効率に効いているかは分からなかった。また、一部の並列性能評価技術（例えば日本国特許出願番号２００１−２４１１２１、米国特許出願番号０９／９９８１６０）には、図１に示すように「ロードバランスが保たれ且つ各処理時間γｉ（並列部）、χｉ，１（冗長処理部）、χｉ，２（通信部）、χｉ，ｏｔｈｅｒｓ（その他の並列性能阻害要因）が同じ」という条件が必要で、一部の並列処理にしか適用できないという問題があった。
【０００５】
また、従来の方法ではグリッドやクラスタによる並列処理への適用が難しい。これはグリッドやクラスタ上に分散している、計算に必要なメモリ、データ、ＣＰＵ等の資源を１つのプロセッサに集めると、１つのプロセッサで実現できない程大きな処理となる場合が多いためである。すなわち、τ（１）を測定すること自体が難しい。また式（１）においてτ（１）とτ（ｐ）を実測で求めるということはプロセッサの性能が同じであるということを前提としているが、グリッドやクラスタ上の個々のプロセッサ性能は通常異なるため、実測したτ（１）とτ（ｐ）を式（１）に代入しても正しい並列効率を決定できないという問題もある。
【０００６】
従って本発明の目的は、「ロードバランスが保たれている」という条件をはずし、ヘテロなプロセッサ環境を含め多種類の並列処理に適用でき、並列効率と並列性能評価指標及び並列性能阻害要因間の定量的関係付けを行う並列処理性能評価技術を提供することである。
【０００７】
また本発明の他の目的は、並列効率等を用いて、並列計算機システムの適切な運用を可能にするための技術を提供することである。
【０００８】
さらに本発明の他の目的は、並列効率等を用いて、並列計算機システムの能力増強、更新等に対する適切な判断を可能にするための技術を提供することである。
【０００９】
さらに本発明の他の目的は、並列効率等を用いて、並列計算機システムにおいて実行するプログラムのチューニングやアルゴリズムの選定を適切に実施できるようにするための技術を提供することである。
【００１０】
【課題を解決するための手段】
本発明の第１の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒｂ（ｐ）を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒｐ（ｐ）を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒｊ（ｐ）を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Ｒｂ（ｐ）と仮想並列化率Ｒｐ（ｐ）と並列性能阻害要因寄与率Ｒｊ（ｐ）とを用いて並列効率を計算し（例えば実施の形態における式（４−４））、記憶装置に格納するステップとを含む。
【００１１】
これにより並列効率は、ロードバランス寄与率、仮想並列化率及び並列性能阻害要因寄与率といった並列性能評価指標と定量的に関係付けられる。
【００１２】
本発明の第２の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒｂ（ｐ）を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率Ａｐ（ｐ）を計算し、記憶装置に格納する加速率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒｊ（ｐ）を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Ｒｂ（ｐ）と加速率Ａｐ（ｐ）と並列性能阻害要因寄与率Ｒｊ（ｐ）とを用いて並列効率を計算し（例えば実施の形態における式（４−５））、記憶装置に格納するステップとを含む。
【００１３】
これにより並列効率は、ロードバランス寄与率及び並列性能阻害要因寄与率といった並列性能評価指標並びに加速率という補助指標と定量的に関係付けられる。
【００１４】
本発明の第３の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒｂ（ｐ）を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒｊ（ｐ）を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Ｒｂ（ｐ）と並列性能阻害要因寄与率Ｒｊ（ｐ）とを用いて並列効率を計算し（例えば実施の形態における式（８−２））、記憶装置に格納するステップとを含む。
【００１５】
例えば、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和が、１プロセッサにより同一処理を実施した場合の処理時間とほぼ一致する場合、すなわちほとんど並列計算できるような処理内容の場合にはこのようにして計算することができる。
【００１６】
本発明の第４の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒｂ（ｐ）を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率Ｒｐ（ｐ）を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、各プロセッサにおいて実施された処理の処理時間の和と、ロードバランス寄与率Ｒｂ（ｐ）と、仮想並列化率Ｒｐ（ｐ）とを用いて並列効率を計算し（例えば実施の形態における式（９−１））、記憶装置に格納するステップとを含む。本発明の第１の態様の変形例である。
【００１７】
本発明の第５の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納するステップと、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納するステップと、並列計算機システムにおいて使用したプロセッサの数と、並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、第１の処理時間と、第２の処理時間とを用いて並列効率を計算し（例えば実施の形態における式（９−２））、記憶装置に格納するステップとを含む。
【００１８】
所定のモデル化に基づき一度の測定により得られる処理時間だけで並列効率が計算できるようになっている。
【００１９】
また、上で述べたロードバランス寄与率計算ステップにおいて、上記ロードバランス寄与率Ｒｂ（ｐ）を、並列計算機システムに含まれる全プロセッサにおいて実施された処理の全処理時間を、並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間及び並列計算機システムにおいて使用したプロセッサ数により除することにより計算する（例えば実施の形態における式（５））ような構成とすることも可能である。
【００２０】
さらに、上で述べた仮想並列化率計算ステップにおいて、仮想並列化率Ｒｐ（ｐ）を、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を、１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算する（例えば実施の形態における式（６−１））ような構成とすることも可能である。
【００２１】
また、上で述べた並列性能阻害要因寄与率計算ステップにおいて、特定の並列性能阻害要因についての並列性能阻害要因寄与率Ｒｊ（ｐ）を、並列計算機システムに含まれる各プロセッサにおける特定の並列性能阻害要因部分の処理時間の和を、並列計算機算システムに含まれる各プロセッサの処理時間の和により除することにより計算する（例えば実施の形態における式（７））ような構成とすることも可能である。
【００２２】
また、上で述べた加速率計算ステップにおいて、上記加速率を、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算される仮想並列化率を、１から差し引いた値の逆数として計算する（例えば実施の形態における式（６−２））ような構成とすることも可能である。
【００２３】
さらに、上で述べた処理時間は、実際の処理時間に加え、対応する事象の確認回数で表される場合もある。
【００２４】
また、計算された並列効率に並列計算機システムにおいて使用したプロセッサ数を乗じて補助指標を計算し、記憶装置に格納するステップをさらに含むような構成であってもよい。これにより、並列計算機システムにおいてプロセッサ何個分の処理を実施したかを提示することができるようになる。
【００２５】
さらに、上で述べた第３の処理時間を、１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間と並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間との和により計算する（例えば実施の形態における式（１５））ような構成であってもよい。所定のモデル化により処理時間の１度の測定にて並列効率等の計算が可能になる。
【００２６】
さらに、上で述べた第１の処理時間が、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理又は通信処理の処理時間の和により計算される（例えば実施の形態における式（１２−１）等）ような構成とすることも可能である。
【００２７】
また、本発明の第１乃至第５の態様において、目標並列効率を設定するステップと、計算された並列効率とプロセッサ数の積を目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップとをさらに含むような構成も可能である。多くのプロセッサを投入しても処理時間の短縮につながるとは限らず、このように最適プロセッサ数が計算できれば無駄な資源の投入を防止することができる。
【００２８】
さらに、本発明の第１乃至第５の態様において、システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された並列効率との全処理についての積和と、増加分の稼働時間及び予測並列効率の積との和を、並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し（例えば実施の形態における式（１８））、記憶装置に格納するステップとをさらに含むような構成であってもよい。システム増強時においてシステム運用者に適切な定量的指針を与えることができるようになる。
【００２９】
また、本発明の第１乃至第５の態様において、並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップとをさらに含むような構成であってよい。システムリプレイス時における定量的指針を与えることができるようになる。
【００３０】
さらに、本発明の第１乃至第５の態様において、並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された並列効率との全処理についての積和を、並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム運用効率を計算し（例えば実施の形態における式（１７））、記憶装置に格納するステップとをさらに含むような構成であってもよい。従来の稼働率という考え方に比して本発明のように並列効率を考慮したシステム運用効率を使用した方が、システム運用状況をより実際に即した形で評価することができるようになる。
【００３１】
また、本発明の第１乃至第５の態様において、目標処理時間を設定するステップと、目標処理時間を用いて目標並列効率を計算し、記憶装置に格納するステップと、目標並列効率の妥当性を確認するステップとをさらに含むような構成であってもよい。例えば目標並列効率は、線形外挿にて計算することができる。
【００３２】
さらに、目標並列効率の妥当性が確認された場合には、チューニング実施後の並列効率を計算し、記憶装置に格納するステップと、チューニング実施後の並列効率と目標並列効率とを比較するステップとをさらに含むような構成であってもよい。より定量的な観点で、アプリケーション等のチューニングを実施することができるようになる。
【００３３】
また、本発明の第１乃至第５の態様において、目標処理時間を設定するステップと、異なるアルゴリズム毎に当該アルゴリズムにおける並列効率を用いて必要となるプロセッサ数の見積値を計算し、記憶装置に格納するステップと、プロセッサ数の見積値が並列計算機システムにおいて実施する当該アルゴリズムによる処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率より小さく、異なるアルゴリズムについて計算されたプロセッサ数の見積値のうち最小の値となるアルゴリズムを抽出するステップとをさらに含むような構成であってもよい。より並列効率を向上させることができるアルゴリズムを定量的に選択することができるようになる。
【００３４】
なお、本発明に係る並列効率計算方法はプログラム及びコンピュータにて実施することができ、当該プログラムをコンピュータで実行する場合には当該コンピュータは並列効率計算装置となる。また、このようなプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介して配布される場合もある。尚、中間的な処理結果はメモリに一時保管される。
【００３５】
【発明の実施の形態】
［本発明の原理］
本発明では、並列効率Ｅｐ（ｐ）を並列性能評価指標で記述することにより、並列効率Ｅｐ（ｐ）を並列性能阻害要因と定量的に結び付ける。図２のように、並列処理時間τｉ（ｐ）は、並列計算部の処理時間γｉ（ｐ）と、各並列性能阻害要因ｊの処理時間χｉ，ｊ（ｐ）との和で式（３）のように表わすことができる。ここで１≦ｊ≦ｊＯｔｈｅｒｓである。なお、図２においてｉはプロセッサ番号であり、ｐはプロセッサ個数である。また、図２ではプロセッサｉとプロセッサｉ＋１についてのみ示されている。
【数２】
2004054680.tif 000003
【００３６】
そして式（１）を以下のように変形し、さらに並列性能評価指標であるロードバランス寄与率Ｒｂ（ｐ）、仮想並列化率Ｒｐ（ｐ）、並列性能阻害要因寄与率Ｒｊ（ｐ）を導入して並列効率Ｅｐ（ｐ）を記述する。
【数３】
2004054680.tif 000004
【００３７】
なお、式（１）から式（４−１）への変形は、式（１）の分子及び分母にτｉ（ｐ）のｉについての和を掛け算することにより行われる。また、式（４−２）への変形は、式（４−１）における各要素の位置を変更すると共に、式（４−１）の分子及び分母にγｉ（ｐ）のｉについての和を掛け算することにより行われる。また、以下の式が式（３）から導かれる。これは、τｉ（ｐ）のｉについての和を表すものである。
【数４】
2004054680.tif 000005
【００３８】
そうすると、ロードバランス寄与率Ｒｂ（ｐ）、仮想並列化率Ｒｐ（ｐ）、並列性能阻害要因寄与率Ｒｊ（ｐ）により以下の式が導かれる。
【数５】
2004054680.tif 000006
また加速率Ａｐ（ｐ）を用いると以下のようにも表される。
【数６】
2004054680.tif 000007
【００３９】
なお、ロードバランス寄与率Ｒｂ（ｐ）、仮想並列化率Ｒｐ（ｐ）、並列性能阻害要因寄与率Ｒｊ（ｐ）、加速率Ａｐ（ｐ）は以下のように表される。
【数７】
2004054680.tif 000008
なお、並列性能阻害要因はｊで番号付けされる。
【００４０】
ロードバランスが保たれた状態とは、図１で示したように、プロセッサの処理時間τｉ（ｐ）が均等の状態である。式（５）はこの状態をＲｂ（ｐ）＝１とし、更に保たれない状態を１／ｐ≦Ｒｂ（ｐ）≦１で表す。図３のように並列処理時に１台のプロセッサのみで処理する場合には式（５）の分子がτ（ｐ）となるため、ロードバランス寄与率Ｒｂ（ｐ）は１／ｐの下限値となる。また式（５）によれば、ロードバランス寄与率Ｒｂ（ｐ）は並列効率Ｅｐ（ｐ）の比率となり、並列性能を直感的に把握することを容易にする。
【００４１】
仮想並列化率Ｒｐ（ｐ）は並列計算部の処理時間γｉの和がτ１（１）に占める割合である。これが１より小さい場合、その処理は並列処理できない処理を含んでいることを示す。この割合により並列性能の上限を加速率Ａｐ（ｐ）として表わすことができる。Ａｐ（ｐ）は、プロセッサを無限に投入した時の理想的な上限値Ａｐ（ｐ）＝τ（１）／Σｊχ１，ｊ（１）＝１／（１−（Σｉγｉ（ｐ）／τ（１）））である。通常のτ（１）／τ（ｐ）は、並列性能阻害要因によりＡｐ（ｐ）より小さな値となる。
【００４２】
並列性能阻害要因寄与率Ｒｊ（ｐ）は式（７）で示すようにτｉ（ｐ）のｉについての和で規格化されているため、高並列、低並列に関わらず並列性能阻害要因の寄与を処理時間の割合として把握できるようになっている。またこの割合が並列効率の比率となるため、並列性能の阻害を定量的に把握することができる。
【００４３】
式（２），（５），（６−１），（７）の各変数は、τ（１）を除く全てが並列実行時に測定可能である。式（８−１）が成り立つ時、式（６−１）から仮想並列化率Ｒｐ（ｐ）はほぼ１となり、式（４−４）は式（８−２）に等価となる。
【数８】
2004054680.tif 000009
すなわち、並列効率Ｅｐ（ｐ）はτ（１）という推定値を用いずに済むので、正確に決定することができる。一方、条件式（８−１）に関係なく、式（８−２）を、式（４−４），（４−５）の代替値として並列性能評価において用いることも可能である。この場合、式（８−２）の値はＲｐ（ｐ）≦１ゆえ、式（４−４）、（４−５）の値に等しいか小さい値となる。
【００４４】
並列効率Ｅｐ（ｐ）は、上で述べた式（４−４），（４−５），（８−２）及び次の式（９−１）でも計算することが出来る。
【数９】
2004054680.tif 000010
式（９−１）は、式（４−３）からロードバランス寄与率Ｒｂ（ｐ）及び仮想並列化率Ｒｐ（ｐ）のみを用いて変形した結果である。
【００４５】
また、式（３）よりτ（１）は式（１０）となる。
【数１０】
2004054680.tif 000011
ここでγ１（１）とχ１，ｊ（１）を、γｉ（ｐ）とχｉ，ｊ（ｐ）を用いてモデル化する。グリッドやクラスタのように異なったＣＰＵ性能を有する計算機による並列処理でのτ１（１）の実測は不可能であるため、このモデル化によりτ（１）が決定でき、式（６−１）の仮想並列化率Ｒｐ（ｐ）を計算することが可能となる。
【００４６】
プロセッサ性能が同じで理想的な場合、並列計算部をｐ個のプロセッサで処理すると、処理時間はｐ＝１と比較して１／ｐとなる。この場合、τｉ（ｐ）＝γｉ（ｐ）であり、任意のプロセッサのγｉ（ｐ）をｐ倍するとγ１（１）を求めることができる。一方グリッドやクラスタ上には異なったＣＰＵ性能を有する計算機が存在するのが通常であり、ｐ個のプロセッサにおいて実測されたγｉ（ｐ）を基に、プロセッサ数１の場合のγ１（１）を式（１１）のように推定する。
【数１１】
2004054680.tif 000012
この式（１１）の概念図を図４に示す。式（１１）のモデル化により、個々のプロセッサの性能が異なっている場合でも、仮想的に１プロセッサのγ１（１）の時間を決めることができる。
【００４７】
また、χ１，ｊ（１）を冗長処理とそれ以外という２つに分けてモデル化する。γ１（１）に属さない処理時間はすべてχ１，ｊ（１）に含まれるものとする。
【００４８】
（１）冗長処理時間のモデル化
各プロセッサが全く同じ処理を行うとき、ここではそれを冗長処理と呼ぶ。この処理は並列処理ではなく、プロセッサが増えても処理時間は減少しない。そこでｊ＝１を冗長処理とし、その時間χ１，１（１）を式（１２−１）乃至（１２−４）のようにモデル化する。
【数１２】
2004054680.tif 000013
ここでｉｉは以下の式におけるｉｉである。
【数１３】
2004054680.tif 000014
【００４９】
冗長処理は、同じ手続き（処理内容）ではあるがデータが異なる処理を並列処理する、いわゆるデータパラレルに多い処理である。データパラレルの場合、ロードバランスを保つため、ＣＰＵ性能が同じプロセッサによる並列処理であることを想定している。そこでプロセッサ毎の冗長処理時間の違いを各プロセッサの時間測定に起因するばらつきによるものと考えることができる。この場合、各プロセッサの測定値を平均化した式（１２−１）を適用するのが妥当である。
【００５０】
一方グリッドやクラスタでは異なる性能を有するプロセッサが紛れ込むことも想定される。この異なる性能を有するプロセッサによる影響を的確に捉えようとする場合、式（１２−２）及び（１２−３）を用いる。式（１２−３）を用いれば式（６−１）の仮想並列化率Ｒｐ（ｐ）は最小に見積もられ、並列効率Ｅｐ（ｐ）は最大となる。式（１２−３）を用いれば仮想並列化率Ｒｐ（ｐ）は最大に見積もられ、並列効率Ｅｐ（ｐ）は最小となる。これら２つの並列効率Ｅｐ（ｐ）を比べて、異なるＣＰＵ性能のプロセッサでデータパラレル処理を行っていることの検知が可能となる。
【００５１】
τ（ｐ）は式（２）で決まり、そのプロセッサｉの冗長処理時間は式（１２−４）の値である。従って、並列効率Ｅｐ（ｐ）を決定したデータを解析すると考えれば式（１２−４）の使用が妥当である。一方、この式はプロセッサｉｉの情報のみからχ１，１（１）が決定されることを意味し、他のプロセッサの値と大きく異なる場合を検知できないという欠点を持つ。この例として図５はＣＰＵ性能が１／５のプロセッサがプロセッサ１（ｉ＝１）である場合を示す。式（１２−４）では冗長処理の時間をプロセッサ１の値のみで評価することになる。式（１２−１）では４プロセッサの各値の平均で評価する。式（１２−２）ではプロセッサ１の値で、式（１２−３）ではｉ＝２，３，４のプロセッサの値で評価することになる。従って式（１２−１）をベースとして、必要に応じて他の定義を使用するのが妥当である。
【００５２】
（２）χ１，ｊ（１）（２≦ｊ≦ｊＯｔｈｅｒｓ）のモデル化
実際に並列性能阻害要因による処理時間を測定すると、χ１，ｊ（１）≠０の場合が存在する。この処理時間は並列処理しても減らないため、式（６−１）の仮想並列化率Ｒｐ（ｐ）に反映され、式（６−２）の加速率Ａｐが有限の値となり、処理に投入して意味があるプロセッサ数の上限値が決まる。そこで冗長処理以外の並列性能阻害要因による処理時間χ１，ｊ（１）（２≦ｊ≦ｊＯｔｈｅｒｓ）を、ｐ＝１の処理時間χ１，ｊ（１）とｐ＞１の処理時間を表わす式（１３−２）で式（１３−１）のようにモデル化し、χｉ，ｊ（ｐ）とｐ＞１で発生し且つｐに依存する並列性能阻害要因による処理時間Χｉ，ｊ（ｐ）を測定してχ１，ｊ（１）を求める。すなわち、χ１，ｊ（１）＝χｉ，ｊ（ｐ）−Χｉ，ｊ（ｐ）であり、右辺の２項は両方とも測定により求めるものとする。
【数１４】
2004054680.tif 000015
【００５３】
例としてχ１，ｊ（１）≠０の場合でｐ＝１の処理時間を図６（ａ）に、ｐ＝４の処理時間を図６（ｂ）に示す。図６（ｂ）に示されるように、並列処理時のχｉ，２（ｐ）はｐ＝１の処理時間χ１，２（１）にΧｉ，２（ｐ）をプラスした式（１３−１）のようになる。このような現象は、通信等で通信のハードウェアを起動するまでの前処理がｐ＝１の時にも実行される場合等で観測される。
【００５４】
式（１３−１）及び（１３−２）よりχ１，ｊ（１）（２≦ｊ≦ｊＯｔｈｅｒｓ）は冗長処理と同様に式（１３−３），（１３−４），（１３−５）により求めることができる。
【数１５】
2004054680.tif 000016
例えば図６（ｂ）ではχｉ，２（ｐ）＝χ１，２（１）＋Χｉ，２（ｐ）と実測されるので、Χｉ，２（ｐ）＝５，６，７，８を実測して式（１３−３），（１３−４），（１３−５）からχ１，２（１）＝５を算出できる。この値は図６（ａ）のχ１，２（１）と一致する。
【００５５】
（３）χｉ，ｊｏｔｈｅｒｓ（ｐ）の決定方法
並列処理阻害要因に分類して実測できないχｉ，ｊｏｔｈｅｒｓ（ｐ）は式（１３−６）で求める。
【数１６】
2004054680.tif 000017
【００５６】
次に、モデル化により求められた式（１１）により、式（１０）を以下の式で書き直す。
【数１７】
2004054680.tif 000018
また、式（８−１）は、以下のように変形される。
【数１８】
2004054680.tif 000019
この式が成り立つためには式（１４）の条件を満たす必要がある。この条件式は測定値より求めた値の大小関係の比較であるため、具体的に判定を行うことができる。
【数１９】
2004054680.tif 000020
【００５７】
この式（１４）のγｉ（ｐ）は実測により求まる。またχ１，ｊ（１）のｊについての和は、モデル化式（１２−１），（１２−２），（１２−３），（１２−４）及び式（１３−１），（１３−２），（１３−３），（１３−４），（１３−５）より求めることができる。その結果、初めて式（８−１）の判定が式（１４）を用いて具体的に可能となる。例えば以下のような場合、式（１４）の条件が成立し、式（６−１）の仮想並列化率Ｒｐ（ｐ）はほぼ１となり、式（４−４），（４−５）は式（８−２）と等価となり、推定値であるτ（１）の影響がほぼゼロになると言う意味で正確な並列効率Ｅｐ（ｐ）を得ることができる。
【数２０】
2004054680.tif 000021
【００５８】
また式（１０），（１１），（１２−１），（１２−２），（１２−３），（１２−４），（１３−１），（１３−２），（１３−３），（１３−４），（１３−５），（１３−６）によりτ（１）も具体的に計算することができる式（１５）となる。式（１５）は、τ（１）　を各プロセッサの並列処理時間γｉ（ｐ）の総和とｐ＝１の時の並列効率阻害要因による処理時間χ１，ｊ（１）の和として表わしたものである。
【数２１】
2004054680.tif 000022
【００５９】
以上説明した式（１），（２），（１５）より以下に示す式（９−２）を得る。
【数２２】
2004054680.tif 000023
【００６０】
式（９−１）及び（９−２）は、並列計算部の時間γｉ（ｐ）のｉについての和を用いるもので、式（４−４），（４−５）と比べ、χｉ，ｊ（ｐ）のデータなしに並列効率Ｅｐ（ｐ）が求まる利点がある。但し、χ１，ｊ（１）のデータは必要である。
【００６１】
式（４−４），（４−５），（７）で示したように、本発明では並列性能阻害要因ｊは任意の数を追加できる。並列性能阻害要因の追加例を図７（ａ）及び図７（ｂ）に示す。図７（ｂ）は立ち上がり時間χＴＣを考慮して時間測定した場合、図７（ａ）は同じ処理で時間測定しない場合の処理時間を示す。図７（ａ）の場合には、以下のような計算がなされる。
τ１＝１０＋５＋９０＋２０＋２０＝１４５
τ２＝１０＋８０＋１０＝１００
τ３＝１５＋８０＋１０＝１０５
τ４＝１０＋９０＋１０＝１１０
Ｒｂ（４）＝（１４５＋１００＋１０５＋１１０）／（１４５×４）＝０．７９３１
ＲＣ（４）＝（２５＋２０＋２５＋２０）／４６０＝０．１９５７
Ｒｐ（４）＝１（仮定）
Ｅｐ（４）＝０．７９３１×１×（１−０．１９５７）＝０．６３７９
【００６２】
また、図７（ｂ）の場合には、以下のような計算がなされる。
τ１＝１０＋５＋９０＋２０＋２０＝１４５
τ２＝５＋１０＋８０＋１０＝１０５
τ３＝１０＋１５＋８０＋１０＝１１５
τ４＝１５＋１０＋９０＋１０＝１２５
Ｒｂ（４）＝（１４５＋１０５＋１１５＋１２５）／（１４５×４）＝０．８４４８
ＲＣ（４）＝（２５＋２０＋２５＋２０）／４９０＝０．１８３７
ＲＴＣ（４）＝（０＋５＋１０＋１５）／４９０＝０．０６１２
Ｒｐ（４）＝１（仮定）
Ｅｐ（４）＝０．８４４８×１×（１−０．１８３７−０．０６１２）＝０．６３７９
【００６３】
これらの並列性能評価指標の値を図８にまとめて示す。図７（ａ）から求めた値（ケース１）と比べると、図７（ｂ）から求めた値（ケース２）は、立ち上がり時間のためのＲＴＣを追加することによりＲＣが減少しＲｂが増加するが、Ｅｐは同じであることが分かる。この場合、並列性能阻害要因を追加することによりＥｐが変わるのではなく、その内訳がより明確になる。
【００６４】
式（５）で示したようにロードバランス寄与率Ｒｂ（ｐ）を表現することにより、ロードバランスと並列効率Ｅｐ（ｐ）を関係付けることができる。ロードバランス寄与率Ｒｂ（ｐ）を式（５）のように定義する理由は、図９に示すように並列性能阻害要因の寄与が各プロセッサにおいて異なった状態でロードバランスが成り立つ場合を考慮できるからである。図９では、例えばプロセッサ１の並列処理部分は他に比べ非常に少なく、冗長処理が非常に多くなっているが、全てのプロセッサの処理時間は一致しているのでロードバランスは保たれている。すなわち、γｉ（ｐ）とχｉ，ｊ（ｐ）とが個々にはバランスしていないが全体にはバランスしているという状態である。なお、χｉ，ｊｏｔｈｅｒｓ（ｐ）（＝τｉ−γｉ−χｉ，１−χｉ，２）は例えばＩ／Ｏによる処理時間である。
【００６５】
図９の場合、ロードバランス寄与率Ｒｂ（ｐ）は１である。図１０のように並列処理において１台のプロセッサのみで処理する場合、Ｒｂ（ｐ）は下限１／ｐとなる。また、図１１のように、プロセッサ１とプロセッサ２の処理時間は一致しているが、プロセッサ３及び４の処理時間とは一致しておらず、ロードバランスが取れていない。この場合に、Ｒｂ（ｐ）は以下のとおりになる。
【数２３】
2004054680.tif 000024
【００６６】
さらに、低並列のときは顕在化しなかった並列処理阻害要因が高並列で顕在化する場合がある。従来の性能評価指標の１つである並列化率（＝（ｐ＝１の並列処理部の処理時間）／（（ｐ＝１の並列処理部の処理時間）＋（ｐ＝１の並列処理できない部分の処理時間）））では、この現象を十分に捉えることができなかった。例えば図１２の例では、ｐ＝１における並列化率は０．９９（＝１９８／（１９８＋２））であり、残りの０．０１が並列処理できない処理時間の割合である。ところがこの値は図中のｐ＝１００の場合のような高並列でも２時間であり、並列処理できない部分が５０％（≒２／（１．９８＋２））を占める現実を反映していない。本発明では、式（７）で示したように、並列性能阻害要因Ｒｊ（ｐ）を、χｉ，ｊ（ｐ）のｉについての和をτｉ（ｐ）のｉについての和で規格化した値として表現している。この規格化により、高並列でτ（ｐ）が小さな値になった時も、Ｒｊ（ｐ）の上限は１となり、各々の並列性能阻害要因の影響を並列処理時の百分率で表わすことができる。
【００６７】
以上述べたように、並列効率Ｅｐ（ｐ）を計算すると共に、並列性能評価指標Ｒｂ（ｐ），Ｒｐ（ｐ），Ｒｊ（ｐ）（ＲＲＥＤ（４），ＲＣ（４），．．．，ＲＯｔｈｅｒｓ（４））と補助指標Ａｐ（ｐ），Ｅｐ（ｐ）・ｐをも計算することができる。この計算結果の一例を図１３に示す。この図１３に示した８つの項目で、並列性能を定量的に表現することができる。
【００６８】
図１３に示したように、Ｅｐ（ｐ）・ｐ＝１．７７７であるから、４プロセッサ構成の並列計算機システムであるが１．７７７プロセッサの性能で処理していることが分かる。並列効率はロードバランス寄与率で９４％（Ｒｂ（４）＝０．９３９２）に低下する。並列性能阻害要因の影響は、冗長処理が２２％（ＲＲＥＤ（４）＝０．２２３０）、通信が３３％（ＲＣ（４）＝０．３３０９）、その他が３％（ＲＯｔｈｅｒｓ（４）＝０．０２８８）である。従って通信と冗長処理で５５％並列性能を低下させている。図１３ではＲｐ（４）＝０．８８２１ということから、プロセッサを無限に投入した時の並列最大性能が１プロセッサの８．４８２（＝Ａｐ（４）＝１／（１−０．８８２１））倍であることが推定できる。従ってこの処理は８プロセッサ以下で行われるべき処理であることが分かる。
【００６９】
また、例えば並列効率の設定目標値（Ｅｐ）Ｔを０．８と設定した場合、図１３で示されるような処理群を想定すると、最適なプロセッサ数は以下の式で計算される。
2004054680.tif 000025
従って、最適なプロセッサの見積値は（ｐ）ＯＰＴ＝２となる。
【００７０】
なお処理群とは、同一アプリケーション・プログラムで同じ機能を使い入力データだけを変えた複数の処理のことであり、科学技術計算のパラメトリック・スタディ等で頻繁に実施される処理である。
【００７１】
従来、並列計算機システムの評価は、以下で示す式（１６）に示す稼働率（ＮｅｔＷｏｒｋｉｎｇ　Ｒａｔｅ）ＮＷＲｓｙｓｔｅｍで行われていた。しかし、並列効率の低い処理も含まれる場合があるため、稼働率がよいからといって必ずしもシステムの運用効率が高いとは限らなかった。
【数２４】
2004054680.tif 000026
稼働時間と処理時間の総和（以下の式）の例を図１４に示す。
【数２５】
2004054680.tif 000027
図１４では、稼働時間Ｔｉに対して処理時間の総和は少なくなっている。この減少の度合いはプロセッサによって異なる。
【００７２】
本発明により、式（１６）を基にシステム運用効率Ｅｓｙｓｔｅｍという指標を作り、システムの運用効率を評価することが可能となる。この指標向上のためにはどの処理の並列効率がどの位向上する必要があるか等、運用効率の向上に対して具体的指針を出すことが可能となる。
【数２６】
2004054680.tif 000028
【００７３】
例えばＰｓｙｓｔｅｍ＝４、Ｔｉ＝１０、ｋｍａｘ＝２であり、さらに以下の条件が満たされるとすると、Ｅｓｙｓｔｅｍ＝（５＋９）／（１０＋１０＋１０＋１０）＝０．３５となる。
【数２７】
2004054680.tif 000029
なお、従来の稼働率ＮＷＲｓｙｓｔｅｍ＝（１０＋９）／４０＝０．４８３８となる。並列効率を考慮することにより、並列処理により各処理において無駄にしている時間を考慮したシステムの運用効率を評価することができる。
【００７４】
以上説明した稼働時間、並列処理である処理１におけるτｉ（ｐ）の和、処理１におけるτｉ（ｐ）と並列効率の積、非並列処理である処理２（プロセッサ４のみ）におけるτｉ（ｐ）の和、及び処理２におけるτｉ（ｐ）と並列効率の積を図１５に示す。図１５では、並列処理の場合には、稼働時間Ｔｉより、τｉ（ｐ）の方が短く、さらに並列効率を考慮すると無駄な処理時間が除かれるためさらに短くなる。一方、非並列処理の場合には並列効率が１となるため、処理２におけるτｉ（ｐ）もτｉ（ｐ）と並列効率の積についても同じ値になる。
【００７５】
並列計算機システムのプロセッサ増設の根拠データとして、従来からシステムの稼働率が用いられてきた。しかし有効に使われたシステムの資源を基にしているわけでないので、並列効率の低い処理のために資源の増設あるいは入れ替えを行う可能性がある。本発明によれば、並列計算機システムのプロセッサ増設に対して定量的指針を与えることが可能になる。システムの全プロセッサ数をＰＳｙｓｔｅｍ、Ｔｉを各プロセッサの稼働時間、ＰＡｄｄを増強後のプロセッサ個数、ｋｍａｘを全処理数、αを予想並列効率とすると、例えば追加したプロセッサによる以下で表される稼働時間（数２８）だけ増加させたときの加速率Ａｓｙｓｔｅｍは、式（１８）に示すとおりになる。
【数２８】
2004054680.tif 000030
【数２９】
2004054680.tif 000031
【００７６】
例えば以下に示すような条件で、α＝１であるとすると、加速率Ａｓｙｓｔｅｍは以下のように計算される。
【数３０】
2004054680.tif 000032
Ａｓｙｓｔｅｍ＝（３９＋１×１０）／４０＝１．２３
このように約２３％のシステム増強となる。この値は従来の処理の並列効率を考慮しているという点で、増設に対して従来の稼働率より説得力がある値となる。システム増強に予測並列効率α（＜１）をかけて加速率を算出すれば、より現実的な値となる。また、増強したプロセッサのＣＰＵ能力を１０倍とするならば、α＝１０としてＡｓｙｓｔｅｍを求めることもできる。上記の例に当てはめると、Ａｓｙｓｔｅｍ＝（３９＋１０×１０）／４０＝３．４８となる。これにより異なるＣＰＵ性能のプロセッサの増設に対しても稼働率を基にした以上に根拠がある予測データを作成することが可能となる。
【００７７】
また、本発明により、並列計算機システムの入れ替えに対して定量的指針を与えることも可能となる。各処理について計算された指標など（並列効率、ロードバランス寄与率、仮想並列化率、並列性能阻害要因寄与率、τｉ（ｐ）、γｉ（ｐ）、χｉ，ｊ（ｐ）　、各プロセッサの稼動時間Ｔｉ）により、各処理に対して次の例で示すような並列効率の推測が可能となり、システム入れ替え後のシステムの性能推定が可能となる。
【００７８】
例えば図１６に示したような経過時間が測定されるシステムのＣＰＵ性能を５倍にしたシステムを導入することを考えるとγｉ（ｐ）、χｉ，ＲＥＤ（ｐ）、χｉ，Ｏｔｈｅｒ（ｐ）は１／５になる。一方χｉ，Ｃ（ｐ）は、ネットワーク性能に依存し今回は性能が同じとすると新システムの並列効率を次のように推定できる。
【００７９】
なお、χｉ，Ｃ（１）＝０、χｉ，Ｏｔｈｅｒｓ（１）＝０とすると、ＣＰＵ性能が５倍となった場合の性能評価指標は次のように計算できる。また、上で述べた式（１２−１）により、χ１，ＲＥＤ（１）は以下のように表される。また、ロードバランス寄与率は式（５）により、仮想並列率は式（６−１）により、並列性能阻害要因寄与率（冗長処理、通信、その他）は式（７）に従って、並列効率は式（４−４）及び（９−１）に従って、以下のように計算される。
【数３１】
2004054680.tif 000033
【数３２】
2004054680.tif 000034
【数３３】
2004054680.tif 000035
【数３４】
2004054680.tif 000036
【数３５】
2004054680.tif 000037
【数３６】
2004054680.tif 000038
【数３７】
2004054680.tif 000039
【００８０】
上に示した計算結果と実測に基づく性能指標をまとめると図１７に示すようになる。図１７の表に示すように、システムを入れ替えた時の並列性能を予測することによって、新しいシステムのシステム運用効率Ｅｓｙｓｔｅｍを推定することができる。そのために、今までのシステムのログデータを用い、今までの処理に対して図１７と同様にすべての性能指標を計算する。
【００８１】
ＣＰＵ性能を５倍にしたときのシステム運用効率Ｅｓｙｓｔｅｍを求める試算をすると、以下に示すようになる。推定値を基にして求めたこのＥｓｙｓｔｅｍと今までの実測値から求めたＥｓｙｓｔｅｍを比べることにより、システムの入れ替えに対し、稼働率に比べてより根拠があるデータを得ることができる。
図１８に示すように、ＣＰＵ性能が５倍になった場合の各処理のＥｐ（４）、τｉ（ｐ）のｉについての和、及びプロセッサ数に従ってＥｓｙｓｔｅｍが計算できる。なお、前提として以下の条件を用いた。
【数３８】
2004054680.tif 000040
【数３９】
2004054680.tif 000041
【００８２】
［実施の形態の説明］
図１９に本発明の一実施の形態に係るシステム概要図を示す。並列性能分析装置１００は、並列計算機システム２００の並列性能を分析する単一プロセッサのコンピュータであり、印刷装置や表示装置といった出力装置１１０と接続されている。但し、並列性能分析装置１００は、並列計算機であってもよい。並列性能分析装置１００は、データ取得部１０と、ロードバランス寄与率計算部１１と、仮想並列化率計算部１２と、並列性能阻害要因寄与率計算部１３と、並列効率計算部１４と、補助指標計算部１５と、プロセッサ数最適化処理部２１と、プロセッサ増設見積処理部２２と、システムリプレイスデータ処理部２３と、運用効率データ処理部２４と、チューニング処理部２５と、アルゴリズム選定処理部２６と、並列性能評価処理部２７とを含む。並列性能分析装置１００は、ログデータ格納部３０に接続されている。並列計算機システム２００は、測定部２０１を含む。例えば並列性能分析装置１００は、並列計算機システム２００とネットワークにて接続されている。
【００８３】
並列計算機システム２００の測定部２０１は、プログラムに従って並列処理を実行しながら、各処理時間γｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）を測定する。例えば、各処理の開始から終了までをタイマで計測したり、各処理の開始時刻及び終了時刻を記録して処理終了後に処理時間を計算する。時間の計測は、オペレーティング・システム（ＯＳ：Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）を含むソフトウエアによる場合もあれば、ハードウエアによる場合もある。測定された処理時間のデータについては、一旦並列計算機システム２００のメモリ中に格納され、場合によっては他の記憶装置に格納される。
【００８４】
また、処理時間の測定ではなく、一定時間間隔毎に実行中のプログラムの事象を確認し、各事象についてカウントを行う場合もある。このような測定を、サンプリングによる測定と呼ぶ。このようなサンプリングによる測定は、式（４−４）、（９−１）、（９−２）やＲｂ（ｐ）、Ｒｐ（ｐ）、Ｒｊ（ｐ）が時間比の形をしているため採用可能となる。測定精度による違いはあるが、時間測定による方法とサンプリングによる方法では結果は同じになる。
【００８５】
図２０にサンプリングによる測定の概念図を示す。図２０では左から右に時間が経過する様子を示している。図２０において下向き矢印はサンプリングのタイミングを示しており、下向き矢印の間隔で表されるようにサンプリングは一定時間間隔で行われる。図２０においては、最初に冗長処理がχｉ，ＲＥＤ（ｐ）だけ実施された後、並列計算がγｉ（ｐ）だけ行われる。なお、全体として処理はτｉ（ｐ）だけ実施されている。サンプリング回数は、χｉ，ＲＥＤ（ｐ）だけ続いた冗長処理の事象においては７回、γｉ（ｐ）だけ続いた並列計算の事象においては９回である。全体の処理時間τｉ（ｐ）の間では、サンプリング回数は２２回である。並列性能阻害要因のうち意図して測定したχｉ，ＲＥＤ（ｐ）以外の事象をまとめてχｉ，ｏｔｈｅｒｓ（ｐ）で表し、意図して測定したτｉ（ｐ）、χｉ，ＲＥＤ（ｐ）及びγｉ（ｐ）を用いて式（１３−６）から計算する。図２０の例では、χｉ，ｏｔｈｅｒｓ（ｐ）の間のサンプリング回数が６回（＝２２−９−７）であることが分かる。
【００８６】
実際にどのようにサンプリングによる測定を実施するかについては、その概要を以下に説明しておく。
（１）τｉ（ｐ）の部分
（ａ）処理の始めにおいて事象τｉ（ｐ）のためのフラグをｏｎにし、処理の終了においてｏｆｆにする。実行時に事象τｉ（ｐ）のためのフラグのｏｎ／ｏｆｆを一定時間間隔で識別し、ｏｎと識別された回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの記述と処理を、必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、プログラム・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【００８７】
（ｂ）プログラム名又はそれに代替する実行モジュール名等により事象を特定し、実行時にそのプログラム名又は実行モジュール名等を一定時間間隔で識別し、識別された名称の識別回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの名前生成法と、識別処理及びカウント処理とを必要に応じて組み合わせて測定する。
・コンパイラが、上記プログラム名又は実行モジュール名等を生成する。
・ＯＳが、上記プログラム名又は実行モジュール名等を生成する。
・ランタイム・ライブラリが、上記プログラム名又は実行モジュール名等を生成する。
・ハードウエアが、上記プログラム名又は実行モジュール名等を生成する。
・並列言語拡張やコンパイラ・ディレクティブ等の記述により、上記プログラム名又は実行モジュール名等を生成する。
・プログラマの記述により、上記プログラム名又は実行モジュール名等を生成する。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理の実施を、ハードウェア・レベルで行う。
【００８８】
（２）χｉ，ｊ（ｐ）とγｉ（ｐ）の部分
（ａ）事象χｉ，ｊ（ｐ）、γｉ（ｐ）が出現する毎にその処理の初めにそのためのフラグをｏｎにし、その処理の終わりにそのためのフラグをｏｆｆにセットする。
【００８９】
実行時に各事象のためのフラグのｏｎ／ｏｆｆを一定時間間隔で識別し、ｏｎと識別された回数をカウントしてサンプリング回数を得るものとする。１つの方法では検出できない場合があるため、以下の方法のいずれかの記述と処理を必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、アプリケーションプログラム・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【００９０】
（ｂ）既知のモジュール名を並列処理部又は並列性能阻害要因に係る処理部に予め分類しておき、実行時にモジュール名を識別し、各モジュール名につきカウントしてサンプリング回数を得る。以下に示す分類方法と、識別処理及びカウント処理を必要に応じて組み合わせて測定する。
・モジュール名の分類を、コンパイラレベルで行う。
・モジュール名の分類を、ＯＳレベルで行う。
・モジュール名の分類を、ランタイムライブラリ・レベルで行う。
・モジュール名の分類を、ハードウェア・レベルで行う。
・モジュール名の分類を、並列言語拡張やコンパイラディレクティブ・レベルで行う。
・モジュール名の分類を、ユーザレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・上記モジュール名の識別処理及びカウント処理の実施をハードウェア・レベルで行う。
【００９１】
例として、全プロセッサにあるＦ（Ｉｍａｘ）の各要素を足し合わせる処理をＦｏｒｔｒａｎと並列ライブラリのＭＰＩ（Ｍｅｓｓａｇｅ　Ｐａｓｓｉｎｇ　Ｉｎｔｅｒｆａｃｅ）で記述したプログラムを用いて、χｉ，ｊ（ｐ）のサンプリング方法を以下の表１に示す。例えばｏｎのフラグを、コンパイラに指示を行う「＊ｓａｍｐｏｎ」で表わし、ｏｆｆのフラグを「＊ｓａｍｐｏｆｆ」で表す。また、ＲＥＤを冗長処理とし、Ｃを通信とし、ＲＥＤやＣの後ろの数字をその出現順番を表すものとする。総和処理の部分は各プロセッサで同じ計算を行う冗長処理であるので、その始点と終点に「＊ｓａｍｐｏｎ　（ＲＥＤ），　２」及び「＊ｓａｍｐｏｆｆ　（ＲＥＤ），　２」を配置し、フラグをｏｎ／ｏｆｆする。ｎＬＯＣＡＬという変数の計算についても冗長処理であるから、その始点と終点に「＊ｓａｍｐｏｎ　（ＲＥＤ），　１」及び「＊ｓａｍｐｏｆｆ　（ＲＥＤ），　１」を配置し、フラグをｏｎ／ｏｆｆする。さらに、ＭＰＩ＿ＡＬＬＴＯＡＬＬは通信ライブラリであり、ここでは「＊ｓａｍｐｏｎ　（Ｃ），　１」「＊ｓａｍｐｏｆｆ　（Ｃ），　１」並びに「＊ｓａｍｐｏｎ（Ｃ），　２」及び「＊ｓａｍｐｏｆｆ　（Ｃ），　２」を配置し、フラグをｏｎ／ｏｆｆする。なお、ＭＰＩ＿ＡＬＬＴＯＡＬＬの場合には、ツールやコンパイラやＯＳが事象を識別してフラグを立てるようにすることも可能である。
【００９２】
【表１】
2004054680.tif 000042
2004054680.tif 000043
【００９３】
表１のプログラムを実行した際のサンプリングの一例を図２１に示す。図２１では、事象［（ＲＥＤ），１］、［（ＲＥＤ），２］、［（Ｃ），１］、［（Ｃ），２］の各々についてカウントされる。但し、並列効率等を計算する際には、冗長処理全体［（ＲＥＤ），１＋（ＲＥＤ），２］、通信処理全体［（Ｃ），１＋（Ｃ），２］として扱う。
【００９４】
図１９の説明に戻って、並列性能分析装置１００のデータ取得部１０は、上で述べたように処理時間又はサンプリング数として測定部２０１により測定される各処理時間γｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）を、並列計算機システム２００から取得し、並列性能分析装置１００に接続されたログデータ格納部３０に格納する。ログデータ格納部３０には、各処理時間のほかに計算された並列効率を含む並列性能評価指標等のデータも蓄積される。ロードバランス寄与率計算部１１は、上で説明したように式（５）に従ってロードバランス寄与率Ｒｂ（ｐ）を計算し、記憶装置に格納する。なお、τ（ｐ）については式（２）に従って計算する。仮想並列化率計算部１２は、式（６−１）に従って仮想並列化率Ｒｐ（ｐ）を計算し、記憶装置に格納する。なお、式（６−１）の分母のτ（１）については、式（８−１）に示したような近似が行われる場合もある。また、式（１０）及び式（１１）から式（１５）が用いられる場合もある。なお、式（１５）中の第２項（χ１，ｊ（１），ｊ＝１）については、式（１２−１）、（１２−２）、（１２−３）又は（１２−４）のいずれかで計算される場合もある。また、χ１，ｊ（１），ｊ＞１については式（１３−３）乃至（１３−５）のいずれかで計算される場合もある。χ１，ｊ（ｐ）のｊ＝１は冗長処理である。但し、他の並列性能阻害要因についての処理時間であってもよい。
【００９５】
並列性能阻害要因寄与率計算部１３は、式（７）に従って、各並列性能阻害要因につき並列性能阻害要因寄与率Ｒｊ（ｐ）を計算し、記憶装置に格納する。並列効率計算部１４は、式（４−４）、式（４−５）、式（８−１）の条件が満たされる場合には式（８−２）、式（９−１）又は式（９−２）のいずれかに従って、並列効率Ｅｐ（ｐ）を計算し、記憶装置に格納する。式（９−２）を用いる場合に分子の第１項については式（１２−１）、（１２−２）、（１２−３）、（１２−４）、（１３−３）、（１３−４）又は（１３−５）のいずれかで計算される場合もある。式（１２−１）乃至（１２−４）は、χ１，ｊ（ｐ），ｊ＝１の冗長処理である。補助指標計算部１５は、例えば式（６−２）に従って加速率Ａｐを、並列効率Ｅｐ（ｐ）とプロセッサ数ｐとからＥｐ（ｐ）・ｐを計算し、記憶装置に格納する。
【００９６】
プロセッサ数最適化処理部２１は、並列計算機システム２００のエンドユーザに、処理のために投入すべき最適なプロセッサ数を指示するための処理等を実施する。プロセッサ増設見積処理部２２は、並列計算機システム２００の運用管理者に、プロセッサの増設に際して指針となる数値を提示するための処理を実施する。システムリプレイスデータ処理部２３は、並列計算機システム２００の運用管理者に、システムリプレイスに際して指針となる数値を提示するための処理を実施する。運用効率データ処理部２４は、並列計算機システム２００の運用管理者に、システム運用効率に関するデータを提示するための処理を実施する。チューニング処理部２５は、並列処理を行うためのプログラムに、プログラマが適切な目標設定等により効率的なプログラム等のチューニングを実施できるようにするための処理を実施する。アルゴリズム選定処理部２６は、同一処理について異なるアルゴリズムが存在する場合に、並列処理を行うためのプログラムに、プログラマが並列効率をより向上させることのできるアルゴリズムを選択できるようにするための処理等を実施する。並列性能評価処理部２７は、並列計算機システムの開発者や研究者が並列性能の評価を容易に行うことができるようにするための処理を実施する。これらの処理部の詳細な処理内容については、以下で説明する。
【００９７】
次に図１９に示したシステム等の処理フローを図２２を用いて説明する。最初に、処理時間の直接の計測のための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのフラグをｏｎ／ｏｆｆさせるための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのモジュール名等の分類などを含む前処理を実施する（ステップＳ１）。この処理については、並列計算機システム２００で行われる場合もあれば、他の計算機システムにおいて行われる場合もある。さらに、プログラマなどの人間により行われる場合もある。なお、ステップＳ１は、並列性能分析装置１００において実施される処理ではなく並列計算機システム２００により実施される処理でもない場合もあるので、点線ブロックで表されている。
【００９８】
次に、並列計算機システム２００の測定部２０１は、前処理に基づいて、処理時間の計測を実施したり、サンプリング数をカウントしたりする測定処理を実施する（ステップＳ３）。測定結果である各処理時間γｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）又は各処理時間に対応するサンプリングのカウント値については、並列計算機システム２００の記憶装置に格納され、並列性能分析装置１００のデータ取得部１０により読み出される。データ取得部１０は、各処理時間γｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）又は各処理時間に対応するサンプリングのカウント値を取得すると、並列性能分析装置１００のログデータ格納部３０に格納する。
【００９９】
そして、ロードバランス寄与率計算部１１、仮想並列化率計算部１２、並列性能阻害要因寄与率計算部１３、並列効率計算部１４、補助指標計算部１５は、ログデータ格納部３０に格納された各処理時間γｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）又は各処理時間に対応するサンプリングのカウント値等を用いて、ロードバランス寄与率Ｒｂ（ｐ）、仮想並列化率Ｒｐ（ｐ）、各並列性能阻害要因寄与率Ｒｊ（ｐ）、並列効率Ｅｐ（ｐ）、加速率Ａｐその他の補助指標を計算し、ログデータ格納部３０に格納する（ステップＳ５）。
【０１００】
並列効率Ｅｐ（ｐ）については、上で述べたように式（４−４）、式（４−５）、式（８−１）の条件が満たされる場合には式（８−２）、式（９−１）又は式（９−２）のいずれかに従って計算される。従って、並列効率計算部１４は、ロードバランス寄与率計算部１１により計算されたロードバランス寄与率Ｒｂ（ｐ）、仮想並列化率計算部１２により計算された仮想並列化率Ｒｐ（ｐ）、並列性能阻害要因寄与率計算部１３により計算された各並列性能阻害要因寄与率Ｒｊ（ｐ）、補助指標計算部１５により計算された加速度Ａｐ（ｐ）を用いて、その他の必要なデータについてはログデータ格納部３０に格納された処理時間等を用いて、並列効率Ｅｐ（ｐ）を計算する。
【０１０１】
例えば図２３のような処理時間の測定結果がデータ取得部１０によりログデータ格納部３０に格納された場合の計算例を以下に示す。より具体的には、τ１（ｐ）＝３４、τ２（ｐ）＝３５、τ３（ｐ）＝３３、τ４（ｐ）＝３７、γ１（ｐ）＝１５、γ２（ｐ）＝１４、γ３（ｐ）＝１３、γ４（ｐ）＝１６、χ１，ＲＥＤ（ｐ）＝８、χ２，ＲＥＤ（ｐ）＝９、χ３，ＲＥＤ（ｐ）＝７、χ４，ＲＥＤ（ｐ）＝７、χ１，Ｃ（ｐ）＝１０、χ２，Ｃ（ｐ）＝１１、χ３，Ｃ（ｐ）＝１２、χ４，Ｃ（ｐ）＝１３という測定結果が得られたものとする。従って、χ１，ｏｔｈｅｒｓ（ｐ）＝１（＝３４−１５−８−１０）、χ２，ｏｔｈｅｒｓ（ｐ）＝１（＝３５−１４−９−１１）、χ３，ｏｔｈｅｒｓ（ｐ）＝１（＝３３−１３−７−１２）、χ４，ｏｔｈｅｒｓ（ｐ）＝１（＝３７−１６−７−１３）となる。以下の計算で必要となるが未測定のχ１，Ｃ（１）及びχ１，ｏｔｈｅｒｓ（１）については共に０とする。
【０１０２】
（１）ロードバランス寄与率（式（５））
【数４０】
2004054680.tif 000044
（２）仮想並列化率（式（６−１），（１２−１），（１５））
【数４１】
2004054680.tif 000045
（３）加速率（式（６−２））
【数４２】
2004054680.tif 000046
（４）並列性能阻害要因寄与率（式（７））
（４−１）冗長処理の並列性能阻害要因寄与率
【数４３】
2004054680.tif 000047
（４−２）通信処理の並列性能阻害要因寄与率
【数４４】
2004054680.tif 000048
（４−３）その他の並列性能阻害要因寄与率
【数４５】
2004054680.tif 000049
【０１０３】
（５−１）並列効率（式（４−４））
【数４６】
2004054680.tif 000050
（５−２）並列効率（式（９−１））
【数４７】
2004054680.tif 000051
（５−３）並列効率（式（９−２））
【数４８】
2004054680.tif 000052
【０１０４】
以上の結果をまとめると図１３のようになる。なお、補助指標であるＥｐ（ｐ）・ｐも計算されている。Ｅｐ（４）・ｐ＝１．７７７で、４プロセッサ並列で１．７７７プロセッサの性能で処理していることが分かる。並列効率はロードバランスで約９４％（＝Ｒｂ（４）＝０．９３９２）に低下する。並列性能阻害要因の影響は、冗長処理が約２２％（＝ＲＲＥＤ（４）＝０．２２３０）、通信が約３３％（＝ＲＣ（４）＝０．３３０９）、その他が３％（＝Ｒｏｔｈｅｒｓ（４）＝０．０２８８）である。従って主に通信と冗長処理実行で５５％程度並列効率を下げている。また図１３ではＲｐ（４）＝０．８８２１ということから、プロセッサを無限に投入した時の並列最大性能が１プロセッサの８．４８２（＝Ａｐ（４）＝１／（１−０．８８２１））倍であることが推定できる。従って、この処理は８プロセッサ以下で行われるべき処理であることが分かる。この処理をＥｐ（ｘ）≧０．８の条件で行おうとすれば、Ｅｐ（ｘ）・ｐ＝０．４４４３×４＝１．７７７＝Ｅｐ（ｘ）・ｘ＝０．８＊ｘで、ｘ＝２．２２となる。従ってｐ≧２．２２＝２が与えられた条件に対する最適なプロセッサ数と予想できる。
【０１０５】
また、例えば図２４のようなサンプリングによるカウント数がデータ取得部１０によりログデータ格納部３０に格納された場合の計算例を以下に示す。より具体的には、τ１（ｐ）＝３４８８、τ２（ｐ）＝３５６１、τ３（ｐ）＝３３７２、τ４（ｐ）＝３７５６、γ１（ｐ）＝１５２１、γ２（ｐ）＝１４１１、γ３（ｐ）＝１３２２、γ４（ｐ）＝１６０１、χ１，ＲＥＤ（ｐ）＝８２３、χ２，ＲＥＤ（ｐ）＝９４５、χ３，ＲＥＤ（ｐ）＝７１１、χ４，ＲＥＤ（ｐ）＝７０３、χ１，Ｃ（ｐ）＝１０５６、χ２，Ｃ（ｐ）＝１１１１、χ３，Ｃ（ｐ）＝１２３０、χ４，Ｃ（ｐ）＝１３４１という測定結果が得られたものとする。従って、χ１，ｏｔｈｅｒｓ（ｐ）＝８８（＝３４８８−１５２１−８２３−１０５６）、χ２，ｏｔｈｅｒｓ（ｐ）＝９４（＝３５６１−１４１１−９４５−１１１１）、χ３，ｏｔｈｅｒｓ（ｐ）＝１０９（＝３３７２−１３２２−７１１−１２３０）、χ４，ｏｔｈｅｒｓ（ｐ）＝１１１（＝３７５６−１６０１−７０３−１３４１）となる。以下の計算で必要となるが未測定のχ１，Ｃ（１）及びχ１，ｏｔｈｅｒｓ（１）については共に０とする。
【０１０６】
（１）ロードバランス寄与率（式（５））
【数４９】
2004054680.tif 000053
（２）仮想並列化率（式（６−１），（１２−１），（１５））
【数５０】
2004054680.tif 000054
（３）加速率（式（６−２））
【数５１】
2004054680.tif 000055
（４）並列性能阻害要因寄与率（式（７））
（４−１）冗長処理の並列性能阻害要因寄与率
【数５２】
2004054680.tif 000056
（４−２）通信処理の並列性能阻害要因寄与率
【数５３】
2004054680.tif 000057
（４−３）その他の並列性能阻害要因寄与率
【数５４】
2004054680.tif 000058
【０１０７】
（５−１）並列効率（式（４−４））
【数５５】
2004054680.tif 000059
（５−２）並列効率（式（９−１））
【数５６】
2004054680.tif 000060
（５−３）並列効率（式（９−２））
【数５７】
2004054680.tif 000061
以上の結果をまとめると処理時間の計測の場合と同じ図１３のようになる。
【０１０８】
図２２の説明に戻って、ログデータ格納部３０には、処理毎に処理時間等の測定結果と図１３に示すような並列性能評価指標及び補助指標とがセットで格納される。そして、並列性能分析装置１００は、ユーザによる要求に応じて又は自動的に、表示装置や印刷装置等の出力装置１１０に、図１３のような処理結果を出力する（ステップＳ７）。
【０１０９】
ユーザは、図１３のようなデータだけで自ら並列性能などについて分析、最適プロセッサ数の見積、プロセッサ増設やシステムリプレイスを行う場合の効果の見積、プログラム等のチューニング、アルゴリズムの選定などを行っても良い。しかし、プロセッサ数最適化処理部２１、プロセッサ増設見積処理部２２、システムリプレイスデータ処理部２３、運用効率データ処理部２４、チューニング処理部２５、アルゴリズム選定処理部２６、並列性能評価処理部２７により、以下で説明するような各種コンサルティング支援処理を、ユーザの指示に従って実施する（ステップＳ９）。これにより、より具体的なデータを得ることができるようになる。
【０１１０】
Ａ．プロセッサ数最適化処理
プロセッサ数最適化処理部２１による処理を図２５及び図２６を用いて説明する。プロセッサ数最適化処理部２１は、ユーザによる目標並列効率（Ｅｐ）Ｔの値の設定入力を受け付ける（ステップＳ１１）。そして、最適プロセッサ数の計算を以下の式に従って行い、記憶装置に格納する（ステップＳ１３）。
（ｐ）ＯＰＴ＝Ｅｐ（ｐ）／（Ｅｐ）Ｔ・ｐ
そして、計算された最適プロセッサ数を出力装置１１０に出力する（ステップＳ１５）。これにより、ユーザは、次に同じ処理群に属する処理を実施する際に使用するプロセッサを必要最小限にすることができる。例えば、上でも説明しているが、図１３のような計算結果が得られており、目標並列効率（Ｅｐ）Ｔ＝０．８とすると、ｐ＝２．２２なる。従って最適なプロセッサ数は２となる。
【０１１１】
また、連続して同じ処理群の処理を実施する場合には、最適プロセッサ数を調整しながらより効率的に処理を実施させることも可能になる。すなわち、図２６に示すような処理を実施する。最初に、プロセッサ数ｐの仮設定を行う（ステップＳ２１）。この仮設定されたプロセッサ数ｐは同じ処理群の最初の処理について用いられる。また、ユーザから目標並列効率の設定を受け付ける（ステップＳ２３）。そして、プロセッサ数ｐの設定に従って、並列計算機システム２００により並列処理を実施すると共に測定部２０１により処理時間等を測定し、記憶装置に測定結果を格納する（ステップＳ２５）。データ取得部１０は、測定部２０１により測定された処理時間等のデータをログデータ格納部３０に格納する。そして、並列効率計算部１４等により、並列効率を含む並列性能評価指標等を計算し、ログデータ格納部３０に格納する（ステップＳ２７）。
【０１１２】
そしてプロセッサ数最適化処理部２１は、上で述べた式に従って最適プロセッサ数（ｐ）ＯＰＴを計算し、記憶装置に格納する（ステップＳ２９）。この計算された最適プロセッサ数（ｐ）ＯＰＴを、同じ処理群の次の処理にて使用するプロセッサ数としてｐに設定する（ステップＳ３１）。そして、同一処理群の全ての処理を実施したか判断する（ステップＳ３３）。もし、全ての処理を実施したわけではない場合には、同一処理群の次の処理を選択し（ステップＳ３５）、ステップＳ２５に戻り、ステップＳ３１において設定したプロセッサ数で並列処理を実施する。
【０１１３】
このような処理を実施することにより、同一処理群に属する前の処理についての最適プロセッサ数を次の処理のプロセッサ数として設定することができるので、より効率的に処理群の処理を行うことができるようになる。
【０１１４】
Ｂ．プロセッサ増設見積処理
プロセッサ増設見積処理部２２は、並列計算機システム２００のプロセッサ増設に対して定量的な指針として、システム増強時の加速率Ａｓｙｓｔｅｍを与えるための処理を実施する。図２７に処理フローを示す。まず、プロセッサ増設見積処理部２２は、システム増設時の増加分の稼働時間のデータ及びその予想並列効率のデータの設定入力を受け付ける（ステップＳ４１）。そして、式（１８）に従ってシステム増設時の加速率Ａｓｙｓｔｅｍを計算し、記憶装置に格納する（ステップＳ４３）。なお、現在使用中の各プロセッサの稼働時間等のデータについては、ログデータ格納部３０に格納された過去の処理ログデータを用いて計算する。そして、計算されたシステム増設時の加速率Ａｓｙｓｔｅｍを表示装置などの出力装置１１０に出力する（ステップＳ４５）。
【０１１５】
設定した増加分の稼働時間とその予測並列効率に対するシステム増設時の加速率Ａｓｙｓｔｅｍにより、どの程度意味のある処理を実施するための時間が増加するかといったことを判断することができるようになる。
【０１１６】
Ｃ．システムリプレイスデータ処理
並列計算機システムの入れ替えに際して新しい並列計算機システムの性能決定のための定量的指針を提示するための処理を実施する。図２８にそのための処理フローを示す。システムリプレイスデータ処理部２３は、目標とする並列効率（Ｅｐ）Ｔ及び繰返回数ｉｃｍａｘの設定入力を受け付ける（ステップＳ５１）。また、新しい並列計算機システムの性能として現行の並列計算機システムに対する性能倍率Ａの設定入力を受け付ける（ステップＳ５３）。性能倍率については、ＣＰＵ性能の倍率ＡＣＰＵ、通信性能の倍率ＡＣ、Ｉ／Ｏ性能の倍率ＡＩ／Ｏ等の設定入力を受け付ける。定量的指針はこの倍率値で得られる。ほとんどの計算機システム入れ替えでは、ＣＰＵ性能の改善によりシステムの性能向上を図るため、例えばまずＡＣＰＵを設定し、他の性能倍率を１としてＥｐを計算する。そして（Ｅｐ）Ｔに近付くようにＡＣ，ＡＩ／Ｏ等の値を繰り返し計算により求め、新しい並列計算機システムの性能決定のための指針を得るような方針で処理を行ってもよい。
【０１１７】
より具体的には、システムリプレイスデータ処理部２３は、設定された各性能倍率に従ってログデータ格納部３０に格納された各処理時間等を短くする計算を実施する（ステップＳ５５）。例えばＣＰＵ性能が５倍（ＡＣＰＵ＝５）と設定された場合には、並列処理の処理時間γｉ（ｐ）などを５分の１にするといった計算を行う。そして、設定された各性能倍率に従って短縮された各処理時間に基づき、並列効率を含む並列性能評価指標の見積値（例えば並列効率の見積値は（Ｅｐ）Ｅ）を計算し、記憶装置に格納する（ステップＳ５７）。
【０１１８】
システムリプレイスデータ処理部２３は、並列効率の見積値（Ｅｐ）Ｅが目標の並列効率（Ｅｐ）Ｔとが一致するか判断する（ステップＳ５９）。完全一致でなくてもよく、目標の並列効率（Ｅｐ）Ｔの所定の範囲内に見積値（Ｅｐ）Ｅが入っているか判断する。もし、並列効率の見積値（Ｅｐ）Ｅが目標の並列効率（Ｅｐ）Ｔとほぼ一致すると判断された場合には、目標並列効率達成を示すメッセージ及びステップＳ５７において計算された各並列性能評価指標の見積値等を、表示装置などの出力装置１１０に出力する（ステップＳ６１）。一方、並列効率の見積値（Ｅｐ）Ｅが目標の並列効率（Ｅｐ）Ｔとがほぼ一致しているとは言えない場合、カウンタｉｃが繰返回数ｉｃｍａｘ以上になったか判断する（ステップＳ６３）。もし、カウンタｉｃが繰返回数ｉｃｍａｘ以上になった場合には、目標並列効率を達成できなかった旨のメッセージ及びステップＳ５７において計算された各並列能力評価指標の見積値等を表示装置等の出力装置１１０に出力する（ステップＳ６５）。
【０１１９】
一方、ｉｃが繰返回数ｉｃｍａｘ未満である場合には、ＣＰＵ性能の倍率、通信性能の倍率、Ｉ／Ｏ性能の倍率等の性能倍率の変更を実施する（ステップＳ６７）。このステップについては、自動的に変更するようにしてもよいし、ユーザによる設定を受け付けるようにしてもよい。そして、カウンタｉｃを１インクリメントし（ステップＳ６９）、ステップＳ５５に戻る。
【０１２０】
上の処理では目標の並列効率（Ｅｐ）Ｔを達成するように、最大繰返回数ｉｃｍａｘまで性能倍率を変更して並列効率の見積を実施する。なお、ログデータ格納部３０に処理時間等が格納されている特定の処理に対して（Ｅｐ）Ｔを満足する性能を有する新たな並列計算機システムを選ぶことも、幾つかの種類の処理に対して（Ｅｐ）Ｔを満足する性能を有する新たな並列計算機システムを選ぶことも可能となる。
【０１２１】
図２８の処理フローの適用例を、具体的に図２３のような処理時間が測定されたケースで説明する。ここでは、目標並列効率（Ｅｐ）Ｔ＝０．６とし、ＣＰＵ性能が５倍、すなわちＡＣＰＵ＝５である新たなシステムを導入することを想定すると、γｉ（ｐ）、χｉ，ＲＥＤ（ｐ）は、１／ＡＣＰＵとなる。性質が不明なχｉ，ｏｔｈｅｒｓ（ｐ）も１／ＡＣＰＵとなるものと仮定する。一方、χｉ，Ｃ（ｐ）はネットワーク性能に依存する。ここでは、まず最初に、ＡＣ＝∞として実現可能性を検討する。なお、未測定のχ１，Ｃ（１）及びχ１，ｏｔｈｅｒｓ（１）については共に０とする。
【０１２２】
式（１２−１）から以下のような計算がなされる。
【数５８】
2004054680.tif 000062
［ＡＣＰＵ＝５，ＡＣ＝∞の場合の（Ｅｐ）Ｅ］
【数５９】
2004054680.tif 000063
【数６０】
2004054680.tif 000064
【数６１】
2004054680.tif 000065
【数６２】
2004054680.tif 000066
【数６３】
2004054680.tif 000067
【０１２３】
以上の計算結果などを図２９にまとめる。ＡＣ＝∞ではχｉ，Ｃ（ｐ）の項は０となり、Ｅｐ＝０．６８５０となるので目標値０．６より大きい。従って目標並列効率がＡＣの性能向上次第で達成できる可能性があることが分かる。そこでステップＳ６７でＡＣを変更しながら繰り返し並列効率の計算を実施し（ステップＳ５７）、Ｅｐ（ｐ）〜０．６となるＡＣを探す。途中の計算は省略するが、Ｅｐ（ｐ）〜０．６の場合の計算結果を図２９の第２行に示す。この場合、ＡＣ＝１９．２である。これより（Ｅｐ）Ｔ＝０．６でＣＰＵ性能をＡＣＰＵ＝５としたい場合、ＡＣ＝１９．２以上の性能を有する並列計算機システムを探して入れ替えればよいという指針が得られる。
【０１２４】
なお、ＡＣ＝１９．２という数字が高すぎて、そのようなシステムが現存しない場合には、他の並列性能阻害要因の縮小を検討する。図２９の第二行の見積結果によれば、冗長処理ＲＲＥＤ（４）＝０．２９５３を改善すべきということが分かる。冗長処理を削減するためには、プログラムのチューニングが必要となる。チューニングしたプログラムを実行し、図２８の処理を再度実行して、ＡＣを再度見積もればよい。
【０１２５】
また、図２９に示したようにシステムリプレイス時の並列性能を予測することで、新たに導入する並列計算機システムのシステム運用効率Ｅｓｙｓｔｅｍを推定することも可能である。例えば、ある処理で目標並列効率（Ｅｐ）Ｔ＝０．６をクリアする、ＡＣＰＵ＝５、ＡＣ＝１９．２という新しいシステムで、見積りが図１８に示される処理１乃至４を行った場合、Ｅｓｙｓｔｅｍ＝０．６５３４となるということが分かる。この予測されたＥｓｙｓｔｅｍと、これまでの処理ログから得られるＥｓｙｓｔｅｍとを比較することにより、システムの入れ替えによる稼働率の向上をより根拠があるデータで定量的に示すことができるようになる。
【０１２６】
Ｄ．システム運用効率向上処理
例えば式（１７）で示されたシステム運用効率Ｅｓｙｓｔｅｍという指標を基に、システムの運用効率を評価する。この指標向上のために、どの処理の並列効率をどの程度向上させる必要があるか等、運用効率の向上に関して具体的指針を出す。具体的には、図３０の処理を実施する。
【０１２７】
運用効率データ処理部２４は、運用管理者によるシステム運用効率の目標値（Ｅｓｙｓｔｅｍ）Ｔ及び繰返回数ｉｃｍａｘの設定入力を受け付ける（ステップＳ７１）。そして、ログデータ格納部３０に格納されている処理時間や並列効率等のデータを読み出し、式（１７）に従ってシステム運用効率Ｅｓｙｓｔｅｍを計算し、記憶装置に格納する（ステップＳ７３）。なお、並列効率を含む並列性能評価指標の計算がなされていない場合には、この段階にてロードバランス寄与率計算部１１、仮想並列化率計算部１２、並列性能阻害要因寄与率計算部１３、並列効率計算部１４などにより並列効率を含む並列性能評価指標などを計算する。そして、ステップＳ７３において計算されたシステム運用効率Ｅｓｙｓｔｅｍがシステム運用効率の目標値（Ｅｓｙｓｔｅｍ）Ｔを超えたか判断する（ステップＳ７５）。もし、Ｅｓｙｓｔｅｍ＞（Ｅｓｙｓｔｅｍ）Ｔであると判断された場合には、目標達成を表すメッセージ及びステップＳ７３において計算されたシステム運用効率Ｅｓｙｓｔｅｍを表示装置などの出力装置１１０に出力する（ステップＳ７７）。一方、Ｅｓｙｓｔｅｍ≦（Ｅｓｙｓｔｅｍ）Ｔである場合には、カウンタ値ｉｃが繰返回数ｉｃｍａｘ以上になっているか判断する（ステップＳ７９）。もし、カウンタ値ｉｃが繰返回数ｉｃｍａｘ以上であれば、システム運用効率向上処理がうまく機能していないことを知らせるため、目標未達を示すメッセージ及び直前のステップＳ７３で計算されたシステム運用効率Ｅｓｙｓｔｅｍを、表示装置などの出力装置１１０に出力する（ステップＳ８１）。
【０１２８】
一方、カウンタ値ｉｃが繰返回数ｉｃｍａｘ未満であれば、運用効率データ処理部２４は、エンドユーザにはエンドユーザ向けの改善処置を、システム管理者にはシステム管理者向けの改善処置を、プログラマにはプログラマ向けの改善処置を、並列計算機システム開発者又は研究者には並列計算機システム開発者又は研究者向けの改善処置を実施するように勧め、エンドユーザ等は可能なシステム運用効率改善処置を実施する（ステップＳ８３）。なお、実施する処置の例としては、プロセッサ数を最適化させたり、プロセッサの増設、システムのリプレイス、プログラム等のチューニング等である。システム運用効率改善処置の実施後に、再度並列計算機システム２００により並列処理を実施し、同時に測定部２０１による処理時間等の測定処理を実施する（ステップＳ８５）。そして、カウンタ値ｉｃを１インクリメントし（ステップＳ８７）、ステップＳ７３に戻る。なお、ステップＳ８３についてはエンドユーザなどが行う処理である場合もあるので点線ブロックで、ステップＳ８５については並列性能分析装置１００の処理ではないので一点鎖線のブロックで示している。
【０１２９】
このような処理を実施することにより、従来の稼働率ＮＷＲｓｙｓｔｅｍでは考慮されていない並列効率を反映させた、すなわち実効的な処理時間を考慮に入れたシステム運用効率を向上させることができるようになる。
【０１３０】
Ｅ．チューニング処理
従来、並列アプリケーション・プログラムのチューニングによる性能向上作業は、達成目標が不明確であったためその作業時間の見積が容易でなかった。目標とした処理時間がチューニングでは到達不可能な場合もあり、チューニング作業を延々と続けて多大な作業時間を費やす場合も多々存在していた。そこで、図３１に示すような処理を実施する。
【０１３１】
まず、チューニング処理部２５は、プログラマによる目標処理時間（τ）Ｔ、繰返回数ｉｃｍａｘ及び制限並列効率（Ｅｐ）ｍａｘの設定入力を受け付ける（ステップＳ９１）。次に、ログデータ格納部３０に格納されている並列効率及び処理時間のデータ（例えばチューニングしようとしているプログラムの処理ログに含まれる並列効率及び処理時間）を用いて、目標処理時間（τ）Ｔに対応する目標並列効率（Ｅｐ）Ｔを計算し、記憶装置に格納する（ステップＳ９３）。目標並列効率（Ｅｐ）Ｔは以下の式で計算される。この式は線形外挿を表している。
（Ｅｐ）Ｔ＝ｍａｘ（τｉ）×Ｅｐ（ｐ）／（τ）Ｔ
【０１３２】
そして目標並列効率（Ｅｐ）Ｔが制限並列効率（Ｅｐ）ｍａｘ以下であるか判断する（ステップＳ９５）。目標処理時間（τ）Ｔを何らの制限なく設定すると、実現不可能な目標並列効率（Ｅｐ）Ｔが設定されることになりかねないため、本ステップにおいて目標処理時間（τ）Ｔが妥当であるか判断するものである。もし、目標並列効率（Ｅｐ）Ｔが制限並列効率（Ｅｐ）ｍａｘを超える場合には、目標処理時間（τ）Ｔ又は制限並列効率（Ｅｐ）ｍａｘの設定し直しが必要となるので、ステップＳ９１に戻る。
【０１３３】
一方、目標並列効率（Ｅｐ）Ｔが制限並列効率（Ｅｐ）ｍａｘ以下である場合には、今回測定の処理時間τ（ｐ）が目標処理時間（τ）Ｔ以下になっているか判断する（ステップＳ９７）。なお、ステップＳ９７の最初の処理は、必ずＮｏと判断される。もし、今回測定の処理時間が目標処理時間（τ）Ｔ以下になっている場合には、目標を達成した旨のメッセージ、達成された並列効率、処理時間τ（ｐ）等のデータを表示装置等の出力装置１１０に出力する（ステップＳ９９）。一方、今回測定の処理時間が目標処理時間（τ）Ｔを超えている場合には、カウンタ値ｉｃが繰返回数ｉｃｍａｘ以上になっているか判断する（ステップＳ１０１）。もし、カウンタ値ｉｃが繰返回数ｉｃｍａｘ以上になった場合には、目標達成不可能を表すメッセージ、達成できた並列効率、処理時間τ（ｐ）等のデータを、表示装置などの出力装置１１０に出力する（ステップＳ１０３）。
【０１３４】
もし、カウンタ値ｉｃが繰返回数ｉｃｍａｘ未満である場合には、カウンタ値ｉｃを１インクリメントする（ステップＳ１０５）。そして、冗長処理、ロードバランス、通信処理、Ｉ／Ｏなどの並列性能阻害要因についてチューニングを行う（ステップＳ１０７）。プログラムの書き換えではなく、ツールやコンパイラ、ランタイムライブラリなどによりチューニングを実施しても良い。プログラマが実施する作業である場合もあるのでここでは点線ブロックで示している。チューニングの後に、並列計算機システム２００にてプログラムを再度並列処理し、同時に測定部２０１により処理時間等の測定処理を実施し、記憶装置に格納する（ステップＳ１０９）。ステップＳ１０９も並列性能分析装置１００の処理ではないので一点鎖線によるブロックで表している。この後、データ取得部１０が、並列計算機システム２００から処理時間等のデータを取得し、ログデータ格納部３０に格納する。そして、ロードバランス寄与率計算部１１、仮想並列化率計算部１２、並列性能阻害要因寄与率計算部１３、並列効率計算部１４などにより、並列効率を含む並列性能評価指標を計算し、ログデータ格納部３０に格納する（ステップＳ１１１）。そして、ステップＳ９７に戻る。
【０１３５】
このように、所定のチューニング回数だけ目標処理時間（τ）Ｔを達成すべくチューニング作業を実施することになるので、プログラマも効率的な作業を実施することができるようになる。
【０１３６】
例えば図２３のような処理時間を基に具体例を示しておく。この際、τ（ｐ）＝３７、Ｅｐ（４）＝０．４４４３であるので、今仮に（Ｅｐ）ｍａｘ＝０．６、（τ）Ｔ＝２８とすると、（Ｅｐ）Ｔ＝０．５８７１となる。従って、ステップＳ９５からステップＳ９７に移行する。最初の処理であるからステップＳ９７からステップＳ１０１及びＳ１０５を介してステップＳ１０７に移行する。そこで１回目のチューニングとして通信時間χＣを１／２に削減したものとする。その結果を用いてステップＳ１１１で並列効率を含む並列性能評価指標を計算する。そうすると図３２に示すような結果が得られる。なお、図３２は処理時間ｍａｘ（τｉ）を加えて比較したものである。
【０１３７】
チューニングとして通信時間χＣを１／２に削減した場合の計算方法は以下のとおりである。なお、χ１，Ｃ（４）＝１０／２＝５、χ２，Ｃ（４）＝１１／２＝５．５、χ３，Ｃ（４）＝１２／２＝６、χ４，Ｃ（４）＝１３／２＝６．５とする。また式（１２−１）から以下のように計算される。
【数６４】
2004054680.tif 000068
（１）ロードバランス寄与率（式（５））
【数６５】
2004054680.tif 000069
（２）仮想並列化率（式（６−１））
【数６６】
2004054680.tif 000070
（３）並列性能阻害要因寄与率（式（７））
【数６７】
2004054680.tif 000071
（４−１）並列効率（式（４−４））
【数６８】
2004054680.tif 000072
（４−２）並列効率（式（９−２））
【数６９】
2004054680.tif 000073
【０１３８】
１回のチューニングでは処理時間ｍａｘ（τｉ）（＝τ（ｐ））は３０．５で目標処理時間（τ）Ｔを達成できていないので、再度何らかのチューニングを実施する必要がある。
【０１３９】
従来、並列性能の評価は、プロセッサ数を変えての時間変化、他のシステムとの処理時間比較、時間内に行われたオペレーション数の比較等、処理時間比較をベースにして行われた。これには２度以上の時間測定が必要で、プログラム開発時間を増加させる原因となっていた。またこの比較という相対的な並列性能評価では、処理データが変わった場合、比較基準を再度測定する必要が出てくる。このように並列性能評価に時間がかる結果、ある条件でしか並列性能が出ないアプリケーション・プログラムが開発されてしまう場合が生ずる。上で述べたような処理を実施することにより、並列効率による並列性能評価が１回の測定でできるようになり、並列アプリケーション・プログラムの開発時間のうちの性能評価時間を大幅に短縮することが可能となる。その結果、並列性能を十分考慮した並列アプリケーション・プログラムの開発が現実的に実施できるようになる。
【０１４０】
また従来では、アプリケーション・プログラムのチューニングによる性能向上作業は達成目標が不明確であったため作業時間見積が容易でなかった。またどのような場合に作業を終えるかが明確にならず、結果的に多大な作業時間を費やす場合も生じていた。さらにアプリケーション・プログラムのチューニングではなく再開発が必要になってしまう場合もあった。上で述べたような処理を実施することにより、アプリケーション・プログラムのチューニングによる並列効率向上の目標を明確に定め、チューニングの繰返回数等で作業時間の予測もできるようになる。
【０１４１】
さらに従来では、アプリケーション・プログラムのチューニングはアプリケーション・プログラムの中で処理時間が長い手続き（アプリケーション・プログラムの一部分）を時間測定等により探し出し、その手続き内で問題となっている並列性能阻害要因を処理時間の比較により探し出し、その処理時間を減らすという形で行われた。上で述べたような処理により、このようなアプリケーション・プログラムの一部分のチューニングに対し、ロードバランスに対する性能評価が初めて可能となった。
【０１４２】
Ｆ．アルゴリズム選定処理
従来、並列アプリケーション・プログラムの一部に用いるアルゴリズムを変えたもの同士の性能比較には処理時間を用いたが、処理時間減少の原因が並列処理の効果によるものか、機能の違いによる効果か（例えば演算数の減少か）判別できなかった。その結果、処理時間は短いがスケーラビリティが悪いアルゴリズムにたくさんのプロセッサをつぎ込む資源の無駄使いを見逃すこととなった。本実施の形態では、より並列効率の良いアルゴリズムを選定して、システム全体の運用効率を向上させる。ここではまず、並列処理に向かないアルゴリズムと並列処理に向くアルゴリズムを比較した例を示しておく。
【０１４３】
［並列処理に向かないアルゴリズム］
例えば図３３に示すような処理時間の測定がなされた場合を例に説明する。なお、χ１，Ｃ（１）＝０とする。また式（１２−１）から以下のように計算される。
【数７０】
2004054680.tif 000074
（１）ロードバランス寄与率（式（５））
【数７１】
2004054680.tif 000075
（２）仮想並列化率（式（６−１））
【数７２】
2004054680.tif 000076
（３）加速率（式（６−２））
【数７３】
2004054680.tif 000077
（４）並列性能阻害要因寄与率（式（７））
【数７４】
2004054680.tif 000078
（４−１）並列効率（式（４−４））
【数７５】
2004054680.tif 000079
（４−２）並列効率（式（９−１））
【数７６】
2004054680.tif 000080
【０１４４】
［並列処理に向くアルゴリズム］
図３４に示すような処理時間が測定された場合の例を説明する。なお、χ１，Ｃ（１）＝０とする。また式（１２−１）から以下のように計算される。
【数７７】
2004054680.tif 000081
（１）ロードバランス寄与率（式（５））
【数７８】
2004054680.tif 000082
（２）仮想並列化率（式（６−１））
【数７９】
2004054680.tif 000083
（３）加速率（式（６−２））
【数８０】
2004054680.tif 000084
（４）並列性能阻害要因寄与率（式（７））
【数８１】
2004054680.tif 000085
（４−１）並列効率（式（４−４））
【数８２】
2004054680.tif 000086
（４−２）並列効率（式（９−１））
【数８３】
2004054680.tif 000087
【０１４５】
以上の処理結果をまとめると図３５のようになる。並列処理に向かないアルゴリズムの番号をｊ＝１、並列処理に向くアルゴリズムの番号をｊ＝２とすると、ｊ＝１では加速率Ａｐ＝５．０００で有限であり、プロセッサを増加させても５個分が効率的に限度であることが分かる。一方、ｊ＝２では加速率Ａｐ＝∞であり、プロセッサを投入すればするほど処理時間が短くなる可能性がある。なお、処理時間τはｊ＝１の方が１１０でｊ＝２の１２０より短いので、今まであれば並列処理に向かないアルゴリズムであるｊ＝１を選択してしまう場合があった。
【０１４６】
そこで本実施の形態では図３６に示す処理をアルゴリズム選定処理部２６にて実施するものとする。まず、プログラマにより目標処理時間（τ）Ｔの設定入力を受け付ける（ステップＳ１２１）。そして、初期設定として、アルゴリズム番号ｊを１に、最適なアルゴリズム番号ｊＴを１に設定する（ステップＳ１２３）。また、ｊ＝１の場合に、目標処理時間（τ）Ｔを達成するために必要なプロセッサ数（ｐ）１を線形外挿で計算する（ステップＳ１２５）。すなわち、ログデータ格納部３０に格納されたアルゴリズム番号ｊ＝１の処理時間等を用いて、（ｐ）１＝（τ）１／（τ）Ｔ／（Ｅｐ）１＋（ｐ）１を計算し、記憶装置に格納する（ステップＳ１２５）。また、最適なアルゴリズムについて必要なプロセッサ数（ｐ）Ｔ＝ＩＮＴ（（ｐ）１＋０．９９）と設定する。さらに、ｐｍｉｎ＝ｐ１と設定する。
【０１４７】
次にｊを１インクリメントする（ステップＳ１２７）。そして、ｊの場合のプロセッサ数（ｐ）ｊを以下の式で計算し、記憶装置に格納する（ステップＳ１２９）。
（ｐ）ｊ＝（τ）ｊ／（τ）Ｔ／（Ｅｐ）ｊ＋（ｐ）ｊ
そして、（ｐ）ｊ＜（ｐ）ｍｉｎであり、且つ（Ａｐ）ｊ＞（ｐ）ｊであるか確認する（ステップＳ１３１）。すなわち、（ｐ）ｊが最小であり、当該アルゴリズムの加速率（Ａｐ）ｊより最適プロセッサ数が小さくなっているか、すなわち実現可能かを確認する。ステップＳ１２５及びＳ１２９では線形外挿で単純に（ｐ）ｊを計算しているので、実現可能か否かをここで担保するものである。もし、（ｐ）ｊ＜（ｐ）ｍｉｎであり、且つ（Ａｐ）ｊ＞（ｐ）ｊである場合には、アルゴリズム番号ｊをｊＴに設定する。すなわち、ｊＴ＝ｊ。また、（ｐ）Ｔ＝ＩＮＴ（（ｐ）ｊ＋０．９９）と設定する（ステップＳ１３３）。
【０１４８】
ステップＳ１３１又はステップＳ１３３の後に、ｊがアルゴリズム数ｊｍａｘ以上になっているか確認する（ステップＳ１３５）。すなわち全てのアルゴリズムについて処理したか判断する。もし、ｊ≧ｊｍａｘであれば、最終的にｊＴで特定されたアルゴリズム番号及びその場合のプロセッサ数（ｐ）Ｔ並びに他の処理結果（ｊ，（ｐ）ｊ，（Ａｐ）ｊ，（τ）ｊ等のセット）を、表示装置等の出力装置１１０に出力する（ステップＳ１３７）。一方、ｊ＜ｊｍａｘであればステップＳ１２７に戻る。
【０１４９】
このようにすれば実現性のある範囲内でプロセッサ数が少なく目標処理時間を達成することができるアルゴリズムを特定することができる。また、本処理フローで最適とされたアルゴリズムだけではなく、あまりプロセッサ数が異ならないアルゴリズムでチューニングなどがやりやすいアルゴリズムを選択することもできる。
【０１５０】
図３５に示した２つのアルゴリズムの例で具体的に説明する。初めに目標処理時間（τ）Ｔ＝５０を設定する。次にそれらのアルゴリズムの（Ｅｐ）ｊ，（τ）ｊを用いて線形外挿により必要なプロセッサ数（ｐ）ｊを計算する。図３６に示した処理フローでは（ｐ）ｊを線形外挿で求めるため、冗長処理のみを考慮したＡｐ（４）をプロセッサ数の上限として導入して、Ａｐ（４）＞（ｐ）ｊであれば（ｐ）ｊを適用できるものとする。その結果、並列処理に向かないアルゴリズムの限界性能が５．０００であるのに対して（ｐ）ｊは７．８７２で、並列処理に向かないアルゴリズムについては（ｐ）ｊを適用できないことが分かる。一方、並列処理に向くアルゴリズムの限界性能は∞であるので、６．６１８のプロセッサで（τ）Ｔ＝５０を達成できる可能性がある。従って並列処理に向くアルゴリズムｊＴ＝１を選ぶことができる。その場合の初めの目安は、６．６１８を切り上げして得た（ｐ）Ｔ＝７である。今まではτの１１０と１２０を比べて処理時間が短いが並列処理に向かないアルゴリズムを採用する場合が多かったが、図３６の処理フローによりｐ＝４では処理時間が長いが並列処理に向くアルゴリズムを選択できるようになる。
【０１５１】
Ｇ．並列性能評価処理
本実施の形態においては、実運用における全処理の並列性能評価指標のログデータを作成することが可能となる。このログデータにおいてある特定の処理をターゲットにすれば専用並列計算機システムに必要な仕様書（ＣＰＵ性能、通信性能、Ｉ／Ｏ性能、ランライムライブラリの性能等）を求めることが可能となる。全アプリケーションによる処理をターゲットにすればそのログに対する汎用並列並列計算機システムに必要な仕様書を作成することも可能となる。
【０１５２】
例えば図３７に示した処理番号１乃至４の処理性能を向上するためには、通信性能を上げること、又はＣＰＵの性能と通信の性能の比を保つ形で両者の性能向上を図れば良いことが分かる。並列性能評価処理部２７は、例えばログデータ格納部３０に格納されているデータから図３７のようなテーブルを構成し、表示装置等の出力装置１１０に出力する。また、並列性能阻害要因のうちどの処理においても相対的に高い値を示しているものを強調表示するような処理を行っても良い。また、処理５の性能を向上するためには、システムのリプレイス等による性能向上ではなく、アプリケーション・プログラムのチューニング等が必要なことが分かる。これは、処理５だけ冗長処理による並列性能阻害要因寄与率が大きな値を示しているからであり、並列性能評価処理部２７は特徴的な処理についても抽出して、例えば強調表示させるような場合もある。
【０１５３】
通信性能を決定する方法としては、例えばシステムリプレイスデータ処理で説明したような処理を実施すればよい。すなわち、通信性能の倍率以外は１に固定してしまい、目標のＥｐ（４）をクリアするまで実施する。
【０１５４】
なお、処理数の多い処理番号１乃至４のパターンの処理に着目して通信性能を向上すれば、このシステムは汎用並列計算機システムとなる。一方、処理数の少ない処理番号５のパターンの処理に着目して冗長処理を軽減する仕組みを計算機システムに導入すれば、専用並列計算機システムとなる。また、処理番号５のアプリケーション・プログラムのチューニングを行い、冗長処理を減らせば、通信性能を向上するだけで１乃至５の汎用並列計算機システムとなる。
【０１５５】
従来では、アプリケーション・プログラムの並列処理の特徴により並列計算機システムの並列性能が大きく変わるため、並列計算機システムを開発することが容易でなかった。それを克服する方法として、アプリケーション・プログラムを特定し並列性能を分析して、それに合った並列計算機システムを開発する方法が多く用いられていた。しかしこの方法ではアプリケーション・プログラムが変わると、全く並列性能を発揮できないシステムを開発してしまう恐れがある。本実施の形態によれば、実運用における全処理の並列性能評価指標のログデータを作成することが可能となるため、このログデータを基にして、ある特定の処理をターゲットにすれば専用並列計算機システムに必要な仕様書（ＣＰＵ性能、通信性能、Ｉ／Ｏ性能、ランライムライブラリの性能等）を作成することが可能となる。また、全処理をターゲットにすればそのログに対する汎用並列計算機システムに必要な仕様書を作成することも可能となる。
【０１５６】
また従来では、並列計算機システムの並列性能阻害要因を定量的に把握する手段が組み込まれているか否かはシステムにより大きく差があり、並列性能阻害要因を定量的に把握する手段を全く持っていないシステムもある。本実施の形態では、式（７）で示すように、並列性能阻害要因が無い状態から任意に要因を追加できる機能を持つため、販売後、システムのアプグレード時に要因測定機能を追加して評価精度を高めることができる。
【０１５７】
さらに、従来の性能評価指標である例えばｆｌｏｐ／ｓ，Ｍｏｐ／ｓ，ｔｐｍＣ等は、アプリケーション・プログラムの種類によって適用できるものとできないものがある。本実施の形態では、指標を時間比で表わすため、全てのアプリケーション・プログラムに対して有効であり、性能評価を適切に実施できるようになる。さらに、従来の並列性能評価方法には特別な並列処理にしか適用できないものがあったが、本実施の形態によれば全ての並列処理に適用することができる。
【０１５８】
以上本発明の実施の形態を説明したが、これにより、並列処理の性能を表わす並列効率に対し、それを低下させる割合を並列性能評価指標、すなわちロードバランス寄与率、仮想並列化率及び並列性能阻害要因で示すことができるようになる。並列性能評価指標にロードバランス寄与率が加わり、全ての並列処理の並列性能評価が可能となる。
【０１５９】
また、式（８−２）を用いれば、Ｒｐ（ｐ）がほぼ１である場合には、並列効率の計算に推測値τ（１）を必要としないため、τ（１）を測定できないグリッドやクラスタによる並列処理を含め、全ての並列処理の正確な（推測値τ（１）を含まないと言う意味で）並列性能評価が可能となる。
【０１６０】
さらに、式（９−１）及び式（９−２）を用いれば、Ｒｐ（ｐ）＜１の場合でも、並列効率の計算のためにτ（１）を見積ることにより、τ（１）を測定できないグリッドやクラスタによる並列処理を含め、全ての並列処理の並列性能評価が可能となる。
【０１６１】
式（７）の式の形により、対象とする並列計算機システムに特有の並列処理阻害要因を随時導入可能となり、詳細な性能評価を容易に実施できる。さらに、並列性能阻害要因の寄与率を並列効率に対する百分率で捉えられ、直感的な並列性能評価が可能となる。
【０１６２】
また、ロードバランスの寄与が、並列効率に対する比率という数値で明確となったため、今まで評価できなかった並列性能に対するロードバランスの寄与が具体的に示せるようになる。
【０１６３】
また、並列性能指標を計算して提示するだけではなく、処理時間測定により決定された並列効率を用い、効率の良い処理を行うプロセッサ数の決定ができる。さらに、並列処理の効率を考慮した上で、プロセッサの増減を検討できる。
【０１６４】
さらに、性能仕様が異なる新しい並列計算機システムの導入を机上で検討できる。また、並列性能評価指標を用いて，システム運用における利用効率管理ができる。
【０１６５】
以上本発明の実施の形態を説明したが、本発明はこれに限定されない。例えば図１９の機能ブロック図は一例であり、必ずしもプログラムモジュールとは対応しない。また、プロセッサ数最適化処理部２１、プロセッサ増設見積処理部２２、システムリプレイスデータ処理部２３、運用効率データ処理部２４、チューニング処理部２５、アルゴリズム選定処理部２６、並列性能評価処理部２７は全て備えていなければならないものではなく、全て設けられる場合もあれば全く設けられない場合もある。さらに、任意の組み合わせにて設けられる場合もある。
【０１６６】
［実施例］
上で述べた実施の形態は全ての並列処理（メモリ、ネットワーク、ＣＰＵ性能が同じホモ構成又は異なるヘテロ構成のグリッド、クラスタ又は分散メモリ、若しくはＳＭＰ（対称型マルチプロセッシング：Ｓｙｍｍｅｔｒｉｃ　ＭｕｌｔｉＰｒｏｃｅｓｓｉｎｇ）、ＳＭＰ＋分散メモリ、ＮＵＭＡ（ＮｏｎＵｎｉｆｏｒｍ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）等）に適用可能である。以下では、代表的な態様について計算例を示しておく。
【０１６７】
（１）ホモ構成におけるグリッド等（χ１，ｊ（１）＝０）
グリッドやクラスタで処理を行う場合、各プロセッサへの処理の割り付けや処理結果の回収にネットワークを用いるため通信が発生するが、これは１つのプロセッサで処理する場合には生じない。このような処理はχ１，ｊ（１）＝０の処理である。ここでは並列性能阻害要因を通信のみとし、χ１，Ｃ（１）＝０であるような処理の並列性能を評価する。例えば図３８のような経過時間の測定結果が得られた場合について説明する。
【０１６８】
式（３）から以下の計算がなされる。
【数８４】
2004054680.tif 000088
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数８５】
2004054680.tif 000089
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数８６】
2004054680.tif 000090
【０１６９】
以上計算された並列性能評価指標をまとめると図３９のようになる。Ａｐ（ｐ）＝∞ゆえｐ＝∞で並列処理した時の性能向上の可能性は無限であるが，プロセッサ数ｐ＝４を投入した現実の性能向上Ｅｐ（４）・ｐは１．９２８である。その理由は、並列効率Ｅｐ（４）が、ロードバランス寄与率で９３％（Ｒｂ（４）＝０．９２８６）となり、通信によりさらに４８％（Ｒｃ（４）＝０．４８０８）低下するためである。
【０１７０】
（２）ホモ構成におけるグリッド等（χ１，ＲＥＤ（１）≠０）
数値計算では、アプリケーション・プログラムを全てのプロセッサにコピーし、ループ処理のインデックス等を識別して各プロセッサで処理を分担する、いわゆるデータパラレルで並列処理する場合が多い。データパラレルでは、例えばループ間に並列処理できない処理が残る。この処理を全プロセッサが行うとき、内容が同じ処理であることからこれを冗長処理と呼ぶ。冗長処理の特徴は、並列処理でない場合も必要な処理のため必ずχ１，ＲＥＤ（１）≠０となることである。ここでは並列性能阻害要因を冗長処理のみとし、χ１，ＲＥＤ（１）≠０であるような処理の並列性能を評価する。例えば図４０のような経過時間の測定結果が得られた場合について説明する。
【０１７１】
式（３）から以下の計算がなされる。
【数８７】
2004054680.tif 000091
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数８８】
2004054680.tif 000092
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数８９】
2004054680.tif 000093
【０１７２】
以上計算された並列性能評価指標をまとめると図４１のようになる。ここではＡｐ（ｐ）＝９．７３７ゆえｐ＞９の並列処理は無意味である。プロセッサ数ｐ＝４を投入した現実の性能向上Ｅｐ・ｐは２．８７４である。その理由は、並列効率Ｅｐが、ロードバランス寄与率で９４％（Ｒｂ（４）＝０．９３９８）となり、冗長処理によりさらに３１％（ＲＲＥＤ（４）＝０．３１４１）低下するためである。
【０１７３】
（３）ホモ構成におけるグリッド等（χ１，ｊ（１）≠０：但し冗長処理以外）
例えば通信ライブラリの処理時間はネットワーク通信と演算で構成される。この演算時間をχ１，Ｃ（１）として扱う。ここでは並列性能阻害要因を通信のみとし、χ１，Ｃ（１）≠０であるような処理の並列性能を評価する。例えば図４２のような経過時間の測定結果が得られた場合について説明する。
【０１７４】
式（３）から以下の計算がなされる。
【数９０】
2004054680.tif 000094
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９１】
2004054680.tif 000095
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数９２】
2004054680.tif 000096
【０１７５】
以上計算された並列性能評価指標をまとめると図４３のようになる。ここではＡｐ（ｐ）＝２２．５７ゆえｐ＜２２で処理すべきである。プロセッサ数ｐ＝４を投入した現実の性能向上Ｅｐ・ｐは１．８５９である。その理由は、並列効率Ｅｐが通信により５３％（ＲＣ＝０．５２６３）低下するためである。ロードバランス寄与率は９４％（Ｒｂ（４）＝０．９３７５）で、ロードバランスはこの場合の並列性能を阻害する主要な要因ではない。実施例（１）と異なるところは、χ１，Ｃ（１）≠０のためＡｐ（ｐ）が有限値になるところである。
【０１７６】
通信処理に含まれる演算はプロセッサの増加と共に変化する場合がある。これをΧｉ，Ｃ（ｐ）とみなして並列性能評価に取り入れることで、プロセッサ数によって異なる演算数を評価に組み込むことが可能となる。
【０１７７】
（４）ホモ構成におけるグリッド等（待ち（アイドリング：ウエイト（ｗａｉｔ）とも呼ぶ）がある場合）
特定のプロセッサが処理し、結果を他のプロセッサが使う場合、その処理が終了するまで他のプロセッサは次の処理を開始できない。例えば特定のプロセッサのみがデータベース（ＤＢ）をアクセスできる場合がこれに当たる。図４４ではプロセッサ＃１でこの処理（γ’）を行う。他のプロセッサはＤＢ処理の間、待ち状態になる。このようにＣＰＵを待たせておくアイドリング処理が存在する場合の並列性能を評価することができる。図４４のような経過時間の測定結果が得られたものとする。
【０１７８】
式（３）から以下の計算がなされる。
【数９３】
2004054680.tif 000097
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９４】
2004054680.tif 000098
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数９５】
2004054680.tif 000099
【０１７９】
以上計算された並列性能評価指標をまとめると図４５のようになる。Ａｐ（４）＝∞ゆえｐ＝∞で並列処理した時の性能向上の可能性は無限であるが、ｐ＝４を投入した現実の性能向上Ｅｐ・ｐは２．２２６である。その理由は、並列効率Ｅｐが通信により３２％（ＲＣ（４）＝０．３１５８）、アイドリングにより１１％（ＲＷ（４）＝０．１１０８）低下するためである。ロードバランス寄与率は９７％（Ｒｂ（４）＝０．９７０４３　）で、ロードバランスはこの場合並列性能を阻害する主要な要因ではない。
【０１８０】
（５）ホモ構成におけるグリッド等（他の処理があるために待ちがある場合）
グリッドやクラスタで処理を行う場合、各プロセッサを自分の処理のみで使うことは希で、一般に複数の処理の中に共存することになる。その場合他の処理が割り込むことによる待ちが生じる。これを図４６に示す。このように他の処理があるために待ちがある場合の並列性能を評価する。図４６のような経過時間の測定結果が得られたものとする。
【０１８１】
式（３）から以下の計算がなされる。
【数９６】
2004054680.tif 000100
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９７】
2004054680.tif 000101
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数９８】
2004054680.tif 000102
【０１８２】
以上計算された並列性能評価指標をまとめると図４７のようになる。Ａｐ（４）＝∞ゆえｐ＝∞で並列処理した時の性能向上の可能性は無限であるが、ｐ＝４を投入した現実の性能向上Ｅｐ・ｐは１．８０８である。その理由は、並列効率Ｅｐが、ロードバランス寄与率で７９％（Ｒｂ（４）＝０．７８７５）となり、タイムシェアリングのための待ちにより２８％（ＲＷ（４）＝０．２７７８）、通信によりさらに１４％（ＲＣ＝０．１４１８）低下するためである。ＲＷ（４）は他の処理により生じるので、Ｒｂ（４）はシステム全体を考慮したロードバランス寄与率となる。他の処理がある場合、Ｒｂ（４）とＲＷ（４）に注目する必要がある。たとえＲｂ（４）＝１であっても、ＲＷ（４）が大きければそれは混んだシステムを利用していることになり、Ｅｐは低い値となる。グリッド又はクラスタ処理を展開する際、特にＲｂ（４）が１に近づくように且つＲＷが０になるようにシステムを選択することで、並列処理を効率良く行うことが可能となる。このような事が分かるのは本実施の形態が初めてである。
【０１８３】
尚、自処理（目的の処理）か他処理（目的外の処理）かを見分ける方法として、ＣＰＵ時間と経過時間を測定する方法がある。一般にＣＰＵ時間は自処理のみの時間、経過時間は他処理を含んだ時間となる。従ってタイムシェアリングのための待ち時間＝経過時間−ＣＰＵ時間とできる場合がある。
【０１８４】
（６）ホモ構成におけるグリッド等（データパラレル処理の場合）
データパラレル処理は、例えば１０００件のデータを４プロセッサで２５０件ずつ分割して処理するような、各プロセッサの手続きが同じでデータが異なる並列処理である。並列処理できない処理は、全プロセッサのデータを同じにする、すなわち冗長処理を行う場合と、あるプロセッサで処理して全プロセッサに放送する場合がある。ここでは両者の並列性能を評価する。
【０１８５】
［冗長処理を用いたデータパラレル処理］
図４８のような経過時間の測定結果が得られたものとする。また、χ１，Ｃ＝０とする。
【０１８６】
式（３）、式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９９】
2004054680.tif 000103
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１００】
2004054680.tif 000104
【０１８７】
以上計算された並列性能評価指標をまとめると図４９のようになる。Ａｐ（４）＝２１ゆえ、プロセッサ数はｐ≦２１で選択すべきである。プロセッサ数ｐ＝４を投入した時の現実の性能向上Ｅｐ・ｐは２．８００である。その理由は、並列効率Ｅｐ（４）が通信で２０％（ＲＣ＝０．２０００）、冗長処理で１３％（ＲＲＥＤ（４）＝０．１３３３）低下するためである。
【０１８８】
［並列処理できない部分を特定のプロセッサで処理するデータパラレル処理］
並列処理できない部分を冗長処理する代わりに、特定のプロセッサで処理する場合がある。図５０は図４８の冗長処理の代わりにプロセッサ＃１でのみ処理を行い（γ’の部分）、結果を各プロセッサに放送した場合である。当然その間、他のプロセッサはプロセッサ＃１の結果待ちとなる。またここではγ’を並列処理として取り扱ったが、逐次処理として並列処理阻害要因に加えれば、より詳細な並列性能評価ができる。しかしそのためにはγ’の処理が逐次処理か並列処理かの判別が必要となる。図５０のような経過時間の測定結果が得られたものとする。また、χ１，Ｃ＝０とする。
【０１８９】
式（３）、式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０１】
2004054680.tif 000105
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１０２】
2004054680.tif 000106
【０１９０】
以上計算された並列性能評価指標をまとめると図５１のようになる。Ａｐ（４）＝∞で並列処理した時の性能向上は無限であるが、ｐ＝４を投入した時の現実の性能向上Ｅｐ・ｐは２．８００である。その理由は、並列効率Ｅｐ（４）が通信で２０％（ＲＣ（４）＝０．２０００）、待ちで１０％（ＲＷ（４）＝０．１０００）低下するためである。図４９と図５１ではＲｐ（４）、Ａｐ（４）、ＲＲＥＤ（４）、ＲＷの値が異なる。一方Ｒｂ（４）及びＥｐ（４）は同じ値となる。図５１では並列処理できない部分γ’を並列処理として評価したため、Ｒｐ（４）＝１となった。またプロセッサ＃２，３，４の冗長処理が待ちに変わり、並列性能阻害要因ＲＷ（４）に代替される。
【０１９１】
（７）ホモ構成におけるグリッド等（コントロールパラレル処理の場合）
コントロールパラレル処理は、通常各プロセッサの手続きが異なる。このため各プロセッサの手続き時間がばらばらな並列処理となる場合が多い。ここではコントロールパラレルの並列性能を評価する。図５２のような経過時間の測定結果が得られたものとする。また、χ１，Ｃ＝０とする。
【０１９２】
式（３）から以下の計算がなされる。
【数１０３】
2004054680.tif 000107
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０４】
2004054680.tif 000108
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１０５】
2004054680.tif 000109
【０１９３】
以上計算された並列性能評価指標をまとめると図５３のようになる。Ａｐ（４）＝∞で並列処理した時の性能向上は無限であるが、ｐ＝４を投入した時の現実の性能向上Ｅｐ・ｐは２．５２８である。その理由は、並列効率Ｅｐがロードバランス寄与率で８２％（Ｒｂ（４）＝０．８２３１）、さらにタスク生成、通信、待ちをあわせて２３％（ＲＴＣ（４）＋ＲＣ（４）＋ＲＷ（４）＝０．０３４４＋０．１０８９＋０．０８８８）低下するためである。
【０１９４】
並列性能の向上を図るには、並列性能指標を比べ、並列性能の低下に影響力の大きい順に改善の余地を検討する。図５３の場合、これはＲｂ（４），ＲＣ（４），ＲＷ（４），ＲＴＣ（４）の順となる。Ｒｂ（４）＝１になればＥｐ（４）・ｐ＝３．０７１（＝２．５２８／０．８２３１）となる。そのため例えば、プロセッサ＃１の処理時間が他のプロセッサと同じになるように処理スケジュールを変更することを試みる。次の改善の余地はＲＣ（４）の削減である。削減方法としては例えば通信性能が２倍になるようなハードウェアに置きかえることが考えられる。その場合には、以下のような計算がなされる。
まず、式（３）から以下の計算がなされる。
【数１０６】
2004054680.tif 000110
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０７】
2004054680.tif 000111
並列効率については、式（４−４）以下のような計算がなされる。
【数１０８】
2004054680.tif 000112
さらに、以下のような計算もなされる。
【数１０９】
2004054680.tif 000113
もし、通信の性能を上記のように向上させ、さらにＲｂ（４）＝１にロードバランスを変更できれば、以下のような計算がなされる。
【数１１０】
2004054680.tif 000114
【０１９５】
Ｅ．チューニング処理において示したように、本実施の形態では、各並列性能阻害要因をチューニングして改善した時の並列性能を推測できる。従来のチューニングでは目標値を処理時間にしていたため、不可能な目標値が設定されることがあったが、本実施の形態ではＥｐを用いてリーズナブルな目標設定が可能となる。さらに本実施の形態では、並列効率等を１回の測定結果で計算することができるため、チューニング時の性能評価時間を短縮することが可能である。さらに、従来のチューニングでは、入力データや処理機能を変更するとそれまで測定した各並列性能阻害要因に対する処理時間を性能評価に使うことができなくなる。従って入力データや処理機能毎に独立した並列性能評価を行ってきた。本実施の形態では性能評価指標がすべて比率の形になっており、異なった入力データや処理機能の並列性能を比較できる。
【０１９６】
（８）ホモ構成におけるグリッド等（コントロールパラレルでマスタ・スレイブ処理を行う場合）
コントロールパラレル処理は、通常各プロセッサの手続きが異なる。マスタ・スレイブ処理の場合、１つのプロセッサが他のプロセッサの管理をするマスタとなり、その指示に従って複数のプロセッサが処理を実施する。ここではプロセッサ＃１をマスタプロセッサとした場合の並列性能を評価する。図５４のような経過時間の測定結果が得られたものとする。また、χ１，Ｃ＝０とする。
【０１９７】
式（３）から以下の計算がなされる。
【数１１１】
2004054680.tif 000115
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１１２】
2004054680.tif 000116
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１１３】
2004054680.tif 000117
【０１９８】
以上計算された並列性能評価指標をまとめると図５５のようになる。Ａｐ（４）＝∞ゆえｐ＝∞で並列処理した時の性能向上は無限であるが、ｐ＝４を投入した時の現実の性能向上Ｅｐ・ｐは２．０５５である。その理由は、並列効率Ｅｐがロードバランス寄与率で８６％（Ｒｂ（４）＝０．８５７１）、さらに待ちで２３％（ＲＷ（４）＝０．２３４０）、タスク生成、通信をあわせて１７％（ＲＴＣ（４）＋ＲＣ（４）＝０．０３８５＋０．１２８２）低下するためである。　マスタスレイブ処理を行う場合、マスタプロセッサの待ち時間が処理全体の性能に重要な影響を及ぼすことが知られているが、本実施の形態では待ちが性能に及ぼす影響を定量的に捉え、マスタスレイブ処理が有効に行われているかを判断することができる。
【０１９９】
（９）ホモ構成におけるグリッド等（データパラレルとコントロールパラレル混在の場合）
データパラレルとコントロールパラレルを混在させた処理は、ロードバランスを保たせることが難しいため通常の業務では使用されない。本実施の形態ではこのような場合の並列性能評価も可能となる。本実施の形態は、処理のコントロールのための性能評価指標を提供するため、このような処理に対する実用的な評価方法を提供するものである。ここではプロセッサ＃１乃至＃４はコントロールパラレルで、プロセッサ＃５乃至＃８はデータパラレルで、プロセッサ＃１をマスタプロセッサとした場合の並列性能を評価する。図５６のような経過時間の測定結果が得られたものとする。また、χ１，Ｃ＝０とする。
【０２００】
式（３）から以下の計算がなされる。
【数１１４】
2004054680.tif 000118
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１１５】
2004054680.tif 000119
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１１６】
2004054680.tif 000120
【０２０１】
以上計算された並列性能評価指標をまとめると図５７のようになる。Ａｐ（８）＝４７．６２ゆえ、ｐ＜４７で並列処理すべきである。プロセッサ数ｐ＝８を投入した時の現実の性能向上Ｅｐ・ｐは５．２４２である。その理由は、並列効率Ｅｐ　がロードバランス寄与率で９３％（Ｒｂ（８）＝０．９２８６）、さらに待ちで１１％（ＲＷ（８）＝０．１０８０）、通信で１１％（ＲＣ（８）＝０．１１２４）、冗長処理，タスク生成をあわせて９％（ＲＲＥＤ（８）＋ＲＴＣ（８）＝０．０５９２＋０．０２９６）低下するためである。このように本実施の形態はデータパラレルとコントロールパラレル混在という並列処理方式に適用することができる。
【０２０２】
（１０）グリッド等のヘテロ構成で冗長処理がある場合（χ１，ＲＥＤ≠０）
グリッドやクラスタでつながれたプロセッサは、ＣＰＵの能力が異なっている場合が多い。これをヘテロ構成と呼ぶ。本実施の形態では、ヘテロ構成の場合にも適用できる。ここでは実施例（２）においてプロセッサ＃１が１／２の性能である場合の並列性能を評価する。図５８のような経過時間の測定結果が得られたものとする。
【０２０３】
式（３）から以下の計算がなされる。
【数１１７】
2004054680.tif 000121
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１１８】
2004054680.tif 000122
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１１９】
2004054680.tif 000123
【０２０４】
以上計算された並列性能評価指標をまとめると図５９のようになる。Ａｐ（４）＝９．８８１ゆえ、ｐ＞９の並列処理は無意味である。ｐ＝４のプロセッサを投入した現実の性能向上Ｅｐ・ｐは１．９１８である。その理由は、並列効率Ｅｐが、ロードバランス寄与率で６３％（Ｒｂ（４）＝０．６２５０）となり、冗長処理によりさらに３１％（ＲＲＥＤ（４）＝０．３１０３）低下するためである。図４１と比較するとロードバランス寄与率Ｒｂ（４）が０．９３９８から０．６２５０に低下することが分かる。これは図４１と図５９に示されるようにプロセッサ＃１の違いが性能評価指標Ｒｂ（４）に反映された結果である。一般に等分割したタスクをＣＰＵ能力が異なったプロセッサで処理するとロードバランスが崩れる。本実施の形態ではこれをＲｂ（４）によって検知することができる。
【０２０５】
（付記１）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２０６】
（付記２）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２０７】
（付記３）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２０８】
（付記４）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２０９】
（付記５）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第１の処理時間と、前記第２の処理時間とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２１０】
（付記６）
前記ロードバランス寄与率計算ステップにおいて、
前記ロードバランス寄与率を、
前記並列計算機システムに含まれる全プロセッサにおいて実施された処理の全処理時間を、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間及び前記並列計算機システムにおいて使用したプロセッサ数により除することにより計算する
ことを特徴とする付記１乃至４のいずれか１つ記載の並列効率計算方法。
【０２１１】
（付記７）
前記仮想並列化率計算ステップにおいて、
前記仮想並列化率を、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を、１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算する
ことを特徴とする付記１又は４記載の並列効率計算方法。
【０２１２】
（付記８）
前記並列性能阻害要因寄与率計算ステップにおいて、
特定の並列性能阻害要因についての並列性能阻害要因寄与率を、
前記並列計算機システムに含まれる各プロセッサにおける前記特定の並列性能阻害要因部分の処理時間の和を、前記並列計算機算システムに含まれる各プロセッサの処理時間の和により除することにより計算する
ことを特徴とする付記１乃至３のいずれか１つ記載の並列効率計算方法。
【０２１３】
（付記９）
前記加速率計算ステップにおいて、
前記加速率を、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算される仮想並列化率を１から差し引いた値の逆数として計算する
ことを特徴とする付記２記載の並列効率計算方法。
【０２１４】
（付記１０）
前記処理時間が、対応する事象の確認回数で表されることを特徴とする付記１乃至９のいずれか１つ記載の並列効率計算方法。
【０２１５】
（付記１１）
計算された前記並列効率に前記並列計算機システムにおいて使用したプロセッサ数を乗じて補助指標を計算し、記憶装置に格納するステップ、
をさらに含む付記１乃至１０のいずれか１つ記載の並列効率計算方法。
【０２１６】
（付記１２）
前記第３の処理時間を、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間と前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間との和により計算する
ことを特徴とする付記７又は９のいずれか１つ記載の並列効率計算方法。
【０２１７】
（付記１３）
前記第１の処理時間が、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の和をプロセッサ数で除した値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の最大値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の最小値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列処理の処理時間と並列性能阻害要因の処理時間の総和が最大となるプロセッサにおける冗長処理の処理時間の値のいずれかである
ことを特徴とする付記５又は１２記載の並列効率計算方法。
【０２１８】
（付記１４）
前記第１の処理時間が、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理以外の並列性能阻害要因による処理時間から２以上のプロセッサ数で発生し且つプロセッサ数に依存する並列化阻害要因による処理時間を減じた第４の処理時間を全プロセッサについて加算した値をプロセッサ数で除した値、全プロセッサにおける前記第４の処理時間の最大値、全プロセッサにおける前記第４の処理時間の最小値のいずれかの値である
ことを特徴とする付記５又は１２記載の並列効率計算方法。
【０２１９】
（付記１５）
目標並列効率を設定するステップと、
計算された前記並列効率とプロセッサ数の積を前記目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２０】
（付記１６）
システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和と、前記増加分の稼働時間及び前記予測並列効率の積との和を、前記並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２１】
（付記１７）
前記並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、
前記新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２２】
（付記１８）
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和を、前記並列計算機システムに現在含まれる各プロセッサの全稼働時間で除することにより、システム運用効率を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２３】
（付記１９）
目標処理時間を設定するステップと、
前記目標処理時間を用いて目標並列効率を計算し、記憶装置に格納するステップと、
前記目標並列効率の妥当性を確認するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２４】
（付記２０）
前記目標並列効率の妥当性が確認された場合には、チューニング実施後の並列効率を計算し、記憶装置に格納するステップと、
前記チューニング実施後の並列効率と前記目標並列効率とを比較するステップと、
をさらに含む付記１９記載の並列効率計算方法。
【０２２５】
（付記２１）
目標処理時間を設定するステップと、
異なるアルゴリズム毎に当該アルゴリズムにおける並列効率を用いて必要となるプロセッサ数の見積値を計算し、記憶装置に格納するステップと、
前記プロセッサ数の見積値が前記並列計算機システムにおいて実施する当該アルゴリズムによる処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率より小さく且つ異なるアルゴリズムについて計算された前記プロセッサ数の見積値のうち最小の値となるアルゴリズムを抽出するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２６】
（付記２２）
付記１乃至２１のいずれか１つ記載の並列効率計算方法をコンピュータに実行させるためのプログラム。
【０２２７】
（付記２３）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２２８】
（付記２４）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算方法。
【０２２９】
（付記２５）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２３０】
（付記２６）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算手段と、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２３１】
（付記２７）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納する手段と、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納する手段と、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第１の処理時間と、前記第２の処理時間とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２３２】
【発明の効果】
以上述べたように本発明によれば、「ロードバランスが保たれている」という条件をはずし、グリッドコンピューティングを含む、ヘテロなプロセッサ環境を含め多種類の並列処理に適用でき、並列効率と並列性能評価指標及び並列性能阻害要因間の定量的関係付けを行うことができる。
【０２３３】
また、並列効率等を用いて、並列計算機システムの適切な運用も可能となる。
【０２３４】
さらに、並列効率等を用いて、並列計算機システムの能力増強、更新等に対する適切な判断が可能になる。
【０２３５】
さらに、並列効率等を用いて、並列計算機システムにおいて実行するプログラムのチューニングやアルゴリズムの選定を適切に実施できるようになる。
【図面の簡単な説明】
【図１】プロセッサ間でロードバランスが保たれている状態を表す図である。
【図２】各プロセッサにおける処理時間の分類例を示す図である。
【図３】プロセッサ間でロードバランスが保たれていない状態（４つのプロセッサを割り当てて、その中のプロセッサの１つで処理する場合）を表す図である。
【図４】γ１とγｉ（ｐ）の関係のモデル化の一例を示す図である。
【図５】ＣＰＵ性能にばらつきがあり且つデータパラレル処理を行っている状態を表す図である。
【図６】（ａ）は１プロセッサで処理する場合の処理時間を表す図であり、（ｂ）は４プロセッサで処理する場合の処理時間を表す図である。
【図７】（ａ）は並列処理部γと通信部χＣの時間を考慮した場合における処理時間を表す図であり、（ｂ）はさらに立ち上がり時間χＴＣを考慮に入れた場合における処理時間を表す図である。
【図８】並列性能阻害要因を追加した場合における並列性能評価指標の変化を表すための図である。
【図９】プロセッサ間でロードバランスは保たれているが、各処理時間のロードバランスまでは保たれていない場合の例を表す図である。
【図１０】１つのプロセッサで処理する場合の処理時間を表す図である。
【図１１】プロセッサ間でロードバランスが保たれていない場合の例を示す図である。
【図１２】高並列化された場合に顕在化する並列性能阻害要因の存在を表すための図である。
【図１３】並列性能評価指標の計算例を表す図である。
【図１４】稼働時間と処理時間の総和の関係を表す図である。
【図１５】稼働時間と処理時間と並列効率を考慮した処理時間との関係を表す図である。
【図１６】データ並列を分散メモリ並列計算機システムで実施した場合の処理時間の例を表す図である。
【図１７】原状のＣＰＵ性能に基づく並列性能評価指標とＣＰＵ性能が５倍のシステムに入れ替えた場合の推定並列性能評価指標とを比較するための図である。
【図１８】ＣＰＵ性能が５倍のシステムに入れ替えた場合における試算のためのデータを表す図である。
【図１９】本発明の一実施の形態に係る機能ブロック図である。
【図２０】サンプリングによる事象発生の確認及びカウントを表す概念図である。
【図２１】表１のプログラム実行時のサンプリング結果例を表す図である。
【図２２】並列性能分析装置の処理フローの一例を表す図である。
【図２３】時間測定による処理時間の測定結果例を表す図である。
【図２４】サンプリングによる処理時間の測定結果例を表す図である。
【図２５】プロセッサ数最適化処理の処理フローの第１の部分の一例を表す図である。
【図２６】プロセッサ数最適化処理の処理フローの第２の部分の一例を表す図である。
【図２７】プロセッサ増設見積処理の処理フローの一例を表す図である。
【図２８】システムリプレイスデータ処理の処理フローの一例を表す図である。
【図２９】ＣＰＵ性能が５倍で目標並列効率が０．６の場合の通信についての性能指針を表すための図である。
【図３０】システム運用効率向上処理のための処理フローの一例を示す図である。
【図３１】チューニング処理の処理フローの一例を示す図である。
【図３２】チューニング前と１回目のチューニングを実施した後の並列性能評価指標の変化を表す図である。
【図３３】並列処理に向かないアルゴリズムに基づく並列処理プログラムによる処理時間を表す図である。
【図３４】並列処理に向くアルゴリズムに基づく並列処理プログラムによる処理時間を表す図である。
【図３５】並列処理に向かないアルゴリズムと並列処理に向くアルゴリズムの並列性能指標の比較等のための図である。
【図３６】アルゴリズム選定処理の処理フローを表す図である。
【図３７】ある並列処理システムのログデータの一例を示す図である。
【図３８】実施例１における処理時間の測定結果を表す図である。
【図３９】実施例１における並列性能評価指標の計算結果を表す図である。
【図４０】実施例２における処理時間の測定結果を表す図である。
【図４１】実施例２における並列性能評価指標の計算結果を表す図である。
【図４２】実施例３における処理時間の測定結果を表す図である。
【図４３】実施例３における並列性能評価指標の計算結果を表す図である。
【図４４】実施例４における処理時間の測定結果を表す図である。
【図４５】実施例４における並列性能評価指標の計算結果を表す図である。
【図４６】実施例５における処理時間の測定結果を表す図である。
【図４７】実施例５における並列性能評価指標の計算結果を表す図である。
【図４８】実施例６（冗長処理を用いたデータパラレル）における処理時間の測定結果を表す図である。
【図４９】実施例６（冗長処理を用いたデータパラレル）における並列性能評価指標の計算結果を表す図である。
【図５０】実施例６（並列処理できない部分を特定のプロセッサで処理するデータパラレル）における処理時間の測定結果を表す図である。
【図５１】実施例６（並列処理できない部分を特定のプロセッサで処理するデータパラレル）における並列性能評価指標の計算結果を表す図である。
【図５２】実施例７における処理時間の測定結果を表す図である。
【図５３】実施例７における並列性能評価指標の計算結果を表す図である。
【図５４】実施例８における処理時間の測定結果を表す図である。
【図５５】実施例８における並列性能評価指標の計算結果を表す図である。
【図５６】実施例９における処理時間の測定結果を表す図である。
【図５７】実施例９における並列性能評価指標の計算結果を表す図である。
【図５８】実施例１０における処理時間の測定結果を表す図である。
【図５９】実施例１０における並列性能評価指標の計算結果を表す図である。
【符号の説明】
１０　データ取得部　　１１　ロードバランス寄与率計算部
１２　仮想並列化率計算部　　１３　並列性能阻害要因寄与率計算部
１４　並列効率計算部　　１５　補助指標計算部
２１　プロセッサ数最適化処理部　　２２　プロセッサ増設見積処理部
２３　システムリプレイスデータ処理部
２４　運用効率データ処理部　　２５　チューニング処理部
２６　アルゴリズム選定処理部　　２７　並列性能評価処理部
３０　ログデータ格納部
１００　並列性能分析装置　　１１０　出力装置
２００　並列計算機システム　　２０１　測定部
【図１】
2004054680.tif 000125
【図２】
2004054680.tif 000126
【図３】
2004054680.tif 000127
【図４】
2004054680.tif 000128
【図５】
2004054680.tif 000129
【図６】
2004054680.tif 000130
【図７】
2004054680.tif 000131
【図８】
2004054680.tif 000132
【図９】
2004054680.tif 000133
【図１０】
2004054680.tif 000134
【図１１】
2004054680.tif 000135
【図１２】
2004054680.tif 000136
【図１３】
2004054680.tif 000137
【図１４】
2004054680.tif 000138
【図１５】
2004054680.tif 000139
【図１６】
2004054680.tif 000140
【図１７】
2004054680.tif 000141
【図１８】
2004054680.tif 000142
【図１９】
2004054680.tif 000143
【図２０】
2004054680.tif 000144
【図２１】
2004054680.tif 000145
【図２２】
2004054680.tif 000146
【図２３】
2004054680.tif 000147
【図２４】
2004054680.tif 000148
【図２５】
2004054680.tif 000149
【図２６】
2004054680.tif 000150
【図２７】
2004054680.tif 000151
【図２８】
2004054680.tif 000152
【図２９】
2004054680.tif 000153
【図３０】
2004054680.tif 000154
【図３１】
2004054680.tif 000155
【図３２】
2004054680.tif 000156
【図３３】
2004054680.tif 000157
【図３４】
2004054680.tif 000158
【図３５】
2004054680.tif 000159
【図３６】
2004054680.tif 000160
【図３７】
2004054680.tif 000161
【図３８】
2004054680.tif 000162
【図３９】
2004054680.tif 000163
【図４０】
2004054680.tif 000164
【図４１】
2004054680.tif 000165
【図４２】
2004054680.tif 000166
【図４３】
2004054680.tif 000167
【図４４】
2004054680.tif 000168
【図４５】
2004054680.tif 000169
【図４６】
2004054680.tif 000170
【図４７】
2004054680.tif 000171
【図４８】
2004054680.tif 000172
【図４９】
2004054680.tif 000173
【図５０】
2004054680.tif 000174
【図５１】
2004054680.tif 000175
【図５２】
2004054680.tif 000176
【図５３】
2004054680.tif 000177
【図５４】
2004054680.tif 000178
【図５５】
2004054680.tif 000179
【図５６】
2004054680.tif 000180
【図５７】
2004054680.tif 000181
【図５８】
2004054680.tif 000182
【図５９】
2004054680.tif 000183