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