我已經編寫了一個程序,以兩種模式運行,即Sequential和Multithreaded,目的是在多處理器體系結構上運行它,然後分析處理器的性能並進行比較。多平臺性能分析
是否有任何工具可以幫助我做到這一點?找到執行時間,跟蹤線程和搶佔,找到哪個處理器執行哪個線程(如果在多核系統上),上下文切換開銷和其他東西。
我已經有了關於使用gprof進行代碼分析的基本知識,我相信這是不夠的。我正在尋找的東西是相同的想法,但更強大! 任何幫助?
我已經編寫了一個程序,以兩種模式運行,即Sequential和Multithreaded,目的是在多處理器體系結構上運行它,然後分析處理器的性能並進行比較。多平臺性能分析
是否有任何工具可以幫助我做到這一點?找到執行時間,跟蹤線程和搶佔,找到哪個處理器執行哪個線程(如果在多核系統上),上下文切換開銷和其他東西。
我已經有了關於使用gprof進行代碼分析的基本知識,我相信這是不夠的。我正在尋找的東西是相同的想法,但更強大! 任何幫助?
要獲得有關執行時間,緩存行爲等的更多信息,有各種方法。確保首先創建一個穩定的計算環境。鎖定處理器頻率以獲得可靠的測量結果,例如在BIOS中禁用Intel SpeedStep;避免任何後臺進程等
低級別的性能計數器:
高級剖析:
請注意,以上所有功能也可以測量功耗。
或者,您可以通過在OS中創建一個線程切換跟蹤來查看程序隨時間的行爲。看看Eclipse的LTTng集成。
如果您希望查看更多關於代碼實際並行行爲的信息,例如可能會抑制並行性,線程開銷和緩存爭用的數據依賴性,您可以從Vector Fabrics處獲得Pareon的信息(免責聲明:我是Vector Fabrics的創始人之一)。這不是一個分析器,而是用於並行化的更多代碼分析。