我正在分析使用pthread库的多线程应用程序,以获取有关其执行最多的基本块(BBL)的信息。
我遇到的问题是有很多属于__pthread_mutex_lock
函数的块,它们不仅在TOP 100执行最多的BBL中,而且在TOP 10中。这真的很烦人,因为我不感兴趣属于pthread库的BBL完全可以运行。
我的导师和我在猜测忙碌的等待是否与此有关,因为在MPI中有一些方法可以将锁定从忙碌等待模式改为阻塞模式,因此在分析应用程序时这些pthread函数不会看起来那么多,甚至不在前10名。我从来没有和MPI合作,所以请原谅我,如果我说的不是很准确。
我想在这里问的是,是否有人知道如何做一些像pthreads这样的事情。更改应用程序的代码不是一个选项,但如果有一个编译旋钮来编译应用程序,来自-lpthread的appart可能会改变其行为而不是从其库中获取如此多的BBL,那将是很棒的。
感谢您的时间。