快速掌握多線程編程優化技術

隨着英特爾多核平臺編程優化大賽的進行, 我們收到了不少網友的優化報告, 其中許多網友取得非常好的優化成績. 但是也許多網友通過各種渠道給我們反饋, 由於平時沒有接觸太大優化相關的工作,一時間對於提供的代碼難以入手,希望我們針對大賽,提供一些學習的資源,掌握優化方面內容參加比賽. 所有我們提供了下面一些鏈接, 希望對一些沒有沒有太多優化經驗的網友提供一些幫助.

1.多線程設計
由於多核技術的發展,多線程程序的調優會越來越爲重要. 所有我們要求參賽網友對原有程序進行多線程設計. 程序多線程化是通過我們測試的一個條件.一般來說, 多線程設計主要有兩種方法: 使用本地線程(Native Threading), OpenMP Threading.在大賽中,這兩種方法都可以使用.

關於Windows本地的線程,大家可以去MSDN* 網站去學習.下面一個鏈接,提供提供一個簡單的介紹,:
http://www.codeproject.com/threads/sync.asp

OpenMP threading 一些詳細內容可以參考OpenMP的網站(www.openmp.org).下面一篇開始學習的文章:
Getting Started with OpenMP*:  http://www3.intel.com/cd/ids/developer/asmo-na/eng/20365.htm

如果是使用OpenMP threading, 需要用Intel C++ Compiler 或 Microsoft .Net 2005* 編譯器. 

對程序的多線程化,需要要選擇關鍵的代碼(費時間的代碼)進行多線程設計. 如果大家不能確定程序主要的計算部分, Intel® VTune™ Analyzers 可以幫助分析程序. 

多線程化後, 下一步主要是對多線程的程序進一步優化. 

2.優化工具
學習英特爾的相關工具使用方法也是我們大賽的一個主要目的. 在大賽的參賽的主頁上,大家可以下載到相關的工具. 這裏我們簡單對每個工具進行說明:

Intel® C++ Compiler: 我們建議使用Intel C++ 編譯器進行編譯程序, 安裝完Intel C++ 編譯器後, 大家可以在命令行下, 或在Microsoft .Net 2005* 編譯環境中選擇Intel C++ 編譯器. Intel C++ 編譯器提供不同的編譯開關. 如果大家需要進一步學習這方面的內容可以去 Intel 軟件學院在線學習網站:
Enhancing Performance with the Intel® Compiler: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp?courseID=105

Intel® Math Kernel Library (Intel MKL).  Intel MKL 函數庫中提供了VML 函數, 這些函數可以對超越函數(sin, cos, exp, log等)進行優化, 有關這方面的討論,大家可以參見以前的一些帖子, 不少網友討論VML函數的使用.

Intel Threading Checker & Intel Threading Profiler: Thread Checker 用於查找線程錯誤, 能夠檢測資源競爭、線程死鎖等問題. 大家程序在多線程後,可以用Threading Checker 檢測一下有沒有多線程相關的錯誤. Thread Profiler是線程性能檢測工具,多線程化有, 可能會有負載比平衡, 同步開銷過大等等線程相關的性能問題。Thread Profiler 能夠幫助定位這些問題的原因.
一些可以學習網站:
Getting Started with the Intel® Thread Checker: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp?courseID=178
Getting Started with the Thread Profiler: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp?courseID=179

這些只是是一個初步的介紹,大家遇到什麼問題, 歡迎一起來討論. 一些網友在優化方面也非常有經驗,可以一起來交流學習.

關於本次大賽:

由英特爾軟件網絡部主辦,CSDN協辦的“英特爾多核平臺編程優化大賽”於2006-12-6日拉開帷幕,得到了廣大網友的關注和支持。本次比賽要求參賽者使用大賽提供的樣品代碼,利用推薦的一個或多個英特爾® 軟件開發工具對代碼進行調優。參賽者可以在大賽網站上提交作品。參賽的作品將在大賽推薦的硬件平臺上進行統一的評測,並在大賽網站上公佈最終結果。所有通過測試的作品,選手都可以獲得由英特爾提供的技術工具書一本和U盤一個。

更多大賽相關信息,請前往大賽官方網站

更多精彩話題,請前往CSDN技術社區-英特爾多核計算技術討論區

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章