本文將介紹 OpenMP 最基本且最重要的 construct: parallel construct,如果程式中沒有 parallel construct 則程式只能被序列執行。另外文中也將示範 barrier construct 以及 omp_get_thread_num() 函式的用法。
2011年3月25日 星期五
2011年3月19日 星期六
OpenMP 心得 (一)
最近幾年多核心 CPU 已蔚為流行,四核以上的 CPU 不再是少數追求高效能的電腦玩家才會選擇的昂貴零組件,而是漸漸成為一般電腦的標準配備,可以想見再過幾年在市面上出現十幾、三十幾核的桌上型 CPU 也不是不可能的事。多核心的 CPU 代表電腦擁有可以同時處理多項工作的能力,所以我們可以一次執行數個程式來獲得較佳的工作量對時間之效益比,或者是將單一工作分解成數個可獨立執行的部份來平行處理以縮短該工作的執行時間。後者便是平行程式發展的著眼點。早期有需要寫平行程式的人大多是屬於比較專業的研究人員,也只有這些人所屬的機構單位才有經費去設置高價的多 CPU 電腦系統。但是在多核心電腦普及的現在,一般程式開發人員也開始有需要去接觸這方面的知識,畢竟好的程式設計師就是要在許可的範圍內盡量去榨取電腦系統的資源,只使用一個核心去執行程式卻放著其它的核心在旁邊納涼對某些程式設計師而言根本是一種罪惡。
2010年2月5日 星期五
2009年11月19日 星期四
如何使用 PyQwt 畫圖 (三)
上一篇文章的重點在介紹 QwtPlot 物件的設定,本篇文章將焦點放在 QwtPlotItem 物件的設定上。QwtPlotItem 物件是放在 QwtPlot 的畫布上,用來畫出數據或輔助數值判讀的繪圖元件,常用的 QwtPlotItem 物件有 QwtPlotCurve、QwtPlotMarker、以及 QwtPlotGrid 等。以下圖為例,紅色虛線為 QwtPlotCurve 物件,用來顯示 y 軸的參數如何隨 x 軸參數而變化;藍色菱形與右側的文字屬於 QwtPlotMarker 物件,用來標示特定值的資訊;格線則幫助我們判讀圖形。以下將依序介紹這些 QwtPlotItem 物件的使用方法。
2009年10月20日 星期二
2009年10月17日 星期六
如何使用 PyQwt 畫圖 (一)
設計資料分析用的 GUI 程式時,經常需要使用繪圖視窗來顯示數據資料畫成的圖。如果使用 PyQt 建立 GUI 程式的話,除了 Python 族群常用的 matplotlib 這個繪圖模組外,還可以使用 PyQwt 這個二維繪圖模組作為嵌入 GUI 的繪圖元件。PyQwt 畫出來的圖雖不若 matplotlib 美觀,可使用的繪圖功能也比 matplotlib 來得少,但是它可視作 PyQt 的延伸套件,能夠輕易地嵌入到用 PyQt 製作的 GUI 程式中,執行效率也比使用 matplotlib 來得高。如果 GUI 不需要顯示高品質圖形的話,那麼使用 PyQwt 作為繪圖元件將會是一個很好的選擇。可惜的是網路上有關 PyQwt 的學習資源很少,除了官方網站外,很難找到其它教學文獻,中文方面更是麟毛鳳角,因此我打算以四篇系列文章介紹如何使用 PyQwt 畫圖。文章中將假設讀者已經有 Python 與 PyQt 撰碼的經驗,因此只會針對 PyQwt 的相關部分作解釋。
訂閱:
文章 (Atom)