JPH09237203A - 対称マルチプロセッサアーキテクチャ上のコードプロファイルシステム及び方法 - Google Patents

対称マルチプロセッサアーキテクチャ上のコードプロファイルシステム及び方法

Info

Publication number
JPH09237203A
JPH09237203A JP8332752A JP33275296A JPH09237203A JP H09237203 A JPH09237203 A JP H09237203A JP 8332752 A JP8332752 A JP 8332752A JP 33275296 A JP33275296 A JP 33275296A JP H09237203 A JPH09237203 A JP H09237203A
Authority
JP
Japan
Prior art keywords
thread
child
threads
delta
parent
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.)
Granted
Application number
JP8332752A
Other languages
English (en)
Other versions
JP3337926B2 (ja
Inventor
Chuck Summers
チァク、サマズ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH09237203A publication Critical patent/JPH09237203A/ja
Application granted granted Critical
Publication of JP3337926B2 publication Critical patent/JP3337926B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/3466Performance evaluation by tracing or monitoring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】本発明は、プロファイラ技術分野において、プ
ログラマに対して、CPU時間の完全な分析、及びSM
Pコンピュータ上で実行するマルチスレッド化プロセス
のその他の性能メトリックを提供することを目的とす
る。 【解決手段】本発明のプロファイラは、あるコード領域
の前及び後に性能メトリックをスレッドにサンプルさせ
るために動的計測を行う。さらに、このプロファイラ
は、親スレッドをその子スレッドと共に記録するために
並列サポートレイヤへの延長部分を使用する。各スレッ
ドは、測定した性能メトリック、即ちデルタを、その領
域及びその親領域に相当するメモリの一つ又は複数のセ
ル内に記憶する。このプロセスが完了するとき、プロフ
ァイラはメモリ記憶エリアを通してスキャンし、特別の
コードレベルのそれぞれに対してデルタを合計する。そ
れから、この結果は、スレッド又はプロセスレベルで分
析することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはコンピ
ュータプログラミングに属し、特に、対称マルチプロセ
ッサコンピュータ上で実行するプロセスについての性能
メトリックを得るためのコードプロファイラーに属す
る。
【0002】
【従来の技術】現代のコンピュータシステムはしばし
ば、一つのプロセスの異なる部分、または同じ部分を同
時に実行することのできる複数の中央処理ユニット(C
PU)を有している。このようなコンピュータは、対称
マルチプロセッサ(SMP)システムと呼ばれている。
このようなコンピュータ上で実行する単一プロセスは、
異なるCPUで同時に実行する複数の制御スレッドを有
することができる。
【0003】SMPシステムのために設計するとき、或
いはSMPシステムにソフトウエアを移植するとき、こ
のシステムを完全に利用することができるようにコード
を最適化することが有利である。例えば、プログラマ
は、プロセス計算がスレッド間でバランスするようにコ
ードを最適化することを望んでいる。同様に、プログラ
マは、特別のコード領域で動作するCPUの最適数を求
める。
【0004】これらの目的を達成するために、プログラ
マは、プロセスの働きを分析しかつ性能を妨げる障害を
取り除くためにコード”プロファイラー”を使用する。
このようなプロファイラーは典型的には、特別のコード
領域に対して、プロセスによって使用されるCPUの数
及びCPU時間、及びその他の性能情報を決定すること
によって動作する。プログラマはそれから、プロセスの
構造及びオペレーションを修正するためにプロファイラ
ーの結果を使用する。
【0005】例えば、プログラマは、CPU時間を、実
世界の、即ち、壁掛け時計の、プロセス実行に使用され
る時間と比較する。理想的には、平行処理比、壁掛け時
計時間に対するCPU時間の比は、プロセスに利用可能
のCPUの数に等しい。もしこの比が、CPUの数より
も小さいならば、そのときシステムオーバヘッド又は性
能障害によりプロセス及びそのスレッドは遅くなってい
る。
【0006】しかしながら、ある従来技術のプロファイ
ラーは、スレッド毎をベースにしてのプロセスの働きを
洞察する力を、プログラマに与えはしない。例えば、あ
るプロファイラに付随してCPU利用を決定する非常に
単純な方法は、一つのコード領域の前及び後の時間をサ
ンプルするために、ボードタイマー上のCPUを使用す
ることである。この方法は、このプロセスがそのコード
領域上で費やした時間を決定する。しかしながら、この
方法は、異なるCPU上で対称的に実行するスレッドに
よって果たされる仕事量を評価することはできない。即
ち、このプロファイラは、タスク上で費やされた壁掛け
時計時間を報告するが、他のプロセッサ上で実行するス
レッドによって使用されるCPU時間を報告しない。そ
れ故、この単純な方法によって返される情報によって
は、プログラマは、一つのプロセスのどの部分が、真に
コンピュータシステムの時間の大部分を占めているのか
を決定することはできない。
【0007】ある現代のプロファイラは、スレッド毎を
ベースにしてプロセス性能を測定することを試みる。し
かしながら、このようなプロファイラは、別の問題を有
している。あるプロファイラは、同時スレッドそれぞれ
のために性能情報を保持する大量のデータスペースを必
要とする。他のものは、正確な結果を生じるのを保証す
るために極端な同期化を必要とする。さらに他のプロフ
ァイラは、多数のプロセッサを持つシステムに単純には
釣り合わない。これらのタイプのプロファイラは、後に
より詳細に説明する。
【0008】
【発明が解決しようとする課題】それ故、プロファイラ
技術分野には、プログラマに対して、CPU時間の完全
な分析、及びSMPコンピュータ上で実行するマルチス
レッド化プロセスのその他の性能メトリックを提供する
必要性がある。特に、プロファイルプロセスの単一動作
の間に、プロセス及びスレッドレベルで性能メトリック
を正確に決定するプロファイラに対する必要性がある。
【0009】
【課題を解決するための手段】前記及び他の必要性は、
SMPコンピュータシステム上でプロセスを実行する全
てのスレッドに対して性能メトリックを正確に測定する
プロファイラによってかなえられる。このプロファイラ
は、あるコード領域の前及び後に性能メトリックをスレ
ッドにサンプルさせるために動的計測を行う。さらに、
このプロファイラは、親スレッドをその子スレッドと共
に記録するために並列サポートレイヤへの延長部分を使
用する。各スレッドは、測定した性能メトリック、即ち
デルタを、その領域及びその親領域に相当するメモリの
一つ又は複数のセル内に記憶する。このプロセスが完了
するとき、プロファイラはメモリ記憶エリアを通してス
キャンし、特別のコードレベルのそれぞれに対してデル
タを合計する。それから、この結果は、スレッド又はプ
ロセスレベルで分析することができる。このようにし
て、プロファイラは、コンピュータシステム上で実行す
るいかなるプロセスによっても動作するよう適合させる
ことができる。
【0010】本発明の技術的利点は、スレッド毎のレベ
ルでコード領域内の全ての性能メトリックを評価する対
称マルチプロセッサコンピュータシステム上のコードプ
ロファイル方法にある。
【0011】本発明の別の技術的利点は、0〜"n"スレ
ッドの平行処理比を生じるコードプロファイル方法にあ
る。
【0012】本発明のさらに別の技術的利点は、プロセ
スの単一動作後プロセス全体の性能メトリックの合計を
提供することにある。
【0013】本発明のさらに別の技術的利点は、スレッ
ド間の同期化及びデータ交換を最小にするコードプロフ
ァイル方法にある。
【0014】本発明のさらに別の技術的利点は、スレッ
ドベースで維持され、或いはアクセスされるが、スレッ
ド間で同期化を必要としない読み出し専用タイマー/カ
ウンタと共に動作するコードプロファイル方法にある。
【0015】本発明のさらに別の技術的利点は、大きな
数のスレッド及びプロセッサとよく釣り合うコードプロ
ファイル方法にある。
【0016】前述のことは、以下の本発明の詳細な説明
をより良く理解することができるように、本発明の特徴
及び技術的利点をむしろ広く概観した。本発明の特許請
求の範囲の主題を構成する本発明の別の特徴及び利点に
ついては、後述する。開示された概念及び特別の形態
は、本発明の同じ目的を達成するために変更し即ち他の
構成を設計する基礎として容易に利用することができる
ということが当業者には認められよう。このような等価
な構成は、特許請求の範囲に記載の本発明の精神及び範
囲から離れないということがまた、当業者には認識され
るであろう。
【0017】
【発明の実施の形態】本発明及びその利点のより完全な
理解のために、添付図面と関連した次の説明を今参照す
る。
【0018】本発明は、コンピュータシステム上で実行
するプロセスをプロファイルする。”プロセス”は、特
別のインストラクションシーケンスを実行するプログラ
ム又はプログラムの一部である。このように、プロセス
はしばしば、アプリケーション又は他の共通タイプのプ
ログラムと等価である。
【0019】一つのプロセスは、複数のスレッドから構
成することができる。スレッドは、一つのプロセスを協
同的に目標まで実行するアクティビティである。言い換
えると、スレッドは、プロセスの問題解決のために、他
のスレッドと共同して動作する一つの実行要素である。
【0020】このアプリケーションはしばしば、コー
ド”領域”を参照する。一つの領域は、単にルーチン或
いはループのようなコードの一つのセクションである。
コード領域は、他の領域内にネストにすることができ
る。この場合、この取り囲み領域が”親”であり、ネス
トにされた領域が”子”である。
【0021】一つのスレッドは、コード領域を対称的
に、或いは非対称的に実行することができる。対称実行
は、複数スレッドが共有又は非共有データのいずれかに
基づいて同じコード領域を同時に実行するとき生じる。
対称スレッドは、親スレッドが、あるコード領域に達す
るときいくつかの子スレッドに分割されるときに形成さ
れる。コード領域にある間のこの実行は、”対称パラレ
リズム”と呼ばれる。コード領域が実行された後、スレ
ッドは、一緒にもとに結合される。これに対して、非対
称実行は、共有又は非共有データに基づき異なるコード
領域を独立して実行するスレッドを特徴としている。
【0022】さらに、スレッドは、”直接”又は”間
接”パラレリズムで並列領域を実行することができる。
直接パラレリズムは、並列領域を実行する子スレッド
が、事実上親と同じスレッドであるときに生じる。間接
パラレリズムは、並列領域を実行する子スレッドが親の
ために動作しているときに生じる。
【0023】さらに、この論議は時には、スレッドを、
ある”レベル”、例えば、親レベルで動作するものとし
て参照する。スレッドのレベルは、ルーチン又はループ
のようなスレッドによって実行されている制御フロー構
成がいかに深く他の構成内にネストにされているのかに
相当する。例えば、ルーチンを実行する親スレッドは、
ルーチン内のループを実行するために子スレッドを作成
することができる。この例において、子スレッドは、ル
ープ及びルーチンレベルの両方で動作する一方、親スレ
ッドはルーチンレベルで動作する。
【0024】本発明のプロファイラによって、プログラ
マは、スレッドが種々のレベルのプロセスを実行すると
きプロセス及びそのスレッドの性能メトリックを可視化
することが可能になる。性能メトリックは、使用される
CPU及び壁掛け時計時間、データ及びインストラクシ
ョンキャッシュミス、及びインストラクションカウント
のような情報を包含している。概観した原理を繰り返し
適用することにより、本発明のプロファイラは、これら
のメトリックのそれぞれを各レベルのプロセスでプログ
ラマに利用可能にする。
【0025】しかしながら、この論議の残りは、主とし
てCPU及び壁掛け時計時間に焦点を合わせる。壁掛け
時計時間は、実世界時間である。これに対して、CPU
時間は、プロセス又はスレッドが実行するのに必要とす
る時間である。例えば、4つのスレッドを有するプロセ
スは、壁掛け時計時間の10秒で実行することができる
が、しかし事実上CPU時間の40秒(スレッド毎に1
0秒)を必要とする。壁掛け時計時間に対するCPU時
間の比は、”並行処理比”と呼ばれる。並行処理比は、
0〜"n"スレッドの値を有することができる。本発明を
使用することによって、プログラマ又は他の観測者は、
プロセスのいかなるレベルで実行するスレッドであって
もそれぞれ又はそれらの全てによって、どれだけのCP
U時間が使用されたかを正確に決定することができる。
本発明の動作を説明する最良の方法は、それを従来技術
と対比することである。
【0026】図2は従来技術のコードプロファイラを示
しており、かつこれは、異なるスレッドを評価すること
によって先に従来技術の説明において述べた単純な構成
を改良することを試みるものである。図2は、コード領
域210、4つのスレッド211−214、及びデータ
セル222を有するメモリ記憶エリア220を包含して
いる。4つのスレッド211ー214のみが図2及び他
の図に示されているけれども、一つのプロセスは、いか
なる数のスレッドも有することができるということを認
めることが重要である。
【0027】総合して、4つのスレッド211−214
は領域210を対称的に実行する。各スレッドは、相当
するCPU時間デルタ224−227を有している。各
デルタは、コード領域210上で動作する相当するスレ
ッド211−214が費やしたCPUクロック時間を表
している。スレッドは典型的には、コード領域前及び後
のCPUタイマーをサンプルすることによってそのデル
タを決定する。このデルタは、サンプル間の時間の差で
ある。
【0028】データセル222は簡単には、デルタ値を
保持することのできるメモリ記憶エリア220内のメモ
リアドレスである。各スレッド211−214はセル2
22内の値にアクセスすることができる。しかしなが
ら、一つのスレッドは、該スレッドがそこに包含された
値を変更可能にする前にセル222に排他的アクセスが
得られなければならない。排他的アクセスを得るため
に、一つのスレッドは、セル222をロックしなければ
ならない。このロックプロセスは、同期化と呼ばれる。
一つのスレッドがセル222の更新を完了するとき、こ
のスレッドは、このロックを解放する。
【0029】動作において、図2のプロファイラは、各
スレッド211−214がコード領域を実行する前及び
後にCPUクロックをサンプルする各スレッド211ー
214を示している。それから、各スレッドは、サンプ
ルの時間差、即ちデルタを、セル222内の値に加え
る。全てのスレッドが完了するとき、セル222は領域
210を実行するために必要とされる全CPU使用時間
を包含することになる。
【0030】例えば、図2の各スレッドが10CPU秒
のデルタを有していると仮定する。完了したとき、セル
222内に包含される全CPU時間は、40秒である。
このように、セル222は、測定コード領域を実行する
ときに全てのスレッドによって使用される全CPU時間
を包含している。
【0031】図2の方法の利点は、全てのスレッドが同
じセル222を使用するので、スレッドタイミングを記
憶するために要求されるメモリスペースが非常に小さい
ということである。しかしながら、相当する欠点は、セ
ル222は共有結合メモリ内に無ければならないという
ことである。
【0032】図2のプロファイラの大きな欠点は、それ
が良く釣り合っていないということである。この欠点
は、スレッド間で要求される極端な同期化によるもので
ある。特に、各スレッドは、セル222への排他的アク
セスを得る前にかなりの時間待つ必要があるかもしれ
ず、それによって、プロセス及びプロファイラを遅くす
る。もしこのプロファイラが、多数のCPU又はスレッ
ドを持つシステム上で実行されるならば、この同期化遅
延は、この方法によるプロファイルの使用を不可能にす
る。この方法を使用するプロファイラに対して、マルチ
スレッド化プロセスに対する壁掛け時計時間の非線形的
増加が予想される。
【0033】図3は図2のプロファイラのスケーリング
の困難性を解決する他の先行技術を開示する。図3は4
つのスレッド310ー313と4つの対応メモリ記憶エ
リア330ー333を示す。各スレッド310ー313
はデルタ326ー329を持ち、そして各メモリ記憶エ
リアは蓄積セル340ー343をもつ。
【0034】図3のプロファイラにおいて、各スレッド
は異なる蓄積セルにおいてそのデルタを蓄積する。プロ
グラマー(もしくは他の観測者)は、コード領域により
使用できる全CPU時間を得るためにセル340−34
3を合計するためにプロファイラを使用でき、あるいは
スレッドのデルタ(CPU時間)を個々に考慮できる。
例えば、各デルタ326−329が10であれば、その
時各蓄積セル340−343は10であり、そして領域
を実行するのに使用する全CPU時間は40秒である。
【0035】図3のプロファイラは、(図2のプロファ
イラが必要とするような)共有結合メモリを必要とせ
ず、そして図2に関して上記で議論したような同期およ
び測定可能性の問題を受けない。このプロファイラは、
しかし、デルタ蓄積のためにスレッド当たり1メモリ蓄
積を必要とする。
【0036】加えるに、図3のプロファイラは、並列サ
ブ領域を含む領域にまたがる時間を把握しない。図4
は、この欠点を示す。加えるに、この詳細が本発明を理
解するのにも必要なので、図4は先の図より詳細に示
す。
【0037】図4は、スポーン(卵)ポイント416に
おいて4つの子スレッドを生む親スレッドである。子ス
レッド412は直接パラレリズム(paralelleism)で実行
する親スレッド410であることに注目。接続ポイント
418において、子スレッド412−415は実行を終
了し、そして親スレッド410に戻って加わえられる。
各スレッド410、412−415は関連するデルタ4
19−423を持つ。デルタ419は親スレッド410
に対応し、デルタ420は子スレッド412に対応する
ことに注目。
【0038】各スレッド410、412−415は、関
連するメモリ記憶エリア425−426を持つ。記憶エ
リア425のような各メモリ記憶エリアは、プロセスに
おける各測定領域のための少なくとも2つのメモリセル
を持つ。図4において、ただ4つのセルのみが各スレッ
ド記憶エリアに示されている。例えば、セル430と4
31のような2つのセルは親(コーラー)領域に関係
し、一方、セル432、433の2つは子領域(コーリ
ー)に関係する。各2つのセルにおいて、一つのセル4
30、432は“子連れ”スレッドのデルタを持つ、即
ち、任意の測定および実行領域のデルタを含む。他のセ
ル431、433は“子なし”のスレッドのデルタを持
つ、即ち、子領域を実行するスレッドのデルタを含まな
い。
【0039】親スレッドは一連のCPU実行時間のうち
5秒を必要とすると仮定する。また、並列領域を実行す
るCPU時間のうち10秒を必要とすると仮定する。ポ
イント435において、親スレッド410はCPUタイ
マからの開始サンプルをとる。スポーンポイント416
において、親スレッド410は子スレッド412−41
5を生む。ポイント436において、子スレッド412
−415は各々それぞれのCPUタイマをサンプルす
る。ポイント437において、子スレッド412−41
5は並列領域を終え、そのCPUタイマをサンプルし、
そして各々のデルタ420−423を計算する。
【0040】それから、各子スレッド412−415は
適切なセルにおいてそのデルタを蓄積する。このように
して、スレッド412は10秒のデルタ420をセル4
32および433に蓄積する(これらのセルは、スレッ
ド412がなんらかの子領域を実行しないので同じ値で
ある)。他の子スレッド413−415は自身に対等す
るセルにおけるそのデルタ421−423を蓄積する
が、その親領域に対応するセルにおいてではない、とい
うのは、子スレッド413−415はどの親スレッドが
それを生んだかを知らない。例えば、スレッド413は
そのデルタをセル438と439に蓄積する。しかし、
スレッド413はどのスレッドがそれを生んだかを知る
方法をもたず、そして、それゆえに、親領域に対応する
セル440、441のデルタを蓄積できない。
【0041】最終的に、ポイント445において、親ス
レッド410はその実行を終了し、そして再びCPUタ
イマをサンプルする。それから、スレッド410は、1
5秒のデルタ419をセル430に蓄積する。親スレッ
ドは、また、5秒の子なしのCPU時間をセル431に
蓄積する。
【0042】プロセスが実行を終了した時、図4のプロ
ファイラは各スレッドとコード領域に対するデルタ値を
合計する。この例において、プロファイラは並列領域を
実行するための子スレッドにより使用されるCPU時間
の正しい値40秒を測定する。しかし、プロファイラ
は、並列スレッドを含むコード領域を実行するための親
領域410により使用されるCPU時間の45秒の代わ
りに、誤って15秒を測定するであろう。親領域のため
のCPU時間は、30秒誤っている。何故なら子領域
は、そのCPU時間に属すべき親領域を決定することが
できないからである。
【0043】それ故に、図4のプロファイラは親スレッ
ド410により使用されるCPU時間を報告するのみで
ある。従って、スレッド410のレベルにおける並列処
理比(CPU時間/壁掛け時計時間)は、1より大きく
はない。これは、システムの正しい並列動作を観測する
ためにプロファイルされたデータを使用する時の大きな
欠点である。
【0044】本発明のプロファイラは、図1に示すよう
に、ある実行ポイントに到達した時に、スレッドが記憶
された機能を呼び戻すようにする技術を図4のプロファ
イラに結合する。この方法で、子領域は、その親領域を
決定することができる。以下の議論において、並列サポ
ートレイヤー(PSL)が参照される。PSLは、コン
ピュータシステムにおける並列スレッドを位置付けする
ための手段である。PSLのオペレーションは、図5−
6の議論で十分に説明される。
【0045】PSLを用いて動作する時および対称並列
スレッドを使用する時に、プロセスにより4つの異なる
実行到達ポイント、すなわち、スレッドが存在する。第
1ポイントは“スポーン以前”であり、それはプロセス
を要求する直前、即ち、スレッドが特定のコード領域を
実行するのを助けるための付加的スレッドを求めるもの
である。次のポイントは、“スポーン後”であり、それ
は、スレッドが位置付けされた直後であるがスレッドが
実行を開始される前に生じるものである。他のポイント
は、“接続(join) 前”であり、それはスレッドがその
実行を完了する直前に生じるものである。最終的に、ス
レッドは、“接続後”に到達すれば付加的スレッドがそ
の実行を完了し、そしてプロセスを要求するかもしくは
スレッドが残る時である。
【0046】非並列領域は、2つの異なるポイントのみ
を持つ:“作成(creative) ”および“存在( exist)
”である。作成は、スレッドが作成された直後に発生
する。存在は、作成されたスレッドがその実行を終了し
た時に発生する。
【0047】図1は、本発明のプログラムの動作を示
す。図1は、スポーンポイント116において4つの子
スレッド112−115を生む親スレッド110を示
す。子スレッド112は直接パラレリズム(paralellei
sm) を実行する親スレッド110である。接続ポイント
118において、子スレッド112−115は実行を終
了し、そして親スレッド110に戻って結合される。各
スレッド110、112−115は関連するデルタ11
9−123を持つ。デルタ119は親スレッド110に
対応し、一方、デルタ120は子スレッド120に対応
する。
【0048】各スレッド110、112−115は関連
するメモリ記憶エリア125−128を持つ。記憶エリ
ア125と126のようなメモリ記憶エリアは、プロセ
スにおいて各測定領域のための4つのセルを持つが、図
1においては8つのセルのみが示されている。例えば、
メモリ記憶領域126は、親領域と関連する4つのセル
140−143と子領域と関連する4つのセル144−
147を含む。セル140と141は、親スレッド11
0に代わってそれぞれ直接および間接的パラレリズムを
実行するスレッド113により消費されるCPU時間を
蓄積する。セル142と143は、親スレッド110に
代わって実行するスレッド113により費やされるそれ
ぞれの子連れおよび子なしCPU時間を蓄積する(図4
に関連して述べたように)。このように、セル144−
147は、セル144−147がスレッド113と関連
することを除いて、セル140−143と同じ情報を保
持する。
【0049】親スレッド110が以前のスポーンポイン
ト150に到達する時、PSLスレッド110は子スレ
ッド112−115を位置付ける。親スレッド110
は、また、子スレッドが、どの親がそれを生み出したか
を知るようにPSL618によりそれ自身を記録する。
次に、スポーンポイント151において、子スレッド1
12−115の各々はPSLトリガー呼び戻しに基づい
てそのCPUタイマをサンプルする(これは開始値であ
る)。
【0050】一度、接続ポイント152以前に、並列子
スレッド112−115が到達すると、それらは、再
び、それらのCPUタイマをサンプルする(これは終了
値である)そして、デルタを計算する。それから、以下
に説明するように、各子スレッド112−115は、固
有メモリセルにおけるそのデルタ120−123を蓄積
する。
【0051】親スレッド110がシリアル領域を実行す
るCPU時間5秒を必要とし、そして各子スレッド11
2−115が並列領域を実行する時間10秒を必要する
と仮定する。その時、スレッド112はセル130に1
0秒のデルタ120を蓄積する(なぜなら、それは、直
接パラレリズムにおいての実行であるから)。図4に関
して説明したように、スレッド112は、また、セル1
36と137にデルタ120を蓄積する。
【0052】このように、それは間接的パラレリズムで
の実行であるのて、スレッド113は、そのセル141
にそのデルタ121を蓄積する。スレッド113は、図
4に関して説明するように、セル146とセル147に
そのデルタを蓄積する。
【0053】親スレッド110がその実行を完了した
時、それは、再び、CPUタイマをサンプルし、そして
そのデルタ419を計算する。それから、図4に関して
説明したように親スレッド110は、その子持ちデルタ
(15秒)をセル132に蓄積し、そして子なしデルタ
(5秒)をセル133に蓄積する。
【0054】いったん、実行プロセスが完了すると、プ
ロファイラは、メモリセルをスキャンし、そして様々な
コード領域に対するタイミング値を回復する。各領域に
対して、プロファイラはスレッドの内在的タイミング、
子デルタに間接的パラレリズムデルタの合計を加えた合
計、及びスレッドの排他的タイミング、スレッドの内在
的時間からあらゆるスレッドの子の内在時間を引いた時
間、を決定できる。例えば、スレッド110に対する内
在時間は45秒(15+(3×10))である。排他タ
イミングは5秒である(45−40)。
【0055】プロファイラの望ましい実施例は、コンベ
ックスパーフォーマンスアナライザ、コンベックス部品
番号710−018415−009であり、テキサス7
5080、リチャードソン、ウォータビューパークウェ
イ3000から入手することができる。
【0056】本発明のプロファイラは、このましくはS
MPコンピュータシステムで実行でき、しかし、マルチ
プルインストラクションマルチデータ(“MIMD”)
で実行するのに適当であり、ある時は、“大量並列処理
(massively parellel) ”コンピュータシステムとして
参照される。図5は、本発明のプロファイラを実行する
ための望ましいハードウェエーク実施例の機能ブロック
ダイアグラムである。図5は、対称マルチプロセッサ
(“SMP”)コンピュータシステム510を示す。コ
ンピュータシステム510のより完全な説明として、
“ならい機構(エグザンプラーアーキテクチャー)”コ
ンベックス部品番号081−123430−000が参
照され、ここにおいて具体化され、それは、テキサス7
5080、リチャードソン、ウォータビューパークウェ
イ3000、コンベックスコンピュータ株式会社から入
手することができる。処理システム510は、複数のハ
イパーノード512a−pを含む。図示の実施例におい
て、処理システム510は、16個のハイパーノード5
12を含むが、他の実施例において、ハイーパーノード
512の数は処理システム510のサイズおよびアプリ
ケーションに依存して幅広く変化する。
【0057】一般的に、各ハイパーノード512は、内
部接続回路518により一緒に結合される複数のサブ処
理ブロック514とI/Oインタフェース516を含
む。図示された実施例において、サブ処理ブロック51
4の数は処理システム510のサイズおよびアプリケー
ションに依存するが、各ハイパーノード512は4つの
サブ処理ブロック514a−dを含む。図示の実施例に
おいて、各サブ処理ブロック514は、一般的に一組の
中央処理装置520a−b、メモリ522、およびスケ
ール可能コヒーラントインタフェース524を含む。ハ
イパーノード514は、対応するスケール可能コヒーラ
ントインタフェース524a−dを介して一次元インタ
フェースリング526a−dを使用して一緒に結合でき
る。
【0058】図6は、図5のSMPシステムにおける操
作部品を記述するブロックダイアグラムである。2つの
プロセッサ610a−b、一個のメモリ612、マルチ
プルスレッド616a−bを持つ処理614、およびオ
ペレーティングシステムおよび並列サポートレイヤー6
18が示されている。
【0059】プロセッサ610は、HPPA−RISC
7200のような上記のSMPシステムにおいて動作
するのに適当なCPUとしてよく知られている。各プロ
ファイラは、スレッド616a−bによりアクセスされ
ることのできるローカル読み出し専用クロック(タイマ
としても参照される)620a−bを持つ。加えるに、
各プロセッサは、インストラクションとデータキャッシ
ュミスおよびインストラクションカウントを含む実行測
定をする付加的なカウンタおよびタイマを持つ。これら
のタイマおよびカウンタはプロセスもしくはスレッドに
より、クロック620a−bと同じ方法でアクセスでき
る。
【0060】メモリ612は、プロセッサにより使用さ
れる情報を保持することのできるアドレス可能メモリの
形態である。高速度ランダムアクセスメモリ(“RA
M”)が望ましい。しかし、メモリ612は直接的アク
セス固定ディスクドライブもしくは仮想メモリシステム
の部品のようなもので良い。メモリは612は物理メモ
リの分割バンクもしくはシングルメモリ内での論理分割
のいずれからか構成される多重記憶エリアに分割でき
る。メモリ612は、上記で議論したメモリ記憶エリア
およびメモリセルに等価である複数のアドレス可能な蓄
積ロケーションを持つ。
【0061】オペレーティングシステム618はSMP
システム上で実行するのに採用される様々なオペレーテ
ィングシステムで良い。PSL618は、マルチプル実
行スレッドをもつためのプロセス614を可能とするサ
ポートを提供する。PSLは、“Pスレッド(Pthrea
d)”のような良く知られているPSLタイプであり、そ
してその正確な動作は、ここでは詳細には議論される必
要はない。PSL618は、好ましくはオペレーティン
グシステムの部品としてソフトウァアで供給できる。し
かし、PSL618はオペレーティングシステム上の分
離レヤーとしても供給できるものである。あるいは、P
SL618はハードウェアに属するものであって良い。
【0062】プロセス614もしくはスレッド616が
ある領域を実行するために付加的なスレッドを必要とす
る時、それはPSL618からスレッドを要求する。P
SL618は、それから良く知られたようにスレッドを
設定して位置付けする。さらにPSL618は拡張でき
る。すなわち、PSL618がスレッドを割付けそして
設定する方法を修正するために拡張がPSL618に付
加される。
【0063】マルチスレッドプロセス614は、“手段
(instrumentation)”と呼ばれる技術を使用するコンパ
イラによりコンパイルされ、それは、本発明のプロファ
イラの制御の元にデータをフックして動的に選択および
ファイルされるコンパイルされたプロセスにおけるスロ
ットを本質的に残す。そのようなコンパイラは、コンベ
ックスコーポレーション、テキサス75080、リチャ
ードソン、ウォータビューパークウェイ3000、コン
ベックスコンピュータ株式会社から入手できるCおよび
フォートランコンパイラを含む。これらのコンパイラ
は、開始および終了においてプログラマに興味深いある
コード構成のスロットを残す。
【0064】図1の本発明のプロファイラは、領域に入
った時にタイマ/カウンタをサンプルし、そして領域か
ら抜ける時にメモリセルを占有のデルタを蓄積するルー
チンへのプログラムのスロットを再誘導する動的な手段
を使用する。本発明は、また、ある実行ポイントに到達
する時記憶された機能を呼び戻すスレッドを発生させる
PSL618に拡張することを含む。このように、発明
のプロファイラは、図4のプロファイラを子領域が親領
域を決定することを可能にするPSL拡張と結合する。
【0065】
【発明の効果】本発明のプロファイラは、そのデルタを
計算して蓄積するためのスレッドを指示するための動的
手段を使用する。さらに、本発明のプロファイラは、P
SLをもつ親スレッド110を記憶するためにPSL6
18への拡張を使用する。この方法で、子スレッド11
2−115はその親スレッド110を識別でき、そして
メモリセルにおけるデルタ値を蓄積できる。
【0066】上記で議論されたプロファイラオペレーシ
ョンは、全体として正確にプロセスを分析するためのプ
ロセスにおいてあらゆる親−子に繰り返して適用可能で
あることが重要である。例えば、上で議論された親スレ
ッド110は実際に他の親スレッドから生まれた多くの
子スレッドの一つであり得る。加えるに、上記で議論さ
れたプロファイラは、対称的および非対称的スレッドで
同等に動作する。各スレッドはそれが実行される領域お
よひその呼もしくは親、領域に対応するセルにそのデル
タを蓄積するので、プロファイラは、プロセスで使用さ
れるあらゆるCPUに対して当てはまる。
【0067】本発明のプロファイラにより使用されるモ
デルは少なくもしくは多くのプロセッサをもつシステム
を非常によく測定できることに注目することが重要であ
る。本発明および利点が、詳細に議論されたが、様々な
変更、交代および変更が付属の請求の範囲により定義さ
れる精神と範囲から逸脱することなくなされることがこ
こにおいて理解されるべきである。
【図面の簡単な説明】
【図1】本発明のプロファイラの好ましい形態を例示し
ている。
【図2】従来技術のプロファイラを例示している。
【図3】従来技術のプロファイラを例示している。
【図4】図3のプロファイラに固有の問題を例示してい
る。
【図5】対称マルチプロセッサコンピュータシステムの
ブロック図を例示している。
【図6】図5のコンピュータの動作要素を示すブロック
図を例示している。
【符号の説明】 110 親スレッド 112−115 子スレッド 116 スポーンポイント 118 接続ポイント 119−123 デルタ 125−128 メモリ記憶エリア 130−147 セル

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】各スレッドに対してコンピュータシステム
    内にメモリ記憶エリアを割り当て、各メモリ記憶エリア
    は複数のメモリセルを有し、そして各メモリセルは複数
    のスレッドの特別のスレッドと関連しており、 親スレッドを複数の子スレッドと共に記録し、かつ該親
    及び複数の子スレッドは複数のスレッドから選択され、 各子スレッドによって、プロセスの特別のコード領域の
    ためのデルタを計算し、そして、 各子スレッドによって、子スレッドと関連した第一のメ
    モリセル内にそして記録された親スレッドと関連した第
    二のメモリセル内にこのデルタを記憶する、 各ステップから成る、 コンピュータシステム上で実行する複数のスレッドを有
    するプロセスプロファイル方法。
  2. 【請求項2】前記記憶するステップはさらに、 各子スレッドによって、子スレッドが直接パラレリズム
    でコード領域を実行したかどうかに相当する第三のメモ
    リセル内にデルタを記憶するステップをさらに備える請
    求項1に記載の方法。
  3. 【請求項3】前記記憶ステップはさらに、 各子ステップによって、第四のメモリセル内にデルタを
    記憶するステップを備え、かつこれは、このデルタが、
    子スレッドによって生じたスレッドのデルタを包含する
    かどうかに相当するものである請求項1に記載の方法。
  4. 【請求項4】前記記録するステップはさらに、 コンピュータシステムの並列サポートレイヤと共に親ス
    レッドを記録し、かつ、 複数の子スレッドを並列サポートレイヤから作成する各
    ステップを備える請求項1に記載の方法。
  5. 【請求項5】前記計算するステップはさらに、 各子スレッドによって、第一の値を決定するためにコー
    ド領域の初めに性能メトリックをサンプルし、 各子スレッドによって、第二の値を決定するためにコー
    ド領域の終わりに性能メトリックをサンプルし、 各子スレッドによって、第一及び第二の値からデルタを
    計算する、各ステップを備える請求項1に記載の方法。
  6. 【請求項6】複数のスレッドのそれぞれに対してメモリ
    内に、それぞれが複数のメモリセルを有し、かつそれぞ
    れが複数のスレッドの特別のスレッドと関連している複
    数のメモリ記憶エリアを割り当てるための手段と、 親スレッドのために複数の子スレッドを生じさせかつ親
    スレッドを子スレッドと共に記録するためのものであっ
    て、該親及び子スレッドは複数のスレッドのサブセット
    でありかつ各子スレッドは異なるCPUと関連している
    並列サポートレイヤと、 各子スレッドのために性能メトリックを決定するために
    各子スレッドと関連したCPUをサンプルするためのサ
    ンプリング手段と、 子スレッドと関連した第一のメモリセル内及び記録した
    親スレッドと関連した第二のメモリセル内に子スレッド
    に相当する記憶エリアにおいて各子スレッドのために性
    能メトリックを記憶するための記憶手段と、から成るメ
    モリ及び複数のCPUを有するコンピュータシステム上
    で複数のスレッドを有するプロセスの実行をプロファイ
    ルするプロファイラ。
  7. 【請求項7】前記性能メトリックが、CPU時間、キャ
    ッシュミス、キャッシュヒット又はインストラクション
    カウントから成るリストから選択される請求項6に記載
    のプロファイラ。
  8. 【請求項8】前記記憶手段はさらに、 各子スレッドのために、子スレッドが直接パラレリズム
    でコード領域を実行したかどうかに相当する第三のメモ
    リセル内に性能を記憶するための手段を備える請求項6
    に記載のプロファイラ。
  9. 【請求項9】前記記憶手段はさらに、 各子スレッドのために、デルタを第四のメモリセル内に
    記憶する手段を備え、かつこれは、デルタが子スレッド
    によって生じたスレッドのデルタを包含するかどうかに
    相当するものである請求項6に記載のプロファイラ。
  10. 【請求項10】各スレッドのためにメモリ内に一つのメ
    モリ記憶エリアを割り当て、各メモリ記憶エリアは複数
    のメモリセルを有し、かつ各メモリセルは複数のスレッ
    ドの特別のスレッドと関連している割り当て手段と、 親スレッドを複数の子スレッドと共に記録し、該親スレ
    ッド及び複数の子スレッドは複数のスレッドから選択さ
    れたものである記録手段と、 各子スレッドのために、デルタを、プロセスの特別のコ
    ード領域のために計算するための計算手段と、 各子スレッドのために、子スレッドと関連した第一のメ
    モリセル内及び記録した親スレッドと関連した第二のメ
    モリセル内にデルタを記憶するための記憶手段と、から
    成り、前記記録手段は、 子スレッドを割り当てるための並列サポートレイヤと、 親スレッドを割り当てた子スレッドと共に記録するため
    の並列サポートレイヤへの延長部分と、を含み、前記計
    算手段はさらに、 第一の値を決定するためにコード領域の初めに各子スレ
    ッドのために性能メトリックをサンプルするための第一
    のサンプリング手段と、 第二の値を決定するためにコード領域の終わりに各子ス
    レッドのために性能メトリックをサンプルするための第
    二のサンプリング手段と、 子スレッドのそれぞれのために、第一及び第二の値から
    デルタを計算するための手段と、から成る、メモリを有
    するコンピュータシステム上で実行する複数のスレッド
    を有するプロセスをプロファイルするためのプロファイ
    ラ。
JP33275296A 1995-11-28 1996-11-28 対称マルチプロセッサアーキテクチャ上のコードプロファイルシステム及び方法 Expired - Fee Related JP3337926B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/563,334 US5838976A (en) 1995-11-28 1995-11-28 System and method for profiling code on symmetric multiprocessor architectures
US08/563334 1995-11-28

Publications (2)

Publication Number Publication Date
JPH09237203A true JPH09237203A (ja) 1997-09-09
JP3337926B2 JP3337926B2 (ja) 2002-10-28

Family

ID=24250090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33275296A Expired - Fee Related JP3337926B2 (ja) 1995-11-28 1996-11-28 対称マルチプロセッサアーキテクチャ上のコードプロファイルシステム及び方法

Country Status (4)

Country Link
US (2) US5838976A (ja)
EP (1) EP0777181B1 (ja)
JP (1) JP3337926B2 (ja)
DE (1) DE69614645T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524380A (ja) * 2003-04-23 2006-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 同時マルチスレッド(smt)プロセッサにおいてスレッドごとのプロセッサ・リソース使用率を決定するためのアカウンティング方法および論理
JP2016207076A (ja) * 2015-04-27 2016-12-08 富士通株式会社 並列計算機、スレッド再割当判定方法及びスレッド再割当判定プログラム

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US6631518B1 (en) * 1997-03-19 2003-10-07 International Business Machines Corporation Generating and utilizing organized profile information
WO1998043193A2 (en) * 1997-03-21 1998-10-01 University Of Maryland Spawn-join instruction set architecture for providing explicit multithreading
US5933643A (en) * 1997-04-17 1999-08-03 Hewlett Packard Company Profiler driven data prefetching optimization where code generation not performed for loops
DE19727036A1 (de) * 1997-06-25 1999-01-07 Ibm System und Verfahren zur Leistungsmessung von Anwendungen mittels Nachrichten
US6651243B1 (en) * 1997-12-12 2003-11-18 International Business Machines Corporation Method and system for periodic trace sampling for real-time generation of segments of call stack trees
US6539339B1 (en) * 1997-12-12 2003-03-25 International Business Machines Corporation Method and system for maintaining thread-relative metrics for trace data adjusted for thread switches
US6954922B2 (en) * 1998-04-29 2005-10-11 Sun Microsystems, Inc. Method apparatus and article of manufacture for time profiling multi-threaded programs
US6189141B1 (en) * 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
US6088044A (en) * 1998-05-29 2000-07-11 International Business Machines Corporation Method for parallelizing software graphics geometry pipeline rendering
US7310718B1 (en) 1998-11-25 2007-12-18 Sun Microsystems, Inc. Method for enabling comprehensive profiling of garbage-collected memory systems
US6952825B1 (en) * 1999-01-14 2005-10-04 Interuniversitaire Micro-Elektronica Centrum (Imec) Concurrent timed digital system design method and environment
US6519766B1 (en) * 1999-06-15 2003-02-11 Isogon Corporation Computer program profiler
US7346677B1 (en) 1999-07-02 2008-03-18 Cisco Technology, Inc. Method and apparatus for creating policies for policy-based management of quality of service treatments of network data traffic flows
US6788647B1 (en) 1999-11-19 2004-09-07 Cisco Technology, Inc. Automatically applying bi-directional quality of service treatment to network data flows
KR100361340B1 (ko) * 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6735758B1 (en) * 2000-07-06 2004-05-11 International Business Machines Corporation Method and system for SMP profiling using synchronized or nonsynchronized metric variables with support across multiple systems
US6904594B1 (en) * 2000-07-06 2005-06-07 International Business Machines Corporation Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
US6658654B1 (en) 2000-07-06 2003-12-02 International Business Machines Corporation Method and system for low-overhead measurement of per-thread performance information in a multithreaded environment
US6959332B1 (en) 2000-07-12 2005-10-25 Cisco Technology, Inc. Basic command representation of quality of service policies
US7099932B1 (en) 2000-08-16 2006-08-29 Cisco Technology, Inc. Method and apparatus for retrieving network quality of service policy information from a directory in a quality of service policy management system
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
US6822940B1 (en) 2000-09-29 2004-11-23 Cisco Technology, Inc. Method and apparatus for adapting enforcement of network quality of service policies based on feedback about network conditions
US7096260B1 (en) 2000-09-29 2006-08-22 Cisco Technology, Inc. Marking network data packets with differentiated services codepoints based on network load
US6988133B1 (en) * 2000-10-31 2006-01-17 Cisco Technology, Inc. Method and apparatus for communicating network quality of service policy information to a plurality of policy enforcement points
US7050396B1 (en) 2000-11-30 2006-05-23 Cisco Technology, Inc. Method and apparatus for automatically establishing bi-directional differentiated services treatment of flows in a network
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US6996745B1 (en) 2001-09-27 2006-02-07 Sun Microsystems, Inc. Process for shutting down a CPU in a SMP configuration
US7477600B1 (en) 2002-02-12 2009-01-13 Cisco Technology, Inc. Method and apparatus for configuring network elements to support real time applications based on meta-templates
US7333432B1 (en) 2002-02-12 2008-02-19 Cisco Technology, Inc. Method and apparatus for configuring network elements to support real time applications
US7516209B2 (en) * 2003-06-27 2009-04-07 Microsoft Corporation Method and framework for tracking/logging completion of requests in a computer system
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US7500226B2 (en) * 2004-03-02 2009-03-03 Microsoft Corporation Efficient checking of state-dependent constraints
US20050251790A1 (en) * 2004-04-14 2005-11-10 Robert Hundt Systems and methods for instrumenting loops of an executable program
US20050251791A1 (en) * 2004-04-14 2005-11-10 Robert Hundt Systems and methods for branch profiling loops of an executable program
US7640317B2 (en) * 2004-06-10 2009-12-29 Cisco Technology, Inc. Configuration commit database approach and session locking approach in a two-stage network device configuration process
US7660882B2 (en) * 2004-06-10 2010-02-09 Cisco Technology, Inc. Deploying network element management system provisioning services
US7853676B1 (en) 2004-06-10 2010-12-14 Cisco Technology, Inc. Protocol for efficient exchange of XML documents with a network device
US8640114B2 (en) 2006-09-07 2014-01-28 Oracle America, Inc. Method and apparatus for specification and application of a user-specified filter in a data space profiler
US7913206B1 (en) * 2004-09-16 2011-03-22 Cadence Design Systems, Inc. Method and mechanism for performing partitioning of DRC operations
US7681196B2 (en) * 2004-11-18 2010-03-16 Oracle International Corporation Providing optimal number of threads to applications performing multi-tasking using threads
JP4276201B2 (ja) * 2005-03-31 2009-06-10 富士通株式会社 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
US7640539B2 (en) * 2005-04-12 2009-12-29 International Business Machines Corporation Instruction profiling using multiple metrics
US7657875B2 (en) * 2005-04-12 2010-02-02 International Business Machines Corporation System and method for collecting a plurality of metrics in a single profiling run of computer code
US7904852B1 (en) 2005-09-12 2011-03-08 Cadence Design Systems, Inc. Method and system for implementing parallel processing of electronic design automation tools
US8079031B2 (en) 2005-10-21 2011-12-13 Intel Corporation Method, apparatus, and a system for dynamically configuring a prefetcher based on a thread specific latency metric
JP2007199811A (ja) * 2006-01-24 2007-08-09 Hitachi Ltd プログラム制御方法、計算機およびプログラム制御プログラム
US8448096B1 (en) 2006-06-30 2013-05-21 Cadence Design Systems, Inc. Method and system for parallel processing of IC design layouts
US20080052360A1 (en) * 2006-08-22 2008-02-28 Microsoft Corporation Rules Profiler
US8813055B2 (en) * 2006-11-08 2014-08-19 Oracle America, Inc. Method and apparatus for associating user-specified data with events in a data space profiler
US8032875B2 (en) * 2006-11-28 2011-10-04 Oracle America, Inc. Method and apparatus for computing user-specified cost metrics in a data space profiler
US8307337B2 (en) * 2006-12-01 2012-11-06 Murex S.A.S. Parallelization and instrumentation in a producer graph oriented programming framework
US7865872B2 (en) 2006-12-01 2011-01-04 Murex S.A.S. Producer graph oriented programming framework with undo, redo, and abort execution support
US8332827B2 (en) 2006-12-01 2012-12-11 Murex S.A.S. Produce graph oriented programming framework with scenario support
US8191052B2 (en) 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US8762951B1 (en) 2007-03-21 2014-06-24 Oracle America, Inc. Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor
US8209701B1 (en) * 2007-09-27 2012-06-26 Emc Corporation Task management using multiple processing threads
US8356287B2 (en) * 2007-10-24 2013-01-15 International Business Machines Corporation Device, system and method of debugging computer programs
US8719801B2 (en) * 2008-06-25 2014-05-06 Microsoft Corporation Timing analysis of concurrent programs
US8340942B2 (en) * 2010-04-26 2012-12-25 International Business Machines Corporation Identifying opportunities to improve multiprocess system performance
JP5799797B2 (ja) * 2011-12-21 2015-10-28 富士通株式会社 算出方法、算出プログラム及びコンピュータ
KR20160071782A (ko) 2014-12-12 2016-06-22 삼성전자주식회사 멀티 스레드를 처리하는 방법 및 장치
US9977696B2 (en) * 2015-07-27 2018-05-22 Mediatek Inc. Methods and apparatus of adaptive memory preparation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168554A (en) * 1989-10-13 1992-12-01 International Business Machines Corporation Converting trace data from processors executing in parallel into graphical form
US5465258A (en) * 1989-11-13 1995-11-07 Integrity Systems, Inc. Binary image performance evaluation tool
JP3169597B2 (ja) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
JP2777496B2 (ja) * 1991-02-28 1998-07-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法
US5404529A (en) * 1993-07-19 1995-04-04 Taligent, Inc. Object-oriented interprocess communication system interface for a procedural operating system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524380A (ja) * 2003-04-23 2006-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 同時マルチスレッド(smt)プロセッサにおいてスレッドごとのプロセッサ・リソース使用率を決定するためのアカウンティング方法および論理
JP2016207076A (ja) * 2015-04-27 2016-12-08 富士通株式会社 並列計算機、スレッド再割当判定方法及びスレッド再割当判定プログラム
US9940173B2 (en) 2015-04-27 2018-04-10 Fujitsu Limited System, management device and method of controlling a plurality of computers

Also Published As

Publication number Publication date
JP3337926B2 (ja) 2002-10-28
DE69614645T2 (de) 2001-12-06
US6401240B1 (en) 2002-06-04
DE69614645D1 (de) 2001-09-27
EP0777181B1 (en) 2001-08-22
EP0777181A1 (en) 1997-06-04
US5838976A (en) 1998-11-17

Similar Documents

Publication Publication Date Title
JP3337926B2 (ja) 対称マルチプロセッサアーキテクチャ上のコードプロファイルシステム及び方法
Contreras et al. Characterizing and improving the performance of intel threading building blocks
Shelepov et al. HASS: A scheduler for heterogeneous multicore systems
Madala Performance of synchronous parallel algorithms with regular structures
Hamidzadeh et al. Dynamic scheduling techniques for heterogeneous computing systems
Chowdhury et al. Provably efficient scheduling of cache-oblivious wavefront algorithms
Malhotra et al. ParTejas: A parallel simulator for multicore processors
Simhadri et al. Experimental analysis of space-bounded schedulers
Mack et al. CEDR: A compiler-integrated, extensible DSSoC runtime
Fu et al. Efficient sparse LU factorization with partial pivoting on distributed memory architectures
Laso et al. CIMAR, NIMAR, and LMMA: Novel algorithms for thread and memory migrations in user space on NUMA systems using hardware counters
Dharishini et al. Precise shared instruction cache analysis to estimate WCET of multi-threaded programs
Alavani et al. Performance modeling of graphics processing unit application using static and dynamic analysis
Nanda et al. Resource contention in shared-memory multiprocessors: A parameterized performance degradation model
Badr et al. A high-level model for exploring multi-core architectures
Haugen et al. Parallel simulation of superscalar scheduling
Adve et al. A deterministic model for parallel program performance evaluation
John The elastic phase oriented programming model for elastic hpc applications
Kiran et al. A prediction module to optimize scheduling in a grid computing environment
Song Static and dynamic scheduling for effective use of multicore systems
Chen et al. An Adaptive Performance-oriented Scheduler for Static and Dynamic Heterogeneity
Karsin A performance model for GPU architectures: analysis and design of fundamental algorithms
Najafzadeh et al. Validated observation and reporting of microscopic performance using pentium ii counter facilities
Zhao et al. ISPA: Exploiting Intra-SM Parallelism in GPUs via Fine-Grained Resource Management
Ohmori et al. Concurrency Control of Bulk Access Transactions on Shared Nothing Parallel Database Machines.

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080809

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees