Chia´s Small Shop

Chia小鋪,陳列隨手的文字

別讓你的多核心只是裝飾品!Intel TBB 2.2 發布

Intel® Threading Building Blocks (TBB) 是一個協助將演算法平行化處理的函式庫。利用多核心可以同時處理多執行緒的優點,TBB自動將資料拆成數塊,分別由各個執行緒執行後,再將結果彙整。以往要自己手動處理多個執行緒的管理以及同步等問題,TBB都已經幫你包辦好了。雖然寫起來不若OpenMP那樣簡潔,不過我對於程式碼中飛來飛去的#pragma實在有點感冒…

TBB 的開放原始碼版本(GPL 2),在2009年8月9日發布2.2版囉!跟2.1版相比,架構有一點點小小地變動。除了效能的增進外,新加入的parallel_invoke與parallel_for_each方法,可以簡化原先parallel_for使用functor的繁複寫法,同時也支援C++0xlambda functions。還有一個小小驚喜,終於不用初始化task scheduler了,2.2版會自動幫你做好這件事。眼下先把2.1版的projects升級一下囉~

拜訪 TBB
- TBB Home
- TBB 2.2 stable version download
- What’s New in Intel® TBB 2.2

八月 18, 2009 發文者為 chia0418 | TBB | , , , | 暫時沒有留言

Ogre的多執行緒體驗@Vista

Ogre的多執行緒體驗中,介紹了如何開啟Ogre對多執行緒的支援
但是在使用的時候,程式總是莫名的crash在某個地方,連個例外都不給
trace的結果,每次都是在建立某個特定的ManualObject的時候
不過前一刻才讀進一個模型,也是用ManualObject物件的啊~換順序還是照當
好吧,換RenderSystem看看…用了D3D9,一整個正常!
可不是嗎?不但程式運作正確,連考試都考一百分了呢!(真是個老梗~~) 閱讀更多»

三月 4, 2009 發文者為 chia0418 | Ogre | , , , , | 暫時沒有留言

Ogre的多執行緒體驗

個人一直很欣賞multithread的程式寫作方式,可以在跑程式的時候,多出幾個執行緒分別負責不同的事情。當然,多點人手自然就要多花精神去管理,天下沒有白吃的午餐。隨著CPU朝向多核心發展,多執行緒的程式架構在未來勢必是個重點。這篇體驗,主要說明如何讓Ogre能支援多執行緒,在進行rendering的時候同時進行模型的處理與計算(載入模型、改變幾何結構等等)。如果是關心利用多執行緒的方式描繪場景,或改善畫面更新率(frame rate),這篇多執行緒的OGRE render system有較專門的說明。 閱讀更多»

二月 26, 2009 發文者為 chia0418 | Ogre | , | 暫時沒有留言