(57)【要約】      （修正有）【課題】並列計算機システムの並列効率などの並列性能の評価指標算出を、プロセッサ数を変えながら行う複数回の測定を不要とし、１回の測定で行うこと。【解決手段】2004341750.tif 000025を新たに並列効率として定義することにより、τ（１）といった値を必要とせず、１度の測定で得ることができるデータのみから並列効率を計算できるようになる。ただし、ｐはプロセッサ数、τ（ｐ）はプロセッサ数ｐで実行したときの処理時間，γｉ（ｐ）はプロセッサ数ｐでｉ（１≦ｉ≦ｐ）番目のプロセッサで並列計算が行なわれている部分の処理時間である。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータにより並列計算機システムの性能を評価する方法であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第２データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記プロセッサの数及び前記第１データにて除した値である並列効率を算出し、記憶装置に格納するステップと、
を含む並列計算機システム性能評価方法。
【請求項２】
コンピュータにより並列計算機システムの性能を評価する方法であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスと、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
前記第２データ・シーケンスと前記第３データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である相対並列化率を算出し、記憶装置に格納するステップと、
前記ロードバランス寄与率と前記相対並列化率とを用いて、前記ロードバランス寄与率と前記相対並列化率との積である並列効率を算出し、記憶装置に格納するステップと、
を含む並列計算機システム性能評価方法。
【請求項３】
コンピュータにより並列計算機システムの性能を評価する方法であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第２データ群と、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
前記第２データ群と第３データ・シーケンスとを用いて、前記第２データ群において前記所定の並列性能阻害要因毎に該当する第２データの総和を算出し、前記所定の並列阻害要因毎に前記第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率を算出し、記憶装置に格納するステップと、
前記並列性能阻害要因毎の前記並列性能阻害要因寄与率と前記ロードバランス寄与率とを用いて、前記並列性能阻害要因寄与率の総和の１からの差と前記ロードバランス寄与率の積である並列効率を算出し、記憶装置に格納するステップと、
を含む並列計算機システム性能評価方法。
【請求項４】
前記プロセッサの数と前記並列効率とを用いて、前記プロセッサの数と前記並列効率の積である第１のスピードアップ値を算出し、記憶装置に格納するステップ、
をさらに含む請求項１乃至３のいずれか１つ記載の並列計算機システム性能評価方法。
【請求項５】
投入予定プロセッサ数の入力を受け付けるステップと、
前記プロセッサの数の前記投入予定プロセッサ数に対する割合の１からの差と前記並列効率との積の１からの差の逆数である第１の予想スピードアップ値を算出し、記憶装置に格納するステップと、
をさらに含む請求項１乃至４のいずれか１つ記載の並列計算機システム性能評価方法。
【請求項６】
投入予定プロセッサ数の入力を受け付けるステップと、
前記プロセッサの数の前記投入予定プロセッサ数に対する割合の１からの差と前記並列効率との積の１からの差の逆数と前記プロセッサの数と前記並列効率との積である第２の予想スピードアップ値を算出し、記憶装置に格納するステップと、
をさらに含む請求項１乃至４のいずれか１つ記載の並列計算機システム性能評価方法。
【請求項７】
前記並列計算機システムの最大性能に対する要求割合の入力を受け付けるステップと、
前記要求割合の逆数と１との差と前記並列効率の１からの差との積の逆数と前記並列効率との積である、前記要求割合時のプロセッサ数の倍率を算出し、記憶装置に格納するステップと、
をさらに含む請求項１乃至６のいずれか１つ記載の並列計算機システム性能評価方法。
【請求項８】
前記並列計算機システムの最大性能に対する要求割合の入力を受け付けるステップと、
前記要求割合の逆数と１との差と前記並列効率の１からの差との積の逆数と前記並列効率と前記プロセッサの数との積である、前記要求割合時のプロセッサ数を算出し、記憶装置に格納するステップと、
をさらに含む請求項１乃至６のいずれか１つ記載の並列計算機システム性能評価方法。
【請求項９】
前記並列効率の１からの差の逆数と前記並列効率との積である、半値性能におけるプロセッサ数の倍率を算出し、記憶装置に格納するステップ、
をさらに含む請求項１乃至８のいずれか１つ記載の並列計算機システム性能評価方法。
【請求項１０】
並列計算機システムの性能を評価するプログラムであって、
前記プログラムは、コンピュータに、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するためのコードを生成するステップと、
前記コードに基づいて得られた計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第２データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記プロセッサの数及び前記第１データにて除した値である並列効率を算出し、記憶装置に格納するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、並列計算機システムの性能評価技術及び当該性能評価の結果の利用技術に関する。なお、本発明の技術は、従来のハイパフォーマンス・コンピューティング（ＨＰＣ：Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ）で扱われる分野（構造解析、流体解析、計算化学等）、グリッド又はクラスタ上に展開されるバイオシミュレーション、ウェブ（Ｗｅｂ）サービス（例えばＭｔｏＭ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ））等、並列処理を行う全ての分野に適用可能である。
【０００２】
【従来の技術】
【従来の技術】
あるプロセッサ数で並列処理をした場合、その性能を（１）式のような並列効率で記述する方法が古くから用いられている。
【数１】
2004341750.tif 000002
ここでｐはプロセッサ数、τ（１）はプロセッサ数１で処理を実行した場合の処理時間である。また、τ（ｐ）は同じ処理をプロセッサ数ｐで実行した時の処理時間であって、以下のように表される。
【数２】
2004341750.tif 000003
なお、τｉ（ｐ）は１≦ｉ≦ｐでｉ番目のプロセッサの処理時間である。
【０００３】
並列効率Ｅｐ（ｐ）は理想的な並列処理時間をτ（１）／ｐとしたときの効率である。この効率は原理的に最大値が１であるため性能を直感的に理解し易い。一方、並列効率Ｅｐ（ｐ）からは並列性能を決定するロードバランスと通信等複数の並列性能阻害要因の影響を知ることはできない。そこで並列性能阻害要因の寄与は独立に時間測定され、τ（ｐ）に対する割合として定量化されるのが、現状の並列性能記述フレームワークである。このフレームワークの問題点はロードバランスの影響を考慮できないことであり、有意な指標としてロードバランスの寄与を定量化できない。
【０００４】
また、スケーラビリティの検討にはｐに対する性能の傾きを知る必要がある。（２）式のスピードアップＳｐ（ｐ）を縦軸に、プロセッサ数を横軸にした図を描いて性能の傾きを得る方法も古くから用いられている。
【数３】
2004341750.tif 000004
【０００５】
スケーラビリティの検討を（２）式で行う場合の問題点は、ｐを変えながら複数回の測定を行う必要があることである。この問題は、プロセッサ数１での処理時間τ（１）とγ（１）を一回測定すればスケーラビリティの検討を行うことができる、Ａｍｄａｈｌのモデル（非特許文献１）を用いることにより解決できる。Ａｍｄａｈｌのモデルでは、プロセッサ数１での処理時間を逐次処理部と並列処理部の処理時間γ（１）に分け、並列処理部のみがプロセッサの増加に対して反比例するものとして、（３）式のように表される。
【数４】
2004341750.tif 000005
【０００６】
ＳＡｍｄａｈｌ（ｐ）はプロセッサ数１での処理時間からの推測であり、並列処理時にもγ（１）／τ（１）が変化しないと仮定している。しかし実際にはプロセッサ数１での逐次処理部の時間と並列処理時の逐次処理部の時間とは異なる。これを解決するためＧｕｓｔａｆｓｏｎのモデル（非特許文献２）では、τ（１）を並列処理部の処理時間をｐ倍したものとを仮定するモデルで（４）式のように表される。
【数５】
2004341750.tif 000006
このためスピードアップＳＧｕｓｔａｆｓｏｎは並列処理時のτ（ｐ）とγ（ｐ）で計算できるが、γ（ｐ）／τ（ｐ）はｐが変化すると変化するため、スケーラビリティの検討を行うためには、ｐを変えて複数回の測定が必要となる問題が再び生じる。
【０００７】
さらに、ＡｍｄａｈｌとＧｕｓｔａｆｓｏｎのモデルは、並列性能阻害要因の寄与を逐次処理に限定しているため、実測して得られたスピードアップ値との間に隔たりが生ずる。このため複数の並列性能阻害要因を含んだ処理時間モデルにより並列性能を記述する方法が数多く示されているが（非特許文献３）、正確に処理時間を再現するには各処理に対してモデルを構築する必要がある（非特許文献４）。しかしロードバランスの乱れをモデル化することは困難である。これらの理由で現実の並列処理に対するスケーラビリティの定量的検討方法はまだ確立されていない。
【０００８】
【非特許文献１】
Ａｍｄａｈｌ，Ｇ．：  Ｖａｌｉｄｉｔｙ  ｏｆ  ｔｈｅ  ｓｉｎｇｌｅ−ｐｒｏｃｅｓｓｏｒ  ａｐｐｒｏａｃｈ  ｔｏ  ａｃｈｉｅｖｉｎｇ  ｌａｒｇｅ  ｓｃａｌｅ  ｃｏｍｐｕｔｉｎｇ  ｃａｐａｂｉｌｉｔｉｅｓ，  ＡＦＩＰＳ  Ｃｏｎｆｅｒｅｎｃｅ  Ｐｒｏｃｅｅｄｉｎｇｓ，  Ｖｏｌ．３０，  ｐｐ．４８３−４８５  （１９６７）．
【非特許文献２】
Ｇｕｓｔａｆｓｏｎ，  Ｊ．：  Ｒｅｅｖａｌｕａｔｉｏｎ  Ａｍｄａｈｌ’ｓ  Ｌｏｗ，  ＣＡＣＭ，  Ｖｏｌ．３１，  Ｎｏ．５，  ｐｐ．５３２−５３３  （１９８８）．
【非特許文献３】
Ｍｕｅｌｌｅｒ−Ｗｉｃｈａｒｄｓ，  Ｄ．  ａｎｄ  Ｒｏｎｓｃｈ  Ｗ．：  Ｓｃａｌａｂｉｌｉｔｙ  ｏｆ  ａｌｇｏｒｉｔｈｍｓ：  Ａｎ  ａｎａｌｙｔｉｃ  ａｐｐｒｏａｃｈ，  Ｐａｒａｌｌｅｌ  Ｃｏｍｐｕｔｉｎｇ，  ｖｏｌ．２１，  ｐｐ．９３７−９５２  （１９９５）．
【非特許文献４】
折居茂夫：数値計算のための並列計算機性能評価方法，情報処理学会論文誌，Ｖｏｌ．３９，  Ｎｏ．３，ｐｐ．５９２−５４１  （１９９８）．
【０００９】
【発明が解決しようとする課題】
従って、本発明の目的は、並列効率などの並列性能の評価指標算出を１回の測定で可能とする技術を提供することである。
【００１０】
また本発明の他の目的は、スケーラビリティの新規な定量的検討方法を提供することである。
【００１１】
【課題を解決するための手段】
本発明の第１の態様に係る、並列計算機システムの性能を評価する方法は、評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データ（例えばτ（ｐ））と、各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンス（例えばγｉ（ｐ））とを記憶装置に格納するステップと、並列計算機システムにおいて使用したプロセッサの数（例えばｐ）と第１データと第２データ・シーケンスとを用いて、第２データ・シーケンスに含まれる第２データの総和をプロセッサの数及び第１データにて除した値である並列効率（εｐ（ｐ））を算出し、記憶装置に格納するステップとを含む。
【００１２】
このように新規な並列効率εｐ（ｐ）を導入することにより、τ（１）を測定する必要がなくなるので、１回の測定で並列効率を計算することができるようになる。
【００１３】
本発明の第２の態様に係る、並列計算機システムの性能を評価する方法は、評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データ（例えばτ（ｐ））と、各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンス（例えばγｉ（ｐ））と、各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンス（例えばτｉ（ｐ））とを記憶装置に格納するステップと、並列計算機システムにおいて使用したプロセッサの数（例えばｐ）と第１データと第３データ・シーケンスとを用いて、第３データ・シーケンスに含まれる第３データの総和をプロセッサの数及び第１データにて除した値であるロードバランス寄与率（例えばＲｂ（ｐ））を算出し、記憶装置に格納するステップと、第２データ・シーケンスと第３データ・シーケンスとを用いて、第２データ・シーケンスに含まれる第２データの総和を第３データ・シーケンスに含まれる第３データの総和で除した値である相対並列化率（例えばＲγ（ｐ））を算出し、記憶装置に格納するステップと、ロードバランス寄与率と相対並列化率とを用いて、ロードバランス寄与率と相対並列化率との積である並列効率（εｐ（ｐ））を算出し、記憶装置に格納するステップとを含む。
【００１４】
上記のような性質の本発明に係る並列効率は、ロードバランス寄与率と相対並列化率にて計算することができる。これにより、並列効率とロードバランス寄与率並びに相対並列化率との関係を容易に理解することができるようになる。
【００１５】
本発明の第３の態様に係る、並列計算機システムの性能を評価する方法は、評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データ（例えばτ（ｐ））と、各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第２データ群（例えばχｉ，ｊ）と、各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンス（例えばτｉ（ｐ））とを記憶装置に格納するステップと、並列計算機システムにおいて使用したプロセッサの数（例えばｐ）と第１データと第３データ・シーケンスとを用いて、第３データ・シーケンスに含まれる第３データの総和をプロセッサの数及び第１データにて除した値であるロードバランス寄与率（例えばＲｂ（ｐ））を算出し、記憶装置に格納するステップと、第２データ群と第３データ・シーケンスとを用いて、第２データ群において所定の並列性能阻害要因毎に該当する第２データの総和を算出し、所定の並列阻害要因毎に上記第２データの総和を第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率（例えばＲｊ（ｐ））を算出し、記憶装置に格納するステップと、並列性能阻害要因毎の並列性能阻害要因寄与率とロードバランス寄与率とを用いて、並列性能阻害要因寄与率の総和の１からの差とロードバランス寄与率の積である並列効率（εｐ（ｐ））を算出し、記憶装置に格納するステップとを含む。
【００１６】
上記のような性質の本発明に係る並列効率は、ロードバランス寄与率と並列性能阻害要因寄与率にて計算することができる。これにより、並列効率とロードバランス寄与率並びに並列性能阻害要因寄与率との関係を容易に理解できるようになる。
【００１７】
また、プロセッサの数と並列効率とを用いて、プロセッサの数と並列効率の積である第１のスピードアップ値（例えばＳε（ｐ））を算出し、記憶装置に格納するステップをさらに含むようにしてもよい。これにより現在のプロセッサ数に対して実質的にどの程度のプロセッサ数で動作しているのかが分かる。
【００１８】
さらに、投入予定プロセッサ数の入力を受け付けるステップと、プロセッサの数の投入予定プロセッサ数に対する割合（プロセッサの数と投入予定プロセッサ数で除した結果）の１からの差と並列効率との積の１からの差の逆数である第１の予想スピードアップ値を算出し、記憶装置に格納するステップとをさらに含むようにしてもよい。これにより、入力した投入予定プロセッサ数の場合における、ｐプロセッサのときを１とする速度の倍率を取得することができるようになる。
【００１９】
さらに、投入予定プロセッサ数の入力を受け付けるステップと、プロセッサの数の投入予定プロセッサ数に対する割合（プロセッサの数と投入予定プロセッサ数で除した結果）の１からの差と並列効率との積の１からの差の逆数とプロセッサの数と並列効率との積である第２の予想スピードアップ値を算出し、記憶装置に格納するステップとをさらに含むようにしてもよい。
【００２０】
また、並列計算機システムの最大性能に対する要求割合の入力を受け付けるステップと、要求割合の逆数と１との差と並列効率の１からの差との積の逆数と並列効率との積である、要求割合時のプロセッサ数の倍率を算出し、記憶装置に格納するステップとをさらに含むようにしてもよい。
【００２１】
さらに、並列計算機システムの最大性能に対する要求割合の入力を受け付けるステップと、要求割合の逆数と１との差と並列効率の１からの差との積の逆数と並列効率とプロセッサの数との積である、要求割合時のプロセッサ数を算出し、記憶装置に格納するステップとをさらに含むようにしてもよい。
【００２２】
また、並列効率の１からの差の逆数と並列効率との積である、半値性能におけるプロセッサ数の倍率を算出し、記憶装置に格納するステップをさらに含むようにしてもよい。
【００２３】
なお、本発明に係る並列性能評価方法はプログラム及びコンピュータにて実施することができ、当該プログラムをコンピュータで実行する場合には当該コンピュータは並列性能評価装置となる。また、このようなプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配布される場合もある。尚、中間的な処理結果はメモリに一時保管される。
【００２４】
【発明の実施の形態】
［本発明の原理］
ｐ個のプロセッサを含む並列計算システムに含まれる各プロセッサの処理時間は、並列処理部分と並列性能阻害要因処理部分とに分けられる。すなわち、図１に示すように、あるプロセッサｉの処理時間１０００は並列処理に係る処理時間τｉ（ｐ）であり、並列計算が行われている部分の処理時間１００（γｉ（ｐ））と並列性能阻害要因１についての処理時間２００（χｉ，１（ｐ））から並列性能阻害要因ｊｏｔｈｅｒｓについての処理時間２１０（χｉ，ｊｏｔｈｅｒｓ（ｐ））についての総和となり、以下の式で表される。
【数６】
2004341750.tif 000007
ここで１≦ｊ≦ｊｏｔｈｅｒｓである。
【００２５】
このような前提の下、本発明における並列効率εｐ（ｐ）を以下のように定義する。
【数７】
2004341750.tif 000008
なお、０≦εｐ（ｐ）≦１である。
【００２６】
この新たな並列効率は、並列性能阻害要因がなく（すなわちχｉ，ｊ（ｐ）＝０）で且つロードバランスが保たれている（すなわちτｉ（ｐ）＝γｉ（ｐ））の場合に、１となる。また、並列計算が行われている部分がない（すなわちγｉ（ｐ）＝０）の場合に、εｐ＝０となる。
【００２７】
（６）式を以下に示すように（７）式のように変形することにより、（８）式及び（９）式を得ることができる。
【数８】
2004341750.tif 000009
なお、（６）式から（７）式への変形は、分子と分母にτｉ（ｐ）の総和を掛け算して位置を変える変形することにより導き出される。また、ロードバランス寄与率Ｒｂ（ｐ）と、相対並列化率Ｒγ（ｐ）と、並列性能阻害要因寄与率Ｒｊ（ｐ）とを以下のように定義する。
【数９】
2004341750.tif 000010
このように、（７）式から（８）式への変形は（１０）式及び（１１）式に基づく。また、（８）式から（９）式への変形は（５）式に基づく。
【００２８】
上で定義したロードバランス寄与率Ｒｂ（ｐ）はτｉ（ｐ）が全て同じなら１となる指標である。すなわち、並列計算が行われている部分や並列性能阻害要因についての処理部分といった処理内容を考慮しなくとも評価を行うことができる並列性能評価指標である。最小値はｐが無限大となった場合で０となる。なお、τｉ（ｐ）が全て同じでχｉ，ｊ（ｐ）が異なる場合、その現象はＲｊ（ｐ）で記述される。
【００２９】
相対並列化率は、（８）式に示すように、新たな並列効率に影響を及ぼす割合として直感的に認識できるものである。またＲγ（１）は（３）式のγ（１）／τ（１）に等しい。例えばγ（１）／τ（１）＝０．９９で１００プロセッサの場合、理想的な処理では逐次処理部分の処理時間と並列計算が行われる部分の処理時間の比は０．０１：０．９９／１００＝０．０１：０．００９９でほぼ１：１となるが、このことをγ（１）／τ（１）の値からは直感的に理解することは難しい。一方、（８）式で定義された相対並列化率ではＲγ（１００）＝０．５（下記の式を参照のこと）となり、高並列処理時であっても逐次処理部分の効果を直感的に理解できるようになる。これは相対並列化率が並列計算が行われる処理時間の和（（８）式の分母）で規格化されるためである。
【数１０】
2004341750.tif 000011
【００３０】
並列性能阻害要因寄与率は、並列性能阻害要因（通信、タスク生成、逐次処理、待ち時間、メモリアクセス、Ｉ／Ｏなど）を任意に細分化でき、εｐ（ｐ）をより詳細に説明することが可能となる。τｉ（ｐ）が変わらなければ、要因数を増やしても説明が細密になるだけでεｐ（ｐ）及びＲｂの値は変わらない。相対並列効率の余事象であるため、相対並列効率と同様に新たな並列効率に影響を及ぼす割合として直感的に認識できる。
【００３１】
Ｒｂ（ｐ）、Ｒγ（ｐ）、Ｒｊ（ｐ）の式中に現れるτｉ（ｐ）、γｉ（ｐ）、χｉ，ｊ（ｐ）はいずれも並列処理時に一度の測定で取得可能な量である。（１）式で示された従来の並列効率の決定にはτ（１）の測定が必要であり、少なくとも２度の処理が必要であったが、新たな並列効率は１度の処理にて決定することができるという利点がある。
【００３２】
新たな並列効率εｐ（ｐ）と従来の並列効率Ｅｐ（ｐ）の関係を調べるため、Ｅｐ（ｐ）を並列性能評価指標で記述すると以下のようになる。
【数１１】
2004341750.tif 000012
なお、Ｒｐ（ｐ）は仮想並列化率であり、以下のように定義される。
【数１２】
2004341750.tif 000013
【００３３】
仮想並列化率は、並列計算できない処理部分を評価する性能評価指数である。Ｒｐ（１）は（３）式で示したＡｍｄａｈｌの法則の分母の項γ（１）／τ（１）と一致する。
【００３４】
Ｅｐ（ｐ）はτ（１）を必要とするためプロセッサ数を変えた２回の処理を行わなければ決定することはできない。一方εｐ（ｐ）は処理時間のほかに、並列計算される部分の処理時間を識別し、測定する必要があるが、プロセッサ数を変えて測定する必要はなく、１回の処理で決定することができる。Ｅｐ（１）＝１であるが、並列計算される部分の処理時間を識別した結果０≦εｐ（１）≦１となる。また、εｐ（１）＝Ｒγ（１）＝Ｒｐ（１）である。
【００３５】
（１３）式と（８）式とεｐ（ｐ）で記述するとＥｐ（ｐ）は（１５）式のようになる。
【数１３】
2004341750.tif 000014
【００３６】
ここでＲｐ（ｐ）は並列処理阻害要因の一つ逐次処理である。これは（１５−１）式のｊの一つとして表すことができる。従って（１５）式は、従来の並列効率が２つの同じ性質を有する性能評価指標を冗長に内包していたことを示す。Ｒｐ（１）は１台のプロセッサによる処理における測定でしか得られない情報を内包しているが、並列性能という観点に立ち冗長性を廃し、並列性能阻害要因の評価指標として（１５−１）式を用いて表現したのが今回導入した並列効率εｐ（ｐ）であると捉えることができる。従って、並列処理の性能評価のみを行う見地に立てば、（８）式又は（９）式で表したフレームワークにおける新たな並列効率により、従来の並列効率Ｅｐ（ｐ）を代替することができる。
【００３７】
次にスケーラビリティについて検討する。プロセッサ数ｐを投入した時の第１のスピードアップＳε（ｐ）を（１６−１）式のように定義する。
【数１４】
2004341750.tif 000015
【００３８】
Ｓε（ｐ）は、並列計算される部分の処理時間γｉ（ｐ）の総和を基準としたときのτ（ｐ）との比で、ｐにおける測定値を基にしたスピードアップ値である。
【００３９】
第２のスピードアップＳＡ（ｐ’）はプロセッサ数ｐ’を投入した時の速度の予測値で、Ａｍｄａｈｌのモデルのように（１６−２）式と定義する。
【数１５】
2004341750.tif 000016
ＳＡ（ｐ’）はｐでのεｐ（ｐ）を用いたスピードアップである。（１６−２）式はεｐ（１）とすると（３）式と同じになる。
【００４０】
従って、並列計算される部分の処理時間γｉ（ｐ）の総和を基準とした時の予測スピードアップＳ（ｐ’）＝Ｓε（ｐ）・ＳＡ（ｐ’）は（１６−３）式のようになる。
【数１６】
2004341750.tif 000017
【００４１】
ここでｘ・Ｓ（∞）という性能を考え、この性能を出すプロセッサ数ｐ’ｘを（１６−３）式より求め、変形すると（１７）式を得る。（１７）式は、ｘ・Ｓ（∞）に達するプロセッサ数を現在投入しているプロセッサに対する倍率で示したもので、その値はεｐ（ｐ）のみで決定することができることを示している。
【数１７】
2004341750.tif 000018
【００４２】
（１７）式を用いると半値性能ｘ＝１／２のｐ’１／２／ｐは（１８）式となる。
【数１８】
2004341750.tif 000019
なお、（１６−３）式と（１８）式を比較するとｐ’１／２＝Ｓ（∞）であることが分かる。
【００４３】
ここでスケーラビリティがあるということは、半値性能が現行のプロセッサより多い場合ｐ’１／２／ｐ＞１と定義すると、１≧εｐ（ｐ）＞０．５でスケーラビリティがあり、０≦εｐ（ｐ）≦０．５でないと判断できる。ｘを１／２にせずもっと高い値にすることも可能であるが、ＡｍｄａｈｌのモデルはＳ（ｐ’）の値が高いほど予測に誤差が入りやすいことを考えて、ここでは半値性能としている。
【００４４】
（１６−３）式は、プロセッサの増加と共に並列計算される部分の処理時間が減少することを仮定している。従ってロードインバランスが大きくなるに従い予想が不正確になる。そこで許されるロードインバランスの許容範囲として、ロードバランス寄与率Ｒｂ（ｐ）の下限値ＬＲｂ（ｐ）を、投入したプロセッサの数ｐのうち１つのプロセッサが処理をせず、その他のプロセッサの処理時間が均等であると仮定した場合の値とする。するとＬＲｂ（ｐ）は（１９）式のように表すことができる。
【数１９】
2004341750.tif 000020
【００４５】
例えばｐ＝２の場合ＬＲｂ（２）＝０．５、ｐ＝１０の場合ＬＲｂ（１０）＝０．９、ｐ＝１００の場合ＲＬｂ（１００）＝０．９９である。また、（１９）式を（２０）式のように変形すると、測定・計算されたＲｂ（ｐ）に対する限界プロセッサ数ｐｂが求まる。
【数２０】
2004341750.tif 000021
【００４６】
（２０）式を（１６−３）式のｐ’に代入することにより、ｐの時に実測値から算出したロードバランスのみを考慮した場合の上限スピードアップＳ（ｐｂ）を予測することができる。これを計算し、Ｓ（∞）と比較した（２１）式は、ロードバランスの寄与を考慮しなかった時との差異を示す。（２１）式は、ロードバランス寄与率を用いたロードバランスの考慮により、Ｒｂ（ｐ）＜１でＳ（∞）が大きい場合のオーバー見積を回避できることが示されている。
【数２１】
2004341750.tif 000022
【００４７】
以下に、並列性能とスケーラビリティの計算例を示す。
（１）τｉ（ｐ）を測定した場合
図２に４つのプロセッサの各々について経過時間を測定した結果を示す。第１プロセッサのτ１（４）は１４０、第２プロセッサのτ２（４）は１３５、第３プロセッサのτ３（４）は１３５、第４プロセッサのτ４（４）は１３５である。このようにτｉ（４）のみが測定される場合には、ロードバランス寄与率Ｒｂ（４）のみが計算される。この場合には、Ｒｂ（４）＝（１４０＋１３５＋１３５＋１３５）／（１４０×４）＝０．９７３２となる。このような測定結果のみでは、εｐ（ｐ）が決定できないため、スケーラビリティの判断はできない。
【００４８】
（２）同一の並列処理に対する適用例
上で述べた並列性能記述のフレームワークでは、任意の数の並列性能阻害要因を記述することができる。分散処理に関しては、並列性能阻害要因の付加に対してεｐ（ｐ）が変化しないので、スケーラビリティ判断結果も変化せず、より詳細な要因追及が可能となる。図３乃至図５では、並列性能阻害要因についての処理時間χｉ，ｊ（ｐ）のうち測定されないものについては黒で塗りつぶして示すものとする。
【００４９】
（２−１）τｉ（ｐ）及びγｉ（ｐ）のみが測定された場合
図３では、図２と同じτｉ（ｐ）が測定され、その中で並列計算される部分の処理時間γｉ（ｐ）が測定された例を示している。第１プロセッサのγ１（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される部分の間及び最後の部分の黒塗り部分は並列計算されていない部分でありその要因は不明である。第２のプロセッサのγ２（４）は５０単位時間と５０単位時間と２回に分かれており、最初の部分と並列計算される部分の間と最後の部分の黒塗り部分は並列計算されていない部分でありその要因は不明である。第３のプロセッサのγ３（４）は５０単位時間と５０単位時間と２回に分かれており、最初の部分と並列計算される部分の間と最後の部分の黒塗り部分は並列計算されていない部分でありその要因は不明である。第４のプロセッサのγ４（４）は５０単位時間と５０単位時間と２回に分かれており、最初の部分と並列計算される部分の間と最後の部分の黒塗り部分は並列計算されていない部分でありその要因は不明である。
【００５０】
このような測定がなされると、ロードバランス寄与率Ｒｂ（ｐ）だけではなく、εｐ（ｐ）及び相対並列化率Ｒγ（ｐ）も算出できるようになる。すなわち、εｐ（４）＝（１００＋１００＋１００＋１００）／（１４０×４）＝０．７１４３となる。またＲγ（ｐ）＝（１００＋１００＋１００＋１００）／（１４０＋１３５＋１３５＋１３５）＝０．７３３９となる。
【００５１】
εｐ（ｐ）が計算できるので、（１６−１）式に従ってＳε（ｐ）＝２．８５７を計算できる。また、εｐ（ｐ）は０．５より大きいため、スケーラビリティがあると判断することができる。またロードバランスに基づく限界プロセッサ数ｐｂ（＝Ｉｎｔ（１／（１−０．９７３２））＝３７）から求められる上限スピードアップＳ（ｐｂ）は、（１６−３）式に基づきＳ（ｐｂ）＝４×０．７１４３／（１−０．７１４３×（１−４／３７））＝７．８７２となる。さらに、半値性能を実現するための、現在のプロセッサ数に対する倍数ｐ’１／２／ｐは０．７１４３／（１−０．７１４３）＝２．５であり、この場合の半値性能Ｓ（ｐ’１／２）は（１６−３）式に従って４×０．７１４３／（１−０．７１４３×（１−１／２．５））＝５となると予測される。また、Ｓ（∞）＝ｐ’１／２＝２．５×４＝１０である。なお、ＬＲｂ＝３／４＝０．７５であり、ＬＢｂ≦Ｒｂが成立していることが分かる。
【００５２】
（２−２）τｉ（ｐ）、γｉ（ｐ）及びχｉ，Ｃ（ｐ）が測定された場合
図４では、図２と同じτｉ（ｐ）が測定され、その中で並列計算される部分の処理時間γｉ（ｐ）と並列性能阻害要因の１つである通信の処理時間χｉ，Ｃ（ｐ）が測定された例を示している。図４では、第１プロセッサのγ１（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後１５単位時間、第２の部分の前後５単位時間ずつχ１，Ｃ（４）が測定されている。第２プロセッサのγ２（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後１０単位時間、第２の部分の前後５単位時間ずつχ２，Ｃ（４）が測定されている。第３プロセッサのγ３（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ３，Ｃ（４）が測定されている。第４プロセッサのγ４（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ４，Ｃ（４）が測定されている。
【００５３】
通信の並列性能阻害要因寄与率ＲＣ（４）は、（１５＋５＋５＋１０＋５＋５＋５×３＋５×３）／（１４０＋１３５＋１３５＋１３５）＝０．１３７６となり、相対並列化率Ｒγ（ｐ）を約１４％阻害していることが分かる。なお、εｐ（ｐ）は変わらないので、スケーラビリティ判断と性能判断の結果は（２−１）と同じである。
【００５４】
（２−３）τｉ（ｐ）、γｉ（ｐ）、χｉ，Ｃ（ｐ）及びχｉ，ＴＣ（ｐ）が測定された場合
図５では、図２と同じτｉ（ｐ）が測定され、その中で並列計算される部分の処理時間γｉ（ｐ）と並列性能阻害要因である通信の処理時間χｉ，Ｃ（ｐ）及びタスク生成のための処理時間χｉ，ＴＣ（ｐ）が測定された例を示している。図５では、第１プロセッサのγ１（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後１５単位時間、第２の部分の前後５単位時間ずつχ１，Ｃ（４）が測定されている。第２プロセッサのγ２（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前５単位時間の間にχ２，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後１０単位時間、第２の部分の前後５単位時間ずつχ２，Ｃ（４）が測定されている。第３プロセッサのγ３（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ３，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ３，Ｃ（４）が測定されている。第４プロセッサのγ４（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ４，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ４，Ｃ（４）が測定されている。
【００５５】
タスク生成の並列性能阻害要因寄与率ＲＴＣ（４）は、（０＋５＋１０＋１０）／（１４０＋１３５＋１３５＋１３５）＝０．０４５９となり、相対並列化率Ｒγ（ｐ）を約４．６％阻害していることが分かる。なお、εｐ（ｐ）は変わらないので、スケーラビリティ判断と性能判断の結果は（２−１）と同じである。
【００５６】
（２−４）τｉ（ｐ）、γｉ（ｐ）、χｉ，Ｃ（ｐ）、χｉ，ＴＣ（ｐ）及びχｉ，Ｓ（ｐ）が測定された場合
図６では、図２と同じτｉ（ｐ）が測定され、その中で並列計算される部分の処理時間γｉ（ｐ）、並列性能阻害要因である通信の処理時間χｉ，Ｃ（ｐ）、タスク生成のための処理時間χｉ，ＴＣ（ｐ）、逐次処理部の処理時間χｉ，Ｓ（ｐ）が測定された例を示している。図６では、第１プロセッサのγ１（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後１５単位時間、第２の部分の前後５単位時間ずつχ１，Ｃ（４）が測定されており、１回目のχ１，Ｃ（４）と２回目のχ１，Ｃ（４）の間に１０単位時間の間、さらに最後の５単位時間の間χ１，Ｓ（４）が測定されている。第２プロセッサのγ２（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前５単位時間の間にχ２，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後１０単位時間、第２の部分の前後５単位時間ずつχ２，Ｃ（４）が測定されている。また、１回目のχ２，Ｃ（４）と２回目のχ２，Ｃ（４）の間に１０単位時間の間χ２，Ｓ（４）が測定されている。第３プロセッサのγ３（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ３，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ３，Ｃ（４）が測定されている。また、１回目のχ３，Ｃ（４）と２回目のχ３，Ｃ（４）の間に１０単位時間の間χ３，Ｓ（４）が測定されている。第４プロセッサのγ４（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ４，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ４，Ｃ（４）が測定されている。また、１回目のχ４，Ｃ（４）と２回目のχ４，Ｃ（４）の間に１０単位時間の間χ４，Ｓ（４）が測定されている。
【００５７】
逐次処理の並列性能阻害要因寄与率ＲＳ（４）は、（１０＋５＋１０＋１０＋１０）／（１４０＋１３５＋１３５＋１３５）＝０．０８２５となり、相対並列化率Ｒγ（ｐ）を約８％阻害していることが分かる。なお、εｐ（ｐ）は変わらないので、スケーラビリティ判断と性能判断の結果は（２−１）と同じである。
【００５８】
（２−５）τｉ（ｐ）、γｉ（ｐ）、χｉ，Ｃ（ｐ）、χｉ，ＴＣ（ｐ）、χｉ，Ｓ（ｐ）及びχｉ，Ｗ（ｐ）が測定された場合
図７では、図２と同じτｉ（ｐ）が測定され、その中で並列計算される部分の処理時間γｉ（ｐ）、並列性能阻害要因である通信の処理時間χｉ，Ｃ（ｐ）、タスク生成のための処理時間χｉ，ＴＣ（ｐ）、逐次処理部の処理時間χｉ，Ｓ（ｐ）、待ち時間χｉ，Ｗ（ｐ）が測定された例を示している。なお、逐次処理が第１プロセッサのみで行われ、他のプロセッサではその計算結果を待っている場合である。
【００５９】
図７では、第１プロセッサのγ１（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の終了後１５単位時間、第２の部分の前後５単位時間ずつχ１，Ｃ（４）が測定されており、１回目のχ１，Ｃ（４）と２回目のχ１，Ｃ（４）の間に１０単位時間の間、さらに最後の５単位時間の間χ１，Ｓ（４）が測定されている。第２プロセッサのγ２（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前５単位時間の間にχ２，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後１０単位時間、第２の部分の前後５単位時間ずつχ２，Ｃ（４）が測定されている。また、１回目のχ２，Ｃ（４）と２回目のχ２，Ｃ（４）の間に１０単位時間の間χ２，Ｗ（４）が測定されている。第３プロセッサのγ３（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ３，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ３，Ｃ（４）が測定されている。また、１回目のχ３，Ｃ（４）と２回目のχ３，Ｃ（４）の間に１０単位時間の間χ３，Ｗ（４）が測定されている。第４プロセッサのγ４（４）は５０単位時間と５０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ４，ＴＣ（４）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ４，Ｃ（４）が測定されている。また、１回目のχ４，Ｃ（４）と２回目のχ４，Ｃ（４）の間に１０単位時間の間χ４，Ｗ（４）が測定されている。
【００６０】
逐次処理の並列性能阻害要因寄与率ＲＳ（４）は、（１０＋５）／（１４０＋１３５＋１３５＋１３５）＝０．０２７５となり、相対並列化率Ｒγ（ｐ）を約２．７％阻害していることが分かる。待ち時間の並列性能阻害要因寄与率ＲＳ（４）は、（１０＋１０＋１０）／（１４０＋１３５＋１３５＋１３５）＝０．０５５０５となり、相対並列化率Ｒγ（ｐ）を約５．５％阻害していることが分かる。なお、εｐ（ｐ）は変わらないので、スケーラビリティ判断と性能判断の結果は（２−１）と同じである。
【００６１】
（３）各ノードが２プロセッサのＳＭＰ（対称型マルチプロセッシング：Ｓｙｍｍｅｔｒｉｃ  ＭｕｌｔｉＰｒｏｃｅｓｓｉｎｇ）であった場合
（３−１）χｉ，ＭＥＭ（ｐ）が測定された場合
図７の４つのプロセッサをノードとし、各ノードが２プロセッサのＳＭＰであった場合の測定結果を図８に示す。
【００６２】
図７では、第１プロセッサのγ１（８）は３０単位時間と３０単位時間と２回に分かれており、並列計算される第１の部分の終了後１５単位時間、第２の部分の前後５単位時間ずつχ１，Ｃ（８）が測定されており、１回目のχ１，Ｃ（８）と２回目のχ１，Ｃ（８）の間に１０単位時間の間、さらに最後の５単位時間の間χ１，Ｓ（８）が測定されている。第２プロセッサのγ２（８）は３０単位時間と３０単位時間と２回に分かれており、並列計算される第１の部分の終了後１５単位時間、第２の部分の前後５単位時間ずつχ２，Ｃ（８）が測定されており、１回目のχ２，Ｃ（８）と２回目のχ２，Ｃ（８）の間に１０単位時間の間χ２，Ｗ（８）が測定されている。第３プロセッサのγ３（８）は３０単位時間と３０単位時間と２回に分かれており、並列計算される第１の部分の開始前５単位時間の間にχ３，ＴＣ（８）が測定されており、並列計算される第１の部分の終了後１０単位時間、第２の部分の前後５単位時間ずつχ３，Ｃ（８）が測定されている。また、１回目のχ３，Ｃ（８）と２回目のχ３，Ｃ（８）の間に１０単位時間の間χ３，Ｗ（８）が測定されている。第４プロセッサのγ４（８）は３０単位時間と３０単位時間と２回に分かれており、並列計算される第１の部分の開始前５単位時間の間にχ４，ＴＣ（８）が測定されており、並列計算される第１の部分の終了後１０単位時間、第２の部分の前後５単位時間ずつχ４，Ｃ（８）が測定されている。また、１回目のχ４，Ｃ（８）と２回目のχ４，Ｃ（８）の間に１０単位時間の間χ４，Ｗ（８）が測定されている。第５プロセッサのγ５（８）は３０単位時間と３０単位時間と２回に分かれており、並列計算される第１の部分の開始前１０単位時間の間にχ５，ＴＣ（８）が測定されており、並列計算される第１の部分の終了後５単位時間、第２の部分の前後５単位時間ずつχ５，Ｃ（８）が測定されている。また、１回目のχ５，Ｃ（８）と２回目のχ５，Ｃ（８）の間に１０単位時間の間χ５，Ｗ（８）が測定されている。第６乃至第８プロセッサについては第５プロセッサと同じような測定結果が得られている。
【００６３】
ＳＭＰの測定例はメモリアクセス時間を増加することにより作成した。この時間は図７の測定結果と図８の測定結果を比較することにより計算できる。例えばγ１（４）＝１００であったが、第１のノードのγ１（８）＋γ２（８）＝３０＋３０＋３０＋３０＝１２０となる。このように第１のノードにおいて２０単位時間γｉ（８）が長くなっており、これがχ１，ＭＥＭ（８）＋χ２，ＭＥＭ（８）＝２０ということになる。従って、χ１，ＭＥＭ（８）＝χ２，ＭＥＭ（８）＝１０である。他のノードについても同様である。なお、図８においてγｉ（ｐ）のうち１０単位時間がχｉ，ＭＥＭ（ｐ）である点に注意する。
【００６４】
よって以下のような計算がなされる。εｐ（８）＝（５０×８）／（１００×８）＝０．５、Ｒｂ（８）＝（１００＋９５×７）／（１００×８）＝０．９５６３、Ｒγ（８）＝（５０×８）／（１００＋９５×７）＝０．５２２９、ＲＣ＝（２５×２＋２０×２＋１５×４）／（１００＋９５×７）＝０．１９６１、ＲＴＣ（８）＝（５×２＋１０×４）／（１００＋９５×７）＝０．０６５４、ＲＳ（８）＝（１５）／（１００＋９５×７）＝０．０１９６、ＲＷ（８）＝（１０×７）／（１００＋９５×７）＝０．０９１５、ＲＭＥＭ（８）＝（１０×８）／（１００＋９５×７）＝０．１０４６、Ｓε（８）＝８×０．５＝４、ＬＲｂ（８）＝０．８７５、ｐｂ＝Ｉｎｔ（１／（１−０．９５６３））＝２２、Ｓ（ｐｂ）＝８×０．５／（１−０．５×（１−８／２２））＝５．８６７、ｐ’１／２／ｐ＝０．５／（１−０．５）＝１、Ｓ（∞）＝ｐ’１／２＝１×８＝８
【００６５】
このように、εｐ（８）＝０．５であるからスケーラビリティがないと判断される。また、Ｒｂ≧ＬＲｂ（８）という関係も確認できる。
【００６６】
（３−２）χｉ，ＭＥＭ（ｐ）が測定されない場合
一方、χｉ，ＭＥＭ（ｐ）が測定されない場合には、γｉ（８）の値が１０増加するため、εｐ（８）、Ｒγ（８）、ＲＭＥＭ（８）、Ｓε、Ｓ（ｐ’ｂ）、Ｓ（∞）＝ｐ’１／２、ｐ’１／２／ｐの値は変化する。
【００６７】
εｐ（８）＝（６０×８）／（１００×８）＝０．６、Ｒγ（８）＝（６０×８）／（１００＋９５×７）＝０．６２７５、ＲＭＥＭ（８）＝０、Ｓε＝０．６×８＝４．８、Ｓ（ｐ’ｂ）＝８×０．６／（１−０．６×（１−８／２２））＝７．７６５、ｐ’１／２／ｐ＝０．６／（１−０．６）＝１．５、Ｓ（∞）＝ｐ’１／２＝１．５×８＝１２、Ｓ（ｐ’１／２）＝８×０．６／（１−０．６×（１−２／３））＝６
【００６８】
εｐ（８）が０．５から０．６に増加したため、スケーラビリティがあると判断されるようになる。
【００６９】
（４）プロセッサの性能が異なる場合
図９に第１のプロセッサの性能が他のものに比べて５分の１である場合を示す。ロードバランス寄与率Ｒｂ（４）＝（７００＋１４０×３）／７００×４＝０．４となる。その結果、ｐｂ＝Ｉｎｔ（１／（１−０．４））＝１となる。従って、並列処理は意味がなく、資源を無駄に使用していることが分かる。
【００７０】
（５）グリッド上のスケーラビリティの検討
並列処理がグリッド上で実現されている場合、各プロセッサのＣＰＵ性能が異なるのが普通である。その場合、各プロセッサが受け持つ処理の量が異なるため、均等に処理を分割すると仮定する（１６−３）式は一般的には成り立たなくなる。しかし、全てのプロセッサのＣＰＵ性能が異なっても、ｐ’１／２／ｐ＝２，３，４・・・という整数の場合に限り、各プロセッサが自己のＣＰＵ性能と同等かそれ以上のプロセッサをアロケートし、それに処理を均等に分割すると仮定する（１６−３）式を使用してスケーラビリティを検討することが可能となる。図７の場合、ｐ’１／２＝２×ｐ＝８、ｐ’１／２＝３×ｐ＝１２、ｐ’１／２＝４×ｐ＝１６に対し、（１６−３）式から各々Ｓ（８）＝４．４４５、Ｓ（１２）＝５．４５５、Ｓ（１６）＝６．１５４となる。
【００７１】
以上述べように、従来の並列効率に含まれていた冗長な評価指標を廃した新たな並列効率を定義し、それをロードバランス寄与率と並列性能阻害要因寄与率又は相対並列化率で記述する並列性能記述フレームワークを導入した。このフレームワークは、１回の測定から得られる処理時間データによる並列性能の記述とスケーラビリティ判定を可能にする。このフレームワークは、処理分野、アーキテクチャ、並列処理方式、並列化方法、ノード内の並列処理からクラスタやグリッド等のヘテロジニアスな環境、またシステム、タスク、カーネル等の処理の単位を問わず適用可能である。即ち、本フレームワークの下で全ての並列処理の性能が比較可能となり、そのうちの多くに対しスケーラビリティ判定が可能となる。
【００７２】
［本発明の実施の形態］
以上述べた本発明の原理を前提として、本発明の一実施の形態を図１０乃至図１９を用いて説明する。図１０には、並列性能の評価対象たる並列計算機システム３と並列性能評価装置１とが、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークを介して接続されている様子を示している。但し、必ずしも並列計算機システム３と並列性能評価装置１が接続されていなくともよい。その場合、並列計算機システム３における測定結果は、オフラインにて並列性能評価装置１に入力される。
【００７３】
並列計算機システム３は、ｐ個のプロセッサを有している。ｐ個のプロセッサに含まれるプロセッサＡには、τ測定部３１ａ、γ測定部３１ｂ及びχ測定部３１ｃとが構成されている。また、ｐ個のプロセッサに含まれるプロセッサＢには、τ測定部３２ａ、γ測定部３２ｂ及びχ測定部３２ｃとが構成されている。また、ｐ個のプロセッサに含まれるプロセッサＣには、τ測定部３３ａ、γ測定部３３ｂ及びχ測定部３３ｃとが構成されている。以下同様にプロセッサＰまで同様に構成される。なお、これらの機能については以下で詳しく述べる。
【００７４】
並列性能評価装置１は、τ前処理部１１、γ前処理部１２、χ前処理部１３、εｐ計算部１４、並列性能阻害要因寄与率計算部１５、ロードバランス寄与率計算部１６、相対並列化率計算部１７、スケーラビリティ計算部１８及びワークメモリ領域１９とを含む。また、並列性能評価装置１は、各種の指標データ等を格納する指標データ格納部２１と、印刷装置や表示装置を含む出力装置２２と、マウスやキーボードを含む入力装置２３とに接続されている。
【００７５】
並列計算機システム３におけるτ測定部３１ａ乃至３３ａは、プログラムに従って並列処理を実行しながら、当該プロセッサにおける処理時間τｉ（ｐ）を測定する。γ測定部３１ｂ乃至３３ｂは、プログラムに従って並列処理を実行しながら、当該プロセッサにおける処理時間γｉ（ｐ）を測定する。χ測定部３１ｃ乃至３３ｃは、プログラムに従って並列処理を実施しながら、当該プロセッサにおける処理時間χｉ，ｊ（ｐ）を測定する。なお、意図して測定を行う並列性能阻害要因についての処理時間以外の処理時間χｉ，ｏｔｈｅｒｓ（ｐ）については、τｉ（ｐ）からγｉ（ｐ）及び意図して測定を行ったχｉ，ｊ（ｐ）の総和を差し引くことにより計算できる。
【００７６】
測定の仕方としては、例えば、各処理の開始から終了までをタイマで計測したり、各処理の開始時刻及び終了時刻を記録して処理終了後に処理時間を計算する方法であってもよい。時間の計測は、オペレーティング・システム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を含むソフトウエアによる場合もあれば、ハードウエアによる場合もある。測定された処理時間のデータについては、一旦並列計算機システム３のメモリ中に格納され、場合によっては他の記憶装置に格納される。そして並列処理終了後に、測定された処理時間のデータを並列性能評価装置１にネットワークを介して送信しても良いし、記録媒体に格納して当該記録媒体を介して並列性能評価装置１に入力するようにしても良い。
【００７７】
また、処理時間の測定ではなく、一定時間間隔毎に実行中のプログラムの事象を確認し、各事象についてカウントを行う場合もある。このような測定を、サンプリングによる測定と呼ぶ。このようなサンプリングによる測定は、Ｒｂ（ｐ）、Ｒγ（ｐ）、Ｒｊ（ｐ）が時間比の形をしているため使用することが可能となる。測定精度による違いはあるが、時間測定による方法とサンプリングによる方法では結果は同じになる。
【００７８】
図１１にサンプリングによる測定の概念図を示す。図１１では左から右に時間が経過する様子を示している。図１１において下向き矢印はサンプリングのタイミングを示しており、下向き矢印の間隔で表されるようにサンプリングは一定時間間隔で行われる。図１１においては、最初に逐次処理がχｉ，Ｓ（ｐ）だけ実施された後、並列計算がγｉ（ｐ）だけ行われる。なお、全体として処理はτｉ（ｐ）だけ実施されている。サンプリング回数は、χｉ，Ｓ（ｐ）だけ続いた逐次処理の事象においては７回、γｉ（ｐ）だけ続いた並列計算の事象においては９回である。全体の処理時間τｉ（ｐ）の間では、サンプリング回数は２２回である。並列性能阻害要因のうち意図して測定したχｉ，Ｓ（ｐ）以外の事象をまとめてχｉ，ｊｏｔｈｅｒｓ（ｐ）で表し、意図して測定したτｉ（ｐ）からχｉ，Ｓ（ｐ）及びγｉ（ｐ）を差し引くことにより計算できる。図１１の例では、χｉ，ｊｏｔｈｅｒｓ（ｐ）の間のサンプリング回数が６回（＝２２−９−７）であることが分かる。
【００７９】
実際にどのようにサンプリングによる測定を実施するかについては、その概要を以下に説明しておく。
（１）τｉ（ｐ）の部分
（ａ）処理の始めにおいて事象τｉ（ｐ）のためのフラグをｏｎにし、処理の終了においてｏｆｆにする。実行時に事象τｉ（ｐ）のためのフラグのｏｎ／ｏｆｆを一定時間間隔で識別し、ｏｎと識別された回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの記述と処理を、必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、プログラム・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【００８０】
（ｂ）プログラム名又はそれに代替する実行モジュール名等により事象を特定し、実行時にそのプログラム名又は実行モジュール名等を一定時間間隔で識別し、識別された名称の識別回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの名前生成法と、識別処理及びカウント処理とを必要に応じて組み合わせて測定する。
・コンパイラが、上記プログラム名又は実行モジュール名等を生成する。
・ＯＳが、上記プログラム名又は実行モジュール名等を生成する。
・ランタイム・ライブラリが、上記プログラム名又は実行モジュール名等を生成する。
・ハードウエアが、上記プログラム名又は実行モジュール名等を生成する。
・並列言語拡張やコンパイラ・ディレクティブ等の記述により、上記プログラム名又は実行モジュール名等を生成する。
・プログラマの記述により、上記プログラム名又は実行モジュール名等を生成する。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理の実施を、ハードウェア・レベルで行う。
【００８１】
（２）χｉ，ｊ（ｐ）とγｉ（ｐ）の部分
（ａ）事象χｉ，ｊ（ｐ）、γｉ（ｐ）が出現する毎にその処理の初めにそのためのフラグをｏｎにし、その処理の終わりにそのためのフラグをｏｆｆにセットする。
実行時に各事象のためのフラグのｏｎ／ｏｆｆを一定時間間隔で識別し、ｏｎと識別された回数をカウントしてサンプリング回数を得るものとする。１つの方法では検出できない場合があるため、以下の方法のいずれかの記述と処理を必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをｏｎ／ｏｆｆさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをｏｎ／ｏｆｆすべき位置を検出し、当該フラグをｏｎ／ｏｆｆさせるための記述を行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理のための記述を、アプリケーションプログラム・レベルで行う。
・上記フラグがｏｎであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【００８２】
（ｂ）既知のモジュール名を並列処理部又は並列性能阻害要因に係る処理部に予め分類しておき、実行時にモジュール名を識別し、各モジュール名につきカウントしてサンプリング回数を得る。以下に示す分類方法と、識別処理及びカウント処理を必要に応じて組み合わせて測定する。
・モジュール名の分類を、コンパイラレベルで行う。
・モジュール名の分類を、ＯＳレベルで行う。
・モジュール名の分類を、ランタイムライブラリ・レベルで行う。
・モジュール名の分類を、ハードウェア・レベルで行う。
・モジュール名の分類を、並列言語拡張やコンパイラディレクティブ・レベルで行う。
・モジュール名の分類を、ユーザレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・上記モジュール名の識別処理及びカウント処理の実施をハードウェア・レベルで行う。
【００８３】
例として、全プロセッサにあるＦ（Ｉｍａｘ）の各要素を足し合わせる処理をＦｏｒｔｒａｎと並列ライブラリのＭＰＩ（Ｍｅｓｓａｇｅ  Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ）で記述したプログラムを用いて、χｉ，ｊ（ｐ）のサンプリング方法を以下の表１に示す。例えばｏｎのフラグを、コンパイラに指示を行う「＊ｓａｍｐｏｎ」で表わし、ｏｆｆのフラグを「＊ｓａｍｐｏｆｆ」で表す。また、Ｓを逐次処理とし、Ｃを通信とし、ＳやＣの後ろの数字をその出現順番を表すものとする。総和処理の部分は各プロセッサで同じ計算を行う逐次処理であるので、その始点と終点に「＊ｓａｍｐｏｎ  （Ｓ），  ２」及び「＊ｓａｍｐｏｆｆ  （Ｓ），  ２」を配置し、フラグをｏｎ／ｏｆｆする。ｎＬＯＣＡＬという変数の計算についても逐次処理であるから、その始点と終点に「＊ｓａｍｐｏｎ  （Ｓ），  １」及び「＊ｓａｍｐｏｆｆ  （Ｓ），  １」を配置し、フラグをｏｎ／ｏｆｆする。さらに、ＭＰＩ＿ＡＬＬＴＯＡＬＬは通信ライブラリであり、ここでは「＊ｓａｍｐｏｎ  （Ｃ），  １」「＊ｓａｍｐｏｆｆ  （Ｃ），  １」並びに「＊ｓａｍｐｏｎ  （Ｃ），  ２」及び「＊ｓａｍｐｏｆｆ  （Ｃ），  ２」を配置し、フラグをｏｎ／ｏｆｆする。なお、ＭＰＩ＿ＡＬＬＴＯＡＬＬの場合には、ツールやコンパイラやＯＳが事象を識別してフラグを立てるようにすることも可能である。
【００８４】
【表１】
2004341750.tif 000023
2004341750.tif 000024
【００８５】
表１のプログラムを実行した際のサンプリングの一例を図１２に示す。図１２では、事象［（Ｓ），１］、［（Ｓ），２］、［（Ｃ），１］、［（Ｃ），２］の各々についてカウントされる。但し、並列効率等を計算する際には、逐次処理全体［（Ｓ），１＋（Ｓ），２］、通信処理全体［（Ｃ），１＋（Ｃ），２］として扱う。
【００８６】
次に、図１３を用いて図１０に示したシステム等の処理フローを説明する。最初に、処理時間を直接測定するための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのフラグをｏｎ／ｏｆｆさせるための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのモジュール名等の分類などを含む前処理を実施する（ステップＳ１）。この処理については、並列計算機システム３で行われる場合もあれば、他の計算機システムにおいて行われる場合もある。さらに、プログラマなどの人間により行われる場合もある。なお、ステップＳ１は、並列性能評価装置１において実施される処理ではなく並列計算機システム３により実施される処理でもない場合もあるので、点線ブロックで表されている。
【００８７】
次に、並列計算機システム３のτ測定部３１ａ乃至３３ａ、γ測定部３１ｂ乃至３３ｂ及びχ測定部３１ｃ乃至３３ｃは、前処理に基づいて、処理時間の測定を実施したり、サンプリング数をカウントしたりする測定処理を実施する（ステップＳ３）。測定結果である各処理時間γｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）又は各処理時間に対応するサンプリングのカウント値については、並列計算機システム３のメモリなどの記憶装置に格納される。測定結果のデータについては、並列計算機システム３からネットワークを介してτ前処理部１１、γ前処理部１２及びχ前処理部１３に送信するようにしても良いし、オフラインにてτ前処理部１１、γ前処理部１２及びχ前処理部１３に入力するようにしても良い。なお、ステップＳ３は並列計算機システム３において実施される処理であるため一点鎖線のブロックで表されている。
【００８８】
そして、並列性能評価装置１のτ前処理部１１、γ前処理部１２及びχ前処理部１３は、測定結果であるγｉ（ｐ）、χｉ，ｊ（ｐ）、τｉ（ｐ）についての前処理を実施する（ステップＳ５）。この前処理については、図１４を用いて詳細に説明する。
【００８９】
並列性能評価装置１のτ前処理部１１は、並列計算機システム３のτ測定部３１ａ乃至３３ａにおいて測定されたτｉ（ｐ）のデータを取得すると、ワークメモリ領域１９内の領域１９０１に順番に格納する。すなわち、τ１（ｐ）、τ２（ｐ）、τ３（ｐ）、τ４（ｐ）、・・・τｐ（ｐ）を順番に格納する。なお、図１４乃至図１９では（ｐ）については表示を省略している。また、後の処理のため、τ１（ｐ）、τ２（ｐ）、τ３（ｐ）、τ４（ｐ）、・・・τｐ（ｐ）を順番に読み出して全てを加算することにより、τｉ（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９０２に格納する。さらに、後に処理のため、τ１（ｐ）、τ２（ｐ）、τ３（ｐ）、τ４（ｐ）、・・・τｐ（ｐ）を順番に読み出し、最初の値を最も大きい値として保持し、当該最も大きい値と次に読み出した値とを比較して、次に読み出した値の方が大きい場合には最も大きい値を更新し、最も大きい値の方が大きい場合にはそのまま保持しつづけるという処理を繰り返し、最終的に保持している最も大きい値をτ（ｐ）として、ワークメモリ領域１９内の領域１９０３に格納する。
【００９０】
また、並列性能評価装置１のγ前処理部１２は、並列計算機システム３のγ測定部３１ｂ乃至３３ｂにおいて測定されたγｉ（ｐ）のデータを取得すると、ワークメモリ領域１９内の領域１９１１に順番に格納する。すなわち、γ１（ｐ）、γ２（ｐ）、γ３（ｐ）、γ４（ｐ）、・・・γｐ（ｐ）を順番に格納する。なお、図１４では（ｐ）については表示を省略している。また、後の処理のため、γ１（ｐ）、γ２（ｐ）、γ３（ｐ）、γ４（ｐ）、・・・γｐ（ｐ）を順番に読み出して全てを加算することにより、γｉ（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９１２に格納する。
【００９１】
また、並列性能評価装置１のχ前処理部１３は、並列計算機システム３のχ測定部３１ｃ乃至３３ｃにおいて測定されたχｉ，ｊ（ｐ）のデータを取得すると、ワークメモリ領域１９内の領域１９２１に順番に格納する。すなわち、χ測定部３１ｃにおいて測定されたχ１，１（ｐ）、χ１，２（ｐ）、・・・χ１，ｊｏｔｈｅｒｓ（ｐ）を順番に格納する。また、χ測定部３２ｃにおいて測定されたχ２，１（ｐ）、χ２，２（ｐ）、・・・χ２，ｊｏｔｈｅｒｓ（ｐ）を順番に格納する。さらに、χ測定部３３ｃにおいて測定されたχ３，１（ｐ）、χ３，２（ｐ）、・・・χ３，ｊｏｔｈｅｒｓ（ｐ）を順番に格納する。以下同様である。なお、χｉ，ｊｏｔｈｅｒｓ（ｐ）については測定されない場合もあるので、τｉ（ｐ）からγｉ（ｐ）及びχ１，１（ｐ）、χ１，２（ｐ）、・・・を差し引くことにより計算し、格納するようにしてもよい。さらに、後の処理のため、χ１，１（ｐ）、χ２，１（ｐ）、χ３，１（ｐ）、χ４，１（ｐ）・・・χｐ，１（ｐ）を順番に読み出してすべて加算することにより、χｉ，１（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９２２に格納する。また、χ１，２（ｐ）、χ２，２（ｐ）、χ３，２（ｐ）、χ４，２（ｐ）・・・χｐ，２（ｐ）を順番に読み出してすべて加算することにより、χｉ，２（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９２２に格納する。同様に繰り返して、χ１，ｊｏｔｈｅｒｓ（ｐ）、χ２，ｊｏｔｈｅｒｓ（ｐ）、χ３，ｊｏｔｈｅｒｓ（ｐ）、χ４，ｊｏｔｈｅｒｓ（ｐ）・・・χｐ，ｊｏｔｈｅｒｓ（ｐ）を順番に読み出してすべて加算することにより、χｉ，ｊｏｔｈｅｒｓ（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９２２に格納する。
【００９２】
なお、並列処理に使用したプロセッサ数ｐについても、例えば入力装置２３からの入力に基づき、又はτ、γ、又はχのデータの個数をカウントすること等により取得し、ワークメモリ領域１９内の領域１９１３に格納しておく。
【００９３】
図１３の処理フローの説明に戻って、相対並列化率計算部１７、ロードバランス寄与率計算部１６及び並列性能阻害要因寄与率計算部１５は、相対並列化率Ｒγ（ｐ）、ロードバランス寄与率Ｒｂ（ｐ）及び並列性能阻害要因寄与率Ｒｊ（ｐ）を計算し、ワークメモリ領域１９に格納する（ステップＳ７）。この計算処理については、図１５乃至図１７を用いて説明する。
【００９４】
図１５に示すように、相対並列化率計算部１７は、領域１９０２に格納されたτｉ（ｐ）の総和と、領域１９１２に格納されたγｉ（ｐ）の総和とを読み出し、（１１）式に従って、γｉ（ｐ）の総和をτｉ（ｐ）の総和で除することにより、相対並列化率Ｒγ（ｐ）を計算し、ワークメモリ領域１９内の領域１９３１に格納する。
【００９５】
また図１６に示すように、ロードバランス寄与率計算部１６は、領域１９０２に格納されたτｉ（ｐ）の総和と、領域１９０３に格納されたτ（ｐ）と、領域１９１３に格納されたｐとを読み出し、（１０）式に従って、τｉ（ｐ）の総和をτ（ｐ）及びｐで除することによりロードバランス寄与率Ｒｂを計算し、ワークメモリ領域１９内の領域１９４１に格納する。
【００９６】
さらに図１７に示すように、並列性能阻害要因寄与率計算部１５は、領域１９０２に格納されたτｉ（ｐ）の総和と、領域１９２２に格納されたχｉ，１（ｐ）の総和、χｉ，２（ｐ）の総和、・・・χｉ，ｊｏｔｈｅｒｓ（ｐ）の総和を読み出し、（１２）式に従って、χｉ，１（ｐ）の総和をτｉ（ｐ）の総和で除することにより１番目の並列性能阻害要因の寄与率Ｒ１（ｐ）を計算し、χｉ，２（ｐ）の総和をτｉ（ｐ）の総和で除することにより２番目の並列性能阻害要因の寄与率Ｒ２（ｐ）を計算し、・・・χｉ，ｊｏｔｈｅｒｓ（ｐ）の総和をτｉ（ｐ）の総和で除することにより残余の並列性能阻害要因の寄与率Ｒｊｏｔｈｅｒｓ（ｐ）を計算し、ワークメモリ領域１９内の領域１９５１に順番に格納する。なお、並列性能阻害要因寄与率計算部１１５は、後の計算のため、領域１９５１に格納されたＲ１（ｐ）、Ｒ２（ｐ）、・・・Ｒｊｏｔｈｅｒｓ（ｐ）を順番に読み出して全て加算することによりＲｊ（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９５２に格納しておく。
【００９７】
再び図１３の処理フローに戻って、εｐ計算部１４は、本実施の形態における並列効率εｐ（ｐ）を計算し、ワークメモリ領域１９に格納する（ステップＳ９）。この計算処理についても図１４及び図１８を用いて説明する。
【００９８】
図１４の下部に示したように、εｐ計算部１４は、領域１９０３に格納されたτ（ｐ）と、領域１９１２に格納されたγｉ（ｐ）の総和と、領域１９１３に格納されたｐとを読み出し、（６）式に従って、γｉ（ｐ）の総和をτ（ｐ）及びｐで除することにより並列効率εｐ（ｐ）を計算し、ワークメモリ領域１９内の領域１９１４に格納する。
【００９９】
εｐ（ｐ）は（８）式や（９）式でも計算される。この場合には図１８に示すように、εｐ計算部１４は、領域１９４１に格納されたＲｂ（ｐ）を読み出し、領域１９３１に格納されたＲγ（ｐ）を読み出し、（８）式に従って、Ｒｂ（ｐ）とＲγ（ｐ）との積を計算し、ワークメモリ領域１９内の領域１９１４に格納する。また、εｐ計算部１４は、領域１９４１に格納されたＲｂ（ｐ）を読み出し、領域１９５２に格納されたＲｊ（ｐ）の総和を読み出し、（９）に従って、Ｒｂ（ｐ）とＲｊ（ｐ）の総和の１からの差との積を計算し、ワークメモリ領域１９内の領域１９１４に格納するようにしても良い。なお、Ｒｊ（ｐ）の総和がまだ計算されていない場合には、領域１９５１に格納されたＲ１（ｐ）、Ｒ２（ｐ）、・・・Ｒｊｏｔｈｅｒｓ（ｐ）を順番に読み出して全て加算することによりＲｊ（ｐ）の総和を計算し、ワークメモリ領域１９内の領域１９５２に格納するようにしても良い。
【０１００】
再び図１３の処理フローに戻って、スケーラビリティ計算部１８は、スケーラビリティに関連するデータを計算し、ワークメモリ領域１９に格納する（ステップＳ１１）。この計算処理については図１９に詳細に示す。
【０１０１】
図１９に示すように、スケーラビリティ計算部１８は、領域１９１４に格納されたεｐ（ｐ）と、領域１９１３に格納されたｐとを読み出し、（１６−１）式に従って、εｐ（ｐ）とｐの積を計算することによりスピードアップＳε（ｐ）を計算し、ワークメモリ領域１９内の領域１９６１に格納する。
【０１０２】
また、スケーラビリティ計算部１８は、領域１９１４に格納されたεｐ（ｐ）と、領域１９１３に格納されたｐと、例えば入力装置２３から入力された投入予定プロセッサ数ｐ’が格納された領域１９１６からｐ’を読み出し、（１６−２）式に従って、ｐをｐ’で除した結果の１からの差とεｐ（ｐ）との積の１からの差の逆数であるスピードアップＳＡ（ｐ’）を計算し、ワークメモリ領域１９内の領域１９６２に格納する。
【０１０３】
さらに、スケーラビリティ計算部１８は、領域１９１４に格納されたεｐ（ｐ）と、領域１９１３に格納されたｐと、領域１９１６に格納されたｐ’とを読み出し、（１６−３）式に従って、ｐをｐ’で除した結果の１からの差とεｐ（ｐ）との積の１からの差の逆数とεｐ（ｐ）とｐとの積であるスピードアップＳ（ｐ’）を計算し、ワークメモリ領域１９内の領域１９６３に格納する。
【０１０４】
なお、ｐ’は、入力装置２３から入力された値だけではなく、スケーラビリティ計算部１８により計算されるｐｂなどを用いるようにしても良い。
【０１０５】
さらに、スケーラビリティ計算部１８は、領域１９１４に格納されたεｐ（ｐ）と、例えば入力装置２３から入力された最大性能に対する割合ｘが格納された領域１９１５からｘを読み出し、（１７）式に従って、ｘの逆数から１を差し引いた結果とεｐ（ｐ）の１からの差との積の逆数とεｐ（ｐ）との積であるｘという性能を得るために必要なプロセッサ数の現在プロセッサ数に対する倍数ｐ’ｘ／ｐを計算し、ワークメモリ領域１９内の領域１９６４に格納する。
【０１０６】
なお、ｘが１／２であれば、スケーラビリティ計算部１８は、領域１９１４に格納されたεｐ（ｐ）を読み出し、（１８）式に従って、εｐ（ｐ）の１からの差の逆数とεｐ（ｐ）との積を計算し、ワークメモリ領域１９内の領域１９６４に格納する。
【０１０７】
また、スケーラビリティ計算部１８は、領域１９６４に格納されたｐ’ｘ／ｐと、領域１９１３に格納されたｐとを読み出し、ｐ’ｘ／ｐとｐとの積を計算することによりｐ’ｘを得て、ワークメモリ領域１９内の領域１９６５に格納する。
【０１０８】
さらに、スケーラビリティ計算部１８は、領域１９４１に格納されたＲｂ（ｐ）を読み出し、Ｒｂ（ｐ）の１からの差の逆数であるｐｂを計算し、ワークメモリ領域１９内の領域１９６６に格納する。
【０１０９】
また、スケーラビリティ計算部１８は、領域１９１３に格納されたｐを読み出し、（１９）式に従って、ｐの１からの差の逆数とｐとの積であるＬＲｂを計算し、ワークメモリ領域１９の領域１９６７に格納する。
【０１１０】
さらに、スケーラビリティ計算部１８は、領域１９４１に格納されたＲｂ（ｐ）と、領域１９６７に格納されたＬＲｂ（ｐ）とを読み出していずれが大きいか判断し、Ｒｂ（ｐ）がＬＲｂ以上であればＹｅｓを表すデータを、ＬＲｂ（ｐ）が大きければＮｏを表すデータを、ワークメモリ領域１９内の領域１９６８に格納する。
【０１１１】
このようにスケーラビリティ計算部１８の処理について図１９で説明したが、これらの全てを実施せずとも、例えば入力装置２３により指示された事項に関連する処理のみを実施するようにしてもよい。
【０１１２】
再び図１３に戻って、並列性能評価装置１は、ワークメモリ領域１９に格納されている相対並列化率、並列性能阻害要因寄与率、ロードバランス寄与率、並列効率εｐ（ｐ）、スケーラビリティに関連するデータを出力装置２２に出力する（ステップＳ１３）。これにより並列性能評価装置１を利用しているユーザは、並列計算機システム３の性能についてのデータを得ることができ、評価を行うことができる。
【０１１３】
なお、並列性能評価装置１は、ワークメモリ領域１９に格納されているデータの全部又は一部を、指標データ格納部２１に格納する。
【０１１４】
以上本発明の一実施の形態について説明したが、これに限定されるものではない。例えば、並列性能評価装置１に含まれるワークメモリ領域１９以外の機能についてはコンパイラなどに実装される場合もある。その場合には、当該コンパイラは、τｉ（ｐ）、γｉ（ｐ）、χｉ，ｊ（ｐ）を測定するためのコードを、他の並列処理するためのコードと共に生成・出力し、コンパイラが動作するコンピュータのメモリに格納する。
【０１１５】
また、並列計算機システム３は、一台のコンピュータだけではなく複数のコンピュータの集合体である場合もある。さらに、並列性能評価装置１が並列計算機システム３の１つのプロセッサにより実現される場合もある。
【０１１６】
（付記１）
コンピュータにより並列計算機システムの性能を評価する方法であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第２データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記プロセッサの数及び前記第１データにて除した値である並列効率を算出し、記憶装置に格納するステップと、
を含む並列計算機システム性能評価方法。
【０１１７】
（付記２）
コンピュータにより並列計算機システムの性能を評価する方法であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスと、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
前記第２データ・シーケンスと前記第３データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である相対並列化率を算出し、記憶装置に格納するステップと、
前記ロードバランス寄与率と前記相対並列化率とを用いて、前記ロードバランス寄与率を前記相対並列化率との積である並列効率を算出し、記憶装置に格納するステップと、
を含む並列計算機システム性能評価方法。
【０１１８】
（付記３）
コンピュータにより並列計算機システムの性能を評価する方法であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するステップと、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第２データ群と、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
前記第２データ群と第３データ・シーケンスとを用いて、前記第２データ群において前記所定の並列性能阻害要因毎に該当する第２データの総和を算出し、前記所定の並列阻害要因毎に前記第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率を算出し、記憶装置に格納するステップと、
前記並列性能阻害要因毎の前記並列性能阻害要因寄与率と前記ロードバランス寄与率とを用いて、前記並列性能阻害要因寄与率の総和の１からの差と前記ロードバランス寄与率の積である並列効率を算出し、記憶装置に格納するステップと、
を含む並列計算機システム性能評価方法。
【０１１９】
（付記４）
前記計測結果に基づいて、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスを記憶装置に格納するステップと、
前記プロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
をさらに含む付記１記載の並列計算機システム性能評価方法。
【０１２０】
（付記５）
前記第２データ・シーケンスと前記第３データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である相対並列化率を算出し、記憶装置に格納するステップと、
をさらに含む付記４記載の並列計算機システム性能評価方法。
【０１２１】
（付記６）
前記計測結果に基づいて、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスと、前記各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第４データ群とを記憶装置に格納するステップと、
前記第３データ・シーケンスと前記第４データ群を用いて、前記第４データ群において前記所定の並列性能阻害要因毎に該当する第４データの総和を算出し、前記所定の並列阻害要因毎に前記第４データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率を算出し、記憶装置に格納するステップと、
をさらに含む付記１記載の並列計算機システム性能評価方法。
【０１２２】
（付記７）
前記計測結果に基づいて、前記各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第４データ群を記憶装置に格納するステップと、
前記第３データ・シーケンスと前記第４データ群とを用いて、前記第４データ群において前記所定の並列性能阻害要因毎に該当する第４データの総和を算出し、前記所定の並列阻害要因毎に前記第４データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率を算出し、記憶装置に格納するステップと、
をさらに含む付記２記載の並列計算機システム性能評価方法。
【０１２３】
（付記８）
前記プロセッサの数と前記並列効率とを用いて、前記プロセッサの数と前記並列効率の積である第１のスピードアップ値を算出し、記憶装置に格納するステップ、
をさらに含む付記１乃至７のいずれか１つ記載の並列計算機システム性能評価方法。
【０１２４】
（付記９）
投入予定プロセッサ数の入力を受け付けるステップと、
前記プロセッサの数の前記投入予定プロセッサ数に対する割合の１からの差と前記並列効率との積の１からの差の逆数である第１の予想スピードアップ値を算出し、記憶装置に格納するステップと、
をさらに含む付記１乃至８のいずれか１つ記載の並列計算機システム性能評価方法。
【０１２５】
（付記１０）
投入予定プロセッサ数の入力を受け付けるステップと、
前記プロセッサの数の前記投入予定プロセッサ数に対する割合の１からの差と前記並列効率との積の１からの差の逆数と前記プロセッサの数と前記並列効率との積である第２の予想スピードアップ値を算出し、記憶装置に格納するステップと、
をさらに含む付記１乃至８のいずれか１つ記載の並列計算機システム性能評価方法。
【０１２６】
（付記１１）
前記並列計算機システムの最大性能に対する要求割合の入力を受け付けるステップと、
前記要求割合の逆数と１との差と前記並列効率の１からの差との積の逆数と前記並列効率との積である、前記要求割合時のプロセッサ数の倍率を算出し、記憶装置に格納するステップと、
をさらに含む付記１乃至１０のいずれか１つ記載の並列計算機システム性能評価方法。
【０１２７】
（付記１２）
前記並列計算機システムの最大性能に対する要求割合の入力を受け付けるステップと、
前記要求割合の逆数と１との差と前記並列効率の１からの差との積の逆数と前記並列効率と前記プロセッサの数との積である、前記要求割合時のプロセッサ数を算出し、記憶装置に格納するステップと、
をさらに含む付記１乃至１０のいずれか１つ記載の並列計算機システム性能評価方法。
【０１２８】
（付記１３）
前記並列効率の１からの差の逆数と前記並列効率との積である、半値性能におけるプロセッサ数の倍率を算出し、記憶装置に格納するステップ、
をさらに含む付記１乃至１２のいずれか１つ記載の並列計算機システム性能評価方法。
【０１２９】
（付記１４）
前記ロードバランス寄与率の１からの差の逆数である下限プロセッサ数を算出し、記憶装置に格納するステップ、
をさらに含む付記２乃至４のいずれか１つ記載の並列計算機システム性能評価方法。
【０１３０】
（付記１５）
並列計算機システムの性能を評価するプログラムであって、
前記プログラムは、コンピュータに、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するためのコードを生成するステップと、
前記コードに基づいて得られた計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第２データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記プロセッサの数及び前記第１データにて除した値である並列効率を算出し、記憶装置に格納するステップと、
を実行させるためのプログラム。
【０１３１】
（付記１６）
並列計算機システムの性能を評価するプログラムであって、
前記プログラムは、コンピュータに、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するためのコードを生成するステップと、
前記コードに基づいて得られた計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスと、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
前記第２データ・シーケンスと前記第３データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である相対並列化率を算出し、記憶装置に格納するステップと、
前記ロードバランス寄与率と前記相対並列化率とを用いて、前記ロードバランス寄与率を前記相対並列化率との積である並列効率を算出し、記憶装置に格納するステップと、
を実行させるためのプログラム。
【０１３２】
（付記１７）
並列計算機システムの性能を評価するプログラムであって、
前記プログラムは、コンピュータに、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測するためのコードを生成するステップと、
前記コードに基づいて得られた計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第２データ群と、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納するステップと、
前記第２データ群と第３データ・シーケンスとを用いて、前記第２データ群において前記所定の並列性能阻害要因毎に該当する第２データの総和を算出し、前記所定の並列阻害要因毎に前記第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率を算出し、記憶装置に格納するステップと、
前記並列性能阻害要因毎の前記並列性能阻害要因寄与率と前記ロードバランス寄与率とを用いて、前記並列性能阻害要因寄与率の総和の１からの差と前記ロードバランス寄与率の積である並列効率を算出し、記憶装置に格納するステップと、
を実行させるためのプログラム。
【０１３３】
（付記１８）
並列計算機システムの性能を評価する装置であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測する手段と、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスとを記憶装置に格納する手段と、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第２データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記プロセッサの数及び前記第１データにて除した値である並列効率を算出し、記憶装置に格納する手段と、
を有する並列計算機システム性能評価装置。
【０１３４】
（付記１９）
並列計算機システムの性能を評価する装置であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測する手段と、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける並列処理部分の処理時間又は処理時間に相当する値である第２データ・シーケンスと、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納する手段と、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納する手段と、
前記第２データ・シーケンスと前記第３データ・シーケンスとを用いて、前記第２データ・シーケンスに含まれる第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である相対並列化率を算出し、記憶装置に格納する手段と、
前記ロードバランス寄与率と前記相対並列化率とを用いて、前記ロードバランス寄与率と前記相対並列化率との積である並列効率を算出し、記憶装置に格納する手段と、
を有する並列計算機システム性能評価装置。
【０１３５】
（付記２０）
並列計算機システムの性能を評価する装置であって、
評価の対象たる並列計算機システムにおいて使用した各プロセッサにおいて処理時間又は処理時間に相当する値を計測する手段と、
計測結果に基づいて、全プロセッサ中最も処理に時間のかかったプロセッサの全処理時間又は全処理時間に相当する値である第１データと、前記各プロセッサにおける所定の並列性能阻害要因についての処理時間又は処理時間に相当する値である第２データ群と、前記各プロセッサにおける全処理時間又は全処理時間に相当する値である第３データ・シーケンスとを記憶装置に格納する手段と、
前記並列計算機システムにおいて使用したプロセッサの数と前記第１データと前記第３データ・シーケンスとを用いて、前記第３データ・シーケンスに含まれる第３データの総和を前記プロセッサの数及び前記第１データにて除した値であるロードバランス寄与率を算出し、記憶装置に格納する手段と、
前記第２データ群と第３データ・シーケンスとを用いて、前記第２データ群において前記所定の並列性能阻害要因毎に該当する第２データの総和を算出し、前記所定の並列阻害要因毎に前記第２データの総和を前記第３データ・シーケンスに含まれる第３データの総和で除した値である並列性能阻害要因寄与率を算出し、記憶装置に格納する手段と、
前記並列性能阻害要因毎の前記並列性能阻害要因寄与率と前記ロードバランス寄与率とを用いて、前記並列性能阻害要因寄与率の総和の１からの差と前記ロードバランス寄与率の積である並列効率を算出し、記憶装置に格納する手段と、
を有する並列計算機システム性能評価装置。
【０１３６】
【発明の効果】
以上述べたように、並列効率などの並列性能の評価指標算出を１回の測定で行うことができるようになる。
【０１３７】
また、他の側面としてスケーラビリティの新規な定量的検討方法を提供することもできるようになる。さらに、他の側面としてロードバランスが定量的に評価できるようになる。
【図面の簡単な説明】
【図１】処理時間の構成を説明するための図である。
【図２】測定の一例を示す図である。
【図３】測定の一例を示す図である。
【図４】測定の一例を示す図である。
【図５】測定の一例を示す図である。
【図６】測定の一例を示す図である。
【図７】測定の一例を示す図である。
【図８】測定の一例を示す図である。
【図９】測定の一例を示す図である。
【図１０】本発明の一実施の形態に係るシステム概要図である。
【図１１】サンプリングによる測定の一例を示す図である。
【図１２】表１におけるサンプリング測定の結果例を示すテーブルである。
【図１３】本発明の一実施の形態に係る処理フローを示す図である。
【図１４】τ前処理部、γ前処理部、χ前処理部、εｐ計算部の処理を説明するためのブロック図である。
【図１５】相対並列化率計算部の処理を説明するための機能ブロック図である。
【図１６】ロードバランス寄与率計算部の処理を説明するための機能ブロック図である。
【図１７】並列性能阻害要因寄与率計算部の処理を説明するための機能ブロック図である。
【図１８】εｐ計算部の処理を説明するための機能ブロック図である。
【図１９】スケーラビリティ計算部の処理を説明するための機能ブロック図である。
【符号の説明】
１  並列性能評価装置    ３  並列計算機システム
１１  τ前処理部    １２  γ前処理部    １３  χ前処理部
１４  εｐ計算部
１５  並列性能阻害要因寄与率計算部
１６  ロードバランス寄与率計算部
１７  相対並列化率計算部    １８  スケーラビリティ計算部
１９  ワークメモリ領域
２１  指標データ格納部    ２２  出力装置    ２３  入力装置
３１ａ，３２ａ，３３ａ  τ測定部
３１ｂ，３２ｂ，３３ｂ  γ測定部
３１ｃ，３２ｃ，３３ｃ  χ測定部
【図１】
2004341750.tif 000026
【図２】
2004341750.tif 000027
【図３】
2004341750.tif 000028
【図４】
2004341750.tif 000029
【図５】
2004341750.tif 000030
【図６】
2004341750.tif 000031
【図７】
2004341750.tif 000032
【図８】
2004341750.tif 000033
【図９】
2004341750.tif 000034
【図１０】
2004341750.tif 000035
【図１１】
2004341750.tif 000036
【図１２】
2004341750.tif 000037
【図１３】
2004341750.tif 000038
【図１４】
2004341750.tif 000039
【図１５】
2004341750.tif 000040
【図１６】
2004341750.tif 000041
【図１７】
2004341750.tif 000042
【図１８】
2004341750.tif 000043
【図１９】
2004341750.tif 000044