• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chaosuper85

            C++博客 首頁 新隨筆 聯系 聚合 管理
              118 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks
            今年12月的SD2.0大會,在“語言與工具”專場,我們邀請到多核編程專家周偉明先生,為開發者們詳細介紹“多核編程模式”。本刊記者就多核編程的相關知識對周偉明先生做了專訪,下面為采訪內容。 CSDN:請問,您是從什么時候開始關注多核編程技術的?為什么選擇這個做研究領域? 周偉明:從97年開始,我開始接觸多線程程序方面以及分布式計算機環境(DCE)方面的開發,之后接觸了多處理服務器方面的軟件開發,并對它懷有濃厚的興趣。到了2002年后,發現多核處理器已經成為大勢所趨,因此開始關注多核編程技術。 在我的職業生涯中,發現大多數程序員沒有掌握如何寫好多線程程序的基本技術。在多處理器的多線程編程中,比以往單核時代的多線程編程要求高得多,可以說多核編程是一門比較新鮮且富于挑戰的技術,同時它又能產生巨大的社會價值,所以選擇它做研究領域。 CSDN:請您談談,多核編程技術都包括哪些方面? 周偉明:從大的方面講,多核編程技術主要包括并行計算、共享資源分布式計算、任務分解與調度、Lock-Free編程等內容。其中共享資源分布式計算、任務分解與調度是最重要的內容,也是大多數程序員未接觸過的內容。許多并行算法都可以通過共享資源分布式計算、任務分解與調度來實現。 CSDN:您之前說過,“像使用內存一樣使用CPU”,能具體闡述下嗎? 周偉明:在多核編程時,很重要的一個需求就是要做到當硬件升級,CPU核數增加后,程序不用修改,即保證程序隨CPU核數增長的擴展性。“像使用內存一樣使用CPU”主要是針對計算量不足情況下的一種處理措施,因為創建線程存在開銷,計算量不足時,創建過多的線程不僅不能使程序運行得更快,甚至會使程序變慢,而且還會增加能源消耗。比如一段和創建一個線程的計算量相當的計算運行在8核CPU上,顯然不能使用8個硬件線程來運行它,只使用一個硬件線程就足夠了。 CSDN:您認為,多核編程模式有什么重要的意義嗎?您選擇這個作為今年SD大會的議題,是由于什么考慮? 周偉明:多核編程模式主要是提供一種多核并行與分布式編程的普遍方法,這些思想很容易被普通程序員甚至普通人理解和掌握。有了這些編程模式后,程序員不再需要去學習各種復雜的并行算法,它可以復用現有的串行算法,輕易地實現并行和分布式計算。 之所以把這個作為今年SD大會的議題,主要是因為個人覺得多核編程模式是多核編程技術的精華部分,希望能和大家一起分享。 CSDN:很多人認為多核編程技術,特別高深,不易學習,您怎么看待這個問題? 周偉明:也許是有些人把多核編程技術理解成了并行計算技術的緣故,加上近些年學術界對復雜度高得出奇的Lock-Free編程研究非常熱,致使認為它特別高深,學習難度高,非要達到計算機博士水準才能掌握。 實際上大音希聲、大道至簡,最實用的多核編程技術并不是那些復雜的并行算法和Lock-Free算法。最實用的多核編程技術往往只要用到一些最簡單的串行編程技術,然后使用一定的模式把它并行化。比如多核中的查找算法,僅僅用最簡單的有序數組的查找,就可以通過分布式數據結構模式把它并行化。 在多核編程模式中,也沒有用到任何高深的思想,相反它用到的思想卻是來自人類社會中最原始、最普遍、最簡單的一些東西,如貪婪、自私、偷竊等。這些思想普通人都可以理解,更不用說程序員了。 許多復雜的并行計算現在都可以通過新的方法來實現,在去年的SD大會上,Intel的市場總裁James Reinders就講過了用任務調度來實現并行計算的通用方法。比如要寫一個并行排序算法,程序員只要懂得如何寫串行的排序算法,就可以使用任務調度方法把它自動變成并行算法,并且這種通過任務調度實現的并行算法比傳統的并行算法性能更好。 值得慶幸的是,將簡單串行算法并行化的各種模式都可以寫成象標準庫一樣的東西給程序員使用。Intel公司就提供了一個開源項目TBB給大家使用。所以對于普通程序員來說,掌握多核編程技術并不是一件難事,只要有多線程編程基礎的程序員都可以掌握。當然,就像C++標準模板庫STL一樣,掌握其基本原理和使用它對每個程序員都不是難事,但是要自己去實現它并不是每個程序員能做到的。多核編程技術也一樣,普通程序員掌握其基本原理和使用它不是難事,當然要實現一個基礎庫有一定難度,不是所有的程序員有能力能做到的事。 CSDN:如果有網友想提升自己在多核編程方面的水平,您有什么建議?應該怎么學習?采用怎樣的步驟?需要掌握哪些工具或技術,應注意什么問題? 周偉明:要提高多核編程水平,首先要掌握多線程編程基礎技術和OpenMP編程技術,其次,要掌握多核處理器的一些特殊地方,如Cache方面的偽共享問題,原子操作等,這是做多核編程的基礎。 有了上面的基礎后,就可以開始學習如何將計算均攤到各個CPU核上的方法,這里主要涉及到并行計算、共享資源分布式計算、任務分解與調度方面的技術。 由于市面上暫時還缺乏共享資源分布式計算、任務分解與調度方面的書籍資料,所幸的是Intel的開源項目TBB中有一些共享資源分布式計算、任務分解與調度方面的源代碼。所以這方面的內容暫時可以通過Intel的開源項目TBB的源代碼去學習。當然也可以到ACM, IEEE, Elsevier里去找一些相關的論文看看。 并行計算方面的內容可以通過許多書籍以及一些這方面的開源項目去學習。由于可以通過任務調度的方法進行并行計算,因此對于普通程序員,這方面的內容并不用學很多,有所了解即可。 當然,還需要學習多線程調試測試方面的技術,這牽涉到代碼靜態分析方法,如何設計測試用例使程序中的問題暴露出來,如何調試定位問題等內容。也有些工具可以輔助程序員檢查程序中的錯誤,如Intel的C++編譯器里帶有一些檢查多線程程序錯誤的輔助工具。同時Intel的網站上還提供了能耗測試的工具可以檢查程序的能源消耗情況,可以幫助程序員進一步優化程序,寫出更環保的程序來。 如果要更深入的掌握多核編程技術,Lock-Free編程技術也是需要有一定了解的,在具有垃圾收集機制的編程環境中,Lock-Free編程技術在某些情況下有它的使用價值。學習Lock-Free編程技術并一定需要去使用它,而是通過它可以更好地理解多線程編程方面所面臨的復雜問題,對于提高程序員對多線程編程方面的理解和代碼質量會有一定的幫助。 在學習多核編程技術時,最重要的是掌握如何將計算均勻分攤到各個CPU核上的原理和方法,并不需要去死記一些算法。 CSDN:您能否介紹推薦一些多核編程方面的書籍? 周偉明:目前市面上專門關于多核編程的書較少,有大影響力的書籍幾乎沒有。雖然如此,但是還是有些書籍有很好的參考和借鑒價值。 《多核程序設計技術——通過軟件多線程提升性能》一書由Intel公司的工程師寫作而成,講解了Intel處理器相關的多線程基礎知識,同時也講解了一些OpenMP方面的編程知識,可以當作一本多線程方面的基礎參考書籍。 《Intel Threading Building Blocks》一書由Intel的市場總裁James Reinders寫作而成,由O’Reilly出版,詳細介紹了Intel的開源項目TBB庫的使用方法,唯一的不足是這本書沒有剖析其中的原理,也許是覺得代碼難度過高的原因。這本書在國內的購書網站上可以買到英文版的,不過價格比較高。 《多處理器編程的藝術》由一位美國大學教授和一位Sun實驗室的技術人員合著。這本書的學術性內容較強,重點內容為Lock-Free方面的編程技術,有較高的難度,對于想深入學習和使用Lock-Free編程技術的人員(特別是使用Java和C#編程語言的人員),不妨參考一下這本書的一些內容。這本書已經由國內出版社引進了英文版,可以在國內買到。 對于并行計算方面的書籍,國內已經出版了很多。有很多翻譯過來的,如《并行計算導論》、《并行計算綜論》、《并行程序設計》、《并行編程模式》、《MPI與OpenMP程序設計》、《并行處理基本原理》等。也有國內人原創的,如陳國良編著的《并行計算——結構?算法?編程》,《并行算法的設計與分析》,《并行算法實踐》等。請恕我不能一一列出,這些書可以作為并行算法方面的參考書籍,美中不足的是這些書都不是專門針對多核環境而寫的,所以普通程序員看了之后要把它變成多核環境中的程序也許會有一定難度。 對于多核程序調試測試方面的書籍,目前國內還沒有發現這方面專門的書籍。前面介紹的書籍中,有些書籍也談到了一些多核程序調試測試的方法。對于多線程程序的調試,《軟件調試》這本書中有些內容值得參考。對于如何設計測試用例、寫測試程序將程序中的問題暴露出來,雖有自夸之嫌,但還是要推薦大家不妨參考一下我寫的《軟件測試實踐》中的一些方法。 CSDN:聽說您最近在撰寫一本有關多核編程的書,這是怎樣的一本書?請簡單介紹一下。 周偉明:從去年6月開始,我就在使用全職時間寫作一本名為《多核計算與程序設計》的多核編程方面的書。 這本書的核心內容就是共享資源分布式計算、任務分解與調度方面的內容,這些內容需要使用今年將在SD大會上講的各種多核編程模式。同時也有一部分并行計算方面的內容,不過與以往的并行計算方面的書不同的是,這本書的并行計算方面的內容是專門針對多核環境的,如并行搜索、并行排序、并行數值計算等內容都會涉及到CPU核數的擴展性,CPU Cache的偽共享問題等多核相關的內容。 當然書中也介紹了一些多線程編程基礎知識、OpenMP編程基礎知識、Lock-Free編程基礎知識等基礎內容。 這本書目前正在出版社內進行編輯加工,如不出意外,明年4月份左右估計可以上市。 CSDN:對于今年的SD大會,您有什么期望或者祝福嗎? 周偉明:從去年的SD大會舉辦情況來看,它舉辦得非常成功,毫不夸張地說它已經成為了我國IT行業內影響力最大的一個技術盛會。非常好地促進了先進技術在我國軟件行業的交流和推廣,對提升我國軟件企業的技術水平起了很好的引導作用。 對于今年的SD大會,自然希望有更多的技術人員參加,有更多的各個專業領域的重量級的最先進技術在會上進行演講和交流,使之成為影響和提升中國軟件技術發展的一場盛會。 被采訪者簡介: 周偉明先生,畢業于上海交通大學,1994年開始從事專業軟件開發,曾工作于美國加州硅谷的DASCOM Inc公司(現為IBM的全資子公司)和華為技術有限公司等企業。在網絡安全軟件、服務端軟件、機器翻譯軟件、工具軟件、嵌入式系統等領域都擁有豐富的專業實踐經驗。近年來周偉明先生潛心研究多核編程技術,于2006年編著出版了國內第一本專門研究多任務情況下數據結構與算法的專著,獲得業界的好評。此后周偉明先生再接再厲,更加深入地研究多核程序設計中范圍更加廣泛的重要的主題,提出多核程序設計的新觀念——“象使用內存一樣使用CPU”,并且致力與編寫一本新的多核編程技術著作,將自己的研究成果和技術思路總結出來。
            posted on 2010-02-05 20:04 chaosuper 閱讀(593) 評論(0)  編輯 收藏 引用
            精品人妻久久久久久888| 久久精品无码免费不卡| 亚洲精品国产字幕久久不卡| 午夜天堂精品久久久久| 久久精品国产福利国产秒| 久久青青草原精品影院| 久久这里只有精品视频99| 伊人久久大香线蕉av不变影院| 久久精品国产亚洲AV无码偷窥| 丰满少妇人妻久久久久久4| 无码八A片人妻少妇久久| 热久久国产精品| 久久久SS麻豆欧美国产日韩| 精品精品国产自在久久高清| 欧洲国产伦久久久久久久| www.久久热.com| 久久狠狠爱亚洲综合影院| 久久av高潮av无码av喷吹| 久久精品中文闷骚内射| 亚洲欧美日韩久久精品第一区| 国产99久久久久久免费看| 久久久久久国产精品无码超碰| 久久有码中文字幕| 色综合久久久久网| 国产V综合V亚洲欧美久久| 色播久久人人爽人人爽人人片AV| 国产99久久久久久免费看| 成人免费网站久久久| 国内精品久久久久影院日本| 伊人久久大香线焦AV综合影院| 久久久精品国产Sm最大网站| 日本精品久久久中文字幕| 国产精品毛片久久久久久久| 久久精品国产欧美日韩| 香蕉久久夜色精品国产小说| 成人资源影音先锋久久资源网| 久久夜色精品国产网站| 久久久久亚洲AV无码麻豆| 国产产无码乱码精品久久鸭| 精品久久久久久久久午夜福利| 无码久久精品国产亚洲Av影片 |