Kisser Leon

这个kisser不太冷
posts - 100, comments - 102, trackbacks - 0, articles - 0

Intel Thread Checker学习

Posted on 2007-03-24 16:28 kk 阅读(1719) 评论(0)  编辑 收藏 引用 所属分类: IT

网址 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.