我正在分析一个使用 pthread 库的多线程应用程序,以获取有关其执行次数最多的基本块 (BBL) 的信息。我遇到的问题是有很多块属于__pthread_mutex_lock
function,它们不仅在TOP 100执行次数最多的BBL中,而且在TOP 10中。这真的很烦人,因为我对属于pthread库的BBL不感兴趣功能。
我的导师和我猜测忙等待是否与此有关,因为在 MPI 中有一些方法可以将锁的行为从忙等待模式更改为阻塞模式,因此在分析应用程序时,这类 pthread 函数不会出现那么多,甚至没有进入前 10 名。我从未与 MPI 合作过,如果我说的不是很准确,请原谅。
我想在这里问的是,是否有人知道对 pthreads 执行类似操作的方法。更改应用程序的代码不是一种选择,但如果有一个编译旋钮来编译应用程序,来自 -lpthread 的 appart 可以改变它的行为而不是从它的库中获取这么多 BBL,那就太好了。
感谢您的时间。