2011年3月30日 星期三

OpenMP 心得 (三) Parallel Construct

本文將介紹 OpenMP 最基本且最重要的 construct: parallel construct,如果程式中沒有 parallel construct 則程式只能被序列執行。另外文中也將示範 barrier construct 以及 omp_get_thread_num() 函式的用法。

2011年3月25日 星期五

OpenMP 心得 (二) 基本知識與常見術語

在介紹 OpenMP 的用法前,我們先來瞭解一些相關的基本知識與術語,讓讀者可以對 OpenMP 建立起一個大略的圖像以及統一一些專有名詞,這對之後的學習與討論都會有相當的幫助。有關專門術語的中文翻譯部分,翻得不好不如不翻,所以除非是使用上已經比較有共識的名詞外,其它術語我個人是傾向不翻譯而直接使用原文,然後試著在它們第一次出現時再加以說明。

2011年3月19日 星期六

OpenMP 心得 (一)

最近幾年多核心 CPU 已蔚為流行,四核以上的 CPU 不再是少數追求高效能的電腦玩家才會選擇的昂貴零組件,而是漸漸成為一般電腦的標準配備,可以想見再過幾年在市面上出現十幾、三十幾核的桌上型 CPU 也不是不可能的事。多核心的 CPU 代表電腦擁有可以同時處理多項工作的能力,所以我們可以一次執行數個程式來獲得較佳的工作量對時間之效益比,或者是將單一工作分解成數個可獨立執行的部份來平行處理以縮短該工作的執行時間。後者便是平行程式發展的著眼點。早期有需要寫平行程式的人大多是屬於比較專業的研究人員,也只有這些人所屬的機構單位才有經費去設置高價的多 CPU 電腦系統。但是在多核心電腦普及的現在,一般程式開發人員也開始有需要去接觸這方面的知識,畢竟好的程式設計師就是要在許可的範圍內盡量去榨取電腦系統的資源,只使用一個核心去執行程式卻放著其它的核心在旁邊納涼對某些程式設計師而言根本是一種罪惡。

2010年2月5日 星期五

如何使用 PyQwt 畫圖 (四)

在前三篇關於 PyQwt 的文章中,基於介紹方便我們將圖形外觀的設定、繪圖資料的產生、以及繪圖程序全都放在自訂類別 Ex01、Ex02、Ex03、以及 Ex03_2 的 __init__ 函式中,每個自訂類別都做差不多的事但卻只能產生畫出特定方程式的物件。在本篇文章中我們示範架構一個較通用的 PyQwt 繪圖類別,設計一些有用的物件方法讓使用者可以透過這些介面來完成像是圖形外觀設定、或繪圖形式選擇等工作。

2009年11月19日 星期四

如何使用 PyQwt 畫圖 (三)

上一篇文章的重點在介紹 QwtPlot 物件的設定,本篇文章將焦點放在 QwtPlotItem 物件的設定上。QwtPlotItem 物件是放在 QwtPlot 的畫布上,用來畫出數據或輔助數值判讀的繪圖元件,常用的 QwtPlotItem 物件有 QwtPlotCurve、QwtPlotMarker、以及 QwtPlotGrid 等。以下圖為例,紅色虛線為 QwtPlotCurve 物件,用來顯示 y 軸的參數如何隨 x 軸參數而變化;藍色菱形與右側的文字屬於 QwtPlotMarker 物件,用來標示特定值的資訊;格線則幫助我們判讀圖形。以下將依序介紹這些 QwtPlotItem 物件的使用方法。

2009年10月20日 星期二

如何使用 PyQwt 畫圖 (二)

讓我們來看底下的這兩張圖:
左邊的圖是我們在上一篇介紹 PyQwt 的文章中所完成的圖,右邊的則是將它整型後的圖,看起來是不是比較順眼點?接下來將介紹如何調整 PyQwt 圖形物件的外觀。

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 的相關部分作解釋。