Nothing Special   »   [go: up one dir, main page]

JP2004054680A - 並列効率計算方法 - Google Patents

並列効率計算方法 Download PDF

Info

Publication number
JP2004054680A
JP2004054680A JP2002212387A JP2002212387A JP2004054680A JP 2004054680 A JP2004054680 A JP 2004054680A JP 2002212387 A JP2002212387 A JP 2002212387A JP 2002212387 A JP2002212387 A JP 2002212387A JP 2004054680 A JP2004054680 A JP 2004054680A
Authority
JP
Japan
Prior art keywords
parallel
processing
efficiency
computer system
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002212387A
Other languages
English (en)
Inventor
Shigeo Orii
折居 茂夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002212387A priority Critical patent/JP2004054680A/ja
Priority to US10/619,462 priority patent/US7587437B2/en
Priority to EP03016506A priority patent/EP1416385A3/en
Publication of JP2004054680A publication Critical patent/JP2004054680A/ja
Priority to US12/508,768 priority patent/US20090288088A1/en
Priority to US12/508,760 priority patent/US8255442B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】ロードバランスが保たれていない場合にも、ヘテロなプロセッサ環境を含め多数の並列処理に適用でき、並列効率と並列性能評価指標であるロードバランス寄与率及び仮想並列化率、並びに並列性能阻害要因間の定量的関係付けを行う。
【解決手段】並列効率E(p)は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Rb(p)と、並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Rp(p)と、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Rj(p)とを用いて以下のように計算される。
Figure 2004054680

【選択図】 なし

Description

【0001】
【発明が属する技術分野】
本発明は、並列計算機システムの性能評価技術及び当該性能評価の結果の利用技術に関する。なお、本発明の技術は、従来のハイパフォーマンス・コンピューティング(HPC:High Performance Computing)で扱われる分野(構造解析、流体解析、計算化学等)、グリッド又はクラスタ上に展開されるバイオシミュレーション、ウェブ(Web)サービス(例えばMtoM(Machine to Machine))等、並列処理を行う全ての分野に適用可能である。
【0002】
【従来の技術】
アプリケーション毎に並列計算機システムの性能は著しく異なる。従ってその性能評価は重要である。並列計算機システムの性能評価方法には、(1)ある特定の処理を種々の計算機で実施して比較するものと、(2)ある計算機が自己のポテンシャルに対しどの位の性能を発揮しているかを評価する自己完結型の2通りがある。前者はベンチマークテストとして主に計算機間の性能比較に使用される。後者は導入後の実運用で実施する必要がある。この自己完結型の性能評価は並列効率という指標を用いて行うことができるが、実際には実施されていない。また並列効率の代わりにプロセッサ数pを変えながら時間測定を行い、理想的な減少の度合い1/pと比較する並列性能評価(いわゆるスケーラビリティ評価)も可能であるが、数回の時間測定を必要とするため通常は実施されない。またスケーラビリティ評価は定性的であり、厳密な並列性能評価を行うことはできない。従って現在、並列効率の悪い処理を検知できず、それらは野放し状態である。
【0003】
並列効率による並列処理の性能評価は、以下に示す式(1)及び(2)より決定される並列効率E(p)を求めることにより行われる。なお、pはプロセッサ数、τ(1)は1プロセッサで実行した場合の処理時間、τ(p)は同じ処理をp個のプロセッサで実行した場合の処理時間、τ(p)は1≦i≦pでi番目のプロセッサの処理時間である。
【数1】
Figure 2004054680
例えば式(1)は、柄谷,中村,奥田,矢川;並列有限要素法コードのGeoFEMの性能評価,Transactions of JSCES, No.20000022 (2000)という文献に開示されている。
【0004】
【発明が解決しようとする課題】
しかし、従来の方法で並列効率を決定しても、並列性能阻害要因との定量的関係が明確でなかったため、どの阻害要因がどの位並列効率に効いているかは分からなかった。また、一部の並列性能評価技術(例えば日本国特許出願番号2001−241121、米国特許出願番号09/998160)には、図1に示すように「ロードバランスが保たれ且つ各処理時間γ(並列部)、χi,1(冗長処理部)、χi,2(通信部)、χi,others(その他の並列性能阻害要因)が同じ」という条件が必要で、一部の並列処理にしか適用できないという問題があった。
【0005】
また、従来の方法ではグリッドやクラスタによる並列処理への適用が難しい。これはグリッドやクラスタ上に分散している、計算に必要なメモリ、データ、CPU等の資源を1つのプロセッサに集めると、1つのプロセッサで実現できない程大きな処理となる場合が多いためである。すなわち、τ(1)を測定すること自体が難しい。また式(1)においてτ(1)とτ(p)を実測で求めるということはプロセッサの性能が同じであるということを前提としているが、グリッドやクラスタ上の個々のプロセッサ性能は通常異なるため、実測したτ(1)とτ(p)を式(1)に代入しても正しい並列効率を決定できないという問題もある。
【0006】
従って本発明の目的は、「ロードバランスが保たれている」という条件をはずし、ヘテロなプロセッサ環境を含め多種類の並列処理に適用でき、並列効率と並列性能評価指標及び並列性能阻害要因間の定量的関係付けを行う並列処理性能評価技術を提供することである。
【0007】
また本発明の他の目的は、並列効率等を用いて、並列計算機システムの適切な運用を可能にするための技術を提供することである。
【0008】
さらに本発明の他の目的は、並列効率等を用いて、並列計算機システムの能力増強、更新等に対する適切な判断を可能にするための技術を提供することである。
【0009】
さらに本発明の他の目的は、並列効率等を用いて、並列計算機システムにおいて実行するプログラムのチューニングやアルゴリズムの選定を適切に実施できるようにするための技術を提供することである。
【0010】
【課題を解決するための手段】
本発明の第1の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Rb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率Rp(p)を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Rj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Rb(p)と仮想並列化率Rp(p)と並列性能阻害要因寄与率Rj(p)とを用いて並列効率を計算し(例えば実施の形態における式(4−4))、記憶装置に格納するステップとを含む。
【0011】
これにより並列効率は、ロードバランス寄与率、仮想並列化率及び並列性能阻害要因寄与率といった並列性能評価指標と定量的に関係付けられる。
【0012】
本発明の第2の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Rb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率A(p)を計算し、記憶装置に格納する加速率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Rj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Rb(p)と加速率A(p)と並列性能阻害要因寄与率Rj(p)とを用いて並列効率を計算し(例えば実施の形態における式(4−5))、記憶装置に格納するステップとを含む。
【0013】
これにより並列効率は、ロードバランス寄与率及び並列性能阻害要因寄与率といった並列性能評価指標並びに加速率という補助指標と定量的に関係付けられる。
【0014】
本発明の第3の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Rb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率Rj(p)を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、ロードバランス寄与率Rb(p)と並列性能阻害要因寄与率Rj(p)とを用いて並列効率を計算し(例えば実施の形態における式(8−2))、記憶装置に格納するステップとを含む。
【0015】
例えば、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和が、1プロセッサにより同一処理を実施した場合の処理時間とほぼ一致する場合、すなわちほとんど並列計算できるような処理内容の場合にはこのようにして計算することができる。
【0016】
本発明の第4の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率Rb(p)を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率Rp(p)を計算し、記憶装置に格納する仮想並列化率計算ステップと、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、各プロセッサにおいて実施された処理の処理時間の和と、ロードバランス寄与率Rb(p)と、仮想並列化率Rp(p)とを用いて並列効率を計算し(例えば実施の形態における式(9−1))、記憶装置に格納するステップとを含む。本発明の第1の態様の変形例である。
【0017】
本発明の第5の態様に係る、並列計算機システムの並列効率を計算する並列効率計算方法は、1プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第1の処理時間を計算し、記憶装置に格納するステップと、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第2の処理時間を計算し、記憶装置に格納するステップと、並列計算機システムにおいて使用したプロセッサの数と、並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、第1の処理時間と、第2の処理時間とを用いて並列効率を計算し(例えば実施の形態における式(9−2))、記憶装置に格納するステップとを含む。
【0018】
所定のモデル化に基づき一度の測定により得られる処理時間だけで並列効率が計算できるようになっている。
【0019】
また、上で述べたロードバランス寄与率計算ステップにおいて、上記ロードバランス寄与率Rb(p)を、並列計算機システムに含まれる全プロセッサにおいて実施された処理の全処理時間を、並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間及び並列計算機システムにおいて使用したプロセッサ数により除することにより計算する(例えば実施の形態における式(5))ような構成とすることも可能である。
【0020】
さらに、上で述べた仮想並列化率計算ステップにおいて、仮想並列化率Rp(p)を、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を、1プロセッサにより同一処理を実施した場合の第3の処理時間に相当する処理時間により除することにより計算する(例えば実施の形態における式(6−1))ような構成とすることも可能である。
【0021】
また、上で述べた並列性能阻害要因寄与率計算ステップにおいて、特定の並列性能阻害要因についての並列性能阻害要因寄与率R(p)を、並列計算機システムに含まれる各プロセッサにおける特定の並列性能阻害要因部分の処理時間の和を、並列計算機算システムに含まれる各プロセッサの処理時間の和により除することにより計算する(例えば実施の形態における式(7))ような構成とすることも可能である。
【0022】
また、上で述べた加速率計算ステップにおいて、上記加速率を、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を1プロセッサにより同一処理を実施した場合の第3の処理時間に相当する処理時間により除することにより計算される仮想並列化率を、1から差し引いた値の逆数として計算する(例えば実施の形態における式(6−2))ような構成とすることも可能である。
【0023】
さらに、上で述べた処理時間は、実際の処理時間に加え、対応する事象の確認回数で表される場合もある。
【0024】
また、計算された並列効率に並列計算機システムにおいて使用したプロセッサ数を乗じて補助指標を計算し、記憶装置に格納するステップをさらに含むような構成であってもよい。これにより、並列計算機システムにおいてプロセッサ何個分の処理を実施したかを提示することができるようになる。
【0025】
さらに、上で述べた第3の処理時間を、1プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第1の処理時間と並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第2の処理時間との和により計算する(例えば実施の形態における式(15))ような構成であってもよい。所定のモデル化により処理時間の1度の測定にて並列効率等の計算が可能になる。
【0026】
さらに、上で述べた第1の処理時間が、並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理又は通信処理の処理時間の和により計算される(例えば実施の形態における式(12−1)等)ような構成とすることも可能である。
【0027】
また、本発明の第1乃至第5の態様において、目標並列効率を設定するステップと、計算された並列効率とプロセッサ数の積を目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップとをさらに含むような構成も可能である。多くのプロセッサを投入しても処理時間の短縮につながるとは限らず、このように最適プロセッサ数が計算できれば無駄な資源の投入を防止することができる。
【0028】
さらに、本発明の第1乃至第5の態様において、システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された並列効率との全処理についての積和と、増加分の稼働時間及び予測並列効率の積との和を、並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し(例えば実施の形態における式(18))、記憶装置に格納するステップとをさらに含むような構成であってもよい。システム増強時においてシステム運用者に適切な定量的指針を与えることができるようになる。
【0029】
また、本発明の第1乃至第5の態様において、並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップとをさらに含むような構成であってよい。システムリプレイス時における定量的指針を与えることができるようになる。
【0030】
さらに、本発明の第1乃至第5の態様において、並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された並列効率との全処理についての積和を、並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム運用効率を計算し(例えば実施の形態における式(17))、記憶装置に格納するステップとをさらに含むような構成であってもよい。従来の稼働率という考え方に比して本発明のように並列効率を考慮したシステム運用効率を使用した方が、システム運用状況をより実際に即した形で評価することができるようになる。
【0031】
また、本発明の第1乃至第5の態様において、目標処理時間を設定するステップと、目標処理時間を用いて目標並列効率を計算し、記憶装置に格納するステップと、目標並列効率の妥当性を確認するステップとをさらに含むような構成であってもよい。例えば目標並列効率は、線形外挿にて計算することができる。
【0032】
さらに、目標並列効率の妥当性が確認された場合には、チューニング実施後の並列効率を計算し、記憶装置に格納するステップと、チューニング実施後の並列効率と目標並列効率とを比較するステップとをさらに含むような構成であってもよい。より定量的な観点で、アプリケーション等のチューニングを実施することができるようになる。
【0033】
また、本発明の第1乃至第5の態様において、目標処理時間を設定するステップと、異なるアルゴリズム毎に当該アルゴリズムにおける並列効率を用いて必要となるプロセッサ数の見積値を計算し、記憶装置に格納するステップと、プロセッサ数の見積値が並列計算機システムにおいて実施する当該アルゴリズムによる処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率より小さく、異なるアルゴリズムについて計算されたプロセッサ数の見積値のうち最小の値となるアルゴリズムを抽出するステップとをさらに含むような構成であってもよい。より並列効率を向上させることができるアルゴリズムを定量的に選択することができるようになる。
【0034】
なお、本発明に係る並列効率計算方法はプログラム及びコンピュータにて実施することができ、当該プログラムをコンピュータで実行する場合には当該コンピュータは並列効率計算装置となる。また、このようなプログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介して配布される場合もある。尚、中間的な処理結果はメモリに一時保管される。
【0035】
【発明の実施の形態】
[本発明の原理]
本発明では、並列効率E(p)を並列性能評価指標で記述することにより、並列効率E(p)を並列性能阻害要因と定量的に結び付ける。図2のように、並列処理時間τ(p)は、並列計算部の処理時間γ(p)と、各並列性能阻害要因jの処理時間χi,j(p)との和で式(3)のように表わすことができる。ここで1≦j≦jOthersである。なお、図2においてiはプロセッサ番号であり、pはプロセッサ個数である。また、図2ではプロセッサiとプロセッサi+1についてのみ示されている。
【数2】
Figure 2004054680
【0036】
そして式(1)を以下のように変形し、さらに並列性能評価指標であるロードバランス寄与率Rb(p)、仮想並列化率Rp(p)、並列性能阻害要因寄与率Rj(p)を導入して並列効率E(p)を記述する。
【数3】
Figure 2004054680
【0037】
なお、式(1)から式(4−1)への変形は、式(1)の分子及び分母にτ(p)のiについての和を掛け算することにより行われる。また、式(4−2)への変形は、式(4−1)における各要素の位置を変更すると共に、式(4−1)の分子及び分母にγ(p)のiについての和を掛け算することにより行われる。また、以下の式が式(3)から導かれる。これは、τ(p)のiについての和を表すものである。
【数4】
Figure 2004054680
【0038】
そうすると、ロードバランス寄与率Rb(p)、仮想並列化率Rp(p)、並列性能阻害要因寄与率Rj(p)により以下の式が導かれる。
【数5】
Figure 2004054680
また加速率A(p)を用いると以下のようにも表される。
【数6】
Figure 2004054680
【0039】
なお、ロードバランス寄与率Rb(p)、仮想並列化率Rp(p)、並列性能阻害要因寄与率Rj(p)、加速率A(p)は以下のように表される。
【数7】
Figure 2004054680
なお、並列性能阻害要因はjで番号付けされる。
【0040】
ロードバランスが保たれた状態とは、図1で示したように、プロセッサの処理時間τ(p)が均等の状態である。式(5)はこの状態をRb(p)=1とし、更に保たれない状態を1/p≦Rb(p)≦1で表す。図3のように並列処理時に1台のプロセッサのみで処理する場合には式(5)の分子がτ(p)となるため、ロードバランス寄与率Rb(p)は1/pの下限値となる。また式(5)によれば、ロードバランス寄与率Rb(p)は並列効率E(p)の比率となり、並列性能を直感的に把握することを容易にする。
【0041】
仮想並列化率Rp(p)は並列計算部の処理時間γの和がτ(1)に占める割合である。これが1より小さい場合、その処理は並列処理できない処理を含んでいることを示す。この割合により並列性能の上限を加速率A(p)として表わすことができる。A(p)は、プロセッサを無限に投入した時の理想的な上限値A(p)=τ(1)/Σχ1,j(1)=1/(1−(Σγ(p)/τ(1)))である。通常のτ(1)/τ(p)は、並列性能阻害要因によりA(p)より小さな値となる。
【0042】
並列性能阻害要因寄与率Rj(p)は式(7)で示すようにτ(p)のiについての和で規格化されているため、高並列、低並列に関わらず並列性能阻害要因の寄与を処理時間の割合として把握できるようになっている。またこの割合が並列効率の比率となるため、並列性能の阻害を定量的に把握することができる。
【0043】
式(2),(5),(6−1),(7)の各変数は、τ(1)を除く全てが並列実行時に測定可能である。式(8−1)が成り立つ時、式(6−1)から仮想並列化率Rp(p)はほぼ1となり、式(4−4)は式(8−2)に等価となる。
【数8】
Figure 2004054680
すなわち、並列効率E(p)はτ(1)という推定値を用いずに済むので、正確に決定することができる。一方、条件式(8−1)に関係なく、式(8−2)を、式(4−4),(4−5)の代替値として並列性能評価において用いることも可能である。この場合、式(8−2)の値はRp(p)≦1ゆえ、式(4−4)、(4−5)の値に等しいか小さい値となる。
【0044】
並列効率E(p)は、上で述べた式(4−4),(4−5),(8−2)及び次の式(9−1)でも計算することが出来る。
【数9】
Figure 2004054680
式(9−1)は、式(4−3)からロードバランス寄与率Rb(p)及び仮想並列化率Rp(p)のみを用いて変形した結果である。
【0045】
また、式(3)よりτ(1)は式(10)となる。
【数10】
Figure 2004054680
ここでγ(1)とχ1,j(1)を、γ(p)とχi,j(p)を用いてモデル化する。グリッドやクラスタのように異なったCPU性能を有する計算機による並列処理でのτ(1)の実測は不可能であるため、このモデル化によりτ(1)が決定でき、式(6−1)の仮想並列化率Rp(p)を計算することが可能となる。
【0046】
プロセッサ性能が同じで理想的な場合、並列計算部をp個のプロセッサで処理すると、処理時間はp=1と比較して1/pとなる。この場合、τ(p)=γ(p)であり、任意のプロセッサのγ(p)をp倍するとγ(1)を求めることができる。一方グリッドやクラスタ上には異なったCPU性能を有する計算機が存在するのが通常であり、p個のプロセッサにおいて実測されたγ(p)を基に、プロセッサ数1の場合のγ(1)を式(11)のように推定する。
【数11】
Figure 2004054680
この式(11)の概念図を図4に示す。式(11)のモデル化により、個々のプロセッサの性能が異なっている場合でも、仮想的に1プロセッサのγ(1)の時間を決めることができる。
【0047】
また、χ1,j(1)を冗長処理とそれ以外という2つに分けてモデル化する。γ(1)に属さない処理時間はすべてχ1,j(1)に含まれるものとする。
【0048】
(1)冗長処理時間のモデル化
各プロセッサが全く同じ処理を行うとき、ここではそれを冗長処理と呼ぶ。この処理は並列処理ではなく、プロセッサが増えても処理時間は減少しない。そこでj=1を冗長処理とし、その時間χ1,1(1)を式(12−1)乃至(12−4)のようにモデル化する。
【数12】
Figure 2004054680
ここでiiは以下の式におけるiiである。
【数13】
Figure 2004054680
【0049】
冗長処理は、同じ手続き(処理内容)ではあるがデータが異なる処理を並列処理する、いわゆるデータパラレルに多い処理である。データパラレルの場合、ロードバランスを保つため、CPU性能が同じプロセッサによる並列処理であることを想定している。そこでプロセッサ毎の冗長処理時間の違いを各プロセッサの時間測定に起因するばらつきによるものと考えることができる。この場合、各プロセッサの測定値を平均化した式(12−1)を適用するのが妥当である。
【0050】
一方グリッドやクラスタでは異なる性能を有するプロセッサが紛れ込むことも想定される。この異なる性能を有するプロセッサによる影響を的確に捉えようとする場合、式(12−2)及び(12−3)を用いる。式(12−3)を用いれば式(6−1)の仮想並列化率Rp(p)は最小に見積もられ、並列効率E(p)は最大となる。式(12−3)を用いれば仮想並列化率Rp(p)は最大に見積もられ、並列効率E(p)は最小となる。これら2つの並列効率E(p)を比べて、異なるCPU性能のプロセッサでデータパラレル処理を行っていることの検知が可能となる。
【0051】
τ(p)は式(2)で決まり、そのプロセッサiの冗長処理時間は式(12−4)の値である。従って、並列効率E(p)を決定したデータを解析すると考えれば式(12−4)の使用が妥当である。一方、この式はプロセッサiiの情報のみからχ1,1(1)が決定されることを意味し、他のプロセッサの値と大きく異なる場合を検知できないという欠点を持つ。この例として図5はCPU性能が1/5のプロセッサがプロセッサ1(i=1)である場合を示す。式(12−4)では冗長処理の時間をプロセッサ1の値のみで評価することになる。式(12−1)では4プロセッサの各値の平均で評価する。式(12−2)ではプロセッサ1の値で、式(12−3)ではi=2,3,4のプロセッサの値で評価することになる。従って式(12−1)をベースとして、必要に応じて他の定義を使用するのが妥当である。
【0052】
(2)χ1,j(1)(2≦j≦jOthers)のモデル化
実際に並列性能阻害要因による処理時間を測定すると、χ1,j(1)≠0の場合が存在する。この処理時間は並列処理しても減らないため、式(6−1)の仮想並列化率Rp(p)に反映され、式(6−2)の加速率Aが有限の値となり、処理に投入して意味があるプロセッサ数の上限値が決まる。そこで冗長処理以外の並列性能阻害要因による処理時間χ1,j(1)(2≦j≦jOthers)を、p=1の処理時間χ1,j(1)とp>1の処理時間を表わす式(13−2)で式(13−1)のようにモデル化し、χi,j(p)とp>1で発生し且つpに依存する並列性能阻害要因による処理時間Χi,j(p)を測定してχ1,j(1)を求める。すなわち、χ1,j(1)=χi,j(p)−Χi,j(p)であり、右辺の2項は両方とも測定により求めるものとする。
【数14】
Figure 2004054680
【0053】
例としてχ1,j(1)≠0の場合でp=1の処理時間を図6(a)に、p=4の処理時間を図6(b)に示す。図6(b)に示されるように、並列処理時のχi,2(p)はp=1の処理時間χ1,2(1)にΧi,2(p)をプラスした式(13−1)のようになる。このような現象は、通信等で通信のハードウェアを起動するまでの前処理がp=1の時にも実行される場合等で観測される。
【0054】
式(13−1)及び(13−2)よりχ1,j(1)(2≦j≦jOthers)は冗長処理と同様に式(13−3),(13−4),(13−5)により求めることができる。
【数15】
Figure 2004054680
例えば図6(b)ではχi,2(p)=χ1,2(1)+Χi,2(p)と実測されるので、Χi,2(p)=5,6,7,8を実測して式(13−3),(13−4),(13−5)からχ1,2(1)=5を算出できる。この値は図6(a)のχ1,2(1)と一致する。
【0055】
(3)χi,jothers(p)の決定方法
並列処理阻害要因に分類して実測できないχi,jothers(p)は式(13−6)で求める。
【数16】
Figure 2004054680
【0056】
次に、モデル化により求められた式(11)により、式(10)を以下の式で書き直す。
【数17】
Figure 2004054680
また、式(8−1)は、以下のように変形される。
【数18】
Figure 2004054680
この式が成り立つためには式(14)の条件を満たす必要がある。この条件式は測定値より求めた値の大小関係の比較であるため、具体的に判定を行うことができる。
【数19】
Figure 2004054680
【0057】
この式(14)のγ(p)は実測により求まる。またχ1,j(1)のjについての和は、モデル化式(12−1),(12−2),(12−3),(12−4)及び式(13−1),(13−2),(13−3),(13−4),(13−5)より求めることができる。その結果、初めて式(8−1)の判定が式(14)を用いて具体的に可能となる。例えば以下のような場合、式(14)の条件が成立し、式(6−1)の仮想並列化率Rp(p)はほぼ1となり、式(4−4),(4−5)は式(8−2)と等価となり、推定値であるτ(1)の影響がほぼゼロになると言う意味で正確な並列効率E(p)を得ることができる。
【数20】
Figure 2004054680
【0058】
また式(10),(11),(12−1),(12−2),(12−3),(12−4),(13−1),(13−2),(13−3),(13−4),(13−5),(13−6)によりτ(1)も具体的に計算することができる式(15)となる。式(15)は、τ(1) を各プロセッサの並列処理時間γ(p)の総和とp=1の時の並列効率阻害要因による処理時間χ1,j(1)の和として表わしたものである。
【数21】
Figure 2004054680
【0059】
以上説明した式(1),(2),(15)より以下に示す式(9−2)を得る。
【数22】
Figure 2004054680
【0060】
式(9−1)及び(9−2)は、並列計算部の時間γ(p)のiについての和を用いるもので、式(4−4),(4−5)と比べ、χi,j(p)のデータなしに並列効率E(p)が求まる利点がある。但し、χ1,j(1)のデータは必要である。
【0061】
式(4−4),(4−5),(7)で示したように、本発明では並列性能阻害要因jは任意の数を追加できる。並列性能阻害要因の追加例を図7(a)及び図7(b)に示す。図7(b)は立ち上がり時間χTCを考慮して時間測定した場合、図7(a)は同じ処理で時間測定しない場合の処理時間を示す。図7(a)の場合には、以下のような計算がなされる。
τ=10+5+90+20+20=145
τ=10+80+10=100
τ=15+80+10=105
τ=10+90+10=110
Rb(4)=(145+100+105+110)/(145×4)=0.7931
(4)=(25+20+25+20)/460=0.1957
Rp(4)=1(仮定)
(4)=0.7931×1×(1−0.1957)=0.6379
【0062】
また、図7(b)の場合には、以下のような計算がなされる。
τ=10+5+90+20+20=145
τ=5+10+80+10=105
τ=10+15+80+10=115
τ=15+10+90+10=125
Rb(4)=(145+105+115+125)/(145×4)=0.8448
(4)=(25+20+25+20)/490=0.1837
TC(4)=(0+5+10+15)/490=0.0612
Rp(4)=1(仮定)
(4)=0.8448×1×(1−0.1837−0.0612)=0.6379
【0063】
これらの並列性能評価指標の値を図8にまとめて示す。図7(a)から求めた値(ケース1)と比べると、図7(b)から求めた値(ケース2)は、立ち上がり時間のためのRTCを追加することによりRが減少しRbが増加するが、Eは同じであることが分かる。この場合、並列性能阻害要因を追加することによりEが変わるのではなく、その内訳がより明確になる。
【0064】
式(5)で示したようにロードバランス寄与率Rb(p)を表現することにより、ロードバランスと並列効率E(p)を関係付けることができる。ロードバランス寄与率Rb(p)を式(5)のように定義する理由は、図9に示すように並列性能阻害要因の寄与が各プロセッサにおいて異なった状態でロードバランスが成り立つ場合を考慮できるからである。図9では、例えばプロセッサ1の並列処理部分は他に比べ非常に少なく、冗長処理が非常に多くなっているが、全てのプロセッサの処理時間は一致しているのでロードバランスは保たれている。すなわち、γ(p)とχi,j(p)とが個々にはバランスしていないが全体にはバランスしているという状態である。なお、χi,jothers(p)(=τ−γ−χi,1−χi,2)は例えばI/Oによる処理時間である。
【0065】
図9の場合、ロードバランス寄与率Rb(p)は1である。図10のように並列処理において1台のプロセッサのみで処理する場合、Rb(p)は下限1/pとなる。また、図11のように、プロセッサ1とプロセッサ2の処理時間は一致しているが、プロセッサ3及び4の処理時間とは一致しておらず、ロードバランスが取れていない。この場合に、Rb(p)は以下のとおりになる。
【数23】
Figure 2004054680
【0066】
さらに、低並列のときは顕在化しなかった並列処理阻害要因が高並列で顕在化する場合がある。従来の性能評価指標の1つである並列化率(=(p=1の並列処理部の処理時間)/((p=1の並列処理部の処理時間)+(p=1の並列処理できない部分の処理時間)))では、この現象を十分に捉えることができなかった。例えば図12の例では、p=1における並列化率は0.99(=198/(198+2))であり、残りの0.01が並列処理できない処理時間の割合である。ところがこの値は図中のp=100の場合のような高並列でも2時間であり、並列処理できない部分が50%(≒2/(1.98+2))を占める現実を反映していない。本発明では、式(7)で示したように、並列性能阻害要因R(p)を、χi,j(p)のiについての和をτ(p)のiについての和で規格化した値として表現している。この規格化により、高並列でτ(p)が小さな値になった時も、R(p)の上限は1となり、各々の並列性能阻害要因の影響を並列処理時の百分率で表わすことができる。
【0067】
以上述べたように、並列効率E(p)を計算すると共に、並列性能評価指標Rb(p),Rp(p),R(p)(RRED(4),R(4),...,ROthers(4))と補助指標A(p),E(p)・pをも計算することができる。この計算結果の一例を図13に示す。この図13に示した8つの項目で、並列性能を定量的に表現することができる。
【0068】
図13に示したように、E(p)・p=1.777であるから、4プロセッサ構成の並列計算機システムであるが1.777プロセッサの性能で処理していることが分かる。並列効率はロードバランス寄与率で94%(Rb(4)=0.9392)に低下する。並列性能阻害要因の影響は、冗長処理が22%(RRED(4)=0.2230)、通信が33%(R(4)=0.3309)、その他が3%(ROthers(4)=0.0288)である。従って通信と冗長処理で55%並列性能を低下させている。図13ではR(4)=0.8821ということから、プロセッサを無限に投入した時の並列最大性能が1プロセッサの8.482(=A(4)=1/(1−0.8821))倍であることが推定できる。従ってこの処理は8プロセッサ以下で行われるべき処理であることが分かる。
【0069】
また、例えば並列効率の設定目標値(Eを0.8と設定した場合、図13で示されるような処理群を想定すると、最適なプロセッサ数は以下の式で計算される。
Figure 2004054680
従って、最適なプロセッサの見積値は(p)OPT=2となる。
【0070】
なお処理群とは、同一アプリケーション・プログラムで同じ機能を使い入力データだけを変えた複数の処理のことであり、科学技術計算のパラメトリック・スタディ等で頻繁に実施される処理である。
【0071】
従来、並列計算機システムの評価は、以下で示す式(16)に示す稼働率(NetWorking Rate)NWRsystemで行われていた。しかし、並列効率の低い処理も含まれる場合があるため、稼働率がよいからといって必ずしもシステムの運用効率が高いとは限らなかった。
【数24】
Figure 2004054680
稼働時間と処理時間の総和(以下の式)の例を図14に示す。
【数25】
Figure 2004054680
図14では、稼働時間Tiに対して処理時間の総和は少なくなっている。この減少の度合いはプロセッサによって異なる。
【0072】
本発明により、式(16)を基にシステム運用効率Esystemという指標を作り、システムの運用効率を評価することが可能となる。この指標向上のためにはどの処理の並列効率がどの位向上する必要があるか等、運用効率の向上に対して具体的指針を出すことが可能となる。
【数26】
Figure 2004054680
【0073】
例えばPsystem=4、Ti=10、kmax=2であり、さらに以下の条件が満たされるとすると、Esystem=(5+9)/(10+10+10+10)=0.35となる。
【数27】
Figure 2004054680
なお、従来の稼働率NWRsystem=(10+9)/40=0.4838となる。並列効率を考慮することにより、並列処理により各処理において無駄にしている時間を考慮したシステムの運用効率を評価することができる。
【0074】
以上説明した稼働時間、並列処理である処理1におけるτ(p)の和、処理1におけるτ(p)と並列効率の積、非並列処理である処理2(プロセッサ4のみ)におけるτ(p)の和、及び処理2におけるτ(p)と並列効率の積を図15に示す。図15では、並列処理の場合には、稼働時間Tiより、τ(p)の方が短く、さらに並列効率を考慮すると無駄な処理時間が除かれるためさらに短くなる。一方、非並列処理の場合には並列効率が1となるため、処理2におけるτ(p)もτ(p)と並列効率の積についても同じ値になる。
【0075】
並列計算機システムのプロセッサ増設の根拠データとして、従来からシステムの稼働率が用いられてきた。しかし有効に使われたシステムの資源を基にしているわけでないので、並列効率の低い処理のために資源の増設あるいは入れ替えを行う可能性がある。本発明によれば、並列計算機システムのプロセッサ増設に対して定量的指針を与えることが可能になる。システムの全プロセッサ数をPSystem、Tiを各プロセッサの稼働時間、PAddを増強後のプロセッサ個数、kmaxを全処理数、αを予想並列効率とすると、例えば追加したプロセッサによる以下で表される稼働時間(数28)だけ増加させたときの加速率Asystemは、式(18)に示すとおりになる。
【数28】
Figure 2004054680
【数29】
Figure 2004054680
【0076】
例えば以下に示すような条件で、α=1であるとすると、加速率Asystemは以下のように計算される。
【数30】
Figure 2004054680
system=(39+1×10)/40=1.23
このように約23%のシステム増強となる。この値は従来の処理の並列効率を考慮しているという点で、増設に対して従来の稼働率より説得力がある値となる。システム増強に予測並列効率α(<1)をかけて加速率を算出すれば、より現実的な値となる。また、増強したプロセッサのCPU能力を10倍とするならば、α=10としてAsystemを求めることもできる。上記の例に当てはめると、Asystem=(39+10×10)/40=3.48となる。これにより異なるCPU性能のプロセッサの増設に対しても稼働率を基にした以上に根拠がある予測データを作成することが可能となる。
【0077】
また、本発明により、並列計算機システムの入れ替えに対して定量的指針を与えることも可能となる。各処理について計算された指標など(並列効率、ロードバランス寄与率、仮想並列化率、並列性能阻害要因寄与率、τ(p)、γ(p)、χi,j(p) 、各プロセッサの稼動時間Ti)により、各処理に対して次の例で示すような並列効率の推測が可能となり、システム入れ替え後のシステムの性能推定が可能となる。
【0078】
例えば図16に示したような経過時間が測定されるシステムのCPU性能を5倍にしたシステムを導入することを考えるとγ(p)、χi,RED(p)、χi,Other(p)は1/5になる。一方χi,C(p)は、ネットワーク性能に依存し今回は性能が同じとすると新システムの並列効率を次のように推定できる。
【0079】
なお、χi,C(1)=0、χi,Others(1)=0とすると、CPU性能が5倍となった場合の性能評価指標は次のように計算できる。また、上で述べた式(12−1)により、χ1,RED(1)は以下のように表される。また、ロードバランス寄与率は式(5)により、仮想並列率は式(6−1)により、並列性能阻害要因寄与率(冗長処理、通信、その他)は式(7)に従って、並列効率は式(4−4)及び(9−1)に従って、以下のように計算される。
【数31】
Figure 2004054680
【数32】
Figure 2004054680
【数33】
Figure 2004054680
【数34】
Figure 2004054680
【数35】
Figure 2004054680
【数36】
Figure 2004054680
【数37】
Figure 2004054680
【0080】
上に示した計算結果と実測に基づく性能指標をまとめると図17に示すようになる。図17の表に示すように、システムを入れ替えた時の並列性能を予測することによって、新しいシステムのシステム運用効率Esystemを推定することができる。そのために、今までのシステムのログデータを用い、今までの処理に対して図17と同様にすべての性能指標を計算する。
【0081】
CPU性能を5倍にしたときのシステム運用効率Esystemを求める試算をすると、以下に示すようになる。推定値を基にして求めたこのEsystemと今までの実測値から求めたEsystemを比べることにより、システムの入れ替えに対し、稼働率に比べてより根拠があるデータを得ることができる。
図18に示すように、CPU性能が5倍になった場合の各処理のE(4)、τ(p)のiについての和、及びプロセッサ数に従ってEsystemが計算できる。なお、前提として以下の条件を用いた。
【数38】
Figure 2004054680
【数39】
Figure 2004054680
【0082】
[実施の形態の説明]
図19に本発明の一実施の形態に係るシステム概要図を示す。並列性能分析装置100は、並列計算機システム200の並列性能を分析する単一プロセッサのコンピュータであり、印刷装置や表示装置といった出力装置110と接続されている。但し、並列性能分析装置100は、並列計算機であってもよい。並列性能分析装置100は、データ取得部10と、ロードバランス寄与率計算部11と、仮想並列化率計算部12と、並列性能阻害要因寄与率計算部13と、並列効率計算部14と、補助指標計算部15と、プロセッサ数最適化処理部21と、プロセッサ増設見積処理部22と、システムリプレイスデータ処理部23と、運用効率データ処理部24と、チューニング処理部25と、アルゴリズム選定処理部26と、並列性能評価処理部27とを含む。並列性能分析装置100は、ログデータ格納部30に接続されている。並列計算機システム200は、測定部201を含む。例えば並列性能分析装置100は、並列計算機システム200とネットワークにて接続されている。
【0083】
並列計算機システム200の測定部201は、プログラムに従って並列処理を実行しながら、各処理時間γ(p)、χi,j(p)、τ(p)を測定する。例えば、各処理の開始から終了までをタイマで計測したり、各処理の開始時刻及び終了時刻を記録して処理終了後に処理時間を計算する。時間の計測は、オペレーティング・システム(OS:Operating System)を含むソフトウエアによる場合もあれば、ハードウエアによる場合もある。測定された処理時間のデータについては、一旦並列計算機システム200のメモリ中に格納され、場合によっては他の記憶装置に格納される。
【0084】
また、処理時間の測定ではなく、一定時間間隔毎に実行中のプログラムの事象を確認し、各事象についてカウントを行う場合もある。このような測定を、サンプリングによる測定と呼ぶ。このようなサンプリングによる測定は、式(4−4)、(9−1)、(9−2)やRb(p)、Rp(p)、Rj(p)が時間比の形をしているため採用可能となる。測定精度による違いはあるが、時間測定による方法とサンプリングによる方法では結果は同じになる。
【0085】
図20にサンプリングによる測定の概念図を示す。図20では左から右に時間が経過する様子を示している。図20において下向き矢印はサンプリングのタイミングを示しており、下向き矢印の間隔で表されるようにサンプリングは一定時間間隔で行われる。図20においては、最初に冗長処理がχi,RED(p)だけ実施された後、並列計算がγ(p)だけ行われる。なお、全体として処理はτ(p)だけ実施されている。サンプリング回数は、χi,RED(p)だけ続いた冗長処理の事象においては7回、γ(p)だけ続いた並列計算の事象においては9回である。全体の処理時間τ(p)の間では、サンプリング回数は22回である。並列性能阻害要因のうち意図して測定したχi,RED(p)以外の事象をまとめてχi,others(p)で表し、意図して測定したτ(p)、χi,RED(p)及びγ(p)を用いて式(13−6)から計算する。図20の例では、χi,others(p)の間のサンプリング回数が6回(=22−9−7)であることが分かる。
【0086】
実際にどのようにサンプリングによる測定を実施するかについては、その概要を以下に説明しておく。
(1)τ(p)の部分
(a)処理の始めにおいて事象τ(p)のためのフラグをonにし、処理の終了においてoffにする。実行時に事象τ(p)のためのフラグのon/offを一定時間間隔で識別し、onと識別された回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの記述と処理を、必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・OSが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、OSレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、プログラム・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【0087】
(b)プログラム名又はそれに代替する実行モジュール名等により事象を特定し、実行時にそのプログラム名又は実行モジュール名等を一定時間間隔で識別し、識別された名称の識別回数をカウントしてサンプリング回数を得るものとする。
以下の方法のいずれかの名前生成法と、識別処理及びカウント処理とを必要に応じて組み合わせて測定する。
・コンパイラが、上記プログラム名又は実行モジュール名等を生成する。
・OSが、上記プログラム名又は実行モジュール名等を生成する。
・ランタイム・ライブラリが、上記プログラム名又は実行モジュール名等を生成する。
・ハードウエアが、上記プログラム名又は実行モジュール名等を生成する。
・並列言語拡張やコンパイラ・ディレクティブ等の記述により、上記プログラム名又は実行モジュール名等を生成する。
・プログラマの記述により、上記プログラム名又は実行モジュール名等を生成する。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、OSレベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理の実施を、ハードウェア・レベルで行う。
【0088】
(2)χi,j(p)とγ(p)の部分
(a)事象χi,j(p)、γ(p)が出現する毎にその処理の初めにそのためのフラグをonにし、その処理の終わりにそのためのフラグをoffにセットする。
【0089】
実行時に各事象のためのフラグのon/offを一定時間間隔で識別し、onと識別された回数をカウントしてサンプリング回数を得るものとする。1つの方法では検出できない場合があるため、以下の方法のいずれかの記述と処理を必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・OSが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、コンパイラレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、OSレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ツールレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、アプリケーションプログラム・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
【0090】
(b)既知のモジュール名を並列処理部又は並列性能阻害要因に係る処理部に予め分類しておき、実行時にモジュール名を識別し、各モジュール名につきカウントしてサンプリング回数を得る。以下に示す分類方法と、識別処理及びカウント処理を必要に応じて組み合わせて測定する。
・モジュール名の分類を、コンパイラレベルで行う。
・モジュール名の分類を、OSレベルで行う。
・モジュール名の分類を、ランタイムライブラリ・レベルで行う。
・モジュール名の分類を、ハードウェア・レベルで行う。
・モジュール名の分類を、並列言語拡張やコンパイラディレクティブ・レベルで行う。
・モジュール名の分類を、ユーザレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、OSレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・上記モジュール名の識別処理及びカウント処理の実施をハードウェア・レベルで行う。
【0091】
例として、全プロセッサにあるF(Imax)の各要素を足し合わせる処理をFortranと並列ライブラリのMPI(Message Passing Interface)で記述したプログラムを用いて、χi,j(p)のサンプリング方法を以下の表1に示す。例えばonのフラグを、コンパイラに指示を行う「*sampon」で表わし、offのフラグを「*sampoff」で表す。また、REDを冗長処理とし、Cを通信とし、REDやCの後ろの数字をその出現順番を表すものとする。総和処理の部分は各プロセッサで同じ計算を行う冗長処理であるので、その始点と終点に「*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の場合には、ツールやコンパイラやOSが事象を識別してフラグを立てるようにすることも可能である。
【0092】
【表1】
Figure 2004054680
Figure 2004054680
【0093】
表1のプログラムを実行した際のサンプリングの一例を図21に示す。図21では、事象[(RED),1]、[(RED),2]、[(C),1]、[(C),2]の各々についてカウントされる。但し、並列効率等を計算する際には、冗長処理全体[(RED),1+(RED),2]、通信処理全体[(C),1+(C),2]として扱う。
【0094】
図19の説明に戻って、並列性能分析装置100のデータ取得部10は、上で述べたように処理時間又はサンプリング数として測定部201により測定される各処理時間γ(p)、χi,j(p)、τ(p)を、並列計算機システム200から取得し、並列性能分析装置100に接続されたログデータ格納部30に格納する。ログデータ格納部30には、各処理時間のほかに計算された並列効率を含む並列性能評価指標等のデータも蓄積される。ロードバランス寄与率計算部11は、上で説明したように式(5)に従ってロードバランス寄与率Rb(p)を計算し、記憶装置に格納する。なお、τ(p)については式(2)に従って計算する。仮想並列化率計算部12は、式(6−1)に従って仮想並列化率Rp(p)を計算し、記憶装置に格納する。なお、式(6−1)の分母のτ(1)については、式(8−1)に示したような近似が行われる場合もある。また、式(10)及び式(11)から式(15)が用いられる場合もある。なお、式(15)中の第2項(χ1,j(1),j=1)については、式(12−1)、(12−2)、(12−3)又は(12−4)のいずれかで計算される場合もある。また、χ1,j(1),j>1については式(13−3)乃至(13−5)のいずれかで計算される場合もある。χ1,j(p)のj=1は冗長処理である。但し、他の並列性能阻害要因についての処理時間であってもよい。
【0095】
並列性能阻害要因寄与率計算部13は、式(7)に従って、各並列性能阻害要因につき並列性能阻害要因寄与率Rj(p)を計算し、記憶装置に格納する。並列効率計算部14は、式(4−4)、式(4−5)、式(8−1)の条件が満たされる場合には式(8−2)、式(9−1)又は式(9−2)のいずれかに従って、並列効率E(p)を計算し、記憶装置に格納する。式(9−2)を用いる場合に分子の第1項については式(12−1)、(12−2)、(12−3)、(12−4)、(13−3)、(13−4)又は(13−5)のいずれかで計算される場合もある。式(12−1)乃至(12−4)は、χ1,j(p),j=1の冗長処理である。補助指標計算部15は、例えば式(6−2)に従って加速率Aを、並列効率E(p)とプロセッサ数pとからE(p)・pを計算し、記憶装置に格納する。
【0096】
プロセッサ数最適化処理部21は、並列計算機システム200のエンドユーザに、処理のために投入すべき最適なプロセッサ数を指示するための処理等を実施する。プロセッサ増設見積処理部22は、並列計算機システム200の運用管理者に、プロセッサの増設に際して指針となる数値を提示するための処理を実施する。システムリプレイスデータ処理部23は、並列計算機システム200の運用管理者に、システムリプレイスに際して指針となる数値を提示するための処理を実施する。運用効率データ処理部24は、並列計算機システム200の運用管理者に、システム運用効率に関するデータを提示するための処理を実施する。チューニング処理部25は、並列処理を行うためのプログラムに、プログラマが適切な目標設定等により効率的なプログラム等のチューニングを実施できるようにするための処理を実施する。アルゴリズム選定処理部26は、同一処理について異なるアルゴリズムが存在する場合に、並列処理を行うためのプログラムに、プログラマが並列効率をより向上させることのできるアルゴリズムを選択できるようにするための処理等を実施する。並列性能評価処理部27は、並列計算機システムの開発者や研究者が並列性能の評価を容易に行うことができるようにするための処理を実施する。これらの処理部の詳細な処理内容については、以下で説明する。
【0097】
次に図19に示したシステム等の処理フローを図22を用いて説明する。最初に、処理時間の直接の計測のための記述、コンパイラ、OS、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのフラグをon/offさせるための記述、コンパイラ、OS、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのモジュール名等の分類などを含む前処理を実施する(ステップS1)。この処理については、並列計算機システム200で行われる場合もあれば、他の計算機システムにおいて行われる場合もある。さらに、プログラマなどの人間により行われる場合もある。なお、ステップS1は、並列性能分析装置100において実施される処理ではなく並列計算機システム200により実施される処理でもない場合もあるので、点線ブロックで表されている。
【0098】
次に、並列計算機システム200の測定部201は、前処理に基づいて、処理時間の計測を実施したり、サンプリング数をカウントしたりする測定処理を実施する(ステップS3)。測定結果である各処理時間γ(p)、χi,j(p)、τ(p)又は各処理時間に対応するサンプリングのカウント値については、並列計算機システム200の記憶装置に格納され、並列性能分析装置100のデータ取得部10により読み出される。データ取得部10は、各処理時間γ(p)、χi,j(p)、τ(p)又は各処理時間に対応するサンプリングのカウント値を取得すると、並列性能分析装置100のログデータ格納部30に格納する。
【0099】
そして、ロードバランス寄与率計算部11、仮想並列化率計算部12、並列性能阻害要因寄与率計算部13、並列効率計算部14、補助指標計算部15は、ログデータ格納部30に格納された各処理時間γ(p)、χi,j(p)、τ(p)又は各処理時間に対応するサンプリングのカウント値等を用いて、ロードバランス寄与率Rb(p)、仮想並列化率Rp(p)、各並列性能阻害要因寄与率Rj(p)、並列効率E(p)、加速率Aその他の補助指標を計算し、ログデータ格納部30に格納する(ステップS5)。
【0100】
並列効率E(p)については、上で述べたように式(4−4)、式(4−5)、式(8−1)の条件が満たされる場合には式(8−2)、式(9−1)又は式(9−2)のいずれかに従って計算される。従って、並列効率計算部14は、ロードバランス寄与率計算部11により計算されたロードバランス寄与率Rb(p)、仮想並列化率計算部12により計算された仮想並列化率Rp(p)、並列性能阻害要因寄与率計算部13により計算された各並列性能阻害要因寄与率Rj(p)、補助指標計算部15により計算された加速度A(p)を用いて、その他の必要なデータについてはログデータ格納部30に格納された処理時間等を用いて、並列効率E(p)を計算する。
【0101】
例えば図23のような処理時間の測定結果がデータ取得部10によりログデータ格納部30に格納された場合の計算例を以下に示す。より具体的には、τ(p)=34、τ(p)=35、τ(p)=33、τ(p)=37、γ(p)=15、γ(p)=14、γ(p)=13、γ(p)=16、χ1,RED(p)=8、χ2,RED(p)=9、χ3,RED(p)=7、χ4,RED(p)=7、χ1,C(p)=10、χ2,C(p)=11、χ3,C(p)=12、χ4,C(p)=13という測定結果が得られたものとする。従って、χ1,others(p)=1(=34−15−8−10)、χ2,others(p)=1(=35−14−9−11)、χ3,others(p)=1(=33−13−7−12)、χ4,others(p)=1(=37−16−7−13)となる。以下の計算で必要となるが未測定のχ1,C(1)及びχ1,others(1)については共に0とする。
【0102】
(1)ロードバランス寄与率(式(5))
【数40】
Figure 2004054680
(2)仮想並列化率(式(6−1),(12−1),(15))
【数41】
Figure 2004054680
(3)加速率(式(6−2))
【数42】
Figure 2004054680
(4)並列性能阻害要因寄与率(式(7))
(4−1)冗長処理の並列性能阻害要因寄与率
【数43】
Figure 2004054680
(4−2)通信処理の並列性能阻害要因寄与率
【数44】
Figure 2004054680
(4−3)その他の並列性能阻害要因寄与率
【数45】
Figure 2004054680
【0103】
(5−1)並列効率(式(4−4))
【数46】
Figure 2004054680
(5−2)並列効率(式(9−1))
【数47】
Figure 2004054680
(5−3)並列効率(式(9−2))
【数48】
Figure 2004054680
【0104】
以上の結果をまとめると図13のようになる。なお、補助指標であるE(p)・pも計算されている。E(4)・p=1.777で、4プロセッサ並列で1.777プロセッサの性能で処理していることが分かる。並列効率はロードバランスで約94%(=Rb(4)=0.9392)に低下する。並列性能阻害要因の影響は、冗長処理が約22%(=RRED(4)=0.2230)、通信が約33%(=R(4)=0.3309)、その他が3%(=Rothers(4)=0.0288)である。従って主に通信と冗長処理実行で55%程度並列効率を下げている。また図13ではRp(4)=0.8821ということから、プロセッサを無限に投入した時の並列最大性能が1プロセッサの8.482(=A(4)=1/(1−0.8821))倍であることが推定できる。従って、この処理は8プロセッサ以下で行われるべき処理であることが分かる。この処理をE(x)≧0.8の条件で行おうとすれば、E(x)・p=0.4443×4=1.777=E(x)・x=0.8*xで、x=2.22となる。従ってp≧2.22=2が与えられた条件に対する最適なプロセッサ数と予想できる。
【0105】
また、例えば図24のようなサンプリングによるカウント数がデータ取得部10によりログデータ格納部30に格納された場合の計算例を以下に示す。より具体的には、τ(p)=3488、τ(p)=3561、τ(p)=3372、τ(p)=3756、γ(p)=1521、γ(p)=1411、γ(p)=1322、γ(p)=1601、χ1,RED(p)=823、χ2,RED(p)=945、χ3,RED(p)=711、χ4,RED(p)=703、χ1,C(p)=1056、χ2,C(p)=1111、χ3,C(p)=1230、χ4,C(p)=1341という測定結果が得られたものとする。従って、χ1,others(p)=88(=3488−1521−823−1056)、χ2,others(p)=94(=3561−1411−945−1111)、χ3,others(p)=109(=3372−1322−711−1230)、χ4,others(p)=111(=3756−1601−703−1341)となる。以下の計算で必要となるが未測定のχ1,C(1)及びχ1,others(1)については共に0とする。
【0106】
(1)ロードバランス寄与率(式(5))
【数49】
Figure 2004054680
(2)仮想並列化率(式(6−1),(12−1),(15))
【数50】
Figure 2004054680
(3)加速率(式(6−2))
【数51】
Figure 2004054680
(4)並列性能阻害要因寄与率(式(7))
(4−1)冗長処理の並列性能阻害要因寄与率
【数52】
Figure 2004054680
(4−2)通信処理の並列性能阻害要因寄与率
【数53】
Figure 2004054680
(4−3)その他の並列性能阻害要因寄与率
【数54】
Figure 2004054680
【0107】
(5−1)並列効率(式(4−4))
【数55】
Figure 2004054680
(5−2)並列効率(式(9−1))
【数56】
Figure 2004054680
(5−3)並列効率(式(9−2))
【数57】
Figure 2004054680
以上の結果をまとめると処理時間の計測の場合と同じ図13のようになる。
【0108】
図22の説明に戻って、ログデータ格納部30には、処理毎に処理時間等の測定結果と図13に示すような並列性能評価指標及び補助指標とがセットで格納される。そして、並列性能分析装置100は、ユーザによる要求に応じて又は自動的に、表示装置や印刷装置等の出力装置110に、図13のような処理結果を出力する(ステップS7)。
【0109】
ユーザは、図13のようなデータだけで自ら並列性能などについて分析、最適プロセッサ数の見積、プロセッサ増設やシステムリプレイスを行う場合の効果の見積、プログラム等のチューニング、アルゴリズムの選定などを行っても良い。しかし、プロセッサ数最適化処理部21、プロセッサ増設見積処理部22、システムリプレイスデータ処理部23、運用効率データ処理部24、チューニング処理部25、アルゴリズム選定処理部26、並列性能評価処理部27により、以下で説明するような各種コンサルティング支援処理を、ユーザの指示に従って実施する(ステップS9)。これにより、より具体的なデータを得ることができるようになる。
【0110】
A.プロセッサ数最適化処理
プロセッサ数最適化処理部21による処理を図25及び図26を用いて説明する。プロセッサ数最適化処理部21は、ユーザによる目標並列効率(Eの値の設定入力を受け付ける(ステップS11)。そして、最適プロセッサ数の計算を以下の式に従って行い、記憶装置に格納する(ステップS13)。
(p)OPT=E(p)/(E・p
そして、計算された最適プロセッサ数を出力装置110に出力する(ステップS15)。これにより、ユーザは、次に同じ処理群に属する処理を実施する際に使用するプロセッサを必要最小限にすることができる。例えば、上でも説明しているが、図13のような計算結果が得られており、目標並列効率(E=0.8とすると、p=2.22なる。従って最適なプロセッサ数は2となる。
【0111】
また、連続して同じ処理群の処理を実施する場合には、最適プロセッサ数を調整しながらより効率的に処理を実施させることも可能になる。すなわち、図26に示すような処理を実施する。最初に、プロセッサ数pの仮設定を行う(ステップS21)。この仮設定されたプロセッサ数pは同じ処理群の最初の処理について用いられる。また、ユーザから目標並列効率の設定を受け付ける(ステップS23)。そして、プロセッサ数pの設定に従って、並列計算機システム200により並列処理を実施すると共に測定部201により処理時間等を測定し、記憶装置に測定結果を格納する(ステップS25)。データ取得部10は、測定部201により測定された処理時間等のデータをログデータ格納部30に格納する。そして、並列効率計算部14等により、並列効率を含む並列性能評価指標等を計算し、ログデータ格納部30に格納する(ステップS27)。
【0112】
そしてプロセッサ数最適化処理部21は、上で述べた式に従って最適プロセッサ数(p)OPTを計算し、記憶装置に格納する(ステップS29)。この計算された最適プロセッサ数(p)OPTを、同じ処理群の次の処理にて使用するプロセッサ数としてpに設定する(ステップS31)。そして、同一処理群の全ての処理を実施したか判断する(ステップS33)。もし、全ての処理を実施したわけではない場合には、同一処理群の次の処理を選択し(ステップS35)、ステップS25に戻り、ステップS31において設定したプロセッサ数で並列処理を実施する。
【0113】
このような処理を実施することにより、同一処理群に属する前の処理についての最適プロセッサ数を次の処理のプロセッサ数として設定することができるので、より効率的に処理群の処理を行うことができるようになる。
【0114】
B.プロセッサ増設見積処理
プロセッサ増設見積処理部22は、並列計算機システム200のプロセッサ増設に対して定量的な指針として、システム増強時の加速率Asystemを与えるための処理を実施する。図27に処理フローを示す。まず、プロセッサ増設見積処理部22は、システム増設時の増加分の稼働時間のデータ及びその予想並列効率のデータの設定入力を受け付ける(ステップS41)。そして、式(18)に従ってシステム増設時の加速率Asystemを計算し、記憶装置に格納する(ステップS43)。なお、現在使用中の各プロセッサの稼働時間等のデータについては、ログデータ格納部30に格納された過去の処理ログデータを用いて計算する。そして、計算されたシステム増設時の加速率Asystemを表示装置などの出力装置110に出力する(ステップS45)。
【0115】
設定した増加分の稼働時間とその予測並列効率に対するシステム増設時の加速率Asystemにより、どの程度意味のある処理を実施するための時間が増加するかといったことを判断することができるようになる。
【0116】
C.システムリプレイスデータ処理
並列計算機システムの入れ替えに際して新しい並列計算機システムの性能決定のための定量的指針を提示するための処理を実施する。図28にそのための処理フローを示す。システムリプレイスデータ処理部23は、目標とする並列効率(E及び繰返回数icmaxの設定入力を受け付ける(ステップS51)。また、新しい並列計算機システムの性能として現行の並列計算機システムに対する性能倍率Aの設定入力を受け付ける(ステップS53)。性能倍率については、CPU性能の倍率ACPU、通信性能の倍率A、I/O性能の倍率AI/O等の設定入力を受け付ける。定量的指針はこの倍率値で得られる。ほとんどの計算機システム入れ替えでは、CPU性能の改善によりシステムの性能向上を図るため、例えばまずACPUを設定し、他の性能倍率を1としてEを計算する。そして(Eに近付くようにA,AI/O等の値を繰り返し計算により求め、新しい並列計算機システムの性能決定のための指針を得るような方針で処理を行ってもよい。
【0117】
より具体的には、システムリプレイスデータ処理部23は、設定された各性能倍率に従ってログデータ格納部30に格納された各処理時間等を短くする計算を実施する(ステップS55)。例えばCPU性能が5倍(ACPU=5)と設定された場合には、並列処理の処理時間γ(p)などを5分の1にするといった計算を行う。そして、設定された各性能倍率に従って短縮された各処理時間に基づき、並列効率を含む並列性能評価指標の見積値(例えば並列効率の見積値は(E)を計算し、記憶装置に格納する(ステップS57)。
【0118】
システムリプレイスデータ処理部23は、並列効率の見積値(Eが目標の並列効率(Eとが一致するか判断する(ステップS59)。完全一致でなくてもよく、目標の並列効率(Eの所定の範囲内に見積値(Eが入っているか判断する。もし、並列効率の見積値(Eが目標の並列効率(Eとほぼ一致すると判断された場合には、目標並列効率達成を示すメッセージ及びステップS57において計算された各並列性能評価指標の見積値等を、表示装置などの出力装置110に出力する(ステップS61)。一方、並列効率の見積値(Eが目標の並列効率(Eとがほぼ一致しているとは言えない場合、カウンタicが繰返回数icmax以上になったか判断する(ステップS63)。もし、カウンタicが繰返回数icmax以上になった場合には、目標並列効率を達成できなかった旨のメッセージ及びステップS57において計算された各並列能力評価指標の見積値等を表示装置等の出力装置110に出力する(ステップS65)。
【0119】
一方、icが繰返回数icmax未満である場合には、CPU性能の倍率、通信性能の倍率、I/O性能の倍率等の性能倍率の変更を実施する(ステップS67)。このステップについては、自動的に変更するようにしてもよいし、ユーザによる設定を受け付けるようにしてもよい。そして、カウンタicを1インクリメントし(ステップS69)、ステップS55に戻る。
【0120】
上の処理では目標の並列効率(Eを達成するように、最大繰返回数icmaxまで性能倍率を変更して並列効率の見積を実施する。なお、ログデータ格納部30に処理時間等が格納されている特定の処理に対して(Eを満足する性能を有する新たな並列計算機システムを選ぶことも、幾つかの種類の処理に対して(Eを満足する性能を有する新たな並列計算機システムを選ぶことも可能となる。
【0121】
図28の処理フローの適用例を、具体的に図23のような処理時間が測定されたケースで説明する。ここでは、目標並列効率(E=0.6とし、CPU性能が5倍、すなわちACPU=5である新たなシステムを導入することを想定すると、γ(p)、χi,RED(p)は、1/ACPUとなる。性質が不明なχi,others(p)も1/ACPUとなるものと仮定する。一方、χi,C(p)はネットワーク性能に依存する。ここでは、まず最初に、A=∞として実現可能性を検討する。なお、未測定のχ1,C(1)及びχ1,others(1)については共に0とする。
【0122】
式(12−1)から以下のような計算がなされる。
【数58】
Figure 2004054680
[ACPU=5,A=∞の場合の(E
【数59】
Figure 2004054680
【数60】
Figure 2004054680
【数61】
Figure 2004054680
【数62】
Figure 2004054680
【数63】
Figure 2004054680
【0123】
以上の計算結果などを図29にまとめる。A=∞ではχi,C(p)の項は0となり、E=0.6850となるので目標値0.6より大きい。従って目標並列効率がAの性能向上次第で達成できる可能性があることが分かる。そこでステップS67でAを変更しながら繰り返し並列効率の計算を実施し(ステップS57)、E(p)〜0.6となるAを探す。途中の計算は省略するが、E(p)〜0.6の場合の計算結果を図29の第2行に示す。この場合、A=19.2である。これより(E=0.6でCPU性能をACPU=5としたい場合、A=19.2以上の性能を有する並列計算機システムを探して入れ替えればよいという指針が得られる。
【0124】
なお、A=19.2という数字が高すぎて、そのようなシステムが現存しない場合には、他の並列性能阻害要因の縮小を検討する。図29の第二行の見積結果によれば、冗長処理RRED(4)=0.2953を改善すべきということが分かる。冗長処理を削減するためには、プログラムのチューニングが必要となる。チューニングしたプログラムを実行し、図28の処理を再度実行して、Aを再度見積もればよい。
【0125】
また、図29に示したようにシステムリプレイス時の並列性能を予測することで、新たに導入する並列計算機システムのシステム運用効率Esystemを推定することも可能である。例えば、ある処理で目標並列効率(E=0.6をクリアする、ACPU=5、A=19.2という新しいシステムで、見積りが図18に示される処理1乃至4を行った場合、Esystem=0.6534となるということが分かる。この予測されたEsystemと、これまでの処理ログから得られるEsystemとを比較することにより、システムの入れ替えによる稼働率の向上をより根拠があるデータで定量的に示すことができるようになる。
【0126】
D.システム運用効率向上処理
例えば式(17)で示されたシステム運用効率Esystemという指標を基に、システムの運用効率を評価する。この指標向上のために、どの処理の並列効率をどの程度向上させる必要があるか等、運用効率の向上に関して具体的指針を出す。具体的には、図30の処理を実施する。
【0127】
運用効率データ処理部24は、運用管理者によるシステム運用効率の目標値(Esystem及び繰返回数icmaxの設定入力を受け付ける(ステップS71)。そして、ログデータ格納部30に格納されている処理時間や並列効率等のデータを読み出し、式(17)に従ってシステム運用効率Esystemを計算し、記憶装置に格納する(ステップS73)。なお、並列効率を含む並列性能評価指標の計算がなされていない場合には、この段階にてロードバランス寄与率計算部11、仮想並列化率計算部12、並列性能阻害要因寄与率計算部13、並列効率計算部14などにより並列効率を含む並列性能評価指標などを計算する。そして、ステップS73において計算されたシステム運用効率Esystemがシステム運用効率の目標値(Esystemを超えたか判断する(ステップS75)。もし、Esystem>(Esystemであると判断された場合には、目標達成を表すメッセージ及びステップS73において計算されたシステム運用効率Esystemを表示装置などの出力装置110に出力する(ステップS77)。一方、Esystem≦(Esystemである場合には、カウンタ値icが繰返回数icmax以上になっているか判断する(ステップS79)。もし、カウンタ値icが繰返回数icmax以上であれば、システム運用効率向上処理がうまく機能していないことを知らせるため、目標未達を示すメッセージ及び直前のステップS73で計算されたシステム運用効率Esystemを、表示装置などの出力装置110に出力する(ステップS81)。
【0128】
一方、カウンタ値icが繰返回数icmax未満であれば、運用効率データ処理部24は、エンドユーザにはエンドユーザ向けの改善処置を、システム管理者にはシステム管理者向けの改善処置を、プログラマにはプログラマ向けの改善処置を、並列計算機システム開発者又は研究者には並列計算機システム開発者又は研究者向けの改善処置を実施するように勧め、エンドユーザ等は可能なシステム運用効率改善処置を実施する(ステップS83)。なお、実施する処置の例としては、プロセッサ数を最適化させたり、プロセッサの増設、システムのリプレイス、プログラム等のチューニング等である。システム運用効率改善処置の実施後に、再度並列計算機システム200により並列処理を実施し、同時に測定部201による処理時間等の測定処理を実施する(ステップS85)。そして、カウンタ値icを1インクリメントし(ステップS87)、ステップS73に戻る。なお、ステップS83についてはエンドユーザなどが行う処理である場合もあるので点線ブロックで、ステップS85については並列性能分析装置100の処理ではないので一点鎖線のブロックで示している。
【0129】
このような処理を実施することにより、従来の稼働率NWRsystemでは考慮されていない並列効率を反映させた、すなわち実効的な処理時間を考慮に入れたシステム運用効率を向上させることができるようになる。
【0130】
E.チューニング処理
従来、並列アプリケーション・プログラムのチューニングによる性能向上作業は、達成目標が不明確であったためその作業時間の見積が容易でなかった。目標とした処理時間がチューニングでは到達不可能な場合もあり、チューニング作業を延々と続けて多大な作業時間を費やす場合も多々存在していた。そこで、図31に示すような処理を実施する。
【0131】
まず、チューニング処理部25は、プログラマによる目標処理時間(τ)、繰返回数icmax及び制限並列効率(Emaxの設定入力を受け付ける(ステップS91)。次に、ログデータ格納部30に格納されている並列効率及び処理時間のデータ(例えばチューニングしようとしているプログラムの処理ログに含まれる並列効率及び処理時間)を用いて、目標処理時間(τ)に対応する目標並列効率(Eを計算し、記憶装置に格納する(ステップS93)。目標並列効率(Eは以下の式で計算される。この式は線形外挿を表している。
(E=max(τ)×E(p)/(τ)
【0132】
そして目標並列効率(Eが制限並列効率(Emax以下であるか判断する(ステップS95)。目標処理時間(τ)を何らの制限なく設定すると、実現不可能な目標並列効率(Eが設定されることになりかねないため、本ステップにおいて目標処理時間(τ)が妥当であるか判断するものである。もし、目標並列効率(Eが制限並列効率(Emaxを超える場合には、目標処理時間(τ)又は制限並列効率(Emaxの設定し直しが必要となるので、ステップS91に戻る。
【0133】
一方、目標並列効率(Eが制限並列効率(Emax以下である場合には、今回測定の処理時間τ(p)が目標処理時間(τ)以下になっているか判断する(ステップS97)。なお、ステップS97の最初の処理は、必ずNoと判断される。もし、今回測定の処理時間が目標処理時間(τ)以下になっている場合には、目標を達成した旨のメッセージ、達成された並列効率、処理時間τ(p)等のデータを表示装置等の出力装置110に出力する(ステップS99)。一方、今回測定の処理時間が目標処理時間(τ)を超えている場合には、カウンタ値icが繰返回数icmax以上になっているか判断する(ステップS101)。もし、カウンタ値icが繰返回数icmax以上になった場合には、目標達成不可能を表すメッセージ、達成できた並列効率、処理時間τ(p)等のデータを、表示装置などの出力装置110に出力する(ステップS103)。
【0134】
もし、カウンタ値icが繰返回数icmax未満である場合には、カウンタ値icを1インクリメントする(ステップS105)。そして、冗長処理、ロードバランス、通信処理、I/Oなどの並列性能阻害要因についてチューニングを行う(ステップS107)。プログラムの書き換えではなく、ツールやコンパイラ、ランタイムライブラリなどによりチューニングを実施しても良い。プログラマが実施する作業である場合もあるのでここでは点線ブロックで示している。チューニングの後に、並列計算機システム200にてプログラムを再度並列処理し、同時に測定部201により処理時間等の測定処理を実施し、記憶装置に格納する(ステップS109)。ステップS109も並列性能分析装置100の処理ではないので一点鎖線によるブロックで表している。この後、データ取得部10が、並列計算機システム200から処理時間等のデータを取得し、ログデータ格納部30に格納する。そして、ロードバランス寄与率計算部11、仮想並列化率計算部12、並列性能阻害要因寄与率計算部13、並列効率計算部14などにより、並列効率を含む並列性能評価指標を計算し、ログデータ格納部30に格納する(ステップS111)。そして、ステップS97に戻る。
【0135】
このように、所定のチューニング回数だけ目標処理時間(τ)を達成すべくチューニング作業を実施することになるので、プログラマも効率的な作業を実施することができるようになる。
【0136】
例えば図23のような処理時間を基に具体例を示しておく。この際、τ(p)=37、E(4)=0.4443であるので、今仮に(Emax=0.6、(τ)=28とすると、(E=0.5871となる。従って、ステップS95からステップS97に移行する。最初の処理であるからステップS97からステップS101及びS105を介してステップS107に移行する。そこで1回目のチューニングとして通信時間χを1/2に削減したものとする。その結果を用いてステップS111で並列効率を含む並列性能評価指標を計算する。そうすると図32に示すような結果が得られる。なお、図32は処理時間max(τ)を加えて比較したものである。
【0137】
チューニングとして通信時間χを1/2に削減した場合の計算方法は以下のとおりである。なお、χ1,C(4)=10/2=5、χ2,C(4)=11/2=5.5、χ3,C(4)=12/2=6、χ4,C(4)=13/2=6.5とする。また式(12−1)から以下のように計算される。
【数64】
Figure 2004054680
(1)ロードバランス寄与率(式(5))
【数65】
Figure 2004054680
(2)仮想並列化率(式(6−1))
【数66】
Figure 2004054680
(3)並列性能阻害要因寄与率(式(7))
【数67】
Figure 2004054680
(4−1)並列効率(式(4−4))
【数68】
Figure 2004054680
(4−2)並列効率(式(9−2))
【数69】
Figure 2004054680
【0138】
1回のチューニングでは処理時間max(τi)(=τ(p))は30.5で目標処理時間(τ)を達成できていないので、再度何らかのチューニングを実施する必要がある。
【0139】
従来、並列性能の評価は、プロセッサ数を変えての時間変化、他のシステムとの処理時間比較、時間内に行われたオペレーション数の比較等、処理時間比較をベースにして行われた。これには2度以上の時間測定が必要で、プログラム開発時間を増加させる原因となっていた。またこの比較という相対的な並列性能評価では、処理データが変わった場合、比較基準を再度測定する必要が出てくる。このように並列性能評価に時間がかる結果、ある条件でしか並列性能が出ないアプリケーション・プログラムが開発されてしまう場合が生ずる。上で述べたような処理を実施することにより、並列効率による並列性能評価が1回の測定でできるようになり、並列アプリケーション・プログラムの開発時間のうちの性能評価時間を大幅に短縮することが可能となる。その結果、並列性能を十分考慮した並列アプリケーション・プログラムの開発が現実的に実施できるようになる。
【0140】
また従来では、アプリケーション・プログラムのチューニングによる性能向上作業は達成目標が不明確であったため作業時間見積が容易でなかった。またどのような場合に作業を終えるかが明確にならず、結果的に多大な作業時間を費やす場合も生じていた。さらにアプリケーション・プログラムのチューニングではなく再開発が必要になってしまう場合もあった。上で述べたような処理を実施することにより、アプリケーション・プログラムのチューニングによる並列効率向上の目標を明確に定め、チューニングの繰返回数等で作業時間の予測もできるようになる。
【0141】
さらに従来では、アプリケーション・プログラムのチューニングはアプリケーション・プログラムの中で処理時間が長い手続き(アプリケーション・プログラムの一部分)を時間測定等により探し出し、その手続き内で問題となっている並列性能阻害要因を処理時間の比較により探し出し、その処理時間を減らすという形で行われた。上で述べたような処理により、このようなアプリケーション・プログラムの一部分のチューニングに対し、ロードバランスに対する性能評価が初めて可能となった。
【0142】
F.アルゴリズム選定処理
従来、並列アプリケーション・プログラムの一部に用いるアルゴリズムを変えたもの同士の性能比較には処理時間を用いたが、処理時間減少の原因が並列処理の効果によるものか、機能の違いによる効果か(例えば演算数の減少か)判別できなかった。その結果、処理時間は短いがスケーラビリティが悪いアルゴリズムにたくさんのプロセッサをつぎ込む資源の無駄使いを見逃すこととなった。本実施の形態では、より並列効率の良いアルゴリズムを選定して、システム全体の運用効率を向上させる。ここではまず、並列処理に向かないアルゴリズムと並列処理に向くアルゴリズムを比較した例を示しておく。
【0143】
[並列処理に向かないアルゴリズム]
例えば図33に示すような処理時間の測定がなされた場合を例に説明する。なお、χ1,C(1)=0とする。また式(12−1)から以下のように計算される。
【数70】
Figure 2004054680
(1)ロードバランス寄与率(式(5))
【数71】
Figure 2004054680
(2)仮想並列化率(式(6−1))
【数72】
Figure 2004054680
(3)加速率(式(6−2))
【数73】
Figure 2004054680
(4)並列性能阻害要因寄与率(式(7))
【数74】
Figure 2004054680
(4−1)並列効率(式(4−4))
【数75】
Figure 2004054680
(4−2)並列効率(式(9−1))
【数76】
Figure 2004054680
【0144】
[並列処理に向くアルゴリズム]
図34に示すような処理時間が測定された場合の例を説明する。なお、χ1,C(1)=0とする。また式(12−1)から以下のように計算される。
【数77】
Figure 2004054680
(1)ロードバランス寄与率(式(5))
【数78】
Figure 2004054680
(2)仮想並列化率(式(6−1))
【数79】
Figure 2004054680
(3)加速率(式(6−2))
【数80】
Figure 2004054680
(4)並列性能阻害要因寄与率(式(7))
【数81】
Figure 2004054680
(4−1)並列効率(式(4−4))
【数82】
Figure 2004054680
(4−2)並列効率(式(9−1))
【数83】
Figure 2004054680
【0145】
以上の処理結果をまとめると図35のようになる。並列処理に向かないアルゴリズムの番号をj=1、並列処理に向くアルゴリズムの番号をj=2とすると、j=1では加速率A=5.000で有限であり、プロセッサを増加させても5個分が効率的に限度であることが分かる。一方、j=2では加速率A=∞であり、プロセッサを投入すればするほど処理時間が短くなる可能性がある。なお、処理時間τはj=1の方が110でj=2の120より短いので、今まであれば並列処理に向かないアルゴリズムであるj=1を選択してしまう場合があった。
【0146】
そこで本実施の形態では図36に示す処理をアルゴリズム選定処理部26にて実施するものとする。まず、プログラマにより目標処理時間(τ)の設定入力を受け付ける(ステップS121)。そして、初期設定として、アルゴリズム番号jを1に、最適なアルゴリズム番号jを1に設定する(ステップS123)。また、j=1の場合に、目標処理時間(τ)を達成するために必要なプロセッサ数(p)を線形外挿で計算する(ステップS125)。すなわち、ログデータ格納部30に格納されたアルゴリズム番号j=1の処理時間等を用いて、(p)=(τ)/(τ)/(E+(p)を計算し、記憶装置に格納する(ステップS125)。また、最適なアルゴリズムについて必要なプロセッサ数(p)=INT((p)+0.99)と設定する。さらに、pmin=pと設定する。
【0147】
次にjを1インクリメントする(ステップS127)。そして、jの場合のプロセッサ数(p)を以下の式で計算し、記憶装置に格納する(ステップS129)。
(p)=(τ)/(τ)/(E+(p)
そして、(p)<(p)minであり、且つ(A>(p)であるか確認する(ステップS131)。すなわち、(p)が最小であり、当該アルゴリズムの加速率(Aより最適プロセッサ数が小さくなっているか、すなわち実現可能かを確認する。ステップS125及びS129では線形外挿で単純に(p)を計算しているので、実現可能か否かをここで担保するものである。もし、(p)<(p)minであり、且つ(A>(p)である場合には、アルゴリズム番号jをjに設定する。すなわち、j=j。また、(p)=INT((p)+0.99)と設定する(ステップS133)。
【0148】
ステップS131又はステップS133の後に、jがアルゴリズム数jmax以上になっているか確認する(ステップS135)。すなわち全てのアルゴリズムについて処理したか判断する。もし、j≧jmaxであれば、最終的にjで特定されたアルゴリズム番号及びその場合のプロセッサ数(p)並びに他の処理結果(j,(p),(A,(τ)等のセット)を、表示装置等の出力装置110に出力する(ステップS137)。一方、j<jmaxであればステップS127に戻る。
【0149】
このようにすれば実現性のある範囲内でプロセッサ数が少なく目標処理時間を達成することができるアルゴリズムを特定することができる。また、本処理フローで最適とされたアルゴリズムだけではなく、あまりプロセッサ数が異ならないアルゴリズムでチューニングなどがやりやすいアルゴリズムを選択することもできる。
【0150】
図35に示した2つのアルゴリズムの例で具体的に説明する。初めに目標処理時間(τ)=50を設定する。次にそれらのアルゴリズムの(E,(τ)を用いて線形外挿により必要なプロセッサ数(p)を計算する。図36に示した処理フローでは(p)を線形外挿で求めるため、冗長処理のみを考慮したA(4)をプロセッサ数の上限として導入して、A(4)>(p)であれば(p)を適用できるものとする。その結果、並列処理に向かないアルゴリズムの限界性能が5.000であるのに対して(p)は7.872で、並列処理に向かないアルゴリズムについては(p)を適用できないことが分かる。一方、並列処理に向くアルゴリズムの限界性能は∞であるので、6.618のプロセッサで(τ)=50を達成できる可能性がある。従って並列処理に向くアルゴリズムj=1を選ぶことができる。その場合の初めの目安は、6.618を切り上げして得た(p)=7である。今まではτの110と120を比べて処理時間が短いが並列処理に向かないアルゴリズムを採用する場合が多かったが、図36の処理フローによりp=4では処理時間が長いが並列処理に向くアルゴリズムを選択できるようになる。
【0151】
G.並列性能評価処理
本実施の形態においては、実運用における全処理の並列性能評価指標のログデータを作成することが可能となる。このログデータにおいてある特定の処理をターゲットにすれば専用並列計算機システムに必要な仕様書(CPU性能、通信性能、I/O性能、ランライムライブラリの性能等)を求めることが可能となる。全アプリケーションによる処理をターゲットにすればそのログに対する汎用並列並列計算機システムに必要な仕様書を作成することも可能となる。
【0152】
例えば図37に示した処理番号1乃至4の処理性能を向上するためには、通信性能を上げること、又はCPUの性能と通信の性能の比を保つ形で両者の性能向上を図れば良いことが分かる。並列性能評価処理部27は、例えばログデータ格納部30に格納されているデータから図37のようなテーブルを構成し、表示装置等の出力装置110に出力する。また、並列性能阻害要因のうちどの処理においても相対的に高い値を示しているものを強調表示するような処理を行っても良い。また、処理5の性能を向上するためには、システムのリプレイス等による性能向上ではなく、アプリケーション・プログラムのチューニング等が必要なことが分かる。これは、処理5だけ冗長処理による並列性能阻害要因寄与率が大きな値を示しているからであり、並列性能評価処理部27は特徴的な処理についても抽出して、例えば強調表示させるような場合もある。
【0153】
通信性能を決定する方法としては、例えばシステムリプレイスデータ処理で説明したような処理を実施すればよい。すなわち、通信性能の倍率以外は1に固定してしまい、目標のE(4)をクリアするまで実施する。
【0154】
なお、処理数の多い処理番号1乃至4のパターンの処理に着目して通信性能を向上すれば、このシステムは汎用並列計算機システムとなる。一方、処理数の少ない処理番号5のパターンの処理に着目して冗長処理を軽減する仕組みを計算機システムに導入すれば、専用並列計算機システムとなる。また、処理番号5のアプリケーション・プログラムのチューニングを行い、冗長処理を減らせば、通信性能を向上するだけで1乃至5の汎用並列計算機システムとなる。
【0155】
従来では、アプリケーション・プログラムの並列処理の特徴により並列計算機システムの並列性能が大きく変わるため、並列計算機システムを開発することが容易でなかった。それを克服する方法として、アプリケーション・プログラムを特定し並列性能を分析して、それに合った並列計算機システムを開発する方法が多く用いられていた。しかしこの方法ではアプリケーション・プログラムが変わると、全く並列性能を発揮できないシステムを開発してしまう恐れがある。本実施の形態によれば、実運用における全処理の並列性能評価指標のログデータを作成することが可能となるため、このログデータを基にして、ある特定の処理をターゲットにすれば専用並列計算機システムに必要な仕様書(CPU性能、通信性能、I/O性能、ランライムライブラリの性能等)を作成することが可能となる。また、全処理をターゲットにすればそのログに対する汎用並列計算機システムに必要な仕様書を作成することも可能となる。
【0156】
また従来では、並列計算機システムの並列性能阻害要因を定量的に把握する手段が組み込まれているか否かはシステムにより大きく差があり、並列性能阻害要因を定量的に把握する手段を全く持っていないシステムもある。本実施の形態では、式(7)で示すように、並列性能阻害要因が無い状態から任意に要因を追加できる機能を持つため、販売後、システムのアプグレード時に要因測定機能を追加して評価精度を高めることができる。
【0157】
さらに、従来の性能評価指標である例えばflop/s,Mop/s,tpmC等は、アプリケーション・プログラムの種類によって適用できるものとできないものがある。本実施の形態では、指標を時間比で表わすため、全てのアプリケーション・プログラムに対して有効であり、性能評価を適切に実施できるようになる。さらに、従来の並列性能評価方法には特別な並列処理にしか適用できないものがあったが、本実施の形態によれば全ての並列処理に適用することができる。
【0158】
以上本発明の実施の形態を説明したが、これにより、並列処理の性能を表わす並列効率に対し、それを低下させる割合を並列性能評価指標、すなわちロードバランス寄与率、仮想並列化率及び並列性能阻害要因で示すことができるようになる。並列性能評価指標にロードバランス寄与率が加わり、全ての並列処理の並列性能評価が可能となる。
【0159】
また、式(8−2)を用いれば、R(p)がほぼ1である場合には、並列効率の計算に推測値τ(1)を必要としないため、τ(1)を測定できないグリッドやクラスタによる並列処理を含め、全ての並列処理の正確な(推測値τ(1)を含まないと言う意味で)並列性能評価が可能となる。
【0160】
さらに、式(9−1)及び式(9−2)を用いれば、R(p)<1の場合でも、並列効率の計算のためにτ(1)を見積ることにより、τ(1)を測定できないグリッドやクラスタによる並列処理を含め、全ての並列処理の並列性能評価が可能となる。
【0161】
式(7)の式の形により、対象とする並列計算機システムに特有の並列処理阻害要因を随時導入可能となり、詳細な性能評価を容易に実施できる。さらに、並列性能阻害要因の寄与率を並列効率に対する百分率で捉えられ、直感的な並列性能評価が可能となる。
【0162】
また、ロードバランスの寄与が、並列効率に対する比率という数値で明確となったため、今まで評価できなかった並列性能に対するロードバランスの寄与が具体的に示せるようになる。
【0163】
また、並列性能指標を計算して提示するだけではなく、処理時間測定により決定された並列効率を用い、効率の良い処理を行うプロセッサ数の決定ができる。さらに、並列処理の効率を考慮した上で、プロセッサの増減を検討できる。
【0164】
さらに、性能仕様が異なる新しい並列計算機システムの導入を机上で検討できる。また、並列性能評価指標を用いて,システム運用における利用効率管理ができる。
【0165】
以上本発明の実施の形態を説明したが、本発明はこれに限定されない。例えば図19の機能ブロック図は一例であり、必ずしもプログラムモジュールとは対応しない。また、プロセッサ数最適化処理部21、プロセッサ増設見積処理部22、システムリプレイスデータ処理部23、運用効率データ処理部24、チューニング処理部25、アルゴリズム選定処理部26、並列性能評価処理部27は全て備えていなければならないものではなく、全て設けられる場合もあれば全く設けられない場合もある。さらに、任意の組み合わせにて設けられる場合もある。
【0166】
[実施例]
上で述べた実施の形態は全ての並列処理(メモリ、ネットワーク、CPU性能が同じホモ構成又は異なるヘテロ構成のグリッド、クラスタ又は分散メモリ、若しくはSMP(対称型マルチプロセッシング:Symmetric MultiProcessing)、SMP+分散メモリ、NUMA(NonUniform Memory Access)等)に適用可能である。以下では、代表的な態様について計算例を示しておく。
【0167】
(1)ホモ構成におけるグリッド等(χ1,j(1)=0)
グリッドやクラスタで処理を行う場合、各プロセッサへの処理の割り付けや処理結果の回収にネットワークを用いるため通信が発生するが、これは1つのプロセッサで処理する場合には生じない。このような処理はχ1,j(1)=0の処理である。ここでは並列性能阻害要因を通信のみとし、χ1,C(1)=0であるような処理の並列性能を評価する。例えば図38のような経過時間の測定結果が得られた場合について説明する。
【0168】
式(3)から以下の計算がなされる。
【数84】
Figure 2004054680
式(5)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数85】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(8−2)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数86】
Figure 2004054680
【0169】
以上計算された並列性能評価指標をまとめると図39のようになる。A(p)=∞ゆえp=∞で並列処理した時の性能向上の可能性は無限であるが,プロセッサ数p=4を投入した現実の性能向上E(4)・pは1.928である。その理由は、並列効率E(4)が、ロードバランス寄与率で93%(Rb(4)=0.9286)となり、通信によりさらに48%(Rc(4)=0.4808)低下するためである。
【0170】
(2)ホモ構成におけるグリッド等(χ1,RED(1)≠0)
数値計算では、アプリケーション・プログラムを全てのプロセッサにコピーし、ループ処理のインデックス等を識別して各プロセッサで処理を分担する、いわゆるデータパラレルで並列処理する場合が多い。データパラレルでは、例えばループ間に並列処理できない処理が残る。この処理を全プロセッサが行うとき、内容が同じ処理であることからこれを冗長処理と呼ぶ。冗長処理の特徴は、並列処理でない場合も必要な処理のため必ずχ1,RED(1)≠0となることである。ここでは並列性能阻害要因を冗長処理のみとし、χ1,RED(1)≠0であるような処理の並列性能を評価する。例えば図40のような経過時間の測定結果が得られた場合について説明する。
【0171】
式(3)から以下の計算がなされる。
【数87】
Figure 2004054680
式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数88】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数89】
Figure 2004054680
【0172】
以上計算された並列性能評価指標をまとめると図41のようになる。ここではA(p)=9.737ゆえp>9の並列処理は無意味である。プロセッサ数p=4を投入した現実の性能向上E・pは2.874である。その理由は、並列効率Eが、ロードバランス寄与率で94%(Rb(4)=0.9398)となり、冗長処理によりさらに31%(RRED(4)=0.3141)低下するためである。
【0173】
(3)ホモ構成におけるグリッド等(χ1,j(1)≠0:但し冗長処理以外)
例えば通信ライブラリの処理時間はネットワーク通信と演算で構成される。この演算時間をχ1,C(1)として扱う。ここでは並列性能阻害要因を通信のみとし、χ1,C(1)≠0であるような処理の並列性能を評価する。例えば図42のような経過時間の測定結果が得られた場合について説明する。
【0174】
式(3)から以下の計算がなされる。
【数90】
Figure 2004054680
式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数91】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数92】
Figure 2004054680
【0175】
以上計算された並列性能評価指標をまとめると図43のようになる。ここではA(p)=22.57ゆえp<22で処理すべきである。プロセッサ数p=4を投入した現実の性能向上E・pは1.859である。その理由は、並列効率Eが通信により53%(R=0.5263)低下するためである。ロードバランス寄与率は94%(Rb(4)=0.9375)で、ロードバランスはこの場合の並列性能を阻害する主要な要因ではない。実施例(1)と異なるところは、χ1,C(1)≠0のためA(p)が有限値になるところである。
【0176】
通信処理に含まれる演算はプロセッサの増加と共に変化する場合がある。これをΧi,C(p)とみなして並列性能評価に取り入れることで、プロセッサ数によって異なる演算数を評価に組み込むことが可能となる。
【0177】
(4)ホモ構成におけるグリッド等(待ち(アイドリング:ウエイト(wait)とも呼ぶ)がある場合)
特定のプロセッサが処理し、結果を他のプロセッサが使う場合、その処理が終了するまで他のプロセッサは次の処理を開始できない。例えば特定のプロセッサのみがデータベース(DB)をアクセスできる場合がこれに当たる。図44ではプロセッサ#1でこの処理(γ’)を行う。他のプロセッサはDB処理の間、待ち状態になる。このようにCPUを待たせておくアイドリング処理が存在する場合の並列性能を評価することができる。図44のような経過時間の測定結果が得られたものとする。
【0178】
式(3)から以下の計算がなされる。
【数93】
Figure 2004054680
式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数94】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(8−2)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数95】
Figure 2004054680
【0179】
以上計算された並列性能評価指標をまとめると図45のようになる。A(4)=∞ゆえp=∞で並列処理した時の性能向上の可能性は無限であるが、p=4を投入した現実の性能向上E・pは2.226である。その理由は、並列効率Eが通信により32%(R(4)=0.3158)、アイドリングにより11%(R(4)=0.1108)低下するためである。ロードバランス寄与率は97%(Rb(4)=0.97043 )で、ロードバランスはこの場合並列性能を阻害する主要な要因ではない。
【0180】
(5)ホモ構成におけるグリッド等(他の処理があるために待ちがある場合)
グリッドやクラスタで処理を行う場合、各プロセッサを自分の処理のみで使うことは希で、一般に複数の処理の中に共存することになる。その場合他の処理が割り込むことによる待ちが生じる。これを図46に示す。このように他の処理があるために待ちがある場合の並列性能を評価する。図46のような経過時間の測定結果が得られたものとする。
【0181】
式(3)から以下の計算がなされる。
【数96】
Figure 2004054680
式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数97】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(8−2)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数98】
Figure 2004054680
【0182】
以上計算された並列性能評価指標をまとめると図47のようになる。A(4)=∞ゆえp=∞で並列処理した時の性能向上の可能性は無限であるが、p=4を投入した現実の性能向上E・pは1.808である。その理由は、並列効率Eが、ロードバランス寄与率で79%(Rb(4)=0.7875)となり、タイムシェアリングのための待ちにより28%(R(4)=0.2778)、通信によりさらに14%(R=0.1418)低下するためである。R(4)は他の処理により生じるので、Rb(4)はシステム全体を考慮したロードバランス寄与率となる。他の処理がある場合、Rb(4)とR(4)に注目する必要がある。たとえRb(4)=1であっても、R(4)が大きければそれは混んだシステムを利用していることになり、Eは低い値となる。グリッド又はクラスタ処理を展開する際、特にRb(4)が1に近づくように且つRが0になるようにシステムを選択することで、並列処理を効率良く行うことが可能となる。このような事が分かるのは本実施の形態が初めてである。
【0183】
尚、自処理(目的の処理)か他処理(目的外の処理)かを見分ける方法として、CPU時間と経過時間を測定する方法がある。一般にCPU時間は自処理のみの時間、経過時間は他処理を含んだ時間となる。従ってタイムシェアリングのための待ち時間=経過時間−CPU時間とできる場合がある。
【0184】
(6)ホモ構成におけるグリッド等(データパラレル処理の場合)
データパラレル処理は、例えば1000件のデータを4プロセッサで250件ずつ分割して処理するような、各プロセッサの手続きが同じでデータが異なる並列処理である。並列処理できない処理は、全プロセッサのデータを同じにする、すなわち冗長処理を行う場合と、あるプロセッサで処理して全プロセッサに放送する場合がある。ここでは両者の並列性能を評価する。
【0185】
[冗長処理を用いたデータパラレル処理]
図48のような経過時間の測定結果が得られたものとする。また、χ1,C=0とする。
【0186】
式(3)、式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数99】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数100】
Figure 2004054680
【0187】
以上計算された並列性能評価指標をまとめると図49のようになる。A(4)=21ゆえ、プロセッサ数はp≦21で選択すべきである。プロセッサ数p=4を投入した時の現実の性能向上E・pは2.800である。その理由は、並列効率E(4)が通信で20%(R=0.2000)、冗長処理で13%(RRED(4)=0.1333)低下するためである。
【0188】
[並列処理できない部分を特定のプロセッサで処理するデータパラレル処理]
並列処理できない部分を冗長処理する代わりに、特定のプロセッサで処理する場合がある。図50は図48の冗長処理の代わりにプロセッサ#1でのみ処理を行い(γ’の部分)、結果を各プロセッサに放送した場合である。当然その間、他のプロセッサはプロセッサ#1の結果待ちとなる。またここではγ’を並列処理として取り扱ったが、逐次処理として並列処理阻害要因に加えれば、より詳細な並列性能評価ができる。しかしそのためにはγ’の処理が逐次処理か並列処理かの判別が必要となる。図50のような経過時間の測定結果が得られたものとする。また、χ1,C=0とする。
【0189】
式(3)、式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数101】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数102】
Figure 2004054680
【0190】
以上計算された並列性能評価指標をまとめると図51のようになる。A(4)=∞で並列処理した時の性能向上は無限であるが、p=4を投入した時の現実の性能向上E・pは2.800である。その理由は、並列効率E(4)が通信で20%(R(4)=0.2000)、待ちで10%(R(4)=0.1000)低下するためである。図49と図51ではR(4)、A(4)、RRED(4)、Rの値が異なる。一方Rb(4)及びE(4)は同じ値となる。図51では並列処理できない部分γ’を並列処理として評価したため、R(4)=1となった。またプロセッサ#2,3,4の冗長処理が待ちに変わり、並列性能阻害要因R(4)に代替される。
【0191】
(7)ホモ構成におけるグリッド等(コントロールパラレル処理の場合)
コントロールパラレル処理は、通常各プロセッサの手続きが異なる。このため各プロセッサの手続き時間がばらばらな並列処理となる場合が多い。ここではコントロールパラレルの並列性能を評価する。図52のような経過時間の測定結果が得られたものとする。また、χ1,C=0とする。
【0192】
式(3)から以下の計算がなされる。
【数103】
Figure 2004054680
式(5)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数104】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(8−2)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数105】
Figure 2004054680
【0193】
以上計算された並列性能評価指標をまとめると図53のようになる。A(4)=∞で並列処理した時の性能向上は無限であるが、p=4を投入した時の現実の性能向上E・pは2.528である。その理由は、並列効率Eがロードバランス寄与率で82%(Rb(4)=0.8231)、さらにタスク生成、通信、待ちをあわせて23%(RTC(4)+R(4)+R(4)=0.0344+0.1089+0.0888)低下するためである。
【0194】
並列性能の向上を図るには、並列性能指標を比べ、並列性能の低下に影響力の大きい順に改善の余地を検討する。図53の場合、これはRb(4),R(4),R(4),RTC(4)の順となる。Rb(4)=1になればE(4)・p=3.071(=2.528/0.8231)となる。そのため例えば、プロセッサ#1の処理時間が他のプロセッサと同じになるように処理スケジュールを変更することを試みる。次の改善の余地はR(4)の削減である。削減方法としては例えば通信性能が2倍になるようなハードウェアに置きかえることが考えられる。その場合には、以下のような計算がなされる。
まず、式(3)から以下の計算がなされる。
【数106】
Figure 2004054680
式(5)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数107】
Figure 2004054680
並列効率については、式(4−4)以下のような計算がなされる。
【数108】
Figure 2004054680
さらに、以下のような計算もなされる。
【数109】
Figure 2004054680
もし、通信の性能を上記のように向上させ、さらにRb(4)=1にロードバランスを変更できれば、以下のような計算がなされる。
【数110】
Figure 2004054680
【0195】
E.チューニング処理において示したように、本実施の形態では、各並列性能阻害要因をチューニングして改善した時の並列性能を推測できる。従来のチューニングでは目標値を処理時間にしていたため、不可能な目標値が設定されることがあったが、本実施の形態ではEを用いてリーズナブルな目標設定が可能となる。さらに本実施の形態では、並列効率等を1回の測定結果で計算することができるため、チューニング時の性能評価時間を短縮することが可能である。さらに、従来のチューニングでは、入力データや処理機能を変更するとそれまで測定した各並列性能阻害要因に対する処理時間を性能評価に使うことができなくなる。従って入力データや処理機能毎に独立した並列性能評価を行ってきた。本実施の形態では性能評価指標がすべて比率の形になっており、異なった入力データや処理機能の並列性能を比較できる。
【0196】
(8)ホモ構成におけるグリッド等(コントロールパラレルでマスタ・スレイブ処理を行う場合)
コントロールパラレル処理は、通常各プロセッサの手続きが異なる。マスタ・スレイブ処理の場合、1つのプロセッサが他のプロセッサの管理をするマスタとなり、その指示に従って複数のプロセッサが処理を実施する。ここではプロセッサ#1をマスタプロセッサとした場合の並列性能を評価する。図54のような経過時間の測定結果が得られたものとする。また、χ1,C=0とする。
【0197】
式(3)から以下の計算がなされる。
【数111】
Figure 2004054680
式(5)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数112】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(8−2)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数113】
Figure 2004054680
【0198】
以上計算された並列性能評価指標をまとめると図55のようになる。A(4)=∞ゆえp=∞で並列処理した時の性能向上は無限であるが、p=4を投入した時の現実の性能向上E・pは2.055である。その理由は、並列効率Eがロードバランス寄与率で86%(Rb(4)=0.8571)、さらに待ちで23%(R(4)=0.2340)、タスク生成、通信をあわせて17%(RTC(4)+R(4)=0.0385+0.1282)低下するためである。 マスタスレイブ処理を行う場合、マスタプロセッサの待ち時間が処理全体の性能に重要な影響を及ぼすことが知られているが、本実施の形態では待ちが性能に及ぼす影響を定量的に捉え、マスタスレイブ処理が有効に行われているかを判断することができる。
【0199】
(9)ホモ構成におけるグリッド等(データパラレルとコントロールパラレル混在の場合)
データパラレルとコントロールパラレルを混在させた処理は、ロードバランスを保たせることが難しいため通常の業務では使用されない。本実施の形態ではこのような場合の並列性能評価も可能となる。本実施の形態は、処理のコントロールのための性能評価指標を提供するため、このような処理に対する実用的な評価方法を提供するものである。ここではプロセッサ#1乃至#4はコントロールパラレルで、プロセッサ#5乃至#8はデータパラレルで、プロセッサ#1をマスタプロセッサとした場合の並列性能を評価する。図56のような経過時間の測定結果が得られたものとする。また、χ1,C=0とする。
【0200】
式(3)から以下の計算がなされる。
【数114】
Figure 2004054680
式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数115】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(8−2)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数116】
Figure 2004054680
【0201】
以上計算された並列性能評価指標をまとめると図57のようになる。A(8)=47.62ゆえ、p<47で並列処理すべきである。プロセッサ数p=8を投入した時の現実の性能向上E・pは5.242である。その理由は、並列効率E がロードバランス寄与率で93%(Rb(8)=0.9286)、さらに待ちで11%(R(8)=0.1080)、通信で11%(R(8)=0.1124)、冗長処理,タスク生成をあわせて9%(RRED(8)+RTC(8)=0.0592+0.0296)低下するためである。このように本実施の形態はデータパラレルとコントロールパラレル混在という並列処理方式に適用することができる。
【0202】
(10)グリッド等のヘテロ構成で冗長処理がある場合(χ1,RED≠0)
グリッドやクラスタでつながれたプロセッサは、CPUの能力が異なっている場合が多い。これをヘテロ構成と呼ぶ。本実施の形態では、ヘテロ構成の場合にも適用できる。ここでは実施例(2)においてプロセッサ#1が1/2の性能である場合の並列性能を評価する。図58のような経過時間の測定結果が得られたものとする。
【0203】
式(3)から以下の計算がなされる。
【数117】
Figure 2004054680
式(5)、式(12−1)、式(6−1)、式(6−2)及び式(7)からそれぞれ以下のような計算がなされる。
【数118】
Figure 2004054680
並列効率については、順番に式(4−4)、式(4−5)、式(9−1)、式(9−2)からそれぞれ以下のような計算がなされる。
【数119】
Figure 2004054680
【0204】
以上計算された並列性能評価指標をまとめると図59のようになる。A(4)=9.881ゆえ、p>9の並列処理は無意味である。p=4のプロセッサを投入した現実の性能向上E・pは1.918である。その理由は、並列効率Eが、ロードバランス寄与率で63%(Rb(4)=0.6250)となり、冗長処理によりさらに31%(RRED(4)=0.3103)低下するためである。図41と比較するとロードバランス寄与率Rb(4)が0.9398から0.6250に低下することが分かる。これは図41と図59に示されるようにプロセッサ#1の違いが性能評価指標Rb(4)に反映された結果である。一般に等分割したタスクをCPU能力が異なったプロセッサで処理するとロードバランスが崩れる。本実施の形態ではこれをRb(4)によって検知することができる。
【0205】
(付記1)
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【0206】
(付記2)
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【0207】
(付記3)
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【0208】
(付記4)
並列計算機システムの並列効率を計算する並列効率計算方法であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【0209】
(付記5)
並列計算機システムの並列効率を計算する並列効率計算方法であって、
1プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第1の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第2の処理時間を計算し、記憶装置に格納するステップと、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第1の処理時間と、前記第2の処理時間とを用いて並列効率を計算し、記憶装置に格納するステップと、
を含む並列効率計算方法。
【0210】
(付記6)
前記ロードバランス寄与率計算ステップにおいて、
前記ロードバランス寄与率を、
前記並列計算機システムに含まれる全プロセッサにおいて実施された処理の全処理時間を、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間及び前記並列計算機システムにおいて使用したプロセッサ数により除することにより計算する
ことを特徴とする付記1乃至4のいずれか1つ記載の並列効率計算方法。
【0211】
(付記7)
前記仮想並列化率計算ステップにおいて、
前記仮想並列化率を、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を、1プロセッサにより同一処理を実施した場合の第3の処理時間に相当する処理時間により除することにより計算する
ことを特徴とする付記1又は4記載の並列効率計算方法。
【0212】
(付記8)
前記並列性能阻害要因寄与率計算ステップにおいて、
特定の並列性能阻害要因についての並列性能阻害要因寄与率を、
前記並列計算機システムに含まれる各プロセッサにおける前記特定の並列性能阻害要因部分の処理時間の和を、前記並列計算機算システムに含まれる各プロセッサの処理時間の和により除することにより計算する
ことを特徴とする付記1乃至3のいずれか1つ記載の並列効率計算方法。
【0213】
(付記9)
前記加速率計算ステップにおいて、
前記加速率を、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和を1プロセッサにより同一処理を実施した場合の第3の処理時間に相当する処理時間により除することにより計算される仮想並列化率を1から差し引いた値の逆数として計算する
ことを特徴とする付記2記載の並列効率計算方法。
【0214】
(付記10)
前記処理時間が、対応する事象の確認回数で表されることを特徴とする付記1乃至9のいずれか1つ記載の並列効率計算方法。
【0215】
(付記11)
計算された前記並列効率に前記並列計算機システムにおいて使用したプロセッサ数を乗じて補助指標を計算し、記憶装置に格納するステップ、
をさらに含む付記1乃至10のいずれか1つ記載の並列効率計算方法。
【0216】
(付記12)
前記第3の処理時間を、
1プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第1の処理時間と前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第2の処理時間との和により計算する
ことを特徴とする付記7又は9のいずれか1つ記載の並列効率計算方法。
【0217】
(付記13)
前記第1の処理時間が、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の和をプロセッサ数で除した値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の最大値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理の処理時間の最小値、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列処理の処理時間と並列性能阻害要因の処理時間の総和が最大となるプロセッサにおける冗長処理の処理時間の値のいずれかである
ことを特徴とする付記5又は12記載の並列効率計算方法。
【0218】
(付記14)
前記第1の処理時間が、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち冗長処理以外の並列性能阻害要因による処理時間から2以上のプロセッサ数で発生し且つプロセッサ数に依存する並列化阻害要因による処理時間を減じた第4の処理時間を全プロセッサについて加算した値をプロセッサ数で除した値、全プロセッサにおける前記第4の処理時間の最大値、全プロセッサにおける前記第4の処理時間の最小値のいずれかの値である
ことを特徴とする付記5又は12記載の並列効率計算方法。
【0219】
(付記15)
目標並列効率を設定するステップと、
計算された前記並列効率とプロセッサ数の積を前記目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップと、
をさらに含む付記1乃至14のいずれか1つ記載の並列効率計算方法。
【0220】
(付記16)
システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和と、前記増加分の稼働時間及び前記予測並列効率の積との和を、前記並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し、記憶装置に格納するステップと、
をさらに含む付記1乃至14のいずれか1つ記載の並列効率計算方法。
【0221】
(付記17)
前記並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、
前記新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップと、
をさらに含む付記1乃至14のいずれか1つ記載の並列効率計算方法。
【0222】
(付記18)
前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和を、前記並列計算機システムに現在含まれる各プロセッサの全稼働時間で除することにより、システム運用効率を計算し、記憶装置に格納するステップと、
をさらに含む付記1乃至14のいずれか1つ記載の並列効率計算方法。
【0223】
(付記19)
目標処理時間を設定するステップと、
前記目標処理時間を用いて目標並列効率を計算し、記憶装置に格納するステップと、
前記目標並列効率の妥当性を確認するステップと、
をさらに含む付記1乃至14のいずれか1つ記載の並列効率計算方法。
【0224】
(付記20)
前記目標並列効率の妥当性が確認された場合には、チューニング実施後の並列効率を計算し、記憶装置に格納するステップと、
前記チューニング実施後の並列効率と前記目標並列効率とを比較するステップと、
をさらに含む付記19記載の並列効率計算方法。
【0225】
(付記21)
目標処理時間を設定するステップと、
異なるアルゴリズム毎に当該アルゴリズムにおける並列効率を用いて必要となるプロセッサ数の見積値を計算し、記憶装置に格納するステップと、
前記プロセッサ数の見積値が前記並列計算機システムにおいて実施する当該アルゴリズムによる処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率より小さく且つ異なるアルゴリズムについて計算された前記プロセッサ数の見積値のうち最小の値となるアルゴリズムを抽出するステップと、
をさらに含む付記1乃至14のいずれか1つ記載の並列効率計算方法。
【0226】
(付記22)
付記1乃至21のいずれか1つ記載の並列効率計算方法をコンピュータに実行させるためのプログラム。
【0227】
(付記23)
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【0228】
(付記24)
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算方法。
【0229】
(付記25)
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算手段と、
前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【0230】
(付記26)
並列計算機システムの並列効率を計算する並列効率計算装置であって、
前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算手段と、
前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算手段と、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【0231】
(付記27)
並列計算機システムの並列効率を計算する並列効率計算装置であって、
1プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第1の処理時間を計算し、記憶装置に格納する手段と、
前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第2の処理時間を計算し、記憶装置に格納する手段と、
前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第1の処理時間と、前記第2の処理時間とを用いて並列効率を計算し、記憶装置に格納する手段と、
を有する並列効率計算装置。
【0232】
【発明の効果】
以上述べたように本発明によれば、「ロードバランスが保たれている」という条件をはずし、グリッドコンピューティングを含む、ヘテロなプロセッサ環境を含め多種類の並列処理に適用でき、並列効率と並列性能評価指標及び並列性能阻害要因間の定量的関係付けを行うことができる。
【0233】
また、並列効率等を用いて、並列計算機システムの適切な運用も可能となる。
【0234】
さらに、並列効率等を用いて、並列計算機システムの能力増強、更新等に対する適切な判断が可能になる。
【0235】
さらに、並列効率等を用いて、並列計算機システムにおいて実行するプログラムのチューニングやアルゴリズムの選定を適切に実施できるようになる。
【図面の簡単な説明】
【図1】プロセッサ間でロードバランスが保たれている状態を表す図である。
【図2】各プロセッサにおける処理時間の分類例を示す図である。
【図3】プロセッサ間でロードバランスが保たれていない状態(4つのプロセッサを割り当てて、その中のプロセッサの1つで処理する場合)を表す図である。
【図4】γとγ(p)の関係のモデル化の一例を示す図である。
【図5】CPU性能にばらつきがあり且つデータパラレル処理を行っている状態を表す図である。
【図6】(a)は1プロセッサで処理する場合の処理時間を表す図であり、(b)は4プロセッサで処理する場合の処理時間を表す図である。
【図7】(a)は並列処理部γと通信部χの時間を考慮した場合における処理時間を表す図であり、(b)はさらに立ち上がり時間χTCを考慮に入れた場合における処理時間を表す図である。
【図8】並列性能阻害要因を追加した場合における並列性能評価指標の変化を表すための図である。
【図9】プロセッサ間でロードバランスは保たれているが、各処理時間のロードバランスまでは保たれていない場合の例を表す図である。
【図10】1つのプロセッサで処理する場合の処理時間を表す図である。
【図11】プロセッサ間でロードバランスが保たれていない場合の例を示す図である。
【図12】高並列化された場合に顕在化する並列性能阻害要因の存在を表すための図である。
【図13】並列性能評価指標の計算例を表す図である。
【図14】稼働時間と処理時間の総和の関係を表す図である。
【図15】稼働時間と処理時間と並列効率を考慮した処理時間との関係を表す図である。
【図16】データ並列を分散メモリ並列計算機システムで実施した場合の処理時間の例を表す図である。
【図17】原状のCPU性能に基づく並列性能評価指標とCPU性能が5倍のシステムに入れ替えた場合の推定並列性能評価指標とを比較するための図である。
【図18】CPU性能が5倍のシステムに入れ替えた場合における試算のためのデータを表す図である。
【図19】本発明の一実施の形態に係る機能ブロック図である。
【図20】サンプリングによる事象発生の確認及びカウントを表す概念図である。
【図21】表1のプログラム実行時のサンプリング結果例を表す図である。
【図22】並列性能分析装置の処理フローの一例を表す図である。
【図23】時間測定による処理時間の測定結果例を表す図である。
【図24】サンプリングによる処理時間の測定結果例を表す図である。
【図25】プロセッサ数最適化処理の処理フローの第1の部分の一例を表す図である。
【図26】プロセッサ数最適化処理の処理フローの第2の部分の一例を表す図である。
【図27】プロセッサ増設見積処理の処理フローの一例を表す図である。
【図28】システムリプレイスデータ処理の処理フローの一例を表す図である。
【図29】CPU性能が5倍で目標並列効率が0.6の場合の通信についての性能指針を表すための図である。
【図30】システム運用効率向上処理のための処理フローの一例を示す図である。
【図31】チューニング処理の処理フローの一例を示す図である。
【図32】チューニング前と1回目のチューニングを実施した後の並列性能評価指標の変化を表す図である。
【図33】並列処理に向かないアルゴリズムに基づく並列処理プログラムによる処理時間を表す図である。
【図34】並列処理に向くアルゴリズムに基づく並列処理プログラムによる処理時間を表す図である。
【図35】並列処理に向かないアルゴリズムと並列処理に向くアルゴリズムの並列性能指標の比較等のための図である。
【図36】アルゴリズム選定処理の処理フローを表す図である。
【図37】ある並列処理システムのログデータの一例を示す図である。
【図38】実施例1における処理時間の測定結果を表す図である。
【図39】実施例1における並列性能評価指標の計算結果を表す図である。
【図40】実施例2における処理時間の測定結果を表す図である。
【図41】実施例2における並列性能評価指標の計算結果を表す図である。
【図42】実施例3における処理時間の測定結果を表す図である。
【図43】実施例3における並列性能評価指標の計算結果を表す図である。
【図44】実施例4における処理時間の測定結果を表す図である。
【図45】実施例4における並列性能評価指標の計算結果を表す図である。
【図46】実施例5における処理時間の測定結果を表す図である。
【図47】実施例5における並列性能評価指標の計算結果を表す図である。
【図48】実施例6(冗長処理を用いたデータパラレル)における処理時間の測定結果を表す図である。
【図49】実施例6(冗長処理を用いたデータパラレル)における並列性能評価指標の計算結果を表す図である。
【図50】実施例6(並列処理できない部分を特定のプロセッサで処理するデータパラレル)における処理時間の測定結果を表す図である。
【図51】実施例6(並列処理できない部分を特定のプロセッサで処理するデータパラレル)における並列性能評価指標の計算結果を表す図である。
【図52】実施例7における処理時間の測定結果を表す図である。
【図53】実施例7における並列性能評価指標の計算結果を表す図である。
【図54】実施例8における処理時間の測定結果を表す図である。
【図55】実施例8における並列性能評価指標の計算結果を表す図である。
【図56】実施例9における処理時間の測定結果を表す図である。
【図57】実施例9における並列性能評価指標の計算結果を表す図である。
【図58】実施例10における処理時間の測定結果を表す図である。
【図59】実施例10における並列性能評価指標の計算結果を表す図である。
【符号の説明】
10 データ取得部  11 ロードバランス寄与率計算部
12 仮想並列化率計算部  13 並列性能阻害要因寄与率計算部
14 並列効率計算部  15 補助指標計算部
21 プロセッサ数最適化処理部  22 プロセッサ増設見積処理部
23 システムリプレイスデータ処理部
24 運用効率データ処理部  25 チューニング処理部
26 アルゴリズム選定処理部  27 並列性能評価処理部
30 ログデータ格納部
100 並列性能分析装置  110 出力装置
200 並列計算機システム  201 測定部

Claims (10)

  1. 並列計算機システムの並列効率を計算する並列効率計算方法であって、
    前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
    前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
    前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
    前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
    を含む並列効率計算方法。
  2. 並列計算機システムの並列効率を計算する並列効率計算方法であって、
    前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
    前記並列計算機システムにおいて実施する処理の並列化による処理時間の短縮度合いの向上の限度を表す加速率を計算し、記憶装置に格納する加速率計算ステップと、
    前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
    前記ロードバランス寄与率と前記加速率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
    を含む並列効率計算方法。
  3. 並列計算機システムの並列効率を計算する並列効率計算方法であって、
    前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
    前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
    前記ロードバランス寄与率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
    を含む並列効率計算方法。
  4. 並列計算機システムの並列効率を計算する並列効率計算方法であって、
    前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
    前記並列計算機システムにおいて実施する処理のうち各プロセッサにより並列計算される部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
    前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和と、前記各プロセッサにおいて実施された処理の処理時間の和と、前記ロードバランス寄与率と、前記仮想並列化率とを用いて並列効率を計算し、記憶装置に格納するステップと、
    を含む並列効率計算方法。
  5. 並列計算機システムの並列効率を計算する並列効率計算方法であって、
    1プロセッサにより処理を実施する場合において当該処理のうち並列性能阻害部分の全処理時間に相当する第1の処理時間を計算し、記憶装置に格納するステップと、
    前記並列計算機システムに含まれる各プロセッサにおいて実施された処理のうち並列計算部分の処理時間の和である第2の処理時間を計算し、記憶装置に格納するステップと、
    前記並列計算機システムにおいて使用したプロセッサの数と、前記並列計算機システムに含まれる各プロセッサにおいて実施された処理の処理時間のうち最長の処理時間と、前記第1の処理時間と、前記第2の処理時間とを用いて並列効率を計算し、記憶装置に格納するステップと、
    を含む並列効率計算方法。
  6. 目標並列効率を設定するステップと、
    計算された前記並列効率とプロセッサ数の積を前記目標並列効率で除することにより最適プロセッサ数を計算し、記憶装置に格納するステップと、
    をさらに含む請求項1乃至5のいずれか1つ記載の並列効率計算方法。
  7. システム増強時における増加分の稼働時間と予測並列効率とを設定するステップと、
    前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和と、前記増加分の稼働時間及び前記予測並列効率の積との和を、前記並列計算機システムに現在含まれる各プロセッサの稼働時間の和で除することにより、システム増強時の加速率を計算し、記憶装置に格納するステップと、
    をさらに含む請求項1乃至5のいずれか1つ記載の並列効率計算方法。
  8. 前記並列計算機システムに対する新たな並列計算機システムの性能倍率を設定するステップと、
    前記新たな並列計算機システムの性能倍率を用いて見積並列効率を計算し、記憶装置に格納するステップと、
    をさらに含む請求項1乃至5のいずれか1つ記載の並列効率計算方法。
  9. 前記並列計算機システムに現在含まれる各プロセッサにおいて実施された処理の処理時間の和と計算された前記並列効率との全処理についての積和を、前記並列計算機システムに現在含まれる各プロセッサの全稼働時間で除することにより、システム運用効率を計算し、記憶装置に格納するステップと、
    をさらに含む請求項1乃至5のいずれか1つ記載の並列効率計算方法。
  10. 並列計算機システムの並列効率を計算するためのプログラムであって、
    コンピュータに、
    前記並列計算機システムに含まれる各プロセッサ間の負荷の均衡度合いを表すロードバランス寄与率を計算し、記憶装置に格納するロードバランス寄与率計算ステップと、
    前記並列計算機システムにおいて実施した処理のうち各プロセッサにより並列計算された部分の、時間についての割合を表す仮想並列化率を計算し、記憶装置に格納する仮想並列化率計算ステップと、
    前記並列計算機システムに含まれる全プロセッサの全処理時間に対する各並列性能阻害要因部分の処理時間の割合を表す並列性能阻害要因寄与率を計算し、記憶装置に格納する並列性能阻害要因寄与率計算ステップと、
    前記ロードバランス寄与率と前記仮想並列化率と前記並列性能阻害要因寄与率とを用いて並列効率を計算し、記憶装置に格納するステップと、
    を実行させるためのプログラム。
JP2002212387A 2002-07-22 2002-07-22 並列効率計算方法 Pending JP2004054680A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002212387A JP2004054680A (ja) 2002-07-22 2002-07-22 並列効率計算方法
US10/619,462 US7587437B2 (en) 2002-07-22 2003-07-16 Parallel efficiency calculation method and apparatus
EP03016506A EP1416385A3 (en) 2002-07-22 2003-07-21 Parallel efficiency calculation method and apparatus
US12/508,768 US20090288088A1 (en) 2002-07-22 2009-07-24 Parallel efficiency calculation method and apparatus
US12/508,760 US8255442B2 (en) 2002-07-22 2009-07-24 Parallel efficiency calculation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002212387A JP2004054680A (ja) 2002-07-22 2002-07-22 並列効率計算方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006001754A Division JP3821834B2 (ja) 2006-01-06 2006-01-06 並列効率計算方法

Publications (1)

Publication Number Publication Date
JP2004054680A true JP2004054680A (ja) 2004-02-19

Family

ID=30437609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002212387A Pending JP2004054680A (ja) 2002-07-22 2002-07-22 並列効率計算方法

Country Status (3)

Country Link
US (3) US7587437B2 (ja)
EP (1) EP1416385A3 (ja)
JP (1) JP2004054680A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265079A (ja) * 2006-03-29 2007-10-11 Nec Corp サイジング支援システム、方法、及びプログラム
JPWO2008010291A1 (ja) * 2006-07-21 2009-12-17 富士通株式会社 並列計算機システムのスケーラビリティに関するデータ処理方法及び装置
JP2015166961A (ja) * 2014-03-04 2015-09-24 日本電気株式会社 情報処理システム、情報処理方法、および、スケジューリングプログラム

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法
US20060101464A1 (en) * 2004-11-09 2006-05-11 Dohrmann Stephen H Determining a number of processors to execute a task
JP4555145B2 (ja) * 2005-04-28 2010-09-29 富士通株式会社 バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
CA2624483C (en) * 2005-09-30 2017-11-21 Telecom Italia S.P.A. A method and system for automatically testing performance of applications run in a distributed processing structure and corresponding computer program product
US7525548B2 (en) * 2005-11-04 2009-04-28 Nvidia Corporation Video processing with multiple graphical processing units
US7768517B2 (en) * 2006-02-21 2010-08-03 Nvidia Corporation Asymmetric multi-GPU processing
US8284206B2 (en) * 2006-03-14 2012-10-09 Transgaming, Inc. General purpose software parallel task engine
JP2007249468A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
US20080059489A1 (en) * 2006-08-30 2008-03-06 International Business Machines Corporation Method for parallel query processing with non-dedicated, heterogeneous computers that is resilient to load bursts and node failures
US8510741B2 (en) * 2007-03-28 2013-08-13 Massachusetts Institute Of Technology Computing the processor desires of jobs in an adaptively parallel scheduling environment
US8108876B2 (en) 2007-08-28 2012-01-31 International Business Machines Corporation Modifying an operation of one or more processors executing message passing interface tasks
US8127300B2 (en) * 2007-08-28 2012-02-28 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks
US8312464B2 (en) * 2007-08-28 2012-11-13 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US8234652B2 (en) 2007-08-28 2012-07-31 International Business Machines Corporation Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US8359365B2 (en) 2008-02-11 2013-01-22 Nuix Pty Ltd Systems and methods for load-balancing by secondary processors in parallel document indexing
US9785700B2 (en) * 2008-02-11 2017-10-10 Nuix Pty Ltd Systems and methods for load-balancing by secondary processors in parallelized indexing
US9928260B2 (en) 2008-02-11 2018-03-27 Nuix Pty Ltd Systems and methods for scalable delocalized information governance
JP5403760B2 (ja) * 2008-07-02 2014-01-29 国立大学法人東京工業大学 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置
US8031612B2 (en) * 2008-09-11 2011-10-04 Intel Corporation Altering operation of a network interface controller based on network traffic
US8732714B2 (en) 2008-12-08 2014-05-20 Kpit Technologies Limited Method for reorganizing tasks for optimization of resources
JP5353566B2 (ja) * 2009-08-31 2013-11-27 オムロン株式会社 画像処理装置および画像処理プログラム
CN102043673B (zh) * 2009-10-21 2015-06-03 Sap欧洲公司 并行处理中执行任务的节点数量的优化选择系统及方法
JP5532849B2 (ja) * 2009-11-20 2014-06-25 富士通株式会社 コンピュータ、プロセス間通信プログラム、およびプロセス間通信方法
US9183109B2 (en) * 2010-05-25 2015-11-10 Intel Corporation Method and system for analyzing the performance of multi-threaded applications
EP2610758A4 (en) * 2010-08-25 2017-04-26 Fujitsu Limited Network evaluation device, method of evaluating network and network evaluation program
KR20120072252A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법
US8695008B2 (en) * 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US8910178B2 (en) * 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8949848B2 (en) * 2012-08-20 2015-02-03 International Business Machines Corporation Reducing usage of resource utilized by a virtual machine whose resource utilization is adversely affecting neighboring virtual machines
KR101694306B1 (ko) * 2012-12-14 2017-01-09 한국전자통신연구원 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법
US9477523B1 (en) * 2013-06-25 2016-10-25 Amazon Technologies, Inc. Scheduling data access jobs based on job priority and predicted execution time using historical execution data
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
CN103457870B (zh) * 2013-09-25 2016-06-29 武汉理工大学 用于分布式系统的负载均衡及高可用性子系统及方法
US10826930B2 (en) 2014-07-22 2020-11-03 Nuix Pty Ltd Systems and methods for parallelized custom data-processing and search
US11200249B2 (en) 2015-04-16 2021-12-14 Nuix Limited Systems and methods for data indexing with user-side scripting
US10210027B1 (en) * 2015-09-17 2019-02-19 EMC IP Holding Company LLC Cluster management
CN105959395B (zh) * 2016-06-15 2019-04-19 徐州医科大学 一种集群自反馈式负载均衡调度系统及方法
US10812416B2 (en) * 2017-12-27 2020-10-20 International Business Machines Corporation Reduced number of counters for reliable messaging
CN110046634B (zh) * 2018-12-04 2021-04-27 创新先进技术有限公司 聚类结果的解释方法和装置
US11112514B2 (en) 2019-02-27 2021-09-07 Saudi Arabian Oil Company Systems and methods for computed resource hydrocarbon reservoir simulation and development
CN113467936A (zh) * 2021-06-16 2021-10-01 上海行健职业学院 一种基于并行计算时间最短估算模型的处理器规模选择方法
US20240264846A1 (en) * 2023-02-03 2024-08-08 EMC IP Holding Company LLC Performance tuning a computer system in scaling domains based on quantified scalability

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2622219B2 (ja) * 1991-12-26 1997-06-18 富士通株式会社 並列計算機の性能評価方法及びその装置
JP3208870B2 (ja) * 1992-10-30 2001-09-17 株式会社日立製作所 データ分割パタンの評価方法
JP3480973B2 (ja) * 1993-11-30 2003-12-22 富士通株式会社 並列処理システムの動作解析装置
JP3090605B2 (ja) * 1995-12-26 2000-09-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ装置
JP3136088B2 (ja) * 1996-02-22 2001-02-19 シャープ株式会社 データ処理装置及びデータ処理方法
JPH09265459A (ja) 1996-03-28 1997-10-07 Mitsubishi Electric Corp データ処理装置の制御方法
JPH1063550A (ja) * 1996-08-23 1998-03-06 Fujitsu Ltd 実行性能解析表示方法およびその方法を実施するプログラムを記録した媒体
JP3663968B2 (ja) 1999-04-14 2005-06-22 日本電気株式会社 マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体
US7039906B1 (en) * 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
JP2003050721A (ja) * 2001-08-08 2003-02-21 Fujitsu Ltd 並列効率計算方法及び装置
JP4447200B2 (ja) * 2002-07-19 2010-04-07 Necエレクトロニクス株式会社 映像データ転送方法、表示制御回路及び液晶表示装置
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265079A (ja) * 2006-03-29 2007-10-11 Nec Corp サイジング支援システム、方法、及びプログラム
JPWO2008010291A1 (ja) * 2006-07-21 2009-12-17 富士通株式会社 並列計算機システムのスケーラビリティに関するデータ処理方法及び装置
JP2015166961A (ja) * 2014-03-04 2015-09-24 日本電気株式会社 情報処理システム、情報処理方法、および、スケジューリングプログラム

Also Published As

Publication number Publication date
EP1416385A3 (en) 2006-04-05
US8255442B2 (en) 2012-08-28
US20040015978A1 (en) 2004-01-22
US7587437B2 (en) 2009-09-08
EP1416385A2 (en) 2004-05-06
US20090287753A1 (en) 2009-11-19
US20090288088A1 (en) 2009-11-19

Similar Documents

Publication Publication Date Title
JP2004054680A (ja) 並列効率計算方法
Azimi et al. Online performance analysis by statistical sampling of microprocessor performance counters
Duan et al. Versatile prediction and fast estimation of architectural vulnerability factor from processor performance metrics
US5857097A (en) Method for identifying reasons for dynamic stall cycles during the execution of a program
US6412105B1 (en) Computer method and apparatus for compilation of multi-way decisions
US20040111708A1 (en) Method and apparatus for identifying similar regions of a program's execution
US20070130568A1 (en) Adaptive execution method for multithreaded processor-based parallel system
Fields et al. Using interaction costs for microarchitectural bottleneck analysis
JP2010507146A (ja) 分散システムの能力計画及びリソース最適化を行う方法と装置
Friese et al. Generating performance models for irregular applications
Bao et al. White box sampling in uncertain data processing enabled by program analysis
Jahre et al. GDP: Using dataflow properties to accurately estimate interference-free performance at runtime
Moreira et al. Vespa: static profiling for binary optimization
Sarkar et al. Resource requirement prediction using clone detection technique
JP3821834B2 (ja) 並列効率計算方法
Li et al. Efficient microarchitectural vulnerabilities prediction using boosted regression trees and patient rule inductions
Lee et al. Accurately approximating superscalar processor performance from traces
Zhang et al. Getting more for less in optimized mapreduce workflows
Dimpsey et al. Performance prediction and tuning on a multiprocessor
Fang et al. Feedback-directed memory disambiguation through store distance analysis
Chen et al. Profile-guided optimization for function reordering: A reinforcement learning approach
Qasem et al. A cache-conscious profitability model for empirical tuning of loop fusion
Tripp et al. Tightfit: Adaptive parallelization with foresight
Kiran et al. A prediction module to optimize scheduling in a grid computing environment
Strube et al. Software probes: Towards a quick method for machine characterization and application performance prediction

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060308

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060315