MapReduce的概念
對於Google如此成功的模範,我很好奇它所用到的技術MapReduce,所以就整理了一些資料,還挺好理解的。話說原本系上開的高等作業系統,今年附加了一個名字「雲端運算」,授課老師表示一直上舊有的作業系統知識實在很無趣,於是打算在今年之後教點有關雲端運算的知識。這讓我超級羨慕!令人驚訝的是最近在教MapReduce相關的議題。
對於Google如此成功的模範,我很好奇它所用到的技術MapReduce,所以就整理了一些資料,還挺好理解的。話說原本系上開的高等作業系統,今年附加了一個名字「雲端運算」,授課老師表示一直上舊有的作業系統知識實在很無趣,於是打算在今年之後教點有關雲端運算的知識。這讓我超級羨慕!令人驚訝的是最近在教MapReduce相關的議題。
已經設定好OpenMP程式設計環境後,接下來就是實際來寫一則code,仔細分析thread們如何運作,在此我選擇積分這個主題,以梯形法則 (Trapezoidal Rule)來計算曲線下的面積。
學任何程式語言都要來Hello World,這裡OpenMP也不例外,在Microsoft Visual Studio 2010 Professional設定啟用OpenMP(可參考[OpenMP] Visual Studio 使用 OpenMP)之後,就可以編譯OpenMP的程式碼。
一開始我以為寫OpenMP需要安裝,就如同安裝OpenGL那樣,要把相關的.h、.lib、.dll檔丟到特定的資料夾,接著在專案中設定存取的相對位置,才能使用,不過那也是因為微軟「不想」支援OpenGL,我們才需要自己動手來「安裝」。好消息是微軟支援OpenMP,所以我們只要在專案特性中把OpenMP的選項打開即可寫OpenMP程式!
這篇文章要說是Visual Studio安裝OpenMP也是無妨!只要記得OpenMP已內建於Visual Studio中,我們只要去開啟它就能使用了!

data parallelism和task parallelism的關係是怎樣呢?查了網路上,很少有比較的例子,還是看圖比較清楚。
HappyMan・迴響