最も実行されている基本ブロック(BBL)に関する情報を取得するために、pthreadライブラリを使用するマルチスレッドアプリケーションのプロファイリングを行っています。私が遭遇した問題は、関数に属するブロックがたくさんあることです__pthread_mutex_lock
。これは、最も実行されるトップ100のBBLだけでなく、トップ10にもあります。これは、pthreadライブラリに属するBBLに興味がないため、非常に面倒です。まったく機能します。
私のメンターと私は、ビジーウェイトがこれと関係があるかどうかを推測していました。MPIでは、ビジーウェイトモードからブロッキングモードに動作するようにロックを変更する方法があるため、アプリのプロファイリング時に、この種のpthread関数はそれほど表示されません。 、トップ10にも入っていません。私はMPIを使ったことがないので、私の言うことがあまり正確でない場合は失礼します。
ここで私が聞きたかったのは、誰かがpthreadに対してそのようなことをする方法を知っているかどうかです。アプリケーションのコードを変更することはできませんが、アプリケーションをコンパイルするためのコンパイルノブがある場合は、ライブラリからそれほど多くのBBLを取得しないように動作を変更できる、-lpthreadからのappartが最適です。
お時間をいただきありがとうございます。