重劍點評: 在sourceforge地址:
http://sourceforge.net/projects/tbb 官網地址:
http://osstbb.intel.com/index.php
Intel TBB 開源
在這兩天的 OSCON 上,Intel 宣布,Threading Building Blocks,Intel 眾多軟件開發工具中的一個,open source 了。協議是 GPLv2。
TBB 獲得過 17 屆 Jolt Productivity Awards,是一套 C++ 模板庫,和直接利用 OS API 寫程序的 raw thread 比,在并行編程方面提供了適當的抽象,當然還包括更多其他內容,比如 task 概念,常用算法的成熟實現,自動負載均衡特性還有不綁定 CPU 數量的靈活的可擴展性等等。STL 之父,Alexander Stepanov 對此評價不錯,他說“Threading Building Blocks… could become a basis for the concurrency dimension of the C++ standard library”。其他 TBB 的早期用戶,包括 Autodesk,Sun,Red Hat, Turbo Linux 等亦然。現在 O’Reilly 已經出版了一本 Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism。
TBB 可以在 Windows,Linux 和 OSX 上運行,支持 Intel, Microsoft 和 GNU 工具,這就覆蓋了絕大多數需求范圍。
Intel 內部大概在 2004 年有了 TBB 的概念,2005 年 team 成立,2006 年 8 月發布 1.0,今年 4 月 1.1,這個程序看上去勢頭不錯。
和業界目前層出不窮的并行解決方法/方案比較,TBB 有自己的優勢,例如:和 OpenMP 比…哦,他們幾乎是兩回事…關于 OpenMP 有個笑話:OpenMP is great if you have Fortran code, or C code that looks like Fortran, or C++ that looks like Fortran,或者說,一句話,flat do-loop centric parallelism。另外,如果你的項目不適合甚至不允許 pragma 來 prgma 去的,那就麻煩了。
目前 TBB 也仍然作為售價 $299 商業產品(包括了 Intel C++ Compiler Professional Editions 10.0)銷售,因為有些用戶更喜歡 Intel 的支持服務。一個不知道是好消息還是壞消息的信息是,如果我用 TBB 和 Intel Compiler 配合編寫的程序,在 AMD 的 multicore 處理器上會有更好的 performance 嗎?答案是,很多情況下,確實會提高的
對 TBB 或者說并行編程趨勢的完整理解和支持只可能最先發生在工業界,這不是你在論壇上看到的某個蹩腳程序員或者業余愛好者愿意花精力或者有機會實踐的東西,Autodesk,Sun 和 好萊塢 是典型的最渴望和最歡迎任何這方面的有益舉動的廠商。DDJ 對 James Reinders 的訪問,其中有一段,或許,有一天會擴展 TBB 到支持 Java 和 .Net 吧。
Raw thread 幾乎鐵定不是最方便和具備可移植性的選擇,某種程度的 wrapper 只能改良而無實質變化,TBB 引入 generic parallel programming 的支持是個大進步,當然這也不能說完美,TBB 有不方便的地方(有些來自 C++ 有些來自 TBB 實現),而且不一定適合某些特定問題域,所以 Google Sawzall(適合大規模數據并行處理的腳本語言) 和 Yahoo Pig 都是很好的對比參考(當然,他們是更不 generic 的實現,更針對自己的問題),至于硬件對 parallel progarmming 的支持比如 transactional memory… 扯更遠了哈。
出于照顧受眾的原因,不少介紹和推廣 multicore 處理器優勢的資料都會說你可以一邊運行殺毒軟件,一邊處理照片等等,我得說,這個比方真的很蠢,它模糊了實質,也讓人覺得職業程序員們沒干什么正事兒,可是,如果你沒法跟他聊算法,數據流以及指令序列,那也就這么著了吧。
Jakob Nielsen 和 Steve Jobs 的看法有很多類似之處,大多數用戶要么根本不知道自己要什么,要么說出來需要什么后,旋即轉身要求其他更好的繼而讓他剛剛告訴你的東西成為廢話。你得敏銳地觀察他們的行為,分析趨勢,這是個預測未來的活兒,你得做好準備去迎合至今尚不存在,將來卻會鐵板釘釘的那個“需求”。用戶可能會覺得你現在提出的 idea 非其所需,或者不過是忽悠人,甚至蠢得可以,這樣的過程在 iPod 身上發生過,在 Parallelism 身上正在發生。
推動多核發展 英特爾開放TBB程序
據來自arstechnica網站的消息,英特爾(Intel)公司今天宣布開放多平臺Thread Building Blocks 2.0 (TBB)程序的模板資源,TBB是英特爾公司開發出來的一款針對多核處理器的程序,使用這個程序能夠讓開發出來的軟件更加高效的利用目前的雙核處理器和多核處理器,這對于多核處理器的推廣有著顯而易見的作用,隨著英特爾這次對TBB的開放,相信基于多核處理器的軟件開發工作將能變得更加便利,這也表明了英特爾在推廣多核處理器方面的決心,不久我們就可以感受到多核處理器帶給我們的高效性能優勢了。
據英特爾公司稱,TBB做為一款開發程序能夠讓程序開發人員很便利的利用多核處理器的優勢,它將多核處理器的多個核心抽象為一個個非常高效的可以同時運行的模塊,這樣程序開發人員就能通過最簡潔的思路來開發程序,而不用擔心由于核心的增加而大幅度增加程序編寫的難度和程序代碼的數量,而且利用TBB能夠優化多核心處理器的多線程優勢,讓軟件在運行過程中充分利用多核心提供的高性能。簡單的理解,TBB可以認為是一個多核編譯器,能夠通過這個編譯器定義你所需要的程序任務,這樣不管多核心處理器怎么發展,只要還是基于目前的物理架購,程序開發人員都能很便捷的開發出用戶需要的軟件。
據悉,TBB程序遵守GPL V2x協議,并將優先應用C++做為開發工具,而Java 和.NET版本的TBB程序目前英特爾還在評估當中,不過不久即將同樣開放。TBB程序在此之前是英特爾公司開發的一款商業軟件,根據不同的用戶,售價在599美元到1599美元之間。而現在英特爾將該程序完全開放,對于基于Windows操作系統和Linux操作系統的程序開發人員來說,要想開發出一款充分發揮多核處理器的高效軟件已經不再困難。這次對TBB程序的開放,只是英特爾一系列開放源程序項目中的一個,也是英特爾公司有史以來規模最大的開放源程序的項目。
posted on 2007-08-31 15:34
七星重劍 閱讀(5917)
評論(2) 編輯 收藏 引用 所屬分類:
Multi Threads