Intel Thread Checker学习

来源:互联网 发布:北航软件学院复试 编辑:程序博客网 时间:2024/06/06 08:47
 
网址http://www.intel.com/cd/software/products/asmo-na/eng/threading/219785.htm
可在上面下载30天试用版。
用Intel Thread Checker来检查(多线程计算PI碰到的问题),极其简单!
Thread Checker运行界面同VTune差不多,如果有VTune经验的话,非常容易上手的。
1、运行Thread Checker
2、选New Project
3、在New Project对话框中,在Category下拉框里选择Threading Wizards,在下面的List View中选择Intel? Thread Checker Wizard,然后OK。对话框的下面,你可以设置一下Project Name和Project Location。
4、在Intel® Thread Checker Wizard对话框中,选择application的地址。在这里你可以设置command line arguments,我们这里只要默认就可以了。其它都是选默认值。对了,记得选择Debug版本的application,否则在下一步无法track到源代码等很多信息。然后Finish。
5、这个时候你就会看到Thread Checker在分析你的程序了。对了,计算PI的那个iteration记得要设的小一点,否则运行速度极其慢!第一次我使用的是10000000,结果运行了7分钟还基本看不到要结束的样子。遂结束它,改成100,瞬间产生结果!
拿一行结果来分析一下,主要的是以下两项:
Short Description: Read -> Write data-race
Description: Memory write at "pi.cpp":17 conflicts with a prior memory read at "pi.cpp":17 (anti  dependence)
Short Description表明了是什么问题,从上面可以看出是线程之间读写数据竞争!Description描述了详细信息,track到了问题发生在哪一行!这个很强也很赞!而且,另一个非常好用的功能是直接双击那一行,Thread Checker就会为你直接切换到源代码!很Cool。
GL & HF.