※ 引述《BoxsterX ()》之銘言:
: 由於要做平行程式
: 要先找出重複較多的區段再下手處理
: 請問有甚麼方法能達到這個目標
平行程式的重點在於找出執行時間(CPU time)最久的地方最佳化
不一定是重複最多的次的區段
至於要找出這些地方的工具叫做 profiler
我自己比較常用的 Intel VTune
(Linux 非商業版是免費的,可以到 http://goo.gl/cevLw 取得)
直接跑編譯過的程式就可以分析 hotspot 了
如果編譯的時候有加 -g 的話,可以直接看到哪一行跑最久,非常方便。
如果是 Intel 的 CPU 的話,更可以直接讀硬體的 event counter,
可以用來測量 L1, L2 cache miss 等等
操作方法很簡單,看著官方的 Getting start guide 就可以了
另外兩套也值得推薦的是 GNU profile (gprof) 以及 Google Profermance tool (pprof)
只是使用這兩套時都需要額外編譯程式
網路上也有相當多的資料~
以上是我的小小心得 :P 剩下請版上各位補充~
--
: 由於要做平行程式
: 要先找出重複較多的區段再下手處理
: 請問有甚麼方法能達到這個目標
平行程式的重點在於找出執行時間(CPU time)最久的地方最佳化
不一定是重複最多的次的區段
至於要找出這些地方的工具叫做 profiler
我自己比較常用的 Intel VTune
(Linux 非商業版是免費的,可以到 http://goo.gl/cevLw 取得)
直接跑編譯過的程式就可以分析 hotspot 了
如果編譯的時候有加 -g 的話,可以直接看到哪一行跑最久,非常方便。
如果是 Intel 的 CPU 的話,更可以直接讀硬體的 event counter,
可以用來測量 L1, L2 cache miss 等等
操作方法很簡單,看著官方的 Getting start guide 就可以了
另外兩套也值得推薦的是 GNU profile (gprof) 以及 Google Profermance tool (pprof)
只是使用這兩套時都需要額外編譯程式
網路上也有相當多的資料~
以上是我的小小心得 :P 剩下請版上各位補充~
--
All Comments