JP2011138494A - 仮想タスクを使用したマルチコアプロセッサの性能解析のための関係モデル化 - Google Patents

仮想タスクを使用したマルチコアプロセッサの性能解析のための関係モデル化 Download PDF

Info

Publication number
JP2011138494A
JP2011138494A JP2010265298A JP2010265298A JP2011138494A JP 2011138494 A JP2011138494 A JP 2011138494A JP 2010265298 A JP2010265298 A JP 2010265298A JP 2010265298 A JP2010265298 A JP 2010265298A JP 2011138494 A JP2011138494 A JP 2011138494A
Authority
JP
Japan
Prior art keywords
task
tasks
duration
relationship
implicitly generated
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
JP2010265298A
Other languages
English (en)
Other versions
JP5421228B2 (ja
Inventor
Christopher J Cormack
ジェー. コーマック、クリストファー
Nathaniel Duca
デュカ、ナサニエル
Mike Burrows
ブロウズ、マイク
Serhat A Tekin
エー. テキン、サーハット
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2011138494A publication Critical patent/JP2011138494A/ja
Application granted granted Critical
Publication of JP5421228B2 publication Critical patent/JP5421228B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • 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
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Processing Or Creating Images (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】グラフィックスアプリケーションにおいて、黙示的に生成されるレンダリングパスを可視化する。
【解決手段】マルチコアプロセッサにおいて、set render targetコマンドによって黙示的に生成されるタスクのIDを受信し、前記黙示的に生成されるタスクに続いて、実際にハードウェアでのワークをもたらすdraw呼出しタスクと関連付けることより、黙示的に生成されたタスク群全体の継続時間を得て、タスク間の依存関係とともに可視化する。
【選択図】図6

Description

本発明は、概してマルチコアプロセッサに関し、特に、マルチコアマシーンの性能解析に関する。
現代の汎用プロセッサ及びグラフィックスプロセッサは、1つ以上のコアを含む。これらのプロセッサは、数多くのスレッドを実行する。そのため、プロセッサの性能解析は、実行されるタスクの数及び様々なスレッドの数を考えると、非常に複雑な作業となる。
トレースは、通常、プロセッサで実行されるタスク間の時間的シーケンス(順序)を図式で表したものである。ソフトウェアベースのトレース解析により、ソフトウェア設計者は、タスク間のオペレーションシーケンスを理解することが可能となる。
しかしながら、マルチコアプロセッサの場合には、より高度な解析が必要になると考えられる。
本発明の一実施形態を概略的に描いた図である。 図1に示した実施形態によって使用されるシーケンスを描いたフローチャートである。 本発明の一実施形態に係るタスクベースの関係モデルの可視化である。 本発明の一実施形態において生成された親/子関係の可視化である。 本発明の別の実施形態に係る依存関係の可視化である。 本発明の一実施形態に係る仮想タスク可視化を描いた図である。 本発明の一実施形態に係るもう1つの仮想タスク可視化を描いた図である。 一実施形態についてのフローチャートである。
本発明の幾つかの実施形態において、時間的シーケンス以外の関係は、複数のタスクと呼ばれるコードの塊の間の関係で可視化することができる。タスクは、スケジューリング及び実行のためのワークの共通単位である。タスクは、始まりと終わりを有するコードの、どの部分に存在していてもよい。また、継続時間は、そのタスクを実行するサイクルの数として規定されてもよい。
トレースとは、複数のタスク間のリンク(関連付け)のことである。関係モデルは、複数のタスク間の関係を、親と子、兄弟、依存性、及び製造者と消費者といったような言葉で表現する。無論、その他の関係を使用してもよい。
第1タスクと、第1タスクによって生み出された第2タスクとの間には、親子関係が存在する。また、実行の際に、第1タスクが第2タスクに依存する場合には、第1タスクと第2タスクとの間に依存関係が存在する。また、製造者/消費者関係とは、第1タスクがデータを生成してバッファに置き、第2タスクがバッファからそのデータを消費することを意味する。
プリミティブ(基本要素)とは、ある関係の当事者である、あらゆる実体を指す。タスクも、プリミティブの一種である。別のプリミティブとしては、パラメータが挙げられる。パラメータは、バッファ、名前‐値の組、ストリング、若しくは通常のデータ型又はタスクと関係している構造であってもよい。その他のプリミティブも使用可能である。
図1に示すように、性能解析ツール10は、プロセッサであってもよい制御部12を含む。プロセッサは、マルチコアプロセッサであってもよい。ある実施形態では、グラフィックスプロセッサであってよいし、別の実施形態では、単一命令複数データ(SIMD)マルチコアプロセッサであってもよい。制御部12は、ツール16のグラフィカルユーザーインターフェース又はフロントエンド、複数のシーケンス又はアプリケーションプログラムインターフェース(API)18、及びライブラリ20を記憶するメモリ14と連結される。API18は、複数のプリミティブ及び複数のプリミティブ間の関係性を符号化する。ライブラリ20は、利用可能な機能のツールボックスを提供する。制御部は、入力/出力22に連結され、ユーザーが情報を入力する及び出力を受け取るのを可能にする。タスクを含む複数のプリミティブ間の関係を可視化するのに表示部24を使用してもよい。
性能解析ツール10は、ソフトウェア内の複数のタスクのような複数のプリミティブ間の関係を理解することにより、ソフトウェア性能を強化することを目的として、ソフトウェア開発者によって使用される。これらの関係を理解することにより、ソフトウェア開発者は、どのようにソフトウェア性能を改善させたらよいか知ることができる。
一般的に、ソフトウェア開発者は、コードの2つのバージョンを開発する。1つのバージョンは、ゲームのように、単純に所望の機能を実行するだけのコードである。もう1つのバージョンは、ある実施形態では、プリミティブの関係を可視化するAPI18を含むコードである(他の実施形態では、さらなる解析のために可視化を行わずバイナリ出力を使用してもよい)。APIを有するコードのバージョンは、計測器コード(instrumented code)と呼ばれる。フロントエンド・グラフィカルユーザーインターフェース16へと計測器コードをストリームすることにより、設計者は、コード内で何が起きているのかを知ることができる。コード内で実行されているスレッド、スレッド内のタスク、及び最も重要であるこれらのタスク間の機能的関係が示される。
図2のブロック22に示すように、アプリケーションプログラムインターフェース18により実装されるシーケンスは、スレッド選択を受信することから開始される。次のブロック24では、プリミティブ識別子が選択される。ブロック26において、識別子が登録される。そして、ブロック28において、識別子が1つのプリミティブに割り当てられる。
この時点で、設計者は、選択されたプリミティブとその他のプリミティブとの間の関係を入力する。選択されたプリミティブは、"このプリミティブ"と称され、"このプリミティブ"と関係するプリミティブは、"そのプリミティブ"と称される。
ある実施形態では、シーケンス18は、設計者が入力した以外の関係性の数についても、自動的に示唆する。例えば、第1タスクが、第2タスクの親である場合、第2タスクは、その親の子供であることを暗に意味する。同様に、第1タスクが第2タスクと関連付けられ、第2タスクが第3タスクと関連付けられる場合、第1タスク及び第3タスクも、互いに関連付けられることを暗に意味し、関係の性質についても示すことができる。このような関係は、推移的関係、又は他の関係性から黙示される関係と称すことができると言える。ある実施形態では、この推移的関係を利用して、ユーザーのデータ入力の負担を軽減できる。また、1からN個の関係、すなわち論理出力数の関係が存在すると考えられる。例えば、ある実施形態では、1人の親は何人でも子供を生み出すことができるが、生み出された全ての子供を1人1人別個にエンコードする必要はない。
また、シーケンス18は、プリミティブ識別子のそれぞれについて、タイムスタンプを提供する。あるタスクが開始及び終了する時刻を、出力として提供する。ある実施形態では、シーケンスは、チャートの行に、一連のスレッドを表示可能である。各行は、スレッドにおけるタスクのシーケンスを含む。また、ネスト化された(入れ子になった)タスクを可視化によって示しても良く、例えば、実行されるタスクの延長線部としてネスト化されたタスクを示してもよい。ユーザーは、タスクの選択に応じて特定のタスクをクリックし、その関係が図式で表示されるようにしてもよい。
システム10は、時間ベースの追跡システムとは異なる、関係ベースのシステムであってもよい。タスクと様々なバッファとの間の時間的関係は、それら自身間の関係と比較した場合、さほど重要ではない。ある実施形態では、タスク間の関係が示され、別の実施形態では、タスク間の相対的なタイミングについては示されない。ある実施形態では、スレッド内のタスクの時間系列は描かれるが、異なるスレッドにおけるタスクの時間的シーケンスは表示されない。ある実施形態では、時間的関係ではなく、機能的関係が可視化されてもよい。機能的関係とは、時間的シーケンス以外のタスク間のあらゆる関係を含む。
ある実施形態では、タスクのそれぞれは、x方向の長さが、実行に掛かる時間の関数である四角形により表現される。ある実施形態では、マウスのクリック及びドラッグの技術を使用して複数のタスクを選択し、選択されたタスク間及びその他のタスク間の関係を表示させてもよい。
図3は、3つのタスク36、38及び42と、バッファ40の形態である1つのパラメータとが存在する簡単な例を示している。矢印44、52、50及び48は、タスク間の関係を表している。例えば、タスク38は、その結果をバッファ40に配置し、タスク42がこれらの結果を利用してもよい。この場合、タスク38は製造者であり、タスク42は消費者という関係となる。頂点(vertex)タスク38は、drawタスク36によって生成されたものであるから、矢印52は、頂点タスクが、drawタスク36の子供であることを示している。同様に、ピクセルタスク42の実行は、頂点タスク38に依存しているので、この依存関係が矢印46によって示されている。ある場合には、複数のタスク間に多重の関係が存在していてもよい。また、複数のオブジェクト型が存在してもよい。
図2に示すように、ブロック28において識別子をプリミティブに割り当てた後、ブロック30において、このプリミティブについての関係が入力される。ここでは、マニュアル手法が説明されるが、コード解析の結果、ユーザーの介入なしに自動的に関係の入力が行われる自動化手法も考えられる。
次いで、ひし形32において、符号化すべきさらなるプリミティブが存在するか否か確認する。存在する場合は、今までのフローを繰り返す。存在しない場合は、ひし形34において、エンコードすべきさらなるスレッドが存在するか確認する。存在する場合は、フローを繰り返す。存在しない場合は、フローが終了する。
図4は、親/子関係の可視化の例を示した図である。ある実施形態では、可視化は、マウスで選択可能なタスク又はプリミティブの表現を有するグラフィカルユーザーインターフェースであってもよい。この例では、4つのスレッドのみが示されている。各スレッドにおいて、タスクが四角形で示されている。
この場合、ユーザーは、第2のスレッドにおける親タスクBを選択している。この選択に応答して、親/子関係の可視化が自動的に行われる。すなわち、タスクBから矢印が、タスクBの子供である第3スレッドの一連の複数のタスクCへと延びる。また、第3スレッドにおけるタスクCから、親のタスクBの孫である第4スレッドにおけるタスクCへと矢印が延びる。
図5は、依存関係の可視化を示した図である。ここで示す例は、ユーザーが選択したタスクBが、タスクA、C、D及びEに対する依存性を有する以外は、図4に示した例に対応している。すなわち、タスクBは、タスクAからの入力に依存し、これが"入力依存性"と名付けられた矢印によって示されている。タスクC、D及びEは、その出力をタスクBに依存し、これが"出力依存性"と名付けられた矢印によって示されている。したがって、この可視化では、異なるスレッドにおけるタスク間の機能的関係が示されている。
レンダリングパスのようなグラフィックスアプリケーションでは、上述した手法では、タスクを可視化することができない。しかしながら、レンダリングパスは、プログラムによって実行されるワークの計測に便利であり、アプリケーション開発者レベルでは、プロファイルを行うのに好適なツールとなる場合もある。
グラフィックスアプリケーションプログラムインターフェースは、レンダリングパスを実際に表す明示機能を含まず、また、レンダリングパスが一連のAPI呼び出し(call)の間に黙示的に生成されてしまうため、上述の手法を用いて符号化することはできない。したがって、このように黙示的に生成されるタスクを、仮想タスクを使用して可視化してもよい。より具体的には、例えば、次に示すような呼び出しを、Direct X APIで作成してもよい。
SetRenderTarget(1)
Draw(draw_args_1)
Draw(draw_args_2)
SetRenderTarget(2)
Draw(draw_args_3)
このコード例では、draw1及びdraw2が、第1のレンダリングされた対象のワークの一部であり、draw3は、第2のレンダリングされた対象のワークの一部である。このワークは、ハードウェアで実行され、実行の結果ワークとなるコマンドは、drawingコマンドのみである。set render targetコマンドは、単なる状態設定に過ぎず、それ自身はワークを生成しない。この問題を解決するため、ある実施形態では、仮想タスクを使用する。仮想タスクは、set render target呼び出しで生成されてもよい。
SetRenderTarget(x) {
TAL_BeginVirtualTask("RenderTarget");
TAL_SetCurrentTaskID(x->renderTargetID);
TAL_EndVirtualTask()
}
通常のタスクでは、タスクの継続時間を知るために、開始呼び出し及び終了呼び出しのタイムスタンプが記録される。しかしながら、上記のset render targetを有する例では、実際のタスクはその実行が完了するとすぐに終了となってしまうので、後に実行される本当のワークのプレースホルダであると言える。
仮想タスクの実際の継続時間を与えるために、他の非黙示的に生成されるタスク又は実際に符号化されたタスクを、仮想タスクと関連付けてもよい。例えば、draw呼び出しタスクが生成される場合、このdraw呼び出しタスクは、実際の仮想タスクの子供となる。この仮想タスクの原理を適用すると、set render targetの継続時間は、render target仮想タスクのリストをユーザーに提示する時間及び関連するタスクの全てに基づいて仮想タスクの継続時間を計算する時間で与えられると考えられる。
可視化のタスクは、図6に示すように、最小の及び最大の子供のタスクを使用して、時系列で可視化してもよい。親/子関係から、図6に示す可視化が得られる。例えば、target 1をレンダリングする下層のタスクは、draw 1及びdraw 2の子供として描くことができ、ターゲット2は、draw 3の子供である。したがって、render target 1及びrender target 2により、継続時間を得ることができる。ただし、この継続時間は、基本的には、set render target 1の場合にはdraw 1及びdraw 2、set render target 2の場合にはdraw 3というように関連付けられたdraw呼び出しの継続時間である。
仮想タスクは、複雑なタスクについてのさらなる情報を示すにも有用であり、詳細な情報がなくとも、基本的なプロファイリングを行うことができる。上述のrender targetの例では、図7に示すようにアプリケーション実行において、仮想タスク(render target 2、render target 3)のみが示される。多数のスレッドが存在する場合、ある事例においては、図6に示した例よりも、このことがより明確になると考えられる。例えば、128個のスレッドが存在し、各スレッドが、何十万ものタスクを含む場合、set render target 2は、最も長い時間実行され、set render target 3の実行は、set render target 2の完了に依存する。この事実が判明すると、設計者は、プロファイリングを中止して、set render target 2とset render target 3とが同時に実行されるようにアクションをとるか、あるいは、set render target 2が非常に時間の掛かるプロセスであると判明したのでset render target 2を最適化することが考えられる。
図8に示すように、仮想タスクを入力するためのシーケンス60は、モジュール又は、図2に示したようなAPI18の一部であってもよい。まず初めに、ブロック62において、仮想タスクが、あたかも本当のタスクであるかのように実行される。そして、ブロック64において、現在のタスク識別子が、あたかも本当のタスクであるかのように設定される。ブロック66において、タスクが、別のタスクと関連付けられる。例えば、set render targetの仮想タスクは、図6で示したような1つ以上のdraw呼び出しと関連付けられてもよい。この関連により、仮想タスクの継続時間を得ることができる。そして、仮想タスクが終了する(ブロック68)。
つまり、仮想タスクは、複雑で、高度に並列なソフトウェアに対するプロファイリングツールを構成するのに便利であると考えられる。仮想タスクがない場合、プロファイリングツールは、APIを実行するメカニズム以上のものを示すことができず、ある場合においては、単純で重要な性能についてのヒントを得ることが妨げられてしまう場合がある。仮想タスクを使用することにより、このような問題が最初から明確になるような抽象化を得ることができ、ある実施形態では、より生産的で効率的なトップダウンプロファイリングが可能となる。
本明細書に記載されたグラフィックスプロセッシング技術は、様々なハードウェア構造に実装可能である。例えば、グラフィックスの機能を、チップセット内に集積してもよい。あるいは、離散グラフィックスプロセッサを使用してもよい。また、他の実施形態では、グラフィックス機能は、マルチコアプロセッサを含む汎用プロセッサによって実装されてもよい。
また、本明細書において、「ある実施形態」又は「実施形態」と称するものは、実施形態に関連する特定の特徴、構造及び特性が、少なくとも本発明の実装形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている「ある実施形態において」又は「一実施形態において」という表現は、必ずしも同一の実施形態を示していない。また、特定の特徴、構造及び特性を、記載した特定の実施形態以外の適切な形式で実装してもよく、このような全ての形式も、本願の特許請求の範囲に含まれる。
本発明が、限られた数の実施形態を参照して説明されたが、数多くの改良及び変更が可能であることは、当業者にとって明らかである。添付の特許請求の範囲は、本発明の精神及び範囲におけるこのような改良及び変更も含むことを意図している。

Claims (29)

  1. マルチコアプロセッサにおいて黙示的に生成されるタスクのIDを受信する段階と、
    前記黙示的に生成されるタスクを、実際に符号化されたタスクと関連付ける段階とを備える方法。
  2. 前記実際に符号化されたタスクと複数の黙示的に生成されるタスクとの間の関係の可視化を提供する段階を備える請求項1に記載の方法。
  3. 前記タスク間の関係を示す段階を備える請求項1に記載の方法。
  4. 前記タスク間の関係を示す段階は、前記黙示的に生成されるタスクの継続時間を示す段階を有する請求項3に記載の方法。
  5. 前記関係の可視化を提供する段階を備える請求項3に記載の方法。
  6. 前記実際に符号化されたタスクの継続時間を使用して、前記黙示的に生成されるタスクの継続時間を示す段階を備える請求項1に記載の方法。
  7. 2つ以上の実際に符号化されたタスクの前記継続時間を使用して、前記黙示的に生成されるタスクの継続時間を示す段階を備える請求項6に記載の方法。
  8. set render targetのIDを、前記黙示的に生成されるタスクとして受信する段階を備える請求項1に記載の方法。
  9. 前記set render targetを、少なくとも1つのdraw呼び出しと関連付ける段階を備える請求項8に記載の方法。
  10. 前記set render targetを、前記draw呼び出しの子供として表示する段階を備える請求項9に記載の方法。
  11. 命令を格納するコンピュータ可読媒体であって、
    前記命令は、コンピュータによって実行されると前記コンピュータに、
    マルチコアプロセッサにおいて黙示的に生成されるタスクのIDを受信させ、
    前記黙示的に生成されるタスクと実際に符号化されたタスクとを関連付けさせるコンピュータ可読媒体。
  12. 前記実際に符号化されたタスクと複数の黙示的に生成されるタスクとの間の関係の可視化を提供する命令をさらに格納する請求項11に記載のコンピュータ可読媒体。
  13. 前記タスク間の関係を示す命令をさらに格納する請求項11に記載のコンピュータ可読媒体。
  14. 前記黙示的に生成されるタスクの継続時間を示す命令をさらに格納する請求項13に記載のコンピュータ可読媒体。
  15. 前記関係の可視化を提供する命令をさらに格納する請求項13に記載のコンピュータ可読媒体。
  16. 前記実際に符号化されたタスクの継続時間を使用して、前記黙示的に生成されるタスクの継続時間を示す命令をさらに格納する請求項11に記載のコンピュータ可読媒体。
  17. 1つ以上の実際に符号化されたタスクの前記継続時間を使用して、前記黙示的に生成されるタスクの継続時間を示す命令をさらに格納する請求項16に記載のコンピュータ可読媒体。
  18. set render targetのIDを、前記黙示的に生成されるタスクとして受信する命令をさらに格納する請求項11に記載のコンピュータ可読媒体。
  19. 前記set render targetを、少なくとも1つのdraw呼び出しと関連付ける命令をさらに格納する請求項18に記載のコンピュータ可読媒体。
  20. 前記set render targetを、前記draw呼び出しの子供として表示する命令をさらに格納する請求項19に記載のコンピュータ可読媒体。
  21. マルチコアプロセッサと、
    前記プロセッサと連結され、前記マルチコアプロセッサにおいて黙示的に生成されるタスクのIDを受信し、前記黙示的に生成されるタスクと実際に符号化されたタスクとを関連付ける命令を格納するメモリと
    を備える装置。
  22. 前記メモリは、前記実際に符号化されたタスクと複数の黙示的に生成されるタスクとの間の関係の可視化を提供する命令をさらに格納する請求項21に記載の装置。
  23. 前記装置は、前記タスク間の関係を示す請求項21に記載の装置。
  24. 前記装置は、グラフィックスプロセッサである請求項21に記載の装置。
  25. 前記装置は、単一命令複数データ(SIMD)マルチコアプロセッサである請求項24に記載の装置。
  26. 前記装置は、前記黙示的に生成されるタスクの継続時間を示す請求項21に記載の装置。
  27. 前記装置は、前記継続時間の可視化を提供する請求項26に記載の装置。
  28. 前記装置は、前記実際に符号化されたタスクの継続時間を使用して、前記黙示的に生成されるタスクの継続時間を示す請求項27に記載の装置。
  29. 前記装置は、2つ以上の実際に符号化されたタスクの前記継続時間を使用して、前記黙示的に生成されるタスクの継続時間を示す請求項28に記載の装置。
JP2010265298A 2009-12-23 2010-11-29 仮想タスクを使用した関係可視化のためのプログラム、装置およびその方法 Expired - Fee Related JP5421228B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/645,568 2009-12-23
US12/645,568 US8850404B2 (en) 2009-12-23 2009-12-23 Relational modeling for performance analysis of multi-core processors using virtual tasks

Publications (2)

Publication Number Publication Date
JP2011138494A true JP2011138494A (ja) 2011-07-14
JP5421228B2 JP5421228B2 (ja) 2014-02-19

Family

ID=43531605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010265298A Expired - Fee Related JP5421228B2 (ja) 2009-12-23 2010-11-29 仮想タスクを使用した関係可視化のためのプログラム、装置およびその方法

Country Status (7)

Country Link
US (1) US8850404B2 (ja)
JP (1) JP5421228B2 (ja)
KR (1) KR101232535B1 (ja)
CN (1) CN102110012B (ja)
DE (1) DE102010053558A1 (ja)
GB (1) GB2476548A (ja)
TW (1) TWI499980B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016045893A (ja) * 2014-08-26 2016-04-04 株式会社東芝 プログラム情報生成システム、方法、及びプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9691123B2 (en) * 2014-12-15 2017-06-27 Intel Corporation Instrumentation of graphics instructions
US9836186B2 (en) 2015-11-19 2017-12-05 International Business Machines Corporation Visualization and control of application interactions
GB2555586B (en) 2016-10-31 2019-01-02 Imagination Tech Ltd Performance profiling in a graphics unit
CN108647134B (zh) * 2018-05-04 2019-04-12 北京物资学院 一种面向多核架构的任务监测、跟踪及识别方法
US10990439B1 (en) * 2019-09-26 2021-04-27 Facebook Technologies, Llc Tracing task execution across services in microkernel-based operating systems

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064361A (ja) * 1992-06-18 1994-01-14 Hokuriku Nippon Denki Software Kk トレース情報収集方式
JPH0683608A (ja) * 1992-09-04 1994-03-25 Fujitsu Ltd プログラム解析支援装置
JPH07325732A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp マルチプロセスのデバッグ方法
US6047122A (en) * 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
JP2002318712A (ja) * 2001-04-20 2002-10-31 Matsushita Electric Ind Co Ltd プログラム実行履歴解析方法
JP2004318914A (ja) * 2004-08-02 2004-11-11 Hitachi Ltd プログラムの表示方法及び装置並びにその処理プログラムを格納した記録媒体
US20050177775A1 (en) * 2004-01-26 2005-08-11 Microsoft Corporation Data race detection using sequential program analysis
US20060106846A1 (en) * 2004-11-12 2006-05-18 Schulz Karsten A Cross-context task management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6074135A (en) * 1996-09-25 2000-06-13 Innovative Technologies, Inc. Coating or ablation applicator with debris recovery attachment
US6560722B1 (en) 1999-12-30 2003-05-06 Texas Instruments Incorporated Developing and deploying real-time high-performance applications with DSPs
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US8473922B2 (en) * 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US7895431B2 (en) * 2004-09-10 2011-02-22 Cavium Networks, Inc. Packet queuing, scheduling and ordering
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
CN101354693B (zh) * 2008-09-11 2010-06-09 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
US8484276B2 (en) * 2009-03-18 2013-07-09 International Business Machines Corporation Processing array data on SIMD multi-core processor architectures
US8581916B2 (en) * 2009-06-26 2013-11-12 Intel Corporation Graphics analysis techniques

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047122A (en) * 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
JPH064361A (ja) * 1992-06-18 1994-01-14 Hokuriku Nippon Denki Software Kk トレース情報収集方式
JPH0683608A (ja) * 1992-09-04 1994-03-25 Fujitsu Ltd プログラム解析支援装置
JPH07325732A (ja) * 1994-05-31 1995-12-12 Mitsubishi Electric Corp マルチプロセスのデバッグ方法
JP2002318712A (ja) * 2001-04-20 2002-10-31 Matsushita Electric Ind Co Ltd プログラム実行履歴解析方法
US20050177775A1 (en) * 2004-01-26 2005-08-11 Microsoft Corporation Data race detection using sequential program analysis
JP2004318914A (ja) * 2004-08-02 2004-11-11 Hitachi Ltd プログラムの表示方法及び装置並びにその処理プログラムを格納した記録媒体
US20060106846A1 (en) * 2004-11-12 2006-05-18 Schulz Karsten A Cross-context task management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016045893A (ja) * 2014-08-26 2016-04-04 株式会社東芝 プログラム情報生成システム、方法、及びプログラム

Also Published As

Publication number Publication date
CN102110012A (zh) 2011-06-29
TW201137752A (en) 2011-11-01
TWI499980B (zh) 2015-09-11
KR101232535B1 (ko) 2013-02-12
US8850404B2 (en) 2014-09-30
KR20110073362A (ko) 2011-06-29
US20110154337A1 (en) 2011-06-23
GB201020734D0 (en) 2011-01-19
JP5421228B2 (ja) 2014-02-19
GB2476548A (en) 2011-06-29
CN102110012B (zh) 2015-06-24
DE102010053558A1 (de) 2012-03-08

Similar Documents

Publication Publication Date Title
JP5421228B2 (ja) 仮想タスクを使用した関係可視化のためのプログラム、装置およびその方法
US9207935B2 (en) Early analysis of software design diagrams
AU2012256399B2 (en) Registration and execution of highly concurrent processing tasks
US8752020B2 (en) System and process for debugging object-oriented programming code leveraging runtime metadata
US8291386B2 (en) System and process for debugging object-oriented programming code
US20170344457A1 (en) System for expression evaluation at debug time
TWI488120B (zh) 用於進行除錯式交易的方法及電腦可讀取儲存媒體
US10402935B2 (en) Performance profiling in computer graphics
US8826234B2 (en) Relational modeling for performance analysis of multi-core processors
KR101745392B1 (ko) 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체
US9342276B1 (en) Optimization tracing
US8963932B1 (en) Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US10176015B2 (en) Progress visualization of computational job
CN116909553A (zh) 一种页面在线开发及本地编译运行系统
Joselli et al. An architeture with automatic load balancing for real-time simulation and visualization systems
US20210294579A1 (en) Graphics pipeline optimizations
JP6528433B2 (ja) 設計支援装置、および設計支援方法
WO2013081593A1 (en) External validation of graphics pipelines
CN110930499A (zh) 一种3d数据处理方法及装置
US11853193B2 (en) Inverse performance driven program analysis
JP5287427B2 (ja) シンボリックデバッガ、方法およびプログラム
Stokes Improving the performance of skeletal mesh animations in the Blender game engine
Middendorf et al. A novel graphics processor architecture based on partial stream rewriting
Petrescu et al. A GPU task generator for rendering
JP2008112243A (ja) シミュレーションプログラム、並びに、それを生成する装置及び方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130718

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131121

LAPS Cancellation because of no payment of annual fees