(57)【要約】【課題】ロードバランスが保たれていない場合にも、ヘテロなプロセッサ環境を含め多数の並列処理に適用でき、並列効率と並列性能評価指標であるロードバランス寄与率及び仮想並列化率、並びに並列性能阻害要因間の定量的関係付けを行う。【解決手段】並列効率Ｅp(p)は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)と、並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)と、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒj(p)とを用いて以下のように計算される。2006120182.tif 000135【選択図】なし【特許請求の範囲】
【請求項１】
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と仮想並列化率計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、前記記憶装置に格納する仮想並列化率計算ステップと、
前記並列性能阻害要因寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、前記記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記ロードバランス寄与率Ｒb(p)と前記仮想並列化率Ｒp(p)と前記並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数１】
2006120182.tif 000131
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項２】
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と補助指標計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記補助指標計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率Ａp(p)を計算し、前記記憶装置に格納する加速率計算ステップと、
前記並列性能阻害要因寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、前記記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記ロードバランス寄与率Ｒb(p)と前記加速率Ａp(p)と前記並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数２】
2006120182.tif 000132
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項３】
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列性能阻害要因寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、前記記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記ロードバランス寄与率Ｒb(p)と前記並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数３】
2006120182.tif 000133
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項４】
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と仮想並列化率計算部と並列効率計算部と補助指標計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、前記記憶装置に格納する仮想並列化率計算ステップと、
前記補助指標計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)の和αと、前記各プロセッサにおいて実施された処理の処理時間の和βとを計算し、前記記憶装置に格納する補助指標計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記αと前記βと前記ロードバランス寄与率Ｒb(p)と前記仮想並列化率Ｒp(p)とを用いて、並列効率Ｅp(p)を
【数４】
2006120182.tif 000134
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【請求項５】
前記ロードバランス寄与率計算ステップが、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記各プロセッサにおいて実施された処理の処理時間の和βを算出し、前記記憶装置に格納するステップと、
前記ロードバランス寄与率計算部により、前記記憶装置及び前記ログデータ格納部に格納されているデータを用いて、前記ロードバランス寄与率Ｒb(p)を、前記各プロセッサにおいて実施された処理の処理時間の和βを、前記ｐ個のプロセッサによって処理を行った場合における最長の処理時間τ(p)及び前記並列計算機システムにおいて使用したプロセッサ数ｐにより除することにより計算するステップと、
を含む請求項１乃至４のいずれか１つ記載の並列効率計算方法。
【請求項６】
前記並列性能阻害要因寄与率計算ステップが、
前記並列性能阻害要因寄与率計算部により、特定の並列性能阻害要因部分ｊの処理時間χi,j(p)の和と、前記各プロセッサにおいて実施された処理の処理時間の和βを計算し、前記記憶装置に格納するステップと、
前記並列性能阻害要因寄与率計算部により、前記特定の並列性能阻害要因についての並列性能阻害要因寄与率Ｒj(p)を、前記ログデータ格納部及び前記記憶装置に格納されたデータを用いて、前記特定の並列性能阻害要因部分ｊの処理時間χi,j(p)の和を、前記各プロセッサにおいて実施された処理の処理時間の和βにより除することにより計算するステップと、
を含む請求項１乃至３のいずれか１つ記載の並列効率計算方法。
【請求項７】
前記仮想並列化率計算ステップが、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を計算し、前記記憶装置に格納するステップと、
前記仮想並列化率計算部により、前記仮想並列化率を、前記ログデータ格納部及び前記記憶装置に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を、１プロセッサにより同一処理を実施した場合の処理時間に相当する第３の処理時間τ(1)により除することにより計算するステップと、
含み、
前記並列性能阻害要因が冗長処理のみである場合には、前記ログデータ格納部に格納されているデータを用いて、前記冗長処理の処理時間Ｒiから特定される並列阻害要因処理時間Ｒと前記並列計算部分の処理時間γi(p)の総和との和により、前記第３の処理時間に相当する処理時間τ(1)を算出し、前記記憶装置に格納するステップ
さらに含む請求項１又は４記載の並列効率計算方法。
【請求項８】
前記仮想並列化率計算ステップが、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を計算し、前記記憶装置に格納するステップと、
前記仮想並列化率計算部により、前記仮想並列化率を、前記ログデータ格納部及び前記記憶装置に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を、１プロセッサにより同一処理を実施した場合の処理時間に相当する第３の処理時間τ(1)により除することにより計算するステップと、
含み、
前記並列性能阻害要因が前記冗長処理以外にも存在する場合には、前記並列計算機システムにおいてｐ＞１で発生し且つｐに依存する並列性能阻害要因ｊによる処理時間Ｘi,j(p)を測定し、前記並列計算機システムの前記記憶部に格納するステップと、
前記データ取得部により、前記並列計算機システムの前記記憶部から、前記処理時間Ｘi,j(p)とを取得し、前記ログデータ格納部に格納するステップと、
冗長処理以外の前記並列性能阻害要因ｊの処理時間χi,j(p)から前記並列性能阻害要因ｊによる前記処理時間Ｘi,j(p)を差し引いた時間を基に特定される並列性能阻害要因ｊのｐ＝１時の処理時間χ1,jの全ての並列性能阻害要因についての総和と前記前記並列計算部分の処理時間γi(p)の総和との和により、前記第３の処理時間τ(1)を算出し、前記記憶装置に格納するステップと、
をさらに含む請求項１又は４記載の並列効率計算方法。
【請求項９】
前記並列阻害要因処理時間Ｒが、前記冗長処理の処理時間Ｒi(p)の和をプロセッサ数で除した値、前記冗長処理の処理時間Ｒi(p)の最大値、前記冗長処理の処理時間Ｒi(p)の最小値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)と並列性能阻害要因の処理時間の総和が最大となるプロセッサにおける冗長処理の処理時間の値のいずれかである
ことを特徴とする請求項７記載の並列効率計算方法。
【請求項１０】
前記並列性能阻害要因ｊのｐ＝１時の処理時間χ1,jが、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理以外の並列性能阻害要因ｊによる処理時間χi,j(p)からｐ＞１で発生し且つｐに依存する並列化阻害要因ｊによる処理時間Ｘi,j(p)を減じた第４の処理時間を全プロセッサについて加算した値をプロセッサ数で除した値、全プロセッサにおける前記第４の処理時間の最大値、全プロセッサにおける前記第４の処理時間の最小値のいずれかの値である
ことを特徴とする請求項８記載の並列効率計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機システムの性能評価技術及び当該性能評価の結果の利用技術に関する。なお、本発明の技術は、従来のハイパフォーマンス・コンピューティング（ＨＰＣ：High Performance Computing）で扱われる分野（構造解析、流体解析、計算化学等）、グリッド又はクラスタ上に展開されるバイオシミュレーション、ウェブ（Ｗｅｂ）サービス（例えばＭtoＭ（Machine to Machine））等、並列処理を行う全ての分野に適用可能である。
【背景技術】
【０００２】
アプリケーション毎に並列計算機システムの性能は著しく異なる。従ってその性能評価は重要である。並列計算機システムの性能評価方法には、（１）ある特定の処理を種々の計算機で実施して比較するものと、（２）ある計算機が自己のポテンシャルに対しどの位の性能を発揮しているかを評価する自己完結型の２通りがある。前者はベンチマークテストとして主に計算機間の性能比較に使用される。後者は導入後の実運用で実施する必要がある。この自己完結型の性能評価は並列効率という指標を用いて行うことができるが、実際には実施されていない。また並列効率の代わりにプロセッサ数ｐを変えながら時間測定を行い、理想的な減少の度合い１／ｐと比較する並列性能評価（いわゆるスケーラビリティ評価）も可能であるが、数回の時間測定を必要とするため通常は実施されない。またスケーラビリティ評価は定性的であり、厳密な並列性能評価を行うことはできない。従って現在、並列効率の悪い処理を検知できず、それらは野放し状態である。
【０００３】
並列効率による並列処理の性能評価は、以下に示す式（１）及び（２）より決定される並列効率Ｅp(p)を求めることにより行われる。なお、ｐはプロセッサ数、τ(1)は１プロセッサで実行した場合の処理時間、τ(p)は同じ処理をｐ個のプロセッサで実行した場合の処理時間、τi(p)は１≦ｉ≦ｐでｉ番目のプロセッサの処理時間である。
【数１】
2006120182.tif 000002
例えば式（１）は、柄谷，中村，奥田，矢川；並列有限要素法コードのGeoFEMの性能評価，Transactions of JSCES, No.20000022 (2000)という文献に開示されている。
【非特許文献１】”ＵＸＰ／Ｖ  アナライザ使用手引書  Ｖ２０用”，富士通株式会社，１９９９年９月３０日，第２版，ｐｐ．１３−３１（マニュアル2004-00476-001）
【特許文献１】特開２０００−２９８５９３号公報
【特許文献２】特開平０９−２６５４５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来の方法で並列効率を決定しても、並列性能阻害要因との定量的関係が明確でなかったため、どの阻害要因がどの位並列効率に効いているかは分からなかった。また、一部の並列性能評価技術（例えば日本国特許出願番号２００１−２４１１２１、米国特許出願番号０９／９９８１６０）には、図１に示すように「ロードバランスが保たれ且つ各処理時間γi（並列部）、χi,1（冗長処理部）、χi,2（通信部）、χi,others（その他の並列性能阻害要因）が同じ」という条件が必要で、一部の並列処理にしか適用できないという問題があった。
【０００５】
また、従来の方法ではグリッドやクラスタによる並列処理への適用が難しい。これはグリッドやクラスタ上に分散している、計算に必要なメモリ、データ、ＣＰＵ等の資源を１つのプロセッサに集めると、１つのプロセッサで実現できない程大きな処理となる場合が多いためである。すなわち、τ(1)を測定すること自体が難しい。また式（１）においてτ(1)とτ(p)を実測で求めるということはプロセッサの性能が同じであるということを前提としているが、グリッドやクラスタ上の個々のプロセッサ性能は通常異なるため、実測したτ(1)とτ(p)を式（１）に代入しても正しい並列効率を決定できないという問題もある。
【０００６】
従って本発明の目的は、「ロードバランスが保たれている」という条件をはずし、ヘテロなプロセッサ環境を含め多種類の並列処理に適用でき、並列効率と並列性能評価指標及び並列性能阻害要因間の定量的関係付けを行う並列処理性能評価技術を提供することである。
【０００７】
また本発明の他の目的は、並列効率等を用いて、並列計算機システムの適切な運用を可能にするための技術を提供することである。
【０００８】
さらに本発明の他の目的は、並列効率等を用いて、並列計算機システムの能力増強、更新等に対する適切な判断を可能にするための技術を提供することである。
【０００９】
さらに本発明の他の目的は、並列効率等を用いて、並列計算機システムにおいて実行するプログラムのチューニングやアルゴリズムの選定を適切に実施できるようにするための技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の第１の態様に係る、並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法は、並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、並列計算機システムの記憶部に格納するステップと、データ取得部とロードバランス寄与率計算部と仮想並列化率計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータのデータ取得部により、並列計算機システムの記憶部から、並列計算部分の処理時間γi(p)及び各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、ログデータ格納部に格納するステップと、ロードバランス寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、仮想並列化率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列性能阻害要因寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、並列効率計算部により、記憶装置に格納された、ロードバランス寄与率Ｒb(p)と仮想並列化率Ｒp(p)と並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数２】
2006120182.tif 000003
により計算し、記憶装置に格納するステップとを含む。なお、並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間がｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合である。
【００１１】
本発明の第２の態様に係る並列効率計算方法は、並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、並列計算機システムの記憶部に格納するステップと、データ取得部とロードバランス寄与率計算部と補助指標計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータのデータ取得部により、並列計算機システムの記憶部から、並列計算部分の処理時間γi(p)及び各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、ログデータ格納部に格納するステップと、ロードバランス寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、補助指標計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率Ａp(p)を計算し、記憶装置に格納する加速率計算ステップと、並列性能阻害要因寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、並列効率計算部により、記憶装置に格納された、ロードバランス寄与率Ｒb(p)と加速率Ａp(p)と並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数３】
2006120182.tif 000004
により計算し、前記記憶装置に格納するステップとを含む。
【００１２】
本発明の第３の態様に係る並列効率計算方法は、並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、並列計算機システムの記憶部に格納するステップと、データ取得部とロードバランス寄与率計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータのデータ取得部により、並列計算機システムの記憶部から、並列計算部分の処理時間γi(p)及び各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、ログデータ格納部に格納するステップと、ロードバランス寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列性能阻害要因寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、並列効率計算部により、記憶装置に格納された、ロードバランス寄与率Ｒb(p)と並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数４】
2006120182.tif 000005
により計算し、前記記憶装置に格納するステップとを含む。
【００１３】
本発明の第４の態様に係る並列効率計算方法は、並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、並列計算機システムの記憶部に格納するステップと、データ取得部とロードバランス寄与率計算部と仮想並列化率計算部と並列効率計算部と補助指標計算部とログデータ格納部と記憶装置とを有するコンピュータのデータ取得部により、並列計算機システムの記憶部から、並列計算部分の処理時間γi(p)及び各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、ログデータ格納部に格納するステップと、ロードバランス寄与率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、仮想並列化率計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、記憶装置に格納する仮想並列化率計算ステップと、補助指標計算部により、ログデータ格納部に格納されたデータを用いて、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)の和αと、各プロセッサにおいて実施された処理の処理時間の和βとを計算し、記憶装置に格納する補助指標計算ステップと、並列効率計算部により、記憶装置に格納された、上記αと上記βとロードバランス寄与率Ｒb(p)と仮想並列化率Ｒp(p)とを用いて、並列効率Ｅp(p)を
【数５】
2006120182.tif 000006
により計算し、記憶装置に格納するステップとを含む。
【００１４】
本発明の第５の態様に係る並列効率計算方法は、並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)と、冗長処理以外に並列性能阻害要因が存在する場合にはｐ＞１で発生し且つｐに依存する並列性能阻害要因ｊによる処理時間Ｘi,j(p)とを測定し、並列計算機システムの記憶部に格納するステップと、データ取得部と補助指標計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータのデータ取得部により、並列計算機システムの記憶部から、並列計算部分の処理時間γi(p)と各並列性能阻害要因ｊの処理時間χi,j(p)と冗長処理以外に並列性能阻害要因が存在する場合には処理時間Ｘi,j(p)とを取得し、ログデータ格納部に格納するステップと、補助指標計算部により、ログデータ格納部に格納されたデータを用いて、１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間ρを計算し、記憶装置に格納するステップと、補助指標計算部により、ログデータ格納部に格納されているデータを用いて、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)の和である第２の処理時間αを計算し、記憶装置に格納するステップと、並列効率計算部により、並列計算機システムにおいて使用したプロセッサの数ｐと、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間τ(p)と、記憶装置に格納された、第１の処理時間ρ及び第２の処理時間αとを用いて、並列効率Ｅp(p)を
【数６】
2006120182.tif 000007
により計算し、前記記憶装置に格納するステップとを含む。
【００１５】
本発明の第６の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Ｒb(p)と仮想並列化率Ｒp(p)と並列性能阻害要因寄与率Ｒj(p)とを用いて並列効率を計算し（例えば実施の形態における式（４−４））、記憶装置に格納するステップとを含む。
【００１６】
これにより並列効率は、ロードバランス寄与率、仮想並列化率及び並列性能阻害要因寄与率といった並列性能評価指標と定量的に関係付けられる。
【００１７】
本発明の第７の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率Ａp(p)を計算し、記憶装置に格納する加速率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Ｒb(p)と加速率Ａp(p)と並列性能阻害要因寄与率Ｒj(p)とを用いて並列効率を計算し（例えば実施の形態における式（４−５））、記憶装置に格納するステップとを含む。
【００１８】
これにより並列効率は、ロードバランス寄与率及び並列性能阻害要因寄与率といった並列性能評価指標並びに加速率という補助指標と定量的に関係付けられる。
【００１９】
本発明の第８の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Ｒb(p)と並列性能阻害要因寄与率Ｒj(p)とを用いて並列効率を計算し（例えば実施の形態における式（８−２））、記憶装置に格納するステップとを含む。
【００２０】
例えば、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和が、１プロセッサにより同一処理を実施した場合の処理時間とほぼ一致する場合、すなわちほとんど並列計算できるような処理内容の場合にはこのようにして計算することができる。
【００２１】
本発明の第９の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、各プロセッサにおいて実施された処理の処理時間の和と、ロードバランス寄与率Ｒb(p)と、仮想並列化率Ｒp(p)とを用いて並列効率を計算し（例えば実施の形態における式（９−１））、記憶装置に格納するステップとを含む。本発明の第１の態様の変形例である。
【００２２】
本発明の第１０の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納するステップと、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納するステップと、並列計算機システムにおいて使用したプロセッサの数と、並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、第１の処理時間と、第２の処理時間とを用いて並列効率を計算し（例えば実施の形態における式（９−２））、記憶装置に格納するステップとを含む。
【００２３】
所定のモデル化に基づき一度の測定により得られる処理時間だけで並列効率が計算できるようになっている。
【００２４】
また、上で述べたロードバランス寄与率計算ステップにおいて、上記ロードバランス寄与率Ｒb(p)を、並列計算機システムに含まれる全プロセッサにおいて実施された処理の全処理時間を、並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間及び並列計算機システムにおいて使用したプロセッサ数により除することにより計算する（例えば実施の形態における式（５））ような構成とすることも可能である。
【００２５】
さらに、上で述べた仮想並列化率計算ステップにおいて、仮想並列化率Ｒp(p)を、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を、１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算する（例えば実施の形態における式（６−１））ような構成とすることも可能である。
【００２６】
また、上で述べた並列性能阻害要因寄与率計算ステップにおいて、特定の並列性能阻害要因についての並列性能阻害要因寄与率Ｒj(p)を、並列計算機システムに含まれる各プロセッサにおける特定の並列性能阻害要因部分の処理時間の和を、並列計算機算システムに含まれる各プロセッサの処理時間の和により除することにより計算する（例えば実施の形態における式（７））ような構成とすることも可能である。
【００２７】
また、上で述べた加速率計算ステップにおいて、上記加速率を、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算される仮想並列化率を、１から差し引いた値の逆数として計算する（例えば実施の形態における式（６−２））ような構成とすることも可能である。
【００２８】
さらに、上で述べた処理時間は、実際の処理時間に加え、対応する事象の確認回数で表される場合もある。
【００２９】
また、計算された並列効率に並列計算機システムにおいて使用したプロセッサ数を乗じて補助指標を計算し、記憶装置に格納するステップをさらに含むような構成であってもよい。これにより、並列計算機システムにおいてプロセッサ何個分の処理を実施したかを提示することができるようになる。
【００３０】
さらに、上で述べた第３の処理時間を、１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間と並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間との和により計算する（例えば実施の形態における式（１５））ような構成であってもよい。所定のモデル化により処理時間の１度の測定にて並列効率等の計算が可能になる。
【００３１】
さらに、上で述べた第１の処理時間が、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理又は通信処理の処理時間の和により計算される（例えば実施の形態における式（１２−１）等）ような構成とすることも可能である。
【００３２】
また、本発明の第６乃至第１０の態様において、目標並列効率を設定するステップと、計算された並列効率とプロセッサ数の積を目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップとをさらに含むような構成も可能である。多くのプロセッサを投入しても処理時間の短縮につながるとは限らず、このように最適プロセッサ数が計算できれば無駄な資源の投入を防止することができる。
【００３３】
さらに、本発明の第６乃至第１０の態様において、システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された並列効率との全処理についての積和と、増加分の稼働時間及び予測並列効率の積との和を、並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し（例えば実施の形態における式（１８））、記憶装置に格納するステップとをさらに含むような構成であってもよい。システム増強時においてシステム運用者に適切な定量的指針を与えることができるようになる。
【００３４】
また、本発明の第６乃至第１０の態様において、並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップとをさらに含むような構成であってよい。システムリプレイス時における定量的指針を与えることができるようになる。
【００３５】
さらに、本発明の第６乃至第１０の態様において、並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された並列効率との全処理についての積和を、並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム運用効率を計算し（例えば実施の形態における式（１７））、記憶装置に格納するステップとをさらに含むような構成であってもよい。従来の稼働率という考え方に比して本発明のように並列効率を考慮したシステム運用効率を使用した方が、システム運用状況をより実際に即した形で評価することができるようになる。
【００３６】
また、本発明の第６乃至第１０の態様において、目標処理時間を設定するステップと、目標処理時間を用いて目標並列効率を計算し、記憶装置に格納するステップと、目標並列効率の妥当性を確認するステップとをさらに含むような構成であってもよい。例えば目標並列効率は、線形外挿にて計算することができる。
【００３７】
さらに、目標並列効率の妥当性が確認された場合には、チューニング実施後の並列効率を計算し、記憶装置に格納するステップと、チューニング実施後の並列効率と目標並列効率とを比較するステップとをさらに含むような構成であってもよい。より定量的な観点で、アプリケーション等のチューニングを実施することができるようになる。
【００３８】
また、本発明の第６乃至第１０の態様において、目標処理時間を設定するステップと、異なるアルゴリズム毎に当該アルゴリズムにおける並列効率を用いて必要となるプロセッサ数の見積値を計算し、記憶装置に格納するステップと、プロセッサ数の見積値が並列計算機システムにおいて実施する当該アルゴリズムによる処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率より小さく、異なるアルゴリズムについて計算されたプロセッサ数の見積値のうち最小の値となるアルゴリズムを抽出するステップとをさらに含むような構成であってもよい。より並列効率を向上させることができるアルゴリズムを定量的に選択することができるようになる。
【００３９】
なお、本発明に係る並列効率計算方法はプログラム及びコンピュータにて実施することができ、当該プログラムをコンピュータで実行する場合には当該コンピュータは並列効率計算装置となる。また、このようなプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介して配布される場合もある。尚、中間的な処理結果はメモリに一時保管される。
【発明の効果】
【００４０】
以上述べたように本発明によれば、「ロードバランスが保たれている」という条件をはずし、グリッドコンピューティングを含む、ヘテロなプロセッサ環境を含め多種類の並列処理に適用でき、並列効率と並列性能評価指標及び並列性能阻害要因間の定量的関係付けを行うことができる。
【００４１】
また、他の側面によれば並列効率等を用いて、並列計算機システムの適切な運用も可能となる。
【００４２】
さらに、他の側面によれば並列効率等を用いて、並列計算機システムの能力増強、更新等に対する適切な判断が可能になる。
【００４３】
さらに、他の側面によれば並列効率等を用いて、並列計算機システムにおいて実行するプログラムのチューニングやアルゴリズムの選定を適切に実施できるようになる。
【発明を実施するための最良の形態】
【００４４】
［本発明の原理］
本発明では、並列効率Ｅp(p)を並列性能評価指標で記述することにより、並列効率Ｅp(p)を並列性能阻害要因と定量的に結び付ける。図２のように、並列処理時間τi(p)は、並列計算部の処理時間γi(p)と、各並列性能阻害要因ｊの処理時間χi,j(p)との和で式（３）のように表わすことができる。ここで１≦ｊ≦ｊOthersである。なお、図２においてｉはプロセッサ番号であり、ｐはプロセッサ個数である。また、図２ではプロセッサｉとプロセッサｉ＋１についてのみ示されている。
【数７】
2006120182.tif 000008
【００４５】
そして式（１）を以下のように変形し、さらに並列性能評価指標であるロードバランス寄与率Ｒb(p)、仮想並列化率Ｒp(p)、並列性能阻害要因寄与率Ｒj(p)を導入して並列効率Ｅp(p)を記述する。
【数８】
2006120182.tif 000009
【００４６】
なお、式（１）から式（４−１）への変形は、式（１）の分子及び分母にτi(p)のｉについての和を掛け算することにより行われる。また、式（４−２）への変形は、式（４−１）における各要素の位置を変更すると共に、式（４−１）の分子及び分母にγi(p)のｉについての和を掛け算することにより行われる。また、以下の式が式（３）から導かれる。これは、τi(p)のｉについての和を表すものである。
【数９】
2006120182.tif 000010
【００４７】
そうすると、ロードバランス寄与率Ｒb(p)、仮想並列化率Ｒp(p)、並列性能阻害要因寄与率Ｒj(p)により以下の式が導かれる。
【数１０】
2006120182.tif 000011
また加速率Ａp(p)を用いると以下のようにも表される。
【数１１】
2006120182.tif 000012
【００４８】
なお、ロードバランス寄与率Ｒb(p)、仮想並列化率Ｒp(p)、並列性能阻害要因寄与率Ｒj(p)、加速率Ａp(p)は以下のように表される。
【数１２】
2006120182.tif 000013
なお、並列性能阻害要因はｊで番号付けされる。
【００４９】
ロードバランスが保たれた状態とは、図１で示したように、プロセッサの処理時間τi(p)が均等の状態である。式（５）はこの状態をＲb(p)＝１とし、更に保たれない状態を１／ｐ≦Ｒb(p)≦１で表す。図３のように並列処理時に１台のプロセッサのみで処理する場合には式（５）の分子がτ(p)となるため、ロードバランス寄与率Ｒb(p)は１／ｐの下限値となる。また式（５）によれば、ロードバランス寄与率Ｒb(p)は並列効率Ｅp(p)の比率となり、並列性能を直感的に把握することを容易にする。
【００５０】
仮想並列化率Ｒp(p)は並列計算部の処理時間γiの和がτ1(1)に占める割合である。これが１より小さい場合、その処理は並列処理できない処理を含んでいることを示す。この割合により並列性能の上限を加速率Ａp(p)として表わすことができる。Ａp(p)は、プロセッサを無限に投入した時の理想的な上限値Ａp(p)＝τ(1)／Σjχ1,j(1)＝１／（１−（Σiγi(p)／τ(1)））である。通常のτ(1)／τ(p)は、並列性能阻害要因によりＡp(p)より小さな値となる。
【００５１】
並列性能阻害要因寄与率Ｒj(p)は式（７）で示すようにτi(p)のｉについての和で規格化されているため、高並列、低並列に関わらず並列性能阻害要因の寄与を処理時間の割合として把握できるようになっている。またこの割合が並列効率の比率となるため、並列性能の阻害を定量的に把握することができる。
【００５２】
式（２），（５），（６−１），（７）の各変数は、τ(1)を除く全てが並列実行時に測定可能である。式（８−１）が成り立つ時、式（６−１）から仮想並列化率Ｒp(p)はほぼ１となり、式（４−４）は式（８−２）に等価となる。
【数１３】
2006120182.tif 000014
すなわち、並列効率Ｅp(p)はτ(1)という推定値を用いずに済むので、正確に決定することができる。一方、条件式（８−１）に関係なく、式（８−２）を、式（４−４），（４−５）の代替値として並列性能評価において用いることも可能である。この場合、式（８−２）の値はＲp(p)≦１ゆえ、式（４−４）、（４−５）の値に等しいか小さい値となる。
【００５３】
並列効率Ｅp(p)は、上で述べた式（４−４），（４−５），（８−２）及び次の式（９−１）でも計算することが出来る。
【数１４】
2006120182.tif 000015
式（９−１）は、式（４−３）からロードバランス寄与率Ｒb(p)及び仮想並列化率Ｒp(p)のみを用いて変形した結果である。
【００５４】
また、式（３）よりτ(1)は式（１０）となる。
【数１５】
2006120182.tif 000016
ここでγ1(1)とχ1,j(1)を、γi(p)とχi,j(p)を用いてモデル化する。グリッドやクラスタのように異なったＣＰＵ性能を有する計算機による並列処理でのτ1(1)の実測は不可能であるため、このモデル化によりτ(1)が決定でき、式（６−１）の仮想並列化率Ｒp(p)を計算することが可能となる。
【００５５】
プロセッサ性能が同じで理想的な場合、並列計算部をｐ個のプロセッサで処理すると、処理時間はｐ＝１と比較して１／ｐとなる。この場合、τi(p)＝γi(p)であり、任意のプロセッサのγi(p)をｐ倍するとγ1(1)を求めることができる。一方グリッドやクラスタ上には異なったＣＰＵ性能を有する計算機が存在するのが通常であり、ｐ個のプロセッサにおいて実測されたγi(p)を基に、プロセッサ数１の場合のγ1(1)を式（１１）のように推定する。
【数１６】
2006120182.tif 000017
この式（１１）の概念図を図４に示す。式（１１）のモデル化により、個々のプロセッサの性能が異なっている場合でも、仮想的に１プロセッサのγ1(1)の時間を決めることができる。
【００５６】
また、χ1,j(1)を冗長処理とそれ以外という２つに分けてモデル化する。γ1(1)に属さない処理時間はすべてχ1,j(1)に含まれるものとする。
【００５７】
（１）冗長処理時間のモデル化
各プロセッサが全く同じ処理を行うとき、ここではそれを冗長処理と呼ぶ。この処理は並列処理ではなく、プロセッサが増えても処理時間は減少しない。そこでｊ＝１を冗長処理とし、その時間χ1,1(1)を式（１２−１）乃至（１２−４）のようにモデル化する。
【数１７】
2006120182.tif 000018
ここでiiは以下の式におけるiiである。
【数１８】
2006120182.tif 000019
【００５８】
冗長処理は、同じ手続き（処理内容）ではあるがデータが異なる処理を並列処理する、いわゆるデータパラレルに多い処理である。データパラレルの場合、ロードバランスを保つため、ＣＰＵ性能が同じプロセッサによる並列処理であることを想定している。そこでプロセッサ毎の冗長処理時間の違いを各プロセッサの時間測定に起因するばらつきによるものと考えることができる。この場合、各プロセッサの測定値を平均化した式（１２−１）を適用するのが妥当である。
【００５９】
一方グリッドやクラスタでは異なる性能を有するプロセッサが紛れ込むことも想定される。この異なる性能を有するプロセッサによる影響を的確に捉えようとする場合、式（１２−２）及び（１２−３）を用いる。式（１２−２）を用いれば式（６−１）の仮想並列化率Ｒp(p)は最小に見積もられ、並列効率Ｅp(p)は最大となる。式（１２−３）を用いれば仮想並列化率Ｒp(p)は最大に見積もられ、並列効率Ｅp(p)は最小となる。これら２つの並列効率Ｅp(p)を比べて、異なるＣＰＵ性能のプロセッサでデータパラレル処理を行っていることの検知が可能となる。
【００６０】
τ(p)は式（２）で決まり、そのプロセッサｉの冗長処理時間は式（１２−４）の値である。従って、並列効率Ｅp(p)を決定したデータを解析すると考えれば式（１２−４）の使用が妥当である。一方、この式はプロセッサiiの情報のみからχ1,1(1)が決定されることを意味し、他のプロセッサの値と大きく異なる場合を検知できないという欠点を持つ。この例として図５はＣＰＵ性能が１／５のプロセッサがプロセッサ１（ｉ＝１）である場合を示す。式（１２−４）では冗長処理の時間をプロセッサ１の値のみで評価することになる。式（１２−１）では４プロセッサの各値の平均で評価する。式（１２−２）ではプロセッサ１の値で、式（１２−３）ではｉ＝２，３，４のプロセッサの値で評価することになる。従って式（１２−１）をベースとして、必要に応じて他の定義を使用するのが妥当である。
【００６１】
（２）χ1,j(1)（２≦ｊ≦ｊOthers）のモデル化
実際に並列性能阻害要因による処理時間を測定すると、χ1,j(1)≠０の場合が存在する。この処理時間は並列処理しても減らないため、式（６−１）の仮想並列化率Ｒp(p)に反映され、式（６−２）の加速率Ａpが有限の値となり、処理に投入して意味があるプロセッサ数の上限値が決まる。そこで冗長処理以外の並列性能阻害要因による処理時間χ1,j(1)（２≦ｊ≦ｊOthers）を、ｐ＝１の処理時間χ1,j(1)とｐ＞１の処理時間を表わす式（１３−２）で式（１３−１）のようにモデル化し、χi,j(p)とｐ＞１で発生し且つｐに依存する並列性能阻害要因による処理時間Χi,j(p)を測定してχ1,j(1)を求める。すなわち、χ1,j(1)＝χi,j(p)−Χi,j(p)であり、右辺の２項は両方とも測定により求めるものとする。
【数１９】
2006120182.tif 000020
【００６２】
例としてχ1,j(1)≠０の場合でｐ＝１の処理時間を図６（ａ）に、ｐ＝４の処理時間を図６（ｂ）に示す。図６（ｂ）に示されるように、並列処理時のχi,2(p)はｐ＝１の処理時間χ1,2(1)にΧi,2(p)をプラスした式（１３−１）のようになる。このような現象は、通信等で通信のハードウェアを起動するまでの前処理がｐ＝１の時にも実行される場合等で観測される。
【００６３】
式（１３−１）及び（１３−２）よりχ1,j(1)（２≦ｊ≦ｊOthers）は冗長処理と同様に式（１３−３），（１３−４），（１３−５）により求めることができる。
【数２０】
2006120182.tif 000021
例えば図６（ｂ）ではχi,2(p)＝χ1,2(1)＋Χi,2(p)と実測されるので、Χi,2(p)＝５，６，７，８を実測して式（１３−３），（１３−４），（１３−５）からχ1,2(1)＝５を算出できる。この値は図６（ａ）のχ1,2(1)と一致する。
【００６４】
（３）χi,jothers(p)の決定方法
並列処理阻害要因に分類して実測できないχi,jothers(p)は式（１３−６）で求める。
【数２１】
2006120182.tif 000022
【００６５】
次に、モデル化により求められた式（１１）により、式（１０）を以下の式で書き直す。
【数２２】
2006120182.tif 000023
また、式（８−１）は、以下のように変形される。
【数２３】
2006120182.tif 000024
この式が成り立つためには式（１４）の条件を満たす必要がある。この条件式は測定値より求めた値の大小関係の比較であるため、具体的に判定を行うことができる。
【数２４】
2006120182.tif 000025
【００６６】
この式（１４）のγi(p)は実測により求まる。またχ1,j(1)のｊについての和は、モデル化式（１２−１），（１２−２），（１２−３），（１２−４）及び式（１３−１），（１３−２），（１３−３），（１３−４），（１３−５）より求めることができる。その結果、初めて式（８−１）の判定が式（１４）を用いて具体的に可能となる。例えば以下のような場合、式（１４）の条件が成立し、式（６−１）の仮想並列化率Ｒp(p)はほぼ１となり、式（４−４），（４−５）は式（８−２）と等価となり、推定値であるτ(1)の影響がほぼゼロになると言う意味で正確な並列効率Ｅp(p)を得ることができる。
【数２５】
2006120182.tif 000026
【００６７】
また式（１０），（１１），（１２−１），（１２−２），（１２−３），（１２−４），（１３−１），（１３−２），（１３−３），（１３−４），（１３−５），（１３−６）によりτ(1)も具体的に計算することができる式（１５）となる。式（１５）は、τ(1) を各プロセッサの並列処理時間γi(p)の総和とｐ＝１の時の並列効率阻害要因による処理時間χ1,j(1)の和として表わしたものである。
【数２６】
2006120182.tif 000027
以上説明した式（１），（２），（１５）より以下に示す式（９−２）を得る。
【数２７】
2006120182.tif 000028
【００６８】
式（９−１）及び（９−２）は、並列計算部の時間γi(p)のｉについての和を用いるもので、式（４−４），（４−５）と比べ、χi,j(p)のデータなしに並列効率Ｅp(p)が求まる利点がある。但し、χ1,j(1)のデータは必要である。
【００６９】
式（４−４），（４−５），（７）で示したように、本発明では並列性能阻害要因ｊは任意の数を追加できる。並列性能阻害要因の追加例を図７（ａ）及び図７（ｂ）に示す。図７（ｂ）は立ち上がり時間χTCを考慮して時間測定した場合、図７（ａ）は同じ処理で時間測定しない場合の処理時間を示す。図７（ａ）の場合には、以下のような計算がなされる。
τ1＝１０＋５＋９０＋２０＋２０＝１４５
τ2＝１０＋８０＋１０＝１００
τ3＝１５＋８０＋１０＝１０５
τ4＝１０＋９０＋１０＝１１０
Ｒb(4)＝(145+100+105+110)／(145×4)＝0.7931
ＲC(4)＝(25+20+25+20)／460＝0.1957
Ｒp(4)＝１（仮定）
Ｅp(4)＝0.7931×1×(1-0.1957)＝0.6379
【００７０】
また、図７（ｂ）の場合には、以下のような計算がなされる。
τ1＝１０＋５＋９０＋２０＋２０＝１４５
τ2＝５＋１０＋８０＋１０＝１０５
τ3＝１０＋１５＋８０＋１０＝１１５
τ4＝１５＋１０＋９０＋１０＝１２５
Ｒb(4)＝(145+105+115+125)／(145×4)＝0.8448
ＲC(4)＝(25+20+25+20)／490＝0.1837
ＲTC(4)＝(0+5+10+15)／490＝0.0612
Ｒp(4)＝１（仮定）
Ｅp(4)＝0.8448×1×(1-0.1837-0.0612)＝0.6379
【００７１】
これらの並列性能評価指標の値を図８にまとめて示す。図７（ａ）から求めた値（ケース１）と比べると、図７（ｂ）から求めた値（ケース２）は、立ち上がり時間のためのＲTCを追加することによりＲCが減少しＲbが増加するが、Ｅpは同じであることが分かる。この場合、並列性能阻害要因を追加することによりＥpが変わるのではなく、その内訳がより明確になる。
【００７２】
式（５）で示したようにロードバランス寄与率Ｒb(p)を表現することにより、ロードバランスと並列効率Ｅp(p)を関係付けることができる。ロードバランス寄与率Ｒb(p)を式（５）のように定義する理由は、図９に示すように並列性能阻害要因の寄与が各プロセッサにおいて異なった状態でロードバランスが成り立つ場合を考慮できるからである。図９では、例えばプロセッサ１の並列処理部分は他に比べ非常に少なく、冗長処理が非常に多くなっているが、全てのプロセッサの処理時間は一致しているのでロードバランスは保たれている。すなわち、γi(p)とχi,j(p)とが個々にはバランスしていないが全体にはバランスしているという状態である。なお、χi,jothers(p)（＝τi−γi−χi,1−χi,2）は例えばＩ／Ｏによる処理時間である。
【００７３】
図９の場合、ロードバランス寄与率Ｒb(p)は１である。図１０のように並列処理において１台のプロセッサのみで処理する場合、Ｒb(p)は下限１／ｐとなる。また、図１１のように、プロセッサ１とプロセッサ２の処理時間は一致しているが、プロセッサ３及び４の処理時間とは一致しておらず、ロードバランスが取れていない。この場合に、Ｒb(p)は以下のとおりになる。
【数２８】
2006120182.tif 000029
【００７４】
さらに、低並列のときは顕在化しなかった並列処理阻害要因が高並列で顕在化する場合がある。従来の性能評価指標の１つである並列化率（＝（ｐ＝１の並列処理部の処理時間）／（(ｐ＝１の並列処理部の処理時間)＋(ｐ＝１の並列処理できない部分の処理時間)））では、この現象を十分に捉えることができなかった。例えば図１２の例では、ｐ＝１における並列化率は0.99（＝１９８／（１９８＋２））であり、残りの０．０１が並列処理できない処理時間の割合である。ところがこの値は図中のｐ＝１００の場合のような高並列でも２時間であり、並列処理できない部分が５０％（≒２／（１．９８＋２））を占める現実を反映していない。本発明では、式（７）で示したように、並列性能阻害要因Ｒj(p)を、χi,j(p)のｉについての和をτi(p)のｉについての和で規格化した値として表現している。この規格化により、高並列でτ(p)が小さな値になった時も、Ｒj(p)の上限は１となり、各々の並列性能阻害要因の影響を並列処理時の百分率で表わすことができる。
【００７５】
以上述べたように、並列効率Ｅp(p)を計算すると共に、並列性能評価指標Ｒb(p)，Ｒp(p)，Ｒj(p)（ＲRED(4)，ＲC(4)，．．．，ＲOthers(4)）と補助指標Ａp(p)，Ｅp(p)・ｐをも計算することができる。この計算結果の一例を図１３に示す。この図１３に示した８つの項目で、並列性能を定量的に表現することができる。
【００７６】
図１３に示したように、Ｅp(p)・ｐ＝１．７７７であるから、４プロセッサ構成の並列計算機システムであるが１．７７７プロセッサの性能で処理していることが分かる。並列効率はロードバランス寄与率で９４％（Ｒb(4)＝0.9392）に低下する。並列性能阻害要因の影響は、冗長処理が２２％（ＲRED(4)＝0.2230）、通信が３３％（ＲC(4)＝0.3309）、その他が３％（ＲOthers(4)＝0.0288）である。従って通信と冗長処理で５５％並列性能を低下させている。図１３ではＲp(4)＝0.8821ということから、プロセッサを無限に投入した時の並列最大性能が１プロセッサの8.482（＝Ａp(4)＝１／（１−0.8821））倍であることが推定できる。従ってこの処理は８プロセッサ以下で行われるべき処理であることが分かる。
【００７７】
また、例えば並列効率の設定目標値（Ｅp）Tを０．８と設定した場合、図１３で示されるような処理群を想定すると、最適なプロセッサ数は以下の式で計算される。
（ｐ）OPT＝Ｅp(4)／（Ｅp）T・ｐ
＝0.4443／0.8×４＝2.215
従って、最適なプロセッサの見積値は（ｐ）OPT＝２となる。
【００７８】
なお処理群とは、同一アプリケーション・プログラムで同じ機能を使い入力データだけを変えた複数の処理のことであり、科学技術計算のパラメトリック・スタディ等で頻繁に実施される処理である。
【００７９】
従来、並列計算機システムの評価は、以下で示す式（１６）に示す稼働率(Net Working Rate)ＮＷＲsystemで行われていた。しかし、並列効率の低い処理も含まれる場合があるため、稼働率がよいからといって必ずしもシステムの運用効率が高いとは限らなかった。
【数２９】
2006120182.tif 000030
稼働時間と処理時間の総和（以下の式）の例を図１４に示す。
【数３０】
2006120182.tif 000031
図１４では、稼働時間Ｔiに対して処理時間の総和は少なくなっている。この減少の度合いはプロセッサによって異なる。
【００８０】
本発明により、式（１６）を基にシステム運用効率Ｅsystemという指標を作り、システムの運用効率を評価することが可能となる。この指標向上のためにはどの処理の並列効率がどの位向上する必要があるか等、運用効率の向上に対して具体的指針を出すことが可能となる。
【数３１】
2006120182.tif 000032
【００８１】
例えばＰsystem＝４、Ｔi＝１０、ｋmax＝２であり、さらに以下の条件が満たされるとすると、Ｅsystem＝（５＋９）／（１０＋１０＋１０＋１０）＝０．３５となる。
【数３２】
2006120182.tif 000033
なお、従来の稼働率ＮＷＲsystem＝（１０＋９）／４０＝０．４８３８となる。並列効率を考慮することにより、並列処理により各処理において無駄にしている時間を考慮したシステムの運用効率を評価することができる。
【００８２】
以上説明した稼働時間、並列処理である処理１におけるτi(p)の和、処理１におけるτi(p)と並列効率の積、非並列処理である処理２（プロセッサ４のみ）におけるτi(p)の和、及び処理２におけるτi(p)と並列効率の積を図１５に示す。図１５では、並列処理の場合には、稼働時間Ｔiより、τi(p)の方が短く、さらに並列効率を考慮すると無駄な処理時間が除かれるためさらに短くなる。一方、非並列処理の場合には並列効率が１となるため、処理２におけるτi(p)もτi(p)と並列効率の積についても同じ値になる。
【００８３】
並列計算機システムのプロセッサ増設の根拠データとして、従来からシステムの稼働率が用いられてきた。しかし有効に使われたシステムの資源を基にしているわけでないので、並列効率の低い処理のために資源の増設あるいは入れ替えを行う可能性がある。本発明によれば、並列計算機システムのプロセッサ増設に対して定量的指針を与えることが可能になる。システムの全プロセッサ数をＰSystem、Ｔiを各プロセッサの稼働時間、ＰAddを増強後のプロセッサ個数、ｋmaxを全処理数、αを予想並列効率とすると、例えば追加したプロセッサによる以下で表される稼働時間（数２８）だけ増加させたときの加速率Ａsystemは、式（１８）に示すとおりになる。
【数３３】
2006120182.tif 000034
【数３４】
2006120182.tif 000035
【００８４】
例えば以下に示すような条件で、α＝１であるとすると、加速率Ａsystemは以下のように計算される。
【数３５】
2006120182.tif 000036
Ａsystem＝（３９＋１×１０）／４０＝１．２３
このように約２３％のシステム増強となる。この値は従来の処理の並列効率を考慮しているという点で、増設に対して従来の稼働率より説得力がある値となる。システム増強に予測並列効率α（＜１）をかけて加速率を算出すれば、より現実的な値となる。また、増強したプロセッサのＣＰＵ能力を１０倍とするならば、α＝１０としてＡsystemを求めることもできる。上記の例に当てはめると、Ａsystem＝（３９＋１０×１０）／４０＝３．４８となる。これにより異なるＣＰＵ性能のプロセッサの増設に対しても稼働率を基にした以上に根拠がある予測データを作成することが可能となる。
【００８５】
また、本発明により、並列計算機システムの入れ替えに対して定量的指針を与えることも可能となる。各処理について計算された指標など（並列効率、ロードバランス寄与率、仮想並列化率、並列性能阻害要因寄与率、τi(p)、γi(p)、χi,j(p) 、各プロセッサの稼動時間Ｔi）により、各処理に対して次の例で示すような並列効率の推測が可能となり、システム入れ替え後のシステムの性能推定が可能となる。
【００８６】
例えば図１６に示したような経過時間が測定されるシステムのＣＰＵ性能を５倍にしたシステムを導入することを考えるとγi(p)、χi,RED(p)、χi,Other(p)は１／５になる。一方χi,C(p)は、ネットワーク性能に依存し今回は性能が同じとすると新システムの並列効率を次のように推定できる。
【００８７】
なお、χi,C(1)＝０、χi,Others(1)＝０とすると、ＣＰＵ性能が5倍となった場合の性能評価指標は次のように計算できる。また、上で述べた式（１２−１）により、χ1,RED(1)は以下のように表される。また、ロードバランス寄与率は式（５）により、仮想並列率は式（６−１）により、並列性能阻害要因寄与率（冗長処理、通信、その他）は式（７）に従って、並列効率は式（４−４）及び（９−１）に従って、以下のように計算される。
【数３６】
2006120182.tif 000037
【数３７】
2006120182.tif 000038
【数３８】
2006120182.tif 000039
【数３９】
2006120182.tif 000040
【数４０】
2006120182.tif 000041
【数４１】
2006120182.tif 000042
【数４２】
2006120182.tif 000043
【００８８】
上に示した計算結果と実測に基づく性能指標をまとめると図１７に示すようになる。図１７の表に示すように、システムを入れ替えた時の並列性能を予測することによって、新しいシステムのシステム運用効率Ｅsystemを推定することができる。そのために、今までのシステムのログデータを用い、今までの処理に対して図１７と同様にすべての性能指標を計算する。
【００８９】
ＣＰＵ性能を５倍にしたときのシステム運用効率Ｅsystemを求める試算をすると、以下に示すようになる。推定値を基にして求めたこのＥsystemと今までの実測値から求めたＥsystemを比べることにより、システムの入れ替えに対し、稼働率に比べてより根拠があるデータを得ることができる。
【００９０】
図１８に示すように、ＣＰＵ性能が５倍になった場合の各処理のＥp(4)、τi(p)のｉについての和、及びプロセッサ数に従ってＥsystemが計算できる。なお、前提として以下の条件を用いた。
【数４３】
2006120182.tif 000044
【数４４】
2006120182.tif 000045
【００９１】
［実施の形態の説明］
図１９に本発明の一実施の形態に係るシステム概要図を示す。並列性能分析装置１００は、並列計算機システム２００の並列性能を分析する単一プロセッサのコンピュータであり、印刷装置や表示装置といった出力装置１１０と接続されている。但し、並列性能分析装置１００は、並列計算機であってもよい。並列性能分析装置１００は、データ取得部１０と、ロードバランス寄与率計算部１１と、仮想並列化率計算部１２と、並列性能阻害要因寄与率計算部１３と、並列効率計算部１４と、補助指標計算部１５と、プロセッサ数最適化処理部２１と、プロセッサ増設見積処理部２２と、システムリプレイスデータ処理部２３と、運用効率データ処理部２４と、チューニング処理部２５と、アルゴリズム選定処理部２６と、並列性能評価処理部２７とを含む。並列性能分析装置１００は、ログデータ格納部３０に接続されている。並列計算機システム２００は、測定部２０１を含む。例えば並列性能分析装置１００は、並列計算機システム２００とネットワークにて接続されている。
【００９２】
並列計算機システム２００の測定部２０１は、プログラムに従って並列処理を実行しながら、各処理時間γi(p)、χi,j(p)、τi(p)を測定する。例えば、各処理の開始から終了までをタイマで計測したり、各処理の開始時刻及び終了時刻を記録して処理終了後に処理時間を計算する。時間の計測は、オペレーティング・システム（ＯＳ：Operating System）を含むソフトウエアによる場合もあれば、ハードウエアによる場合もある。測定された処理時間のデータについては、一旦並列計算機システム２００のメモリ中に格納され、場合によっては他の記憶装置に格納される。
【００９３】
また、処理時間の測定ではなく、一定時間間隔毎に実行中のプログラムの事象を確認し、各事象についてカウントを行う場合もある。このような測定を、サンプリングによる測定と呼ぶ。このようなサンプリングによる測定は、式（４−４）、（９−１）、（９−２）やＲb(p)、Ｒp(p)、Ｒj(p)が時間比の形をしているため採用可能となる。測定精度による違いはあるが、時間測定による方法とサンプリングによる方法では結果は同じになる。
【００９４】
図２０にサンプリングによる測定の概念図を示す。図２０では左から右に時間が経過する様子を示している。図２０において下向き矢印はサンプリングのタイミングを示しており、下向き矢印の間隔で表されるようにサンプリングは一定時間間隔で行われる。図２０においては、最初に冗長処理がχi,RED(p)だけ実施された後、並列計算がγi(p)だけ行われる。なお、全体として処理はτi(p)だけ実施されている。サンプリング回数は、χi,RED(p)だけ続いた冗長処理の事象においては７回、γi(p)だけ続いた並列計算の事象においては９回である。全体の処理時間τi(p)の間では、サンプリング回数は２２回である。並列性能阻害要因のうち意図して測定したχi,RED(p)以外の事象をまとめてχi,others(p)で表し、意図して測定したτi(p)、χi,RED(p)及びγi(p)を用いて式（１３−６）から計算する。図２０の例では、χi,others(p)の間のサンプリング回数が６回（＝２２−９−７）であることが分かる。
【００９５】
実際にどのようにサンプリングによる測定を実施するかについては、その概要を以下に説明しておく。
（１）τi(p)の部分
（ａ）処理の始めにおいて事象τi(p)のためのフラグをonにし、処理の終了においてoffにする。実行時に事象τi(p)のためのフラグのon/offを一定時間間隔で識別し、onと識別された回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの記述と処理を、必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、プログラム・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【００９６】
（ｂ）プログラム名又はそれに代替する実行モジュール名等により事象を特定し、実行時にそのプログラム名又は実行モジュール名等を一定時間間隔で識別し、識別された名称の識別回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの名前生成法と、識別処理及びカウント処理とを必要に応じて組み合わせて測定する。
・コンパイラが、上記プログラム名又は実行モジュール名等を生成する。
・ＯＳが、上記プログラム名又は実行モジュール名等を生成する。
・ランタイム・ライブラリが、上記プログラム名又は実行モジュール名等を生成する。
・ハードウエアが、上記プログラム名又は実行モジュール名等を生成する。
・並列言語拡張やコンパイラ・ディレクティブ等の記述により、上記プログラム名又は実行モジュール名等を生成する。
・プログラマの記述により、上記プログラム名又は実行モジュール名等を生成する。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理の実施を、ハードウェア・レベルで行う。
【００９７】
（２）χi,j(p)とγi(p)の部分
（ａ）事象χi,j(p)、γi(p)が出現する毎にその処理の初めにそのためのフラグをonにし、その処理の終わりにそのためのフラグをoffにセットする。
実行時に各事象のためのフラグのon/offを一定時間間隔で識別し、onと識別された回数をカウントしてサンプリング回数を得るものとする。１つの方法では検出できない場合があるため、以下の方法のいずれかの記述と処理を必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、アプリケーションプログラム・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【００９８】
（ｂ）既知のモジュール名を並列処理部又は並列性能阻害要因に係る処理部に予め分類しておき、実行時にモジュール名を識別し、各モジュール名につきカウントしてサンプリング回数を得る。以下に示す分類方法と、識別処理及びカウント処理を必要に応じて組み合わせて測定する。
・モジュール名の分類を、コンパイラレベルで行う。
・モジュール名の分類を、ＯＳレベルで行う。
・モジュール名の分類を、ランタイムライブラリ・レベルで行う。
・モジュール名の分類を、ハードウェア・レベルで行う。
・モジュール名の分類を、並列言語拡張やコンパイラディレクティブ・レベルで行う。
・モジュール名の分類を、ユーザレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・上記モジュール名の識別処理及びカウント処理の実施をハードウェア・レベルで行う。
【００９９】
例として、全プロセッサにあるF(Imax)の各要素を足し合わせる処理をFortranと並列ライブラリのＭＰＩ（Message Passing Interface）で記述したプログラムを用いて、χi,j(p)のサンプリング方法を以下の表１に示す。例えばonのフラグを、コンパイラに指示を行う「*sampon」で表わし、offのフラグを「*sampoff」で表す。また、REDを冗長処理とし、Ｃを通信とし、REDやＣの後ろの数字をその出現順番を表すものとする。総和処理の部分は各プロセッサで同じ計算を行う冗長処理であるので、その始点と終点に「*sampon (RED), 2」及び「*sampoff (RED), 2」を配置し、フラグをon/offする。nLOCALという変数の計算についても冗長処理であるから、その始点と終点に「*sampon (RED), 1」及び「*sampoff (RED), 1」を配置し、フラグをon/offする。さらに、MPI_ALLTOALLは通信ライブラリであり、ここでは「*sampon (C), 1」「*sampoff (C), 1」並びに「*sampon (C), 2」及び「*sampoff (C), 2」を配置し、フラグをon/offする。なお、MPI_ALLTOALLの場合には、ツールやコンパイラやＯＳが事象を識別してフラグを立てるようにすることも可能である。
【０１００】
（表１）
subroutine GSUM(Imax,F,FW,NP)
real*8 F(Imax),FW(Imax)
include  'mpif.h'
sampon（RED）,1
nLOCAL=(Imax+NP-1)/NP
sampoff（RED）,1
sampon（C）,1
call MPI_ALLTOALL(F ,nLOCAL,MPI_DOUBLE_PRECISION,
&                  FW,nLOCAL,MPI_DOUBLE_PRECISION,
&                  MPI_COMM_WORLD,IERR)
sampoff（C）,1
sampon（RED）,2
do j=2,NP
k=(j-1)*nLOCAL
do i=1,nLOCAL
FW(i)=FW(i)+FW(i+k)
end do
end do
do j=2,NP
k=(j-1)*nLOCAL
do i=1,nLOCAL
FW(i+k)=FW(i)
end do
end do
sampoff（RED）,2
sampon（C）,2
call MPI_ALLTOALL(FW, nLOCAL,MPI_DOUBLE_PRECISION,
&                  F ,nLOCAL,MPI_DOUBLE_PRECISION, 
&                  MPI_COMM_WORLD,IERR)
sampoff（C）,2
return
end
【０１０１】
表１のプログラムを実行した際のサンプリングの一例を図２１に示す。図２１では、事象[(RED),1]、[(RED),2]、[(C),1]、[(C),2]の各々についてカウントされる。但し、並列効率等を計算する際には、冗長処理全体[(RED),1+(RED),2]、通信処理全体[(C),1+(C),2]として扱う。
【０１０２】
図１９の説明に戻って、並列性能分析装置１００のデータ取得部１０は、上で述べたように処理時間又はサンプリング数として測定部２０１により測定される各処理時間γi(p)、χi,j(p)、τi(p)を、並列計算機システム２００から取得し、並列性能分析装置１００に接続されたログデータ格納部３０に格納する。ログデータ格納部３０には、各処理時間のほかに計算された並列効率を含む並列性能評価指標等のデータも蓄積される。ロードバランス寄与率計算部１１は、上で説明したように式（５）に従ってロードバランス寄与率Ｒb(p)を計算し、記憶装置に格納する。なお、τ(p)については式（２）に従って計算する。仮想並列化率計算部１２は、式（６−１）に従って仮想並列化率Ｒp(p)を計算し、記憶装置に格納する。なお、式（６−１）の分母のτ(1)については、式（８−１）に示したような近似が行われる場合もある。また、式（１０）及び式（１１）から式（１５）が用いられる場合もある。なお、式（１５）中の第２項（χ1,j(1)，ｊ＝１）については、式（１２−１）、（１２−２）、（１２−３）又は（１２−４）のいずれかで計算される場合もある。また、χ1,j(1)，ｊ＞１については式（１３−３）乃至（１３−５）のいずれかで計算される場合もある。χ1,j(p)のｊ＝１は冗長処理である。但し、他の並列性能阻害要因についての処理時間であってもよい。
【０１０３】
並列性能阻害要因寄与率計算部１３は、式（７）に従って、各並列性能阻害要因につき並列性能阻害要因寄与率Ｒj(p)を計算し、記憶装置に格納する。並列効率計算部１４は、式（４−４）、式（４−５）、式（８−１）の条件が満たされる場合には式（８−２）、式（９−１）又は式（９−２）のいずれかに従って、並列効率Ｅp(p)を計算し、記憶装置に格納する。式（９−２）を用いる場合に分子の第１項については式（１２−１）、（１２−２）、（１２−３）、（１２−４）、（１３−３）、（１３−４）又は（１３−５）のいずれかで計算される場合もある。式（１２−１）乃至（１２−４）は、χ1,j(p)，ｊ＝１の冗長処理である。補助指標計算部１５は、例えば式（６−２）に従って加速率Ａpを、並列効率Ｅp(p)とプロセッサ数ｐとからＥp(p)・ｐを計算し、記憶装置に格納する。
【０１０４】
プロセッサ数最適化処理部２１は、並列計算機システム２００のエンドユーザに、処理のために投入すべき最適なプロセッサ数を指示するための処理等を実施する。プロセッサ増設見積処理部２２は、並列計算機システム２００の運用管理者に、プロセッサの増設に際して指針となる数値を提示するための処理を実施する。システムリプレイスデータ処理部２３は、並列計算機システム２００の運用管理者に、システムリプレイスに際して指針となる数値を提示するための処理を実施する。運用効率データ処理部２４は、並列計算機システム２００の運用管理者に、システム運用効率に関するデータを提示するための処理を実施する。チューニング処理部２５は、並列処理を行うためのプログラムに、プログラマが適切な目標設定等により効率的なプログラム等のチューニングを実施できるようにするための処理を実施する。アルゴリズム選定処理部２６は、同一処理について異なるアルゴリズムが存在する場合に、並列処理を行うためのプログラムに、プログラマが並列効率をより向上させることのできるアルゴリズムを選択できるようにするための処理等を実施する。並列性能評価処理部２７は、並列計算機システムの開発者や研究者が並列性能の評価を容易に行うことができるようにするための処理を実施する。これらの処理部の詳細な処理内容については、以下で説明する。
【０１０５】
次に図１９に示したシステム等の処理フローを図２２を用いて説明する。最初に、処理時間の直接の計測のための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのフラグをon/offさせるための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのモジュール名等の分類などを含む前処理を実施する（ステップＳ１）。この処理については、並列計算機システム２００で行われる場合もあれば、他の計算機システムにおいて行われる場合もある。さらに、プログラマなどの人間により行われる場合もある。なお、ステップＳ１は、並列性能分析装置１００において実施される処理ではなく並列計算機システム２００により実施される処理でもない場合もあるので、点線ブロックで表されている。
【０１０６】
次に、並列計算機システム２００の測定部２０１は、前処理に基づいて、処理時間の計測を実施したり、サンプリング数をカウントしたりする測定処理を実施する（ステップＳ３）。測定結果である各処理時間γi(p)、χi,j(p)、τi(p)又は各処理時間に対応するサンプリングのカウント値については、並列計算機システム２００の記憶装置に格納され、並列性能分析装置１００のデータ取得部１０により読み出される。データ取得部１０は、各処理時間γi(p)、χi,j(p)、τi(p)又は各処理時間に対応するサンプリングのカウント値を取得すると、並列性能分析装置１００のログデータ格納部３０に格納する。
【０１０７】
そして、ロードバランス寄与率計算部１１、仮想並列化率計算部１２、並列性能阻害要因寄与率計算部１３、並列効率計算部１４、補助指標計算部１５は、ログデータ格納部３０に格納された各処理時間γi(p)、χi,j(p)、τi(p)又は各処理時間に対応するサンプリングのカウント値等を用いて、ロードバランス寄与率Ｒb(p)、仮想並列化率Ｒp(p)、各並列性能阻害要因寄与率Ｒj(p)、並列効率Ｅp(p)、加速率Ａpその他の補助指標を計算し、ログデータ格納部３０に格納する（ステップＳ５）。
【０１０８】
並列効率Ｅp(p)については、上で述べたように式（４−４）、式（４−５）、式（８−１）の条件が満たされる場合には式（８−２）、式（９−１）又は式（９−２）のいずれかに従って計算される。従って、並列効率計算部１４は、ロードバランス寄与率計算部１１により計算されたロードバランス寄与率Ｒb(p)、仮想並列化率計算部１２により計算された仮想並列化率Ｒp(p)、並列性能阻害要因寄与率計算部１３により計算された各並列性能阻害要因寄与率Ｒj(p)、補助指標計算部１５により計算された加速度Ａp(p)を用いて、その他の必要なデータについてはログデータ格納部３０に格納された処理時間等を用いて、並列効率Ｅp(p)を計算する。
【０１０９】
例えば図２３のような処理時間の測定結果がデータ取得部１０によりログデータ格納部３０に格納された場合の計算例を以下に示す。より具体的には、τ1(p)＝３４、τ2(p)＝３５、τ3(p)＝３３、τ4(p)＝３７、γ1(p)＝１５、γ2(p)＝１４、γ3(p)＝１３、γ4(p)＝１６、χ1,RED(p)＝８、χ2,RED(p)＝９、χ3,RED(p)＝７、χ4,RED(p)＝７、χ1,C(p)＝１０、χ2,C(p)＝１１、χ3,C(p)＝１２、χ4,C(p)＝１３という測定結果が得られたものとする。従って、χ1,others(p)＝１（＝３４−１５−８−１０）、χ2,others(p)＝１（＝３５−１４−９−１１）、χ3,others(p)＝１（＝３３−１３−７−１２）、χ4,others(p)＝１（＝３７−１６−７−１３）となる。以下の計算で必要となるが未測定のχ1,C(1)及びχ1,others(1)については共に０とする。
【０１１０】
（１）ロードバランス寄与率（式（５））
【数４５】
2006120182.tif 000046
（２）仮想並列化率（式（６−１），（１２−１），（１５））
【数４６】
2006120182.tif 000047
（３）加速率（式（６−２））
【数４７】
2006120182.tif 000048
（４）並列性能阻害要因寄与率（式（７））
（４−１）冗長処理の並列性能阻害要因寄与率
【数４８】
2006120182.tif 000049
（４−２）通信処理の並列性能阻害要因寄与率
【数４９】
2006120182.tif 000050
（４−３）その他の並列性能阻害要因寄与率
【数５０】
2006120182.tif 000051
【０１１１】
（５−１）並列効率（式（４−４））
【数５１】
2006120182.tif 000052
（５−２）並列効率（式（９−１））
【数５２】
2006120182.tif 000053
（５−３）並列効率（式（９−２））
【数５３】
2006120182.tif 000054
【０１１２】
以上の結果をまとめると図１３のようになる。なお、補助指標であるＥp(p)・ｐも計算されている。Ｅp(4)・ｐ＝１．７７７で、４プロセッサ並列で１．７７７プロセッサの性能で処理していることが分かる。並列効率はロードバランスで約９４％（＝Ｒb(4)＝0.9392）に低下する。並列性能阻害要因の影響は、冗長処理が約２２％（＝ＲRED(4)＝0.2230）、通信が約３３％（＝ＲC(4)＝0.3309）、その他が３％（＝Ｒothers(4)＝0.0288）である。従って主に通信と冗長処理実行で５５％程度並列効率を下げている。また図１３ではＲp(4)＝0.8821ということから、プロセッサを無限に投入した時の並列最大性能が１プロセッサの８．４８２（＝Ａp(4)＝１／（１−0.8821））倍であることが推定できる。従って、この処理は８プロセッサ以下で行われるべき処理であることが分かる。この処理をＥp(x)≧０．８の条件で行おうとすれば、Ｅp(x)・ｐ＝0.4443×４＝１．７７７＝Ｅp(x)・ｘ＝０．８＊ｘで、ｘ＝2.22となる。従ってｐ≧2.22＝２が与えられた条件に対する最適なプロセッサ数と予想できる。
【０１１３】
また、例えば図２４のようなサンプリングによるカウント数がデータ取得部１０によりログデータ格納部３０に格納された場合の計算例を以下に示す。より具体的には、τ1(p)＝３４８８、τ2(p)＝３５６１、τ3(p)＝３３７２、τ4(p)＝３７５６、γ1(p)＝１５２１、γ2(p)＝１４１１、γ3(p)＝１３２２、γ4(p)＝１６０１、χ1,RED(p)＝８２３、χ2,RED(p)＝９４５、χ3,RED(p)＝７１１、χ4,RED(p)＝７０３、χ1,C(p)＝１０５６、χ2,C(p)＝１１１１、χ3,C(p)＝１２３０、χ4,C(p)＝１３４１という測定結果が得られたものとする。従って、χ1,others(p)＝８８（＝３４８８−１５２１−８２３−１０５６）、χ2,others(p)＝９４（＝３５６１−１４１１−９４５−１１１１）、χ3,others(p)＝１０９（＝３３７２−１３２２−７１１−１２３０）、χ4,others(p)＝１１１（＝３７５６−１６０１−７０３−１３４１）となる。以下の計算で必要となるが未測定のχ1,C(1)及びχ1,others(1)については共に０とする。
【０１１４】
（１）ロードバランス寄与率（式（５））
【数５４】
2006120182.tif 000055
（２）仮想並列化率（式（６−１），（１２−１），（１５））
【数５５】
2006120182.tif 000056
（３）加速率（式（６−２））
【数５６】
2006120182.tif 000057
（４）並列性能阻害要因寄与率（式（７））
（４−１）冗長処理の並列性能阻害要因寄与率
【数５７】
2006120182.tif 000058
（４−２）通信処理の並列性能阻害要因寄与率
【数５８】
2006120182.tif 000059
（４−３）その他の並列性能阻害要因寄与率
【数５９】
2006120182.tif 000060
【０１１５】
（５−１）並列効率（式（４−４））
【数６０】
2006120182.tif 000061
（５−２）並列効率（式（９−１））
【数６１】
2006120182.tif 000062
（５−３）並列効率（式（９−２））
【数６２】
2006120182.tif 000063
以上の結果をまとめると処理時間の計測の場合と同じ図１３のようになる。
【０１１６】
図２２の説明に戻って、ログデータ格納部３０には、処理毎に処理時間等の測定結果と図１３に示すような並列性能評価指標及び補助指標とがセットで格納される。そして、並列性能分析装置１００は、ユーザによる要求に応じて又は自動的に、表示装置や印刷装置等の出力装置１１０に、図１３のような処理結果を出力する（ステップＳ７）。
【０１１７】
ユーザは、図１３のようなデータだけで自ら並列性能などについて分析、最適プロセッサ数の見積、プロセッサ増設やシステムリプレイスを行う場合の効果の見積、プログラム等のチューニング、アルゴリズムの選定などを行っても良い。しかし、プロセッサ数最適化処理部２１、プロセッサ増設見積処理部２２、システムリプレイスデータ処理部２３、運用効率データ処理部２４、チューニング処理部２５、アルゴリズム選定処理部２６、並列性能評価処理部２７により、以下で説明するような各種コンサルティング支援処理を、ユーザの指示に従って実施する（ステップＳ９）。これにより、より具体的なデータを得ることができるようになる。
【０１１８】
Ａ．プロセッサ数最適化処理
プロセッサ数最適化処理部２１による処理を図２５及び図２６を用いて説明する。プロセッサ数最適化処理部２１は、ユーザによる目標並列効率(Ｅp)Tの値の設定入力を受け付ける（ステップＳ１１）。そして、最適プロセッサ数の計算を以下の式に従って行い、記憶装置に格納する（ステップＳ１３）。
(ｐ)OPT＝Ｅp(p)／(Ｅp)T・ｐ
そして、計算された最適プロセッサ数を出力装置１１０に出力する（ステップＳ１５）。これにより、ユーザは、次に同じ処理群に属する処理を実施する際に使用するプロセッサを必要最小限にすることができる。例えば、上でも説明しているが、図１３のような計算結果が得られており、目標並列効率(Ｅp)T＝０．８とすると、ｐ＝２．２２になる。従って最適なプロセッサ数は２となる。
【０１１９】
また、連続して同じ処理群の処理を実施する場合には、最適プロセッサ数を調整しながらより効率的に処理を実施させることも可能になる。すなわち、図２６に示すような処理を実施する。最初に、プロセッサ数ｐの仮設定を行う（ステップＳ２１）。この仮設定されたプロセッサ数ｐは同じ処理群の最初の処理について用いられる。また、ユーザから目標並列効率の設定を受け付ける（ステップＳ２３）。そして、プロセッサ数ｐの設定に従って、並列計算機システム２００により並列処理を実施すると共に測定部２０１により処理時間等を測定し、記憶装置に測定結果を格納する（ステップＳ２５）。データ取得部１０は、測定部２０１により測定された処理時間等のデータをログデータ格納部３０に格納する。そして、並列効率計算部１４等により、並列効率を含む並列性能評価指標等を計算し、ログデータ格納部３０に格納する（ステップＳ２７）。
【０１２０】
そしてプロセッサ数最適化処理部２１は、上で述べた式に従って最適プロセッサ数(ｐ)OPTを計算し、記憶装置に格納する（ステップＳ２９）。この計算された最適プロセッサ数(ｐ)OPTを、同じ処理群の次の処理にて使用するプロセッサ数としてｐに設定する（ステップＳ３１）。そして、同一処理群の全ての処理を実施したか判断する（ステップＳ３３）。もし、全ての処理を実施したわけではない場合には、同一処理群の次の処理を選択し（ステップＳ３５）、ステップＳ２５に戻り、ステップＳ３１において設定したプロセッサ数で並列処理を実施する。
【０１２１】
このような処理を実施することにより、同一処理群に属する前の処理についての最適プロセッサ数を次の処理のプロセッサ数として設定することができるので、より効率的に処理群の処理を行うことができるようになる。
【０１２２】
Ｂ．プロセッサ増設見積処理
プロセッサ増設見積処理部２２は、並列計算機システム２００のプロセッサ増設に対して定量的な指針として、システム増強時の加速率Ａsystemを与えるための処理を実施する。図２７に処理フローを示す。まず、プロセッサ増設見積処理部２２は、システム増設時の増加分の稼働時間のデータ及びその予想並列効率のデータの設定入力を受け付ける（ステップＳ４１）。そして、式（１８）に従ってシステム増設時の加速率Ａsystemを計算し、記憶装置に格納する（ステップＳ４３）。なお、現在使用中の各プロセッサの稼働時間等のデータについては、ログデータ格納部３０に格納された過去の処理ログデータを用いて計算する。そして、計算されたシステム増設時の加速率Ａsystemを表示装置などの出力装置１１０に出力する（ステップＳ４５）。
【０１２３】
設定した増加分の稼働時間とその予測並列効率に対するシステム増設時の加速率Ａsystemにより、どの程度意味のある処理を実施するための時間が増加するかといったことを判断することができるようになる。
【０１２４】
Ｃ．システムリプレイスデータ処理
並列計算機システムの入れ替えに際して新しい並列計算機システムの性能決定のための定量的指針を提示するための処理を実施する。図２８にそのための処理フローを示す。システムリプレイスデータ処理部２３は、目標とする並列効率(Ｅp)T及び繰返回数ｉcmaxの設定入力を受け付ける（ステップＳ５１）。また、新しい並列計算機システムの性能として現行の並列計算機システムに対する性能倍率Ａの設定入力を受け付ける（ステップＳ５３）。性能倍率については、ＣＰＵ性能の倍率ＡCPU、通信性能の倍率ＡC、Ｉ／Ｏ性能の倍率ＡI/O等の設定入力を受け付ける。定量的指針はこの倍率値で得られる。ほとんどの計算機システム入れ替えでは、ＣＰＵ性能の改善によりシステムの性能向上を図るため、例えばまずＡCPUを設定し、他の性能倍率を１としてＥpを計算する。そして(Ｅp)Tに近付くようにＡC，ＡI/O等の値を繰り返し計算により求め、新しい並列計算機システムの性能決定のための指針を得るような方針で処理を行ってもよい。
【０１２５】
より具体的には、システムリプレイスデータ処理部２３は、設定された各性能倍率に従ってログデータ格納部３０に格納された各処理時間等を短くする計算を実施する（ステップＳ５５）。例えばＣＰＵ性能が５倍（ＡCPU＝５）と設定された場合には、並列処理の処理時間γi(p)などを５分の１にするといった計算を行う。そして、設定された各性能倍率に従って短縮された各処理時間に基づき、並列効率を含む並列性能評価指標の見積値（例えば並列効率の見積値は(Ｅp)E）を計算し、記憶装置に格納する（ステップＳ５７）。
【０１２６】
システムリプレイスデータ処理部２３は、並列効率の見積値(Ｅp)Eが目標の並列効率(Ｅp)Tとが一致するか判断する（ステップＳ５９）。完全一致でなくてもよく、目標の並列効率(Ｅp)Tの所定の範囲内に見積値(Ｅp)Eが入っているか判断する。もし、並列効率の見積値(Ｅp)Eが目標の並列効率(Ｅp)Tとほぼ一致すると判断された場合には、目標並列効率達成を示すメッセージ及びステップＳ５７において計算された各並列性能評価指標の見積値等を、表示装置などの出力装置１１０に出力する（ステップＳ６１）。一方、並列効率の見積値(Ｅp)Eが目標の並列効率(Ｅp)Tとがほぼ一致しているとは言えない場合、カウンタｉcが繰返回数ｉcmax以上になったか判断する（ステップＳ６３）。もし、カウンタｉcが繰返回数ｉcmax以上になった場合には、目標並列効率を達成できなかった旨のメッセージ及びステップＳ５７において計算された各並列能力評価指標の見積値等を表示装置等の出力装置１１０に出力する（ステップＳ６５）。
【０１２７】
一方、ｉcが繰返回数ｉcmax未満である場合には、ＣＰＵ性能の倍率、通信性能の倍率、Ｉ／Ｏ性能の倍率等の性能倍率の変更を実施する（ステップＳ６７）。このステップについては、自動的に変更するようにしてもよいし、ユーザによる設定を受け付けるようにしてもよい。そして、カウンタｉcを１インクリメントし（ステップＳ６９）、ステップＳ５５に戻る。
【０１２８】
上の処理では目標の並列効率(Ｅp)Tを達成するように、最大繰返回数ｉcmaxまで性能倍率を変更して並列効率の見積を実施する。なお、ログデータ格納部３０に処理時間等が格納されている特定の処理に対して(Ｅp)Tを満足する性能を有する新たな並列計算機システムを選ぶことも、幾つかの種類の処理に対して(Ｅp)Tを満足する性能を有する新たな並列計算機システムを選ぶことも可能となる。
【０１２９】
図２８の処理フローの適用例を、具体的に図２３のような処理時間が測定されたケースで説明する。ここでは、目標並列効率(Ｅp)T＝０．６とし、ＣＰＵ性能が５倍、すなわちＡCPU＝５である新たなシステムを導入することを想定すると、γi(p)、χi,RED(p)は、１／ＡCPUとなる。性質が不明なχi,others(p)も１／ＡCPUとなるものと仮定する。一方、χi,C(p)はネットワーク性能に依存する。ここでは、まず最初に、ＡC＝∞として実現可能性を検討する。なお、未測定のχ1,C(1)及びχ1,others(1)については共に０とする。
【０１３０】
式（１２−１）から以下のような計算がなされる。
【数６３】
2006120182.tif 000064
［ＡCPU＝５，ＡC＝∞の場合の(Ｅp)E］
【数６４】
2006120182.tif 000065
【数６５】
2006120182.tif 000066
【数６６】
2006120182.tif 000067
【数６７】
2006120182.tif 000068
【数６８】
2006120182.tif 000069
【０１３１】
以上の計算結果などを図２９にまとめる。ＡC＝∞ではχi,C(p)の項は０となり、Ｅp＝0.6850となるので目標値０．６より大きい。従って目標並列効率がＡCの性能向上次第で達成できる可能性があることが分かる。そこでステップＳ６７でＡCを変更しながら繰り返し並列効率の計算を実施し（ステップＳ５７）、Ｅp(p)〜０．６となるＡCを探す。途中の計算は省略するが、Ｅp(p)〜０．６の場合の計算結果を図２９の第２行に示す。この場合、ＡC＝19.2である。これより(Ｅp)T＝０．６でＣＰＵ性能をＡCPU＝５としたい場合、ＡC＝19.2以上の性能を有する並列計算機システムを探して入れ替えればよいという指針が得られる。
【０１３２】
なお、ＡC＝19.2という数字が高すぎて、そのようなシステムが現存しない場合には、他の並列性能阻害要因の縮小を検討する。図２９の第二行の見積結果によれば、冗長処理ＲRED(4)＝0.2953を改善すべきということが分かる。冗長処理を削減するためには、プログラムのチューニングが必要となる。チューニングしたプログラムを実行し、図２８の処理を再度実行して、ＡCを再度見積もればよい。
【０１３３】
また、図２９に示したようにシステムリプレイス時の並列性能を予測することで、新たに導入する並列計算機システムのシステム運用効率Ｅsystemを推定することも可能である。例えば、ある処理で目標並列効率(Ｅp)T＝０．６をクリアする、ＡCPU＝５、ＡC＝１９．２という新しいシステムで、見積りが図１８に示される処理１乃至４を行った場合、Ｅsystem＝0.6534となるということが分かる。この予測されたＥsystemと、これまでの処理ログから得られるＥsystemとを比較することにより、システムの入れ替えによる稼働率の向上をより根拠があるデータで定量的に示すことができるようになる。
【０１３４】
Ｄ．システム運用効率向上処理
例えば式（１７）で示されたシステム運用効率Ｅsystemという指標を基に、システムの運用効率を評価する。この指標向上のために、どの処理の並列効率をどの程度向上させる必要があるか等、運用効率の向上に関して具体的指針を出す。具体的には、図３０の処理を実施する。
【０１３５】
運用効率データ処理部２４は、運用管理者によるシステム運用効率の目標値(Ｅsystem)T及び繰返回数ｉcmaxの設定入力を受け付ける（ステップＳ７１）。そして、ログデータ格納部３０に格納されている処理時間や並列効率等のデータを読み出し、式（１７）に従ってシステム運用効率Ｅsystemを計算し、記憶装置に格納する（ステップＳ７３）。なお、並列効率を含む並列性能評価指標の計算がなされていない場合には、この段階にてロードバランス寄与率計算部１１、仮想並列化率計算部１２、並列性能阻害要因寄与率計算部１３、並列効率計算部１４などにより並列効率を含む並列性能評価指標などを計算する。そして、ステップＳ７３において計算されたシステム運用効率Ｅsystemがシステム運用効率の目標値(Ｅsystem)Tを超えたか判断する（ステップＳ７５）。もし、Ｅsystem＞(Ｅsystem)Tであると判断された場合には、目標達成を表すメッセージ及びステップＳ７３において計算されたシステム運用効率Ｅsystemを表示装置などの出力装置１１０に出力する（ステップＳ７７）。一方、Ｅsystem≦(Ｅsystem)Tである場合には、カウンタ値ｉcが繰返回数ｉcmax以上になっているか判断する（ステップＳ７９）。もし、カウンタ値ｉcが繰返回数ｉcmax以上であれば、システム運用効率向上処理がうまく機能していないことを知らせるため、目標未達を示すメッセージ及び直前のステップＳ７３で計算されたシステム運用効率Ｅsystemを、表示装置などの出力装置１１０に出力する（ステップＳ８１）。
【０１３６】
一方、カウンタ値ｉcが繰返回数ｉcmax未満であれば、運用効率データ処理部２４は、エンドユーザにはエンドユーザ向けの改善処置を、システム管理者にはシステム管理者向けの改善処置を、プログラマにはプログラマ向けの改善処置を、並列計算機システム開発者又は研究者には並列計算機システム開発者又は研究者向けの改善処置を実施するように勧め、エンドユーザ等は可能なシステム運用効率改善処置を実施する（ステップＳ８３）。なお、実施する処置の例としては、プロセッサ数を最適化させたり、プロセッサの増設、システムのリプレイス、プログラム等のチューニング等である。システム運用効率改善処置の実施後に、再度並列計算機システム２００により並列処理を実施し、同時に測定部２０１による処理時間等の測定処理を実施する（ステップＳ８５）。そして、カウンタ値ｉcを１インクリメントし（ステップＳ８７）、ステップＳ７３に戻る。なお、ステップＳ８３についてはエンドユーザなどが行う処理である場合もあるので点線ブロックで、ステップＳ８５については並列性能分析装置１００の処理ではないので一点鎖線のブロックで示している。
【０１３７】
このような処理を実施することにより、従来の稼働率ＮＷＲsystemでは考慮されていない並列効率を反映させた、すなわち実効的な処理時間を考慮に入れたシステム運用効率を向上させることができるようになる。
【０１３８】
Ｅ．チューニング処理
従来、並列アプリケーション・プログラムのチューニングによる性能向上作業は、達成目標が不明確であったためその作業時間の見積が容易でなかった。目標とした処理時間がチューニングでは到達不可能な場合もあり、チューニング作業を延々と続けて多大な作業時間を費やす場合も多々存在していた。そこで、図３１に示すような処理を実施する。
【０１３９】
まず、チューニング処理部２５は、プログラマによる目標処理時間(τ)T、繰返回数ｉcmax及び制限並列効率(Ｅp)maxの設定入力を受け付ける（ステップＳ９１）。次に、ログデータ格納部３０に格納されている並列効率及び処理時間のデータ（例えばチューニングしようとしているプログラムの処理ログに含まれる並列効率及び処理時間）を用いて、目標処理時間(τ)Tに対応する目標並列効率(Ｅp)Tを計算し、記憶装置に格納する（ステップＳ９３）。目標並列効率(Ｅp)Tは以下の式で計算される。この式は線形外挿を表している。
(Ｅp)T＝max（τi）×Ｅp(p)／(τ)T
【０１４０】
そして目標並列効率(Ｅp)Tが制限並列効率(Ｅp)max以下であるか判断する（ステップＳ９５）。目標処理時間(τ)Tを何らの制限なく設定すると、実現不可能な目標並列効率(Ｅp)Tが設定されることになりかねないため、本ステップにおいて目標処理時間(τ)Tが妥当であるか判断するものである。もし、目標並列効率(Ｅp)Tが制限並列効率(Ｅp)maxを超える場合には、目標処理時間(τ)T又は制限並列効率(Ｅp)maxの設定し直しが必要となるので、ステップＳ９１に戻る。
【０１４１】
一方、目標並列効率(Ｅp)Tが制限並列効率(Ｅp)max以下である場合には、今回測定の処理時間τ(p)が目標処理時間(τ)T以下になっているか判断する（ステップＳ９７）。なお、ステップＳ９７の最初の処理は、必ずＮｏと判断される。もし、今回測定の処理時間が目標処理時間(τ)T以下になっている場合には、目標を達成した旨のメッセージ、達成された並列効率、処理時間τ(p)等のデータを表示装置等の出力装置１１０に出力する（ステップＳ９９）。一方、今回測定の処理時間が目標処理時間(τ)Tを超えている場合には、カウンタ値ｉcが繰返回数ｉcmax以上になっているか判断する（ステップＳ１０１）。もし、カウンタ値ｉcが繰返回数ｉcmax以上になった場合には、目標達成不可能を表すメッセージ、達成できた並列効率、処理時間τ(p)等のデータを、表示装置などの出力装置１１０に出力する（ステップＳ１０３）。
【０１４２】
もし、カウンタ値ｉcが繰返回数ｉcmax未満である場合には、カウンタ値ｉcを１インクリメントする（ステップＳ１０５）。そして、冗長処理、ロードバランス、通信処理、Ｉ／Ｏなどの並列性能阻害要因についてチューニングを行う（ステップＳ１０７）。プログラムの書き換えではなく、ツールやコンパイラ、ランタイム・ライブラリなどによりチューニングを実施しても良い。プログラマが実施する作業である場合もあるのでここでは点線ブロックで示している。チューニングの後に、並列計算機システム２００にてプログラムを再度並列処理し、同時に測定部２０１により処理時間等の測定処理を実施し、記憶装置に格納する（ステップＳ１０９）。ステップＳ１０９も並列性能分析装置１００の処理ではないので一点鎖線によるブロックで表している。この後、データ取得部１０が、並列計算機システム２００から処理時間等のデータを取得し、ログデータ格納部３０に格納する。そして、ロードバランス寄与率計算部１１、仮想並列化率計算部１２、並列性能阻害要因寄与率計算部１３、並列効率計算部１４などにより、並列効率を含む並列性能評価指標を計算し、ログデータ格納部３０に格納する（ステップＳ１１１）。そして、ステップＳ９７に戻る。
【０１４３】
このように、所定のチューニング回数だけ目標処理時間(τ)Tを達成すべくチューニング作業を実施することになるので、プログラマも効率的な作業を実施することができるようになる。
【０１４４】
例えば図２３のような処理時間を基に具体例を示しておく。この際、τ(p)＝３７、Ｅp(4)=0.4443であるので、今仮に(Ｅp)max＝０．６、(τ)T＝２８とすると、(Ｅp)T＝0.5871となる。従って、ステップＳ９５からステップＳ９７に移行する。最初の処理であるからステップＳ９７からステップＳ１０１及びＳ１０５を介してステップＳ１０７に移行する。そこで１回目のチューニングとして通信時間χCを１／２に削減したものとする。その結果を用いてステップＳ１１１で並列効率を含む並列性能評価指標を計算する。そうすると図３２に示すような結果が得られる。なお、図３２は処理時間max(τi)を加えて比較したものである。
【０１４５】
チューニングとして通信時間χCを１／２に削減した場合の計算方法は以下のとおりである。なお、χ1,C(4)＝１０／２＝５、χ2,C(4)＝１１／２＝５．５、χ3,C(4)＝１２／２＝６、χ4,C(4)＝１３／２＝６．５とする。また式（１２−１）から以下のように計算される。
【数６９】
2006120182.tif 000070
（１）ロードバランス寄与率（式（５））
【数７０】
2006120182.tif 000071
（２）仮想並列化率（式（６−１））
【数７１】
2006120182.tif 000072
（３）並列性能阻害要因寄与率（式（７））
【数７２】
2006120182.tif 000073
（４−１）並列効率（式（４−４））
【数７３】
2006120182.tif 000074
（４−２）並列効率（式（９−１））
【数７４】
2006120182.tif 000075
【０１４６】
１回のチューニングでは処理時間max(τi)（＝τ(p)）は３０．５で目標処理時間(τ)Tを達成できていないので、再度何らかのチューニングを実施する必要がある。
【０１４７】
従来、並列性能の評価は、プロセッサ数を変えての時間変化、他のシステムとの処理時間比較、時間内に行われたオペレーション数の比較等、処理時間比較をベースにして行われた。これには２度以上の時間測定が必要で、プログラム開発時間を増加させる原因となっていた。またこの比較という相対的な並列性能評価では、処理データが変わった場合、比較基準を再度測定する必要が出てくる。このように並列性能評価に時間がかる結果、ある条件でしか並列性能が出ないアプリケーション・プログラムが開発されてしまう場合が生ずる。上で述べたような処理を実施することにより、並列効率による並列性能評価が１回の測定でできるようになり、並列アプリケーション・プログラムの開発時間のうちの性能評価時間を大幅に短縮することが可能となる。その結果、並列性能を十分考慮した並列アプリケーション・プログラムの開発が現実的に実施できるようになる。
【０１４８】
また従来では、アプリケーション・プログラムのチューニングによる性能向上作業は達成目標が不明確であったため作業時間見積が容易でなかった。またどのような場合に作業を終えるかが明確にならず、結果的に多大な作業時間を費やす場合も生じていた。さらにアプリケーション・プログラムのチューニングではなく再開発が必要になってしまう場合もあった。上で述べたような処理を実施することにより、アプリケーション・プログラムのチューニングによる並列効率向上の目標を明確に定め、チューニングの繰返回数等で作業時間の予測もできるようになる。
【０１４９】
さらに従来では、アプリケーション・プログラムのチューニングはアプリケーション・プログラムの中で処理時間が長い手続き（アプリケーション・プログラムの一部分）を時間測定等により探し出し、その手続き内で問題となっている並列性能阻害要因を処理時間の比較により探し出し、その処理時間を減らすという形で行われた。上で述べたような処理により、このようなアプリケーション・プログラムの一部分のチューニングに対し、ロードバランスに対する性能評価が初めて可能となった。
【０１５０】
Ｆ．アルゴリズム選定処理
従来、並列アプリケーション・プログラムの一部に用いるアルゴリズムを変えたもの同士の性能比較には処理時間を用いたが、処理時間減少の原因が並列処理の効果によるものか、機能の違いによる効果か（例えば演算数の減少か）判別できなかった。その結果、処理時間は短いがスケーラビリティが悪いアルゴリズムにたくさんのプロセッサをつぎ込む資源の無駄使いを見逃すこととなった。本実施の形態では、より並列効率の良いアルゴリズムを選定して、システム全体の運用効率を向上させる。ここではまず、並列処理に向かないアルゴリズムと並列処理に向くアルゴリズムを比較した例を示しておく。
【０１５１】
［並列処理に向かないアルゴリズム］
例えば図３３に示すような処理時間の測定がなされた場合を例に説明する。なお、χ1,C(1)＝０とする。また式（１２−１）から以下のように計算される。
【数７５】
2006120182.tif 000076
（１）ロードバランス寄与率（式（５））
【数７６】
2006120182.tif 000077
（２）仮想並列化率（式（６−１））
【数７７】
2006120182.tif 000078
（３）加速率（式（６−２））
【数７８】
2006120182.tif 000079
（４）並列性能阻害要因寄与率（式（７））
【数７９】
2006120182.tif 000080
（４−１）並列効率（式（４−４））
【数８０】
2006120182.tif 000081
（４−２）並列効率（式（９−１））
【数８１】
2006120182.tif 000082
【０１５２】
［並列処理に向くアルゴリズム］
図３４に示すような処理時間が測定された場合の例を説明する。なお、χ1,C(1)＝０とする。また式（１２−１）から以下のように計算される。
【数８２】
2006120182.tif 000083
（１）ロードバランス寄与率（式（５））
【数８３】
2006120182.tif 000084
（２）仮想並列化率（式（６−１））
【数８４】
2006120182.tif 000085
（３）加速率（式（６−２））
【数８５】
2006120182.tif 000086
（４）並列性能阻害要因寄与率（式（７））
【数８６】
2006120182.tif 000087
（４−１）並列効率（式（４−４））
【数８７】
2006120182.tif 000088
（４−２）並列効率（式（９−１））
【数８８】
2006120182.tif 000089
【０１５３】
以上の処理結果をまとめると図３５のようになる。並列処理に向かないアルゴリズムの番号をｊ＝１、並列処理に向くアルゴリズムの番号をｊ＝２とすると、ｊ＝１では加速率Ａp＝５．０００で有限であり、プロセッサを増加させても５個分が効率的に限度であることが分かる。一方、ｊ＝２では加速率Ａp＝∞であり、プロセッサを投入すればするほど処理時間が短くなる可能性がある。なお、処理時間τはｊ＝１の方が１１０でｊ＝２の１２０より短いので、今まであれば並列処理に向かないアルゴリズムであるｊ＝１を選択してしまう場合があった。
【０１５４】
そこで本実施の形態では図３６に示す処理をアルゴリズム選定処理部２６にて実施するものとする。まず、プログラマにより目標処理時間(τ)Tの設定入力を受け付ける（ステップＳ１２１）。そして、初期設定として、アルゴリズム番号ｊを１に、最適なアルゴリズム番号ｊTを１に設定する（ステップＳ１２３）。また、ｊ＝１の場合に、目標処理時間(τ)Tを達成するために必要なプロセッサ数(ｐ)1を線形外挿で計算する（ステップＳ１２５）。すなわち、ログデータ格納部３０に格納されたアルゴリズム番号ｊ＝１の処理時間等を用いて、(ｐ)1＝(τ)1／(τ)T／(Ｅp)1＋(ｐ)1を計算し、記憶装置に格納する（ステップＳ１２５）。また、最適なアルゴリズムについて必要なプロセッサ数(ｐ)T＝ＩＮＴ（(ｐ)1＋０．９９）と設定する。さらに、ｐmin＝ｐ1と設定する。
【０１５５】
次にｊを１インクリメントする（ステップＳ１２７）。そして、ｊの場合のプロセッサ数(ｐ)jを以下の式で計算し、記憶装置に格納する（ステップＳ１２９）。
(ｐ)j＝(τ)j／(τ)T／(Ｅp)j＋(ｐ)j
そして、(ｐ)j＜(ｐ)minであり、且つ(Ａp)j＞(ｐ)jであるか確認する（ステップＳ１３１）。すなわち、(ｐ)jが最小であり、当該アルゴリズムの加速率(Ａp)jより最適プロセッサ数が小さくなっているか、すなわち実現可能かを確認する。ステップＳ１２５及びＳ１２９では線形外挿で単純に(ｐ)jを計算しているので、実現可能か否かをここで担保するものである。もし、(ｐ)j＜(ｐ)minであり、且つ(Ａp)j＞(ｐ)jである場合には、アルゴリズム番号ｊをｊTに設定する。すなわち、ｊT＝ｊ。また、(ｐ)T＝ＩＮＴ（(ｐ)j＋０．９９）と設定する（ステップＳ１３３）。
【０１５６】
ステップＳ１３１又はステップＳ１３３の後に、ｊがアルゴリズム数ｊmax以上になっているか確認する（ステップＳ１３５）。すなわち全てのアルゴリズムについて処理したか判断する。もし、ｊ≧ｊmaxであれば、最終的にｊTで特定されたアルゴリズム番号及びその場合のプロセッサ数(ｐ)T並びに他の処理結果（ｊ，(ｐ)j，(Ａp)j，(τ)j等のセット）を、表示装置等の出力装置１１０に出力する（ステップＳ１３７）。一方、ｊ＜ｊmaxであればステップＳ１２７に戻る。
【０１５７】
このようにすれば実現性のある範囲内でプロセッサ数が少なく目標処理時間を達成することができるアルゴリズムを特定することができる。また、本処理フローで最適とされたアルゴリズムだけではなく、あまりプロセッサ数が異ならないアルゴリズムでチューニングなどがやりやすいアルゴリズムを選択することもできる。
【０１５８】
図３５に示した２つのアルゴリズムの例で具体的に説明する。初めに目標処理時間(τ)T＝５０を設定する。次にそれらのアルゴリズムの(Ｅp)j，(τ)jを用いて線形外挿により必要なプロセッサ数(ｐ)jを計算する。図３６に示した処理フローでは(ｐ)jを線形外挿で求めるため、冗長処理のみを考慮したＡp(4)をプロセッサ数の上限として導入して、Ａp(4)＞(ｐ)jであれば(ｐ)jを適用できるものとする。その結果、並列処理に向かないアルゴリズムの限界性能が5.000であるのに対して(ｐ)jは7.872で、並列処理に向かないアルゴリズムについては(ｐ)jを適用できないことが分かる。一方、並列処理に向くアルゴリズムの限界性能は∞であるので、6.618のプロセッサで(τ)T＝５０を達成できる可能性がある。従って並列処理に向くアルゴリズムｊT＝１を選ぶことができる。その場合の初めの目安は、6.618を切り上げして得た(ｐ)T＝７である。今まではτの１１０と１２０を比べて処理時間が短いが並列処理に向かないアルゴリズムを採用する場合が多かったが、図３６の処理フローによりｐ＝４では処理時間が長いが並列処理に向くアルゴリズムを選択できるようになる。
【０１５９】
Ｇ．並列性能評価処理
本実施の形態においては、実運用における全処理の並列性能評価指標のログデータを作成することが可能となる。このログデータにおいてある特定の処理をターゲットにすれば専用並列計算機システムに必要な仕様書（ＣＰＵ性能、通信性能、Ｉ／Ｏ性能、ランタイム・ライブラリの性能等）を求めることが可能となる。全アプリケーションによる処理をターゲットにすればそのログに対する汎用並列計算機システムに必要な仕様書を作成することも可能となる。
【０１６０】
例えば図３７に示した処理番号１乃至４の処理性能を向上するためには、通信性能を上げること、又はＣＰＵの性能と通信の性能の比を保つ形で両者の性能向上を図れば良いことが分かる。並列性能評価処理部２７は、例えばログデータ格納部３０に格納されているデータから図３７のようなテーブルを構成し、表示装置等の出力装置１１０に出力する。また、並列性能阻害要因のうちどの処理においても相対的に高い値を示しているものを強調表示するような処理を行っても良い。また、処理５の性能を向上するためには、システムのリプレイス等による性能向上ではなく、アプリケーション・プログラムのチューニング等が必要なことが分かる。これは、処理５だけ冗長処理による並列性能阻害要因寄与率が大きな値を示しているからであり、並列性能評価処理部２７は特徴的な処理についても抽出して、例えば強調表示させるような場合もある。
【０１６１】
通信性能を決定する方法としては、例えばシステムリプレイスデータ処理で説明したような処理を実施すればよい。すなわち、通信性能の倍率以外は１に固定してしまい、目標のＥp(4)をクリアするまで実施する。
【０１６２】
なお、処理数の多い処理番号１乃至４のパターンの処理に着目して通信性能を向上すれば、このシステムは汎用並列計算機システムとなる。一方、処理数の少ない処理番号５のパターンの処理に着目して冗長処理を軽減する仕組みを計算機システムに導入すれば、専用並列計算機システムとなる。また、処理番号５のアプリケーション・プログラムのチューニングを行い、冗長処理を減らせば、通信性能を向上するだけで１乃至５の汎用並列計算機システムとなる。
【０１６３】
従来では、アプリケーション・プログラムの並列処理の特徴により並列計算機システムの並列性能が大きく変わるため、並列計算機システムを開発することが容易でなかった。それを克服する方法として、アプリケーション・プログラムを特定し並列性能を分析して、それに合った並列計算機システムを開発する方法が多く用いられていた。しかしこの方法ではアプリケーション・プログラムが変わると、全く並列性能を発揮できないシステムを開発してしまう恐れがある。本実施の形態によれば、実運用における全処理の並列性能評価指標のログデータを作成することが可能となるため、このログデータを基にして、ある特定の処理をターゲットにすれば専用並列計算機システムに必要な仕様書（ＣＰＵ性能、通信性能、Ｉ／Ｏ性能、ランタイム・ライブラリの性能等）を作成することが可能となる。また、全処理をターゲットにすればそのログに対する汎用並列計算機システムに必要な仕様書を作成することも可能となる。
【０１６４】
また従来では、並列計算機システムの並列性能阻害要因を定量的に把握する手段が組み込まれているか否かはシステムにより大きく差があり、並列性能阻害要因を定量的に把握する手段を全く持っていないシステムもある。本実施の形態では、式（７）で示すように、並列性能阻害要因が無い状態から任意に要因を追加できる機能を持つため、販売後、システムのアプグレード時に要因測定機能を追加して評価精度を高めることができる。
【０１６５】
さらに、従来の性能評価指標である例えばflop/s，Mop/s，tpmC等は、アプリケーション・プログラムの種類によって適用できるものとできないものがある。本実施の形態では、指標を時間比で表わすため、全てのアプリケーション・プログラムに対して有効であり、性能評価を適切に実施できるようになる。さらに、従来の並列性能評価方法には特別な並列処理にしか適用できないものがあったが、本実施の形態によれば全ての並列処理に適用することができる。
【０１６６】
以上本発明の実施の形態を説明したが、これにより、並列処理の性能を表わす並列効率に対し、それを低下させる割合を並列性能評価指標、すなわちロードバランス寄与率、仮想並列化率及び並列性能阻害要因で示すことができるようになる。並列性能評価指標にロードバランス寄与率が加わり、全ての並列処理の並列性能評価が可能となる。
【０１６７】
また、式（８−２）を用いれば、Ｒp(p)がほぼ１である場合には、並列効率の計算に推測値τ(1)を必要としないため、τ(1)を測定できないグリッドやクラスタによる並列処理を含め、全ての並列処理の正確な（推測値τ(1)を含まないと言う意味で）並列性能評価が可能となる。
【０１６８】
さらに、式（９−１）及び式（９−２）を用いれば、Ｒp(p)＜１の場合でも、並列効率の計算のためにτ(1)を見積ることにより、τ(1)を測定できないグリッドやクラスタによる並列処理を含め、全ての並列処理の並列性能評価が可能となる。
【０１６９】
式（７）の式の形により、対象とする並列計算機システムに特有の並列処理阻害要因を随時導入可能となり、詳細な性能評価を容易に実施できる。さらに、並列性能阻害要因の寄与率を並列効率に対する百分率で捉えられ、直感的な並列性能評価が可能となる。
【０１７０】
また、ロードバランスの寄与が、並列効率に対する比率という数値で明確となったため、今まで評価できなかった並列性能に対するロードバランスの寄与が具体的に示せるようになる。
【０１７１】
また、並列性能指標を計算して提示するだけではなく、処理時間測定により決定された並列効率を用い、効率の良い処理を行うプロセッサ数の決定ができる。さらに、並列処理の効率を考慮した上で、プロセッサの増減を検討できる。
【０１７２】
さらに、性能仕様が異なる新しい並列計算機システムの導入を机上で検討できる。また、並列性能評価指標を用いて，システム運用における利用効率管理ができる。
【０１７３】
以上本発明の実施の形態を説明したが、本発明はこれに限定されない。例えば図１９の機能ブロック図は一例であり、必ずしもプログラムモジュールとは対応しない。また、プロセッサ数最適化処理部２１、プロセッサ増設見積処理部２２、システムリプレイスデータ処理部２３、運用効率データ処理部２４、チューニング処理部２５、アルゴリズム選定処理部２６、並列性能評価処理部２７は全て備えていなければならないものではなく、全て設けられる場合もあれば全く設けられない場合もある。さらに、任意の組み合わせにて設けられる場合もある。
【０１７４】
［実施例］
上で述べた実施の形態は全ての並列処理（メモリ、ネットワーク、ＣＰＵ性能が同じホモ構成又は異なるヘテロ構成のグリッド、クラスタ又は分散メモリ、若しくはＳＭＰ（対称型マルチプロセッシング：Symmetric MultiProcessing）、ＳＭＰ＋分散メモリ、ＮＵＭＡ（NonUniform Memory Access）等）に適用可能である。以下では、代表的な態様について計算例を示しておく。
【０１７５】
（１）ホモ構成におけるグリッド等（χ1,j(1)＝０）
グリッドやクラスタで処理を行う場合、各プロセッサへの処理の割り付けや処理結果の回収にネットワークを用いるため通信が発生するが、これは１つのプロセッサで処理する場合には生じない。このような処理はχ1,j(1)＝０の処理である。ここでは並列性能阻害要因を通信のみとし、χ1,C(1)＝０であるような処理の並列性能を評価する。例えば図３８のような経過時間の測定結果が得られた場合について説明する。
【０１７６】
式（３）から以下の計算がなされる。
【数８９】
2006120182.tif 000090
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９０】
2006120182.tif 000091
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数９１】
2006120182.tif 000092
【０１７７】
以上計算された並列性能評価指標をまとめると図３９のようになる。Ａp(p)＝∞ゆえｐ＝∞で並列処理した時の性能向上の可能性は無限であるが，プロセッサ数ｐ＝４を投入した現実の性能向上Ｅp(4)・ｐは1.928である。その理由は、並列効率Ｅp(4)が、ロードバランス寄与率で９３％（Ｒb(4)＝0.9286）となり、通信によりさらに４８％（Ｒc(4)＝0.4808）低下するためである。
【０１７８】
（２）ホモ構成におけるグリッド等（χ1,RED(1)≠０）
数値計算では、アプリケーション・プログラムを全てのプロセッサにコピーし、ループ処理のインデックス等を識別して各プロセッサで処理を分担する、いわゆるデータパラレルで並列処理する場合が多い。データパラレルでは、例えばループ間に並列処理できない処理が残る。この処理を全プロセッサが行うとき、内容が同じ処理であることからこれを冗長処理と呼ぶ。冗長処理の特徴は、並列処理でない場合も必要な処理のため必ずχ1,RED(1)≠０となることである。ここでは並列性能阻害要因を冗長処理のみとし、χ1,RED(1)≠０であるような処理の並列性能を評価する。例えば図４０のような経過時間の測定結果が得られた場合について説明する。
【０１７９】
式（３）から以下の計算がなされる。
【数９２】
2006120182.tif 000093
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９３】
2006120182.tif 000094
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数９４】
2006120182.tif 000095
【０１８０】
以上計算された並列性能評価指標をまとめると図４１のようになる。ここではＡp(p)＝9.737ゆえｐ＞９の並列処理は無意味である。プロセッサ数ｐ＝４を投入した現実の性能向上Ｅp・ｐは2.874である。その理由は、並列効率Ｅpが、ロードバランス寄与率で９４％（Ｒb(4)＝0.9398）となり、冗長処理によりさらに３１％（ＲRED(4)＝0.3141）低下するためである。
【０１８１】
（３）ホモ構成におけるグリッド等（χ1,j(1)≠０：但し冗長処理以外）
例えば通信ライブラリの処理時間はネットワーク通信と演算で構成される。この演算時間をχ1,C(1)として扱う。ここでは並列性能阻害要因を通信のみとし、χ1,C(1)≠０であるような処理の並列性能を評価する。例えば図４２のような経過時間の測定結果が得られた場合について説明する。
【０１８２】
式（３）から以下の計算がなされる。
【数９５】
2006120182.tif 000096
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９６】
2006120182.tif 000097
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数９７】
2006120182.tif 000098
【０１８３】
以上計算された並列性能評価指標をまとめると図４３のようになる。ここではＡp(p)＝22.57ゆえｐ＜２２で処理すべきである。プロセッサ数ｐ＝４を投入した現実の性能向上Ｅp・ｐは1.859である。その理由は、並列効率Ｅpが通信により５３％（ＲC＝0.5263）低下するためである。ロードバランス寄与率は９４％（Ｒb(4)＝0.9375）で、ロードバランスはこの場合の並列性能を阻害する主要な要因ではない。実施例（１）と異なるところは、χ1,C(1)≠０のためＡp(p)が有限値になるところである。
【０１８４】
通信処理に含まれる演算はプロセッサの増加と共に変化する場合がある。これをΧi,C(p)とみなして並列性能評価に取り入れることで、プロセッサ数によって異なる演算数を評価に組み込むことが可能となる。
【０１８５】
（４）ホモ構成におけるグリッド等（待ち（アイドリング：ウエイト（wait）とも呼ぶ）がある場合）
特定のプロセッサが処理し、結果を他のプロセッサが使う場合、その処理が終了するまで他のプロセッサは次の処理を開始できない。例えば特定のプロセッサのみがデータベース（ＤＢ）をアクセスできる場合がこれに当たる。図４４ではプロセッサ＃１でこの処理（γ'）を行う。他のプロセッサはＤＢ処理の間、待ち状態になる。このようにＣＰＵを待たせておくアイドリング処理が存在する場合の並列性能を評価することができる。図４４のような経過時間の測定結果が得られたものとする。
【０１８６】
式（３）から以下の計算がなされる。
【数９８】
2006120182.tif 000099
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数９９】
2006120182.tif 000100
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１００】
2006120182.tif 000101
【０１８７】
以上計算された並列性能評価指標をまとめると図４５のようになる。Ａp(4)＝∞ゆえｐ＝∞で並列処理した時の性能向上の可能性は無限であるが、ｐ＝４を投入した現実の性能向上Ｅp・ｐは2.226である。その理由は、並列効率Ｅpが通信により３２％（ＲC(4)＝0.3158）、アイドリングにより１１％（ＲW(4)＝0.1108）低下するためである。ロードバランス寄与率は９７％（Ｒb(4)＝0.9704）で、ロードバランスはこの場合並列性能を阻害する主要な要因ではない。
【０１８８】
（５）ホモ構成におけるグリッド等（他の処理があるために待ちがある場合）
グリッドやクラスタで処理を行う場合、各プロセッサを自分の処理のみで使うことは希で、一般に複数の処理の中に共存することになる。その場合他の処理が割り込むことによる待ちが生じる。これを図４６に示す。このように他の処理があるために待ちがある場合の並列性能を評価する。図４６のような経過時間の測定結果が得られたものとする。
【０１８９】
式（３）から以下の計算がなされる。
【数１０１】
2006120182.tif 000102
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０２】
2006120182.tif 000103
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１０３】
2006120182.tif 000104
【０１９０】
以上計算された並列性能評価指標をまとめると図４７のようになる。Ａp(4)＝∞ゆえｐ＝∞で並列処理した時の性能向上の可能性は無限であるが、ｐ＝４を投入した現実の性能向上Ｅp・ｐは1.808である。その理由は、並列効率Ｅpが、ロードバランス寄与率で７９％（Ｒb(4)＝0.7875）となり、タイムシェアリングのための待ちにより２８％（ＲW(4)＝0.2778）、通信によりさらに１４％（ＲC＝0.1418）低下するためである。ＲW(4)は他の処理により生じるので、Ｒb(4)はシステム全体を考慮したロードバランス寄与率となる。他の処理がある場合、Ｒb(4)とＲW(4)に注目する必要がある。たとえＲb(4)＝１であっても、ＲW(4)が大きければそれは混んだシステムを利用していることになり、Ｅpは低い値となる。グリッド又はクラスタ処理を展開する際、特にＲb(4)が１に近づくように且つＲWが０になるようにシステムを選択することで、並列処理を効率良く行うことが可能となる。このような事が分かるのは本実施の形態が初めてである。
【０１９１】
尚、自処理（目的の処理）か他処理（目的外の処理）かを見分ける方法として、ＣＰＵ時間と経過時間を測定する方法がある。一般にＣＰＵ時間は自処理のみの時間、経過時間は他処理を含んだ時間となる。従ってタイムシェアリングのための待ち時間＝経過時間−ＣＰＵ時間とできる場合がある。
【０１９２】
（６）ホモ構成におけるグリッド等（データパラレル処理の場合）
データパラレル処理は、例えば１０００件のデータを４プロセッサで２５０件ずつ分割して処理するような、各プロセッサの手続きが同じでデータが異なる並列処理である。並列処理できない処理は、全プロセッサのデータを同じにする、すなわち冗長処理を行う場合と、あるプロセッサで処理して全プロセッサに放送する場合がある。ここでは両者の並列性能を評価する。
【０１９３】
［冗長処理を用いたデータパラレル処理］
図４８のような経過時間の測定結果が得られたものとする。また、χ1,C＝０とする。
【０１９４】
式（３）、式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０４】
2006120182.tif 000105
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１０５】
2006120182.tif 000106
【０１９５】
以上計算された並列性能評価指標をまとめると図４９のようになる。Ａp(4)＝２１．０１ゆえ、プロセッサ数はｐ≦２１で選択すべきである。プロセッサ数ｐ＝４を投入した時の現実の性能向上Ｅp・ｐは2.800である。その理由は、並列効率Ｅp(4)が通信で２０％（ＲC＝０．２０００）、冗長処理で１３％（ＲRED(4)＝0.1333）低下するためである。
【０１９６】
［並列処理できない部分を特定のプロセッサで処理するデータパラレル処理］
並列処理できない部分を冗長処理する代わりに、特定のプロセッサで処理する場合がある。図５０は図４８の冗長処理の代わりにプロセッサ＃１でのみ処理を行い（γ'の部分）、結果を各プロセッサに放送した場合である。当然その間、他のプロセッサはプロセッサ＃１の結果待ちとなる。またここではγ'を並列処理として取り扱ったが、逐次処理として並列処理阻害要因に加えれば、より詳細な並列性能評価ができる。しかしそのためにはγ'の処理が逐次処理か並列処理かの判別が必要となる。図５０のような経過時間の測定結果が得られたものとする。また、χ1,C＝０とする。
【０１９７】
式（３）、式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０６】
2006120182.tif 000107
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１０７】
2006120182.tif 000108
【０１９８】
以上計算された並列性能評価指標をまとめると図５１のようになる。Ａp(4)＝∞で並列処理した時の性能向上は無限であるが、ｐ＝４を投入した時の現実の性能向上Ｅp・ｐは2.800である。その理由は、並列効率Ｅp(4)が通信で２０％（ＲC(4)＝0.2000）、待ちで１０％（ＲW(4)＝0.1000）低下するためである。図４９と図５１ではＲp(4)、Ａp(4)、ＲRED(4)、ＲWの値が異なる。一方Ｒb(4)及びＥp(4)は同じ値となる。図５１では並列処理できない部分γ'を並列処理として評価したため、Ｒp(4)＝１となった。またプロセッサ＃２，３，４の冗長処理が待ちに変わり、並列性能阻害要因ＲW(4)に代替される。
【０１９９】
（７）ホモ構成におけるグリッド等（コントロールパラレル処理の場合）
コントロールパラレル処理は、通常各プロセッサの手続きが異なる。このため各プロセッサの手続き時間がばらばらな並列処理となる場合が多い。ここではコントロールパラレルの並列性能を評価する。図５２のような経過時間の測定結果が得られたものとする。また、χ1,C＝０とする。
【０２００】
式（３）から以下の計算がなされる。
【数１０８】
2006120182.tif 000109
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１０９】
2006120182.tif 000110
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１１０】
2006120182.tif 000111
【０２０１】
以上計算された並列性能評価指標をまとめると図５３のようになる。Ａp(4)＝∞で並列処理した時の性能向上は無限であるが、ｐ＝４を投入した時の現実の性能向上Ｅp・ｐは2.528である。その理由は、並列効率Ｅpがロードバランス寄与率で８２％（Ｒb(4)＝0.8231）、さらにタスク生成、通信、待ちをあわせて２３％（ＲTC(4)＋ＲC(4)＋ＲW(4)＝0.0344＋0.1089＋0.0888）低下するためである。
【０２０２】
並列性能の向上を図るには、並列性能指標を比べ、並列性能の低下に影響力の大きい順に改善の余地を検討する。図５３の場合、これはＲb(4)，ＲC(4)，ＲW(4)，ＲTC(4)の順となる。Ｒb(4)＝１になればＥp(4)・ｐ＝3.071（＝2.528／0.8231）となる。そのため例えば、プロセッサ＃１の処理時間が他のプロセッサと同じになるように処理スケジュールを変更することを試みる。次の改善の余地はＲC(4)の削減である。削減方法としては例えば通信性能が２倍になるようなハードウェアに置きかえることが考えられる。その場合には、以下のような計算がなされる。
【０２０３】
まず、式（３）から以下の計算がなされる。
【数１１１】
2006120182.tif 000112
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１１２】
2006120182.tif 000113
並列効率については、式（４−４）以下のような計算がなされる。
【数１１３】
2006120182.tif 000114
さらに、以下のような計算もなされる。
【数１１４】
2006120182.tif 000115
もし、通信の性能を上記のように向上させ、さらにＲb(4)＝１にロードバランスを変更できれば、以下のような計算がなされる。
【数１１５】
2006120182.tif 000116
【０２０４】
Ｅ．チューニング処理において示したように、本実施の形態では、各並列性能阻害要因をチューニングして改善した時の並列性能を推測できる。従来のチューニングでは目標値を処理時間にしていたため、不可能な目標値が設定されることがあったが、本実施の形態ではＥpを用いてリーズナブルな目標設定が可能となる。さらに本実施の形態では、並列効率等を１回の測定結果で計算することができるため、チューニング時の性能評価時間を短縮することが可能である。さらに、従来のチューニングでは、入力データや処理機能を変更するとそれまで測定した各並列性能阻害要因に対する処理時間を性能評価に使うことができなくなる。従って入力データや処理機能毎に独立した並列性能評価を行ってきた。本実施の形態では性能評価指標がすべて比率の形になっており、異なった入力データや処理機能の並列性能を比較できる。
【０２０５】
（８）ホモ構成におけるグリッド等（コントロールパラレルでマスタ・スレイブ処理を行う場合）
コントロールパラレル処理は、通常各プロセッサの手続きが異なる。マスタ・スレイブ処理の場合、１つのプロセッサが他のプロセッサの管理をするマスタとなり、その指示に従って複数のプロセッサが処理を実施する。ここではプロセッサ＃１をマスタプロセッサとした場合の並列性能を評価する。図５４のような経過時間の測定結果が得られたものとする。また、χ1,C＝０とする。
【０２０６】
式（３）から以下の計算がなされる。
【数１１６】
2006120182.tif 000117
式（５）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１１７】
2006120182.tif 000118
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１１８】
2006120182.tif 000119
【０２０７】
以上計算された並列性能評価指標をまとめると図５５のようになる。Ａp(4)＝∞ゆえｐ＝∞で並列処理した時の性能向上は無限であるが、ｐ＝４を投入した時の現実の性能向上Ｅp・ｐは2.055である。その理由は、並列効率Ｅpがロードバランス寄与率で８６％（Ｒb(4)＝0.8571）、さらに待ちで２３％（ＲW(4)＝0.2340）、タスク生成、通信をあわせて１７％（ＲTC(4)＋ＲC(4)＝0.0385＋0.1282）低下するためである。 マスタスレイブ処理を行う場合、マスタプロセッサの待ち時間が処理全体の性能に重要な影響を及ぼすことが知られているが、本実施の形態では待ちが性能に及ぼす影響を定量的に捉え、マスタスレイブ処理が有効に行われているかを判断することができる。
【０２０８】
（９）ホモ構成におけるグリッド等（データパラレルとコントロールパラレル混在の場合）
データパラレルとコントロールパラレルを混在させた処理は、ロードバランスを保たせることが難しいため通常の業務では使用されない。本実施の形態ではこのような場合の並列性能評価も可能となる。本実施の形態は、処理のコントロールのための性能評価指標を提供するため、このような処理に対する実用的な評価方法を提供するものである。ここではプロセッサ＃１乃至＃４はコントロールパラレルで、プロセッサ＃５乃至＃８はデータパラレルで、プロセッサ＃１をマスタプロセッサとした場合の並列性能を評価する。図５６のような経過時間の測定結果が得られたものとする。また、χ1,C＝０とする。
【０２０９】
式（３）から以下の計算がなされる。
【数１１９】
2006120182.tif 000120
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１２０】
2006120182.tif 000121
並列効率については、順番に式（４−４）、式（４−５）、式（８−２）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１２１】
2006120182.tif 000122
【０２１０】
以上計算された並列性能評価指標をまとめると図５７のようになる。Ａp(8)＝47.62ゆえ、ｐ＜４７で並列処理すべきである。プロセッサ数ｐ＝８を投入した時の現実の性能向上Ｅp・ｐは5.242である。その理由は、並列効率Ｅp がロードバランス寄与率で９３％（Ｒb(8)＝0.9286）、さらに待ちで１１％（ＲW(8)＝0.1080）、通信で１１％（ＲC(8)＝0.1124）、冗長処理，タスク生成をあわせて９％（ＲRED(8)＋ＲTC(8)＝0.0592＋0.0296）低下するためである。このように本実施の形態はデータパラレルとコントロールパラレル混在という並列処理方式に適用することができる。
【０２１１】
（１０）グリッド等のヘテロ構成で冗長処理がある場合（χ1,RED≠０）
グリッドやクラスタでつながれたプロセッサは、ＣＰＵの能力が異なっている場合が多い。これをヘテロ構成と呼ぶ。本実施の形態では、ヘテロ構成の場合にも適用できる。ここでは実施例（２）においてプロセッサ＃１が１／２の性能である場合の並列性能を評価する。図５８のような経過時間の測定結果が得られたものとする。
【０２１２】
式（３）から以下の計算がなされる。
【数１２２】
2006120182.tif 000123
式（５）、式（１２−１）、式（６−１）、式（６−２）及び式（７）からそれぞれ以下のような計算がなされる。
【数１２３】
2006120182.tif 000124
並列効率については、順番に式（４−４）、式（４−５）、式（９−１）、式（９−２）からそれぞれ以下のような計算がなされる。
【数１２４】
2006120182.tif 000125
【０２１３】
以上計算された並列性能評価指標をまとめると図５９のようになる。Ａp(4)＝9.881ゆえ、ｐ＞９の並列処理は無意味である。ｐ＝４のプロセッサを投入した現実の性能向上Ｅp・ｐは1.918である。その理由は、並列効率Ｅpが、ロードバランス寄与率で６３％（Ｒb(4)＝0.6250）となり、冗長処理によりさらに３１％（ＲRED(4)＝0.3103）低下するためである。図４１と比較するとロードバランス寄与率Ｒb(4)が0.9398から0.6250に低下することが分かる。これは図４１と図５９に示されるようにプロセッサ＃１の違いが性能評価指標Ｒb(4)に反映された結果である。一般に等分割したタスクをＣＰＵ能力が異なったプロセッサで処理するとロードバランスが崩れる。本実施の形態ではこれをＲb(4)によって検知することができる。
【０２１４】
（付記１）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２１５】
（付記２）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２１６】
（付記３）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２１７】
（付記４）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２１８】
（付記５）
並列計算機システムの並列効率を計算する並列効率計算方法であって、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第１の処理時間と、前記第２の処理時間とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２１９】
（付記６）
前記ロードバランス寄与率計算ステップにおいて、
前記ロードバランス寄与率を、
前記並列計算機システムに含まれる全プロセッサにおいて実施された処理の全処理時間を、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間及び前記並列計算機システムにおいて使用したプロセッサ数により除することにより計算する
ことを特徴とする付記１乃至４のいずれか１つ記載の並列効率計算方法。
【０２２０】
（付記７）
前記仮想並列化率計算ステップにおいて、
前記仮想並列化率を、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を、１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算する
ことを特徴とする付記１又は４記載の並列効率計算方法。
【０２２１】
（付記８）
前記並列性能阻害要因寄与率計算ステップにおいて、
特定の並列性能阻害要因についての並列性能阻害要因寄与率を、
前記並列計算機システムに含まれる各プロセッサにおける前記特定の並列性能阻害要因部分の処理時間の和を、前記並列計算機算システムに含まれる各プロセッサの処理時間の和により除することにより計算する
ことを特徴とする付記１乃至３のいずれか１つ記載の並列効率計算方法。
【０２２２】
（付記９）
前記加速率計算ステップにおいて、
前記加速率を、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を１プロセッサにより同一処理を実施した場合の第３の処理時間に相当する処理時間により除することにより計算される仮想並列化率を１から差し引いた値の逆数として計算する
ことを特徴とする付記２記載の並列効率計算方法。
【０２２３】
（付記１０）
前記処理時間が、対応する事象の確認回数で表されることを特徴とする付記１乃至９のいずれか１つ記載の並列効率計算方法。
【０２２４】
（付記１１）
計算された前記並列効率に前記並列計算機システムにおいて使用したプロセッサ数を乗じて補助指標を計算し、記憶装置に格納するステップ、
をさらに含む付記１乃至１０のいずれか１つ記載の並列効率計算方法。
【０２２５】
（付記１２）
前記第３の処理時間を、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間と前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間との和により計算する
ことを特徴とする付記７又は９のいずれか１つ記載の並列効率計算方法。
【０２２６】
（付記１３）
前記第１の処理時間が、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の和をプロセッサ数で除した値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の最大値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の最小値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列処理の処理時間と並列性能阻害要因の処理時間の総和が最大となるプロセッサにおける冗長処理の処理時間の値のいずれかである
ことを特徴とする付記５又は１２記載の並列効率計算方法。
【０２２７】
（付記１４）
前記第１の処理時間が、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理以外の並列性能阻害要因による処理時間から２以上のプロセッサ数で発生し且つプロセッサ数に依存する並列化阻害要因による処理時間を減じた第４の処理時間を全プロセッサについて加算した値をプロセッサ数で除した値、全プロセッサにおける前記第４の処理時間の最大値、全プロセッサにおける前記第４の処理時間の最小値のいずれかの値である
ことを特徴とする付記５又は１２記載の並列効率計算方法。
【０２２８】
（付記１５）
目標並列効率を設定するステップと、
計算された前記並列効率とプロセッサ数の積を前記目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２２９】
（付記１６）
システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和と、前記増加分の稼働時間及び前記予測並列効率の積との和を、前記並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２３０】
（付記１７）
前記並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、
前記新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２３１】
（付記１８）
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和を、前記並列計算機システムに現在含まれる各プロセッサの全稼働時間で除することにより、システム運用効率を計算し、記憶装置に格納するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２３２】
（付記１９）
目標処理時間を設定するステップと、
前記目標処理時間を用いて目標並列効率を計算し、記憶装置に格納するステップと、
前記目標並列効率の妥当性を確認するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２３３】
（付記２０）
前記目標並列効率の妥当性が確認された場合には、チューニング実施後の並列効率を計算し、記憶装置に格納するステップと、
前記チューニング実施後の並列効率と前記目標並列効率とを比較するステップと、
をさらに含む付記１９記載の並列効率計算方法。
【０２３４】
（付記２１）
目標処理時間を設定するステップと、
異なるアルゴリズム毎に当該アルゴリズムにおける並列効率を用いて必要となるプロセッサ数の見積値を計算し、記憶装置に格納するステップと、
前記プロセッサ数の見積値が前記並列計算機システムにおいて実施する当該アルゴリズムによる処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率より小さく且つ異なるアルゴリズムについて計算された前記プロセッサ数の見積値のうち最小の値となるアルゴリズムを抽出するステップと、
をさらに含む付記１乃至１４のいずれか１つ記載の並列効率計算方法。
【０２３５】
（付記２２）
付記１乃至２１のいずれか１つ記載の並列効率計算方法をコンピュータに実行させるためのプログラム。
【０２３６】
（付記２３）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２３７】
（付記２４）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２３８】
（付記２５）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２３９】
（付記２６）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算手段と、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２４０】
（付記２７）
並列計算機システムの並列効率を計算する並列効率計算装置であって、
１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間を計算し、記憶装置に格納する手段と、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第２の処理時間を計算し、記憶装置に格納する手段と、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第１の処理時間と、前記第２の処理時間とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【０２４１】
（付記２８）
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と仮想並列化率計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、前記記憶装置に格納する仮想並列化率計算ステップと、
前記並列性能阻害要因寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、前記記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記ロードバランス寄与率Ｒb(p)と前記仮想並列化率Ｒp(p)と前記並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数１２５】
2006120182.tif 000126
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２４２】
（付記２９）
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と補助指標計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記補助指標計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率Ａp(p)を計算し、前記記憶装置に格納する加速率計算ステップと、
前記並列性能阻害要因寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、前記記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記ロードバランス寄与率Ｒb(p)と前記加速率Ａp(p)と前記並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数１２６】
2006120182.tif 000127
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２４３】
（付記３０）
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と並列性能阻害要因寄与率計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列性能阻害要因寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分ｊの処理時間χi,j(p)の割合を表す並列性能阻害要因寄与率Ｒj(p)を計算し、前記記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記ロードバランス寄与率Ｒb(p)と前記並列性能阻害要因寄与率Ｒj(p)とを用いて、並列効率Ｅp(p)を
【数１２７】
2006120182.tif 000128
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２４４】
（付記３１）
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部とロードバランス寄与率計算部と仮想並列化率計算部と並列効率計算部と補助指標計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)及び前記各並列性能阻害要因ｊの処理時間χi,j(p)を取得し、前記ログデータ格納部に格納するステップと、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Ｒb(p)を計算し、前記記憶装置に格納するロードバランス寄与率計算ステップと、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Ｒp(p)を計算し、前記記憶装置に格納する仮想並列化率計算ステップと、
前記補助指標計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)の和αと、前記各プロセッサにおいて実施された処理の処理時間の和βとを計算し、前記記憶装置に格納する補助指標計算ステップと、
前記並列効率計算部により、前記記憶装置に格納された、前記αと前記βと前記ロードバランス寄与率Ｒb(p)と前記仮想並列化率Ｒp(p)とを用いて、並列効率Ｅp(p)を
【数１２８】
2006120182.tif 000129
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２４５】
（付記３２）
並列計算機システムの並列効率Ｅp(p)を計算する並列効率計算方法であって、
前記並列効率Ｅp(p)は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間τ(p)が前記ｐ個のプロセッサの各処理時間τi(p)に等しいと仮定した場合の総処理時間に対する、並列処理を行わない場合における処理時間の割合であり、
前記並列計算機システムにおいて、処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各並列性能阻害要因ｊの処理時間χi,j(p)と、冗長処理以外に並列性能阻害要因が存在する場合にはｐ＞１で発生し且つｐに依存する並列性能阻害要因ｊによる処理時間Ｘi,j(p)とを測定し、前記並列計算機システムの記憶部に格納するステップと、
データ取得部と補助指標計算部と並列効率計算部とログデータ格納部と記憶装置とを有するコンピュータの前記データ取得部により、前記並列計算機システムの前記記憶部から、前記並列計算部分の処理時間γi(p)と前記各並列性能阻害要因ｊの処理時間χi,j(p)と前記冗長処理以外に並列性能阻害要因が存在する場合には前記処理時間Ｘi,j(p)とを取得し、前記ログデータ格納部に格納するステップと、
前記補助指標計算部により、前記ログデータ格納部に格納されたデータを用いて、１プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第１の処理時間ρを計算し、前記記憶装置に格納するステップと、
前記補助指標計算部により、前記ログデータ格納部に格納されているデータを用いて、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)の和である第２の処理時間αを計算し、前記記憶装置に格納するステップと、
前記並列効率計算部により、前記並列計算機システムにおいて使用したプロセッサの数ｐと、前記ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間τ(p)と、前記記憶装置に格納された、前記第１の処理時間ρ及び前記第２の処理時間αとを用いて、並列効率Ｅp(p)を
【数１２９】
2006120182.tif 000130
により計算し、前記記憶装置に格納するステップと、
を含む並列効率計算方法。
【０２４６】
（付記３３）
前記ロードバランス寄与率計算ステップが、
前記ロードバランス寄与率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記各プロセッサにおいて実施された処理の処理時間の和βを算出し、前記記憶装置に格納するステップと、
前記ロードバランス寄与率計算部により、前記記憶装置及び前記ログデータ格納部に格納されているデータを用いて、前記ロードバランス寄与率Ｒb(p)を、前記各プロセッサにおいて実施された処理の処理時間の和βを、前記ｐ個のプロセッサによって処理を行った場合における最長の処理時間τ(p)及び前記並列計算機システムにおいて使用したプロセッサ数ｐにより除することにより計算するステップと、
を含む付記２８乃至３１のいずれか１つ記載の並列効率計算方法。
【０２４７】
（付記３４）
前記仮想並列化率計算ステップが、
前記仮想並列化率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を計算し、前記記憶装置に格納するステップと、
前記仮想並列化率計算部により、前記仮想並列化率を、前記ログデータ格納部及び前記記憶装置に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を、１プロセッサにより同一処理を実施した場合の処理時間に相当する第３の処理時間τ(1)により除することにより計算するステップと、
含む付記２８又は３１記載の並列効率計算方法。
【０２４８】
（付記３５）
前記並列性能阻害要因寄与率計算ステップが、
前記並列性能阻害要因寄与率計算部により、特定の並列性能阻害要因部分ｊの処理時間χi,j(p)の和と、前記各プロセッサにおいて実施された処理の処理時間の和βを計算し、前記記憶装置に格納するステップと、
前記並列性能阻害要因寄与率計算部により、前記特定の並列性能阻害要因についての並列性能阻害要因寄与率Ｒj(p)を、前記ログデータ格納部及び前記記憶装置に格納されたデータを用いて、前記特定の並列性能阻害要因部分ｊの処理時間χi,j(p)の和を、前記各プロセッサにおいて実施された処理の処理時間の和βにより除することにより計算するステップと、
を含む付記２８乃至３０のいずれか１つ記載の並列効率計算方法。
【０２４９】
（付記３６）
前記加速率計算ステップにおいて、
前記加速率計算部により、前記ログデータ格納部に格納されたデータを用いて、前記並列計算部分の処理時間γi(p)の和を算出し、前記記憶装置に格納するステップと、
前記加速率計算部により、前記ログデータ格納部及び前記記憶装置に格納されているデータを用いて、前記加速率Ａpを、前記並列計算部分γi(p)の処理時間γi(p)の和を１プロセッサにより同一処理を実施した場合の処理時間に相当する第３の処理時間τ(1)により除することにより計算される仮想並列化率を１から差し引いた値の逆数として計算するステップと、
を含む付記２９記載の並列効率計算方法。
【０２５０】
（付記３７）
前記並列性能阻害要因が冗長処理のみである場合には、前記ログデータ格納部に格納されているデータを用いて、前記冗長処理の処理時間Ｒiから特定される並列阻害要因処理時間Ｒと前記並列計算部分の処理時間γi(p)の総和との和により、前記第３の処理時間に相当する処理時間τ(1)を算出し、前記記憶装置に格納するステップ
をさらに含む付記３４又は３６記載の並列効率計算方法。
【０２５１】
（付記３８）
前記並列性能阻害要因が前記冗長処理以外にも存在する場合には、前記並列計算機システムにおいてｐ＞１で発生し且つｐに依存する並列性能阻害要因ｊによる処理時間Ｘi,j(p)を測定し、前記並列計算機システムの前記記憶部に格納するステップと、
前記データ取得部により、前記並列計算機システムの前記記憶部から、前記処理時間Ｘi,j(p)とを取得し、前記ログデータ格納部に格納するステップと、
冗長処理以外の前記並列性能阻害要因ｊの処理時間χi,j(p)から前記並列性能阻害要因ｊによる前記処理時間Ｘi,j(p)を差し引いた時間を基に特定される並列性能阻害要因ｊのｐ＝１時の処理時間χ1,jの全ての並列性能阻害要因についての総和と前記前記並列計算部分の処理時間γi(p)の総和との和により、前記第３の処理時間τ(1)を算出し、前記記憶装置に格納するステップと、
をさらに含む付記３４又は３６記載の並列効率計算方法。
【０２５２】
（付記３９）
前記処理時間が、対応する事象の確認回数で表されることを特徴とする請求項２８乃至３８のいずれか１つ記載の並列効率計算方法。
【０２５３】
（付記４０）
前記第１の処理時間ρ又は前記並列阻害要因処理時間Ｒが、前記冗長処理の処理時間Ｒi(p)の和をプロセッサ数で除した値、前記冗長処理の処理時間Ｒi(p)の最大値、前記冗長処理の処理時間Ｒi(p)の最小値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間γi(p)と並列性能阻害要因の処理時間の総和が最大となるプロセッサにおける冗長処理の処理時間の値のいずれかである
ことを特徴とする付記３２又は３７記載の並列効率計算方法。
【０２５４】
（付記４１）
前記第１の処理時間ρ又は前記並列性能阻害要因ｊのｐ＝１時の処理時間χ1,jが、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理以外の並列性能阻害要因ｊによる処理時間χi,j(p)からｐ＞１で発生し且つｐに依存する並列化阻害要因ｊによる処理時間Ｘi,j(p)を減じた第４の処理時間を全プロセッサについて加算した値をプロセッサ数で除した値、全プロセッサにおける前記第４の処理時間の最大値、全プロセッサにおける前記第４の処理時間の最小値のいずれかの値である
ことを特徴とする付記３２又は３８記載の並列効率計算方法。
【図面の簡単な説明】
【０２５５】
【図１】プロセッサ間でロードバランスが保たれている状態を表す図である。
【図２】各プロセッサにおける処理時間の分類例を示す図である。
【図３】プロセッサ間でロードバランスが保たれていない状態（４つのプロセッサを割り当てて、その中のプロセッサの１つで処理する場合）を表す図である。
【図４】γ1とγi(p)の関係のモデル化の一例を示す図である。
【図５】ＣＰＵ性能にばらつきがあり且つデータパラレル処理を行っている状態を表す図である。
【図６】（ａ）は１プロセッサで処理する場合の処理時間を表す図であり、（ｂ）は４プロセッサで処理する場合の処理時間を表す図である。
【図７】（ａ）は並列処理部γと通信部χCの時間を考慮した場合における処理時間を表す図であり、（ｂ）はさらに立ち上がり時間χTCを考慮に入れた場合における処理時間を表す図である。
【図８】並列性能阻害要因を追加した場合における並列性能評価指標の変化を表すための図である。
【図９】プロセッサ間でロードバランスは保たれているが、各処理時間のロードバランスまでは保たれていない場合の例を表す図である。
【図１０】１つのプロセッサで処理する場合の処理時間を表す図である。
【図１１】プロセッサ間でロードバランスが保たれていない場合の例を示す図である。
【図１２】高並列化された場合に顕在化する並列性能阻害要因の存在を表すための図である。
【図１３】並列性能評価指標の計算例を表す図である。
【図１４】稼働時間と処理時間の総和の関係を表す図である。
【図１５】稼働時間と処理時間と並列効率を考慮した処理時間との関係を表す図である。
【図１６】データ並列を分散メモリ並列計算機システムで実施した場合の処理時間の例を表す図である。
【図１７】原状のＣＰＵ性能に基づく並列性能評価指標とＣＰＵ性能が５倍のシステムに入れ替えた場合の推定並列性能評価指標とを比較するための図である。
【図１８】ＣＰＵ性能が５倍のシステムに入れ替えた場合における試算のためのデータを表す図である。
【図１９】本発明の一実施の形態に係る機能ブロック図である。
【図２０】サンプリングによる事象発生の確認及びカウントを表す概念図である。
【図２１】表１のプログラム実行時のサンプリング結果例を表す図である。
【図２２】並列性能分析装置の処理フローの一例を表す図である。
【図２３】時間測定による処理時間の測定結果例を表す図である。
【図２４】サンプリングによる処理時間の測定結果例を表す図である。
【図２５】プロセッサ数最適化処理の処理フローの第１の部分の一例を表す図である。
【図２６】プロセッサ数最適化処理の処理フローの第２の部分の一例を表す図である。
【図２７】プロセッサ増設見積処理の処理フローの一例を表す図である。
【図２８】システムリプレイスデータ処理の処理フローの一例を表す図である。
【図２９】ＣＰＵ性能が５倍で目標並列効率が０．６の場合の通信についての性能指針を表すための図である。
【図３０】システム運用効率向上処理のための処理フローの一例を示す図である。
【図３１】チューニング処理の処理フローの一例を示す図である。
【図３２】チューニング前と１回目のチューニングを実施した後の並列性能評価指標の変化を表す図である。
【図３３】並列処理に向かないアルゴリズムに基づく並列処理プログラムによる処理時間を表す図である。
【図３４】並列処理に向くアルゴリズムに基づく並列処理プログラムによる処理時間を表す図である。
【図３５】並列処理に向かないアルゴリズムと並列処理に向くアルゴリズムの並列性能指標の比較等のための図である。
【図３６】アルゴリズム選定処理の処理フローを表す図である。
【図３７】ある並列処理システムのログデータの一例を示す図である。
【図３８】実施例１における処理時間の測定結果を表す図である。
【図３９】実施例１における並列性能評価指標の計算結果を表す図である。
【図４０】実施例２における処理時間の測定結果を表す図である。
【図４１】実施例２における並列性能評価指標の計算結果を表す図である。
【図４２】実施例３における処理時間の測定結果を表す図である。
【図４３】実施例３における並列性能評価指標の計算結果を表す図である。
【図４４】実施例４における処理時間の測定結果を表す図である。
【図４５】実施例４における並列性能評価指標の計算結果を表す図である。
【図４６】実施例５における処理時間の測定結果を表す図である。
【図４７】実施例５における並列性能評価指標の計算結果を表す図である。
【図４８】実施例６（冗長処理を用いたデータパラレル）における処理時間の測定結果を表す図である。
【図４９】実施例６（冗長処理を用いたデータパラレル）における並列性能評価指標の計算結果を表す図である。
【図５０】実施例６（並列処理できない部分を特定のプロセッサで処理するデータパラレル）における処理時間の測定結果を表す図である。
【図５１】実施例６（並列処理できない部分を特定のプロセッサで処理するデータパラレル）における並列性能評価指標の計算結果を表す図である。
【図５２】実施例７における処理時間の測定結果を表す図である。
【図５３】実施例７における並列性能評価指標の計算結果を表す図である。
【図５４】実施例８における処理時間の測定結果を表す図である。
【図５５】実施例８における並列性能評価指標の計算結果を表す図である。
【図５６】実施例９における処理時間の測定結果を表す図である。
【図５７】実施例９における並列性能評価指標の計算結果を表す図である。
【図５８】実施例１０における処理時間の測定結果を表す図である。
【図５９】実施例１０における並列性能評価指標の計算結果を表す図である。
【符号の説明】
【０２５６】
１０  データ取得部    １１  ロードバランス寄与率計算部
１２  仮想並列化率計算部    １３  並列性能阻害要因寄与率計算部
１４  並列効率計算部    １５  補助指標計算部
２１  プロセッサ数最適化処理部    ２２  プロセッサ増設見積処理部
２３  システムリプレイスデータ処理部  
２４  運用効率データ処理部    ２５  チューニング処理部
２６  アルゴリズム選定処理部    ２７  並列性能評価処理部
３０  ログデータ格納部    
１００  並列性能分析装置    １１０  出力装置
２００  並列計算機システム    ２０１  測定部
【図１】
2006120182.tif 000136
【図２】
2006120182.tif 000137
【図３】
2006120182.tif 000138
【図４】
2006120182.tif 000139
【図５】
2006120182.tif 000140
【図６】
2006120182.tif 000141
【図７】
2006120182.tif 000142
【図８】
2006120182.tif 000143
【図９】
2006120182.tif 000144
【図１０】
2006120182.tif 000145
【図１１】
2006120182.tif 000146
【図１２】
2006120182.tif 000147
【図１３】
2006120182.tif 000148
【図１４】
2006120182.tif 000149
【図１５】
2006120182.tif 000150
【図１６】
2006120182.tif 000151
【図１７】
2006120182.tif 000152
【図１８】
2006120182.tif 000153
【図１９】
2006120182.tif 000154
【図２０】
2006120182.tif 000155
【図２１】
2006120182.tif 000156
【図２２】
2006120182.tif 000157
【図２３】
2006120182.tif 000158
【図２４】
2006120182.tif 000159
【図２５】
2006120182.tif 000160
【図２６】
2006120182.tif 000161
【図２７】
2006120182.tif 000162
【図２８】
2006120182.tif 000163
【図２９】
2006120182.tif 000164
【図３０】
2006120182.tif 000165
【図３１】
2006120182.tif 000166
【図３２】
2006120182.tif 000167
【図３３】
2006120182.tif 000168
【図３４】
2006120182.tif 000169
【図３５】
2006120182.tif 000170
【図３６】
2006120182.tif 000171
【図３７】
2006120182.tif 000172
【図３８】
2006120182.tif 000173
【図３９】
2006120182.tif 000174
【図４０】
2006120182.tif 000175
【図４１】
2006120182.tif 000176
【図４２】
2006120182.tif 000177
【図４３】
2006120182.tif 000178
【図４４】
2006120182.tif 000179
【図４５】
2006120182.tif 000180
【図４６】
2006120182.tif 000181
【図４７】
2006120182.tif 000182
【図４８】
2006120182.tif 000183
【図４９】
2006120182.tif 000184
【図５０】
2006120182.tif 000185
【図５１】
2006120182.tif 000186
【図５２】
2006120182.tif 000187
【図５３】
2006120182.tif 000188
【図５４】
2006120182.tif 000189
【図５５】
2006120182.tif 000190
【図５６】
2006120182.tif 000191
【図５７】
2006120182.tif 000192
【図５８】
2006120182.tif 000193
【図５９】
2006120182.tif 000194