問題タブ [papi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2115 参照

performance - カーネルからページフォールト統計を取得するにはどうすればよいですか

アプリケーションの実行中にカーネルからページ フォールト統計を取得するにはどうすればよいですか? SMP ノードでの CPU 間の移行カウントやコンテキスト スイッチの数など、他のイベントはどうですか?

プログラムのさまざまな小さな部分について、そのようなイベントを数えたいと思います。

ありがとう。

0 投票する
1 に答える
1840 参照

c++ - グローバルな静的ブール ポインターが pthread を使用してセグメンテーション違反を引き起こす

pthread プログラミングは初めてで、C++ と C の混合コードで作業しているときにこのエラーが発生しました。

私が行ったことは、c++ コードによって作成されたスレッドで c コードを呼び出すことです。スレッドで使用される静的ブール ポインターがありis_center、スレッドが終了すると解放されるはずです。

ただし、プログラムが c 関数に処理されるたびに、ブール ポインターの値が変更され、free() が原因でセグメンテーション違反が発生することに気付きました。問題は、c コードを使用した場合にのみ発生します。C コードを削除すると、マルチスレッドの C++ 部分がうまく機能します。

詳細コードは次のとおりです。

そして、並列を使用する関数は次のとおりです (私の C コードは各スレッドで呼び出されます)。

最後に、私のCコードを呼び出す関数:

そしてgdbから、私が得たものis_centerは次のとおりです。

助言がありますか?前もって感謝します!

コードに関するいくつかの新しい情報: C コードについては、PAPI パッケージを使用しています。システムカウンターを初期化して読み取るために、独自の papi ラッパーを作成します。コードは次のとおりです。

0 投票する
1 に答える
922 参照

upc - PAPIAPI呼び出しを使用してUPCコードをインストルメントできますか

UPCプログラムの実行中にハードウェアカウンターに関する情報を取得するために、UPCプログラムをPAPIAPIでインストルメント化したいと思います。

"undefined reference to PAPI_read" undefined reference to PAPI_library_initしかし、私は例えばなどのためにリンクエラーを受け取り続けます

私が与えているコマンドは upcc -L/full/path/to/libpapi.a -o upcMatrxMultplction upcMatrxMultplction.o

助言がありますか ?

PAPIはUPCコンパイラをサポートしていますか?

0 投票する
2 に答える
631 参照

c - PAPIの使用によるいくつかの問題

PAPIを使用したことがありますか?

PAPIはカーネルバージョン>2.6.32(perf-events)をサポートしているため、コードをテストするためにそれを選択します。

PAPI_TOT_INS、PAPI_BR_INSなど、選択したイベントコードに関係なく、同じ番号(結果)しか得られないのはなぜですか。

私の考え:

1.My pc(uname -a):Linux xunzhang-virtual-machine 2.6.35-28-generic#49-Ubuntu SMP Tue Mar ... X86_64 GNU / Linux

カーネルによるperf-eventsのサポートをどのように確認できますか?>2.6.32...というデフォルトの結論を使用します。

2. MACで仮想マシンを使用するだけですが、これは効果がありますか?? ..

私を導く/助けるために何かを言いなさい。ありがとう!!

0 投票する
3 に答える
1823 参照

multithreading - リモートNUMAメモリノードへのメモリアクセスをカウントする方法は?

最近のLinux分散共有メモリシステムで実行されているマルチスレッドアプリケーションで、リモート(非ローカル)NUMAメモリノードへのスレッドごとの要求数をカウントする簡単な方法はありますか?

PAPIを使用して相互接続トラフィックをカウントすることを考えています。これは行く方法ですか?

私のアプリケーションでは、スレッドはその存続期間全体にわたって特定のコアまたはプロセッサーにバインドされます。アプリケーションが起動すると、メモリはページごとに割り当てられ、使用可能なすべてのNUMAメモリノードにラウンドロビン方式で分散されます。

ご回答ありがとうございます。

0 投票する
0 に答える
162 参照

c# - プロファイリングのための C# と C/C++ の統合

オブジェクト指向フレームワークの低レベルの効率、つまり、命令数、キャッシュミス、TLB ミス、およびそのようなものに関して、いくつかのアプリケーションでいくつかのプロファイルを実行しようとしています。これまでのところ、 Papi プロファイラーのインストルメンテーションを JNI および AspectJ と組み合わせて Java でこの種の測定を行い、必要な情報を取得することができました。

C# で似たようなこと、つまり、C# とアスペクト指向プログラミング (AoP) と C と C# の間のある種の呼び出しインターフェイスの混合について誰かが知っているかどうか疑問に思っていました。

私がグーグルで調べたところ、AspectSharp と呼ばれる C# 用の AoP 関連のフレームワークが既にあることがわかりましたが、Mono で構成して使用するのは少し複雑なようです (これは私が C# で使用しているものです)。

結論として、私は助けを求めています

  • アスペクトシャープ
  • C/C++ <=> C# インターフェイス (?)

前もって感謝します

0 投票する
1 に答える
2966 参照

performance - パフォーマンス測定のために定期的に PAPI を使用する方法

C で PAPI api を使用してアプリケーションのシステムのパフォーマンスを分析したいと考えています。一般的な構造は、
- PAPIを初期化します-対象
のカウンターを初期化します-カウンターを
開始します
-アプリケーションのメインロジックを実行します
-カウンターを終了し、値を読み取ります

アプリケーションの最後に最終値を読み取るのではなく、1 秒ごとにカウンターを定期的に読み取りたいと考えています。PAPI出力は、プログラム実行後のL2キャッシュミスの総数など、プログラム実行の終了時に集計値を提供しますか? もう 1 つの例は、プログラムの最後に命令の総数ではなく、インスタンスごとに命令の数を読み取ることです。

0 投票する
1 に答える
66 参照

content-management-system - MCSC 2002 から Umbraco へのリンクを含むページをコピーするために PAPI を使用するコードの例が必要です

Umbraco オブジェクト モデルを使用して、PAPI を使用してリンク付きのページを MCSC 2002 から Umbraco CMS にコピーする .NET の例が必要です。このサイトの別のユーザーはすでにそれを行っています (Andy Rose - https://stackoverflow.com/a/3678533 )。しかし、私は彼に連絡する方法がわからないので、他の助けがあれば大歓迎です.

ありがとう、イゴール。

0 投票する
1 に答える
459 参照

c - PAPI (パフォーマンス アプリケーション プログラミング) が正しく動作していませんか?

私はサイトからバージョン 4.4 をダウンロードし、それを自分のディレクトリにビルドして、num_counters がゼロであるという小さなメインを書き込もうとしました。次に、ctests を見て hwinfo.c を選び、そこからコード (および testlib) の一部を取り出して、次のような小さなメインに投げ込みました。

私は以下を使用してこれを構築しました:

そしてそれを実行しました:

この出力を目撃するためだけに:

テスト ケース hwinfo.c: PAPI_get_hardware_info の出力を確認します。

何が起こっているのか、なぜこれが機能しないのか、少し迷っています...この症状は何ですか?また、何を修正できますか? 私のプロセッサは Intel Xeon X5760 で、私の uname -a は次のように述べています。

0 投票する
1 に答える
746 参照

performance - AMD Opteron 6172 での PAPI パフォーマンス カウンターの問題

Red Hat Enterprise Linux Workstation リリース 6.2 (Santiago) を実行している AMD Opteron 6172 プロセッサのパフォーマンス カウンターを使用して、特定のアプリケーション (C で記述) を分析しようとしています。

AMD ネイティブ イベント CPU_CLK_UNHALTED を PAPI_TOT_CYC (合計サイクルをカウント) に使用し、DATA_CACHE_ACCESSES を PAPI_L1_DCA (L1 データ キャッシュ アクセスをカウント) に使用する PAPI v4.1.3.0 を使用しています。

私が経験した問題は、場合によってはキャッシュ アクセスの数が合計サイクル数よりも多いということです。私の理解では、キャッシュアクセスはCPUを停止させないので、合計サイクル内に収まるはずです。また、合計サイクル数を Opteron 6172 のクロック周波数で割ると、かなり正確な実行時間の見積もりが得られます。これにより、合計サイクル数は問題なく、問題はデータ キャッシュ アクセスのカウントにあると思われます。

私は papi の例に従ってすべてを開始しましたが、エラーはまったく発生しません。これが発生する理由についての助けや理由は大歓迎です。事前に感謝します。

http://support.amd.com/us/Processor_TechDocs/31116.pdf

  • CPU_CLK_UNHALTED

CPU が (STPCLK または HLT 命令により) 停止状態にないクロック数。注: このイベントにより、システムのアイドル時間が IPC (または CPI) の測定値から自動的に除外され、OS がアイドル時に CPU を停止することが可能になります。OS が停止せずにアイドル ループに入った場合、そのような計算はアイドル ループの IPC の影響を受けます。

  • DATA_CACHE_ACCESSES

ロードおよびストア参照のためのデータ キャッシュへのアクセス数。これには、特定のマイクロコードのスクラッチパッドへのアクセスが含まれる場合がありますが、これらは一般的にまれです。各インクリメントは 8 バイト アクセスを表しますが、命令はその一部にしかアクセスしていない場合があります。このイベントは投機的なイベントです。