隨著英特爾多核平台編程最佳化大賽的進行, 我們收到了不少網友的最佳化報告, 其中許多網友取得非常好的最佳化成績. 但是也許多網友通過各種渠道給我們反饋, 由於平時沒有接觸太大最佳化相關的工作,一時間對於提供的代碼難以入手,希望我們針對大賽,提供一些學習的資源,掌握最佳化方面內容參加比賽. 所有我們提供了下面一些連結, 希望對一些沒有沒有太多最佳化經驗的網友提供一些協助.
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日拉開帷幕,得到了廣大網友的關注和支援。本次比賽要求參賽者使用大賽提供的樣品代碼,利用推薦的一個或多個英特爾 軟體開發工具對代碼進行調優。參賽者可以在大賽網站上提交作品。參賽的作品將在大賽推薦的硬體平台上進行統一的評測,並在大賽網站上公布最終結果。所有通過測試的作品,選手都可以獲得由英特爾提供的技術工具書一本和隨身碟一個。
更多大賽相關資訊,請前往大賽官方網站
更多精彩話題,請前往CSDN技術社區-英特爾多核計算技術討論區