• <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++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              118 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks
            今年12月的SD2.0大會(huì),在“語言與工具”專場(chǎng),我們邀請(qǐng)到多核編程專家周偉明先生,為開發(fā)者們?cè)敿?xì)介紹“多核編程模式”。本刊記者就多核編程的相關(guān)知識(shí)對(duì)周偉明先生做了專訪,下面為采訪內(nèi)容。 CSDN:請(qǐng)問,您是從什么時(shí)候開始關(guān)注多核編程技術(shù)的?為什么選擇這個(gè)做研究領(lǐng)域? 周偉明:從97年開始,我開始接觸多線程程序方面以及分布式計(jì)算機(jī)環(huán)境(DCE)方面的開發(fā),之后接觸了多處理服務(wù)器方面的軟件開發(fā),并對(duì)它懷有濃厚的興趣。到了2002年后,發(fā)現(xiàn)多核處理器已經(jīng)成為大勢(shì)所趨,因此開始關(guān)注多核編程技術(shù)。 在我的職業(yè)生涯中,發(fā)現(xiàn)大多數(shù)程序員沒有掌握如何寫好多線程程序的基本技術(shù)。在多處理器的多線程編程中,比以往單核時(shí)代的多線程編程要求高得多,可以說多核編程是一門比較新鮮且富于挑戰(zhàn)的技術(shù),同時(shí)它又能產(chǎn)生巨大的社會(huì)價(jià)值,所以選擇它做研究領(lǐng)域。 CSDN:請(qǐng)您談?wù)劊嗪司幊碳夹g(shù)都包括哪些方面? 周偉明:從大的方面講,多核編程技術(shù)主要包括并行計(jì)算、共享資源分布式計(jì)算、任務(wù)分解與調(diào)度、Lock-Free編程等內(nèi)容。其中共享資源分布式計(jì)算、任務(wù)分解與調(diào)度是最重要的內(nèi)容,也是大多數(shù)程序員未接觸過的內(nèi)容。許多并行算法都可以通過共享資源分布式計(jì)算、任務(wù)分解與調(diào)度來實(shí)現(xiàn)。 CSDN:您之前說過,“像使用內(nèi)存一樣使用CPU”,能具體闡述下嗎? 周偉明:在多核編程時(shí),很重要的一個(gè)需求就是要做到當(dāng)硬件升級(jí),CPU核數(shù)增加后,程序不用修改,即保證程序隨CPU核數(shù)增長(zhǎng)的擴(kuò)展性。“像使用內(nèi)存一樣使用CPU”主要是針對(duì)計(jì)算量不足情況下的一種處理措施,因?yàn)閯?chuàng)建線程存在開銷,計(jì)算量不足時(shí),創(chuàng)建過多的線程不僅不能使程序運(yùn)行得更快,甚至?xí)钩绦蜃兟疫€會(huì)增加能源消耗。比如一段和創(chuàng)建一個(gè)線程的計(jì)算量相當(dāng)?shù)挠?jì)算運(yùn)行在8核CPU上,顯然不能使用8個(gè)硬件線程來運(yùn)行它,只使用一個(gè)硬件線程就足夠了。 CSDN:您認(rèn)為,多核編程模式有什么重要的意義嗎?您選擇這個(gè)作為今年SD大會(huì)的議題,是由于什么考慮? 周偉明:多核編程模式主要是提供一種多核并行與分布式編程的普遍方法,這些思想很容易被普通程序員甚至普通人理解和掌握。有了這些編程模式后,程序員不再需要去學(xué)習(xí)各種復(fù)雜的并行算法,它可以復(fù)用現(xiàn)有的串行算法,輕易地實(shí)現(xiàn)并行和分布式計(jì)算。 之所以把這個(gè)作為今年SD大會(huì)的議題,主要是因?yàn)閭€(gè)人覺得多核編程模式是多核編程技術(shù)的精華部分,希望能和大家一起分享。 CSDN:很多人認(rèn)為多核編程技術(shù),特別高深,不易學(xué)習(xí),您怎么看待這個(gè)問題? 周偉明:也許是有些人把多核編程技術(shù)理解成了并行計(jì)算技術(shù)的緣故,加上近些年學(xué)術(shù)界對(duì)復(fù)雜度高得出奇的Lock-Free編程研究非常熱,致使認(rèn)為它特別高深,學(xué)習(xí)難度高,非要達(dá)到計(jì)算機(jī)博士水準(zhǔn)才能掌握。 實(shí)際上大音希聲、大道至簡(jiǎn),最實(shí)用的多核編程技術(shù)并不是那些復(fù)雜的并行算法和Lock-Free算法。最實(shí)用的多核編程技術(shù)往往只要用到一些最簡(jiǎn)單的串行編程技術(shù),然后使用一定的模式把它并行化。比如多核中的查找算法,僅僅用最簡(jiǎn)單的有序數(shù)組的查找,就可以通過分布式數(shù)據(jù)結(jié)構(gòu)模式把它并行化。 在多核編程模式中,也沒有用到任何高深的思想,相反它用到的思想?yún)s是來自人類社會(huì)中最原始、最普遍、最簡(jiǎn)單的一些東西,如貪婪、自私、偷竊等。這些思想普通人都可以理解,更不用說程序員了。 許多復(fù)雜的并行計(jì)算現(xiàn)在都可以通過新的方法來實(shí)現(xiàn),在去年的SD大會(huì)上,Intel的市場(chǎng)總裁James Reinders就講過了用任務(wù)調(diào)度來實(shí)現(xiàn)并行計(jì)算的通用方法。比如要寫一個(gè)并行排序算法,程序員只要懂得如何寫串行的排序算法,就可以使用任務(wù)調(diào)度方法把它自動(dòng)變成并行算法,并且這種通過任務(wù)調(diào)度實(shí)現(xiàn)的并行算法比傳統(tǒng)的并行算法性能更好。 值得慶幸的是,將簡(jiǎn)單串行算法并行化的各種模式都可以寫成象標(biāo)準(zhǔn)庫(kù)一樣的東西給程序員使用。Intel公司就提供了一個(gè)開源項(xiàng)目TBB給大家使用。所以對(duì)于普通程序員來說,掌握多核編程技術(shù)并不是一件難事,只要有多線程編程基礎(chǔ)的程序員都可以掌握。當(dāng)然,就像C++標(biāo)準(zhǔn)模板庫(kù)STL一樣,掌握其基本原理和使用它對(duì)每個(gè)程序員都不是難事,但是要自己去實(shí)現(xiàn)它并不是每個(gè)程序員能做到的。多核編程技術(shù)也一樣,普通程序員掌握其基本原理和使用它不是難事,當(dāng)然要實(shí)現(xiàn)一個(gè)基礎(chǔ)庫(kù)有一定難度,不是所有的程序員有能力能做到的事。 CSDN:如果有網(wǎng)友想提升自己在多核編程方面的水平,您有什么建議?應(yīng)該怎么學(xué)習(xí)?采用怎樣的步驟?需要掌握哪些工具或技術(shù),應(yīng)注意什么問題? 周偉明:要提高多核編程水平,首先要掌握多線程編程基礎(chǔ)技術(shù)和OpenMP編程技術(shù),其次,要掌握多核處理器的一些特殊地方,如Cache方面的偽共享問題,原子操作等,這是做多核編程的基礎(chǔ)。 有了上面的基礎(chǔ)后,就可以開始學(xué)習(xí)如何將計(jì)算均攤到各個(gè)CPU核上的方法,這里主要涉及到并行計(jì)算、共享資源分布式計(jì)算、任務(wù)分解與調(diào)度方面的技術(shù)。 由于市面上暫時(shí)還缺乏共享資源分布式計(jì)算、任務(wù)分解與調(diào)度方面的書籍資料,所幸的是Intel的開源項(xiàng)目TBB中有一些共享資源分布式計(jì)算、任務(wù)分解與調(diào)度方面的源代碼。所以這方面的內(nèi)容暫時(shí)可以通過Intel的開源項(xiàng)目TBB的源代碼去學(xué)習(xí)。當(dāng)然也可以到ACM, IEEE, Elsevier里去找一些相關(guān)的論文看看。 并行計(jì)算方面的內(nèi)容可以通過許多書籍以及一些這方面的開源項(xiàng)目去學(xué)習(xí)。由于可以通過任務(wù)調(diào)度的方法進(jìn)行并行計(jì)算,因此對(duì)于普通程序員,這方面的內(nèi)容并不用學(xué)很多,有所了解即可。 當(dāng)然,還需要學(xué)習(xí)多線程調(diào)試測(cè)試方面的技術(shù),這牽涉到代碼靜態(tài)分析方法,如何設(shè)計(jì)測(cè)試用例使程序中的問題暴露出來,如何調(diào)試定位問題等內(nèi)容。也有些工具可以輔助程序員檢查程序中的錯(cuò)誤,如Intel的C++編譯器里帶有一些檢查多線程程序錯(cuò)誤的輔助工具。同時(shí)Intel的網(wǎng)站上還提供了能耗測(cè)試的工具可以檢查程序的能源消耗情況,可以幫助程序員進(jìn)一步優(yōu)化程序,寫出更環(huán)保的程序來。 如果要更深入的掌握多核編程技術(shù),Lock-Free編程技術(shù)也是需要有一定了解的,在具有垃圾收集機(jī)制的編程環(huán)境中,Lock-Free編程技術(shù)在某些情況下有它的使用價(jià)值。學(xué)習(xí)Lock-Free編程技術(shù)并一定需要去使用它,而是通過它可以更好地理解多線程編程方面所面臨的復(fù)雜問題,對(duì)于提高程序員對(duì)多線程編程方面的理解和代碼質(zhì)量會(huì)有一定的幫助。 在學(xué)習(xí)多核編程技術(shù)時(shí),最重要的是掌握如何將計(jì)算均勻分?jǐn)偟礁鱾€(gè)CPU核上的原理和方法,并不需要去死記一些算法。 CSDN:您能否介紹推薦一些多核編程方面的書籍? 周偉明:目前市面上專門關(guān)于多核編程的書較少,有大影響力的書籍幾乎沒有。雖然如此,但是還是有些書籍有很好的參考和借鑒價(jià)值。 《多核程序設(shè)計(jì)技術(shù)——通過軟件多線程提升性能》一書由Intel公司的工程師寫作而成,講解了Intel處理器相關(guān)的多線程基礎(chǔ)知識(shí),同時(shí)也講解了一些OpenMP方面的編程知識(shí),可以當(dāng)作一本多線程方面的基礎(chǔ)參考書籍。 《Intel Threading Building Blocks》一書由Intel的市場(chǎng)總裁James Reinders寫作而成,由O’Reilly出版,詳細(xì)介紹了Intel的開源項(xiàng)目TBB庫(kù)的使用方法,唯一的不足是這本書沒有剖析其中的原理,也許是覺得代碼難度過高的原因。這本書在國(guó)內(nèi)的購(gòu)書網(wǎng)站上可以買到英文版的,不過價(jià)格比較高。 《多處理器編程的藝術(shù)》由一位美國(guó)大學(xué)教授和一位Sun實(shí)驗(yàn)室的技術(shù)人員合著。這本書的學(xué)術(shù)性內(nèi)容較強(qiáng),重點(diǎn)內(nèi)容為L(zhǎng)ock-Free方面的編程技術(shù),有較高的難度,對(duì)于想深入學(xué)習(xí)和使用Lock-Free編程技術(shù)的人員(特別是使用Java和C#編程語言的人員),不妨參考一下這本書的一些內(nèi)容。這本書已經(jīng)由國(guó)內(nèi)出版社引進(jìn)了英文版,可以在國(guó)內(nèi)買到。 對(duì)于并行計(jì)算方面的書籍,國(guó)內(nèi)已經(jīng)出版了很多。有很多翻譯過來的,如《并行計(jì)算導(dǎo)論》、《并行計(jì)算綜論》、《并行程序設(shè)計(jì)》、《并行編程模式》、《MPI與OpenMP程序設(shè)計(jì)》、《并行處理基本原理》等。也有國(guó)內(nèi)人原創(chuàng)的,如陳國(guó)良編著的《并行計(jì)算——結(jié)構(gòu)?算法?編程》,《并行算法的設(shè)計(jì)與分析》,《并行算法實(shí)踐》等。請(qǐng)恕我不能一一列出,這些書可以作為并行算法方面的參考書籍,美中不足的是這些書都不是專門針對(duì)多核環(huán)境而寫的,所以普通程序員看了之后要把它變成多核環(huán)境中的程序也許會(huì)有一定難度。 對(duì)于多核程序調(diào)試測(cè)試方面的書籍,目前國(guó)內(nèi)還沒有發(fā)現(xiàn)這方面專門的書籍。前面介紹的書籍中,有些書籍也談到了一些多核程序調(diào)試測(cè)試的方法。對(duì)于多線程程序的調(diào)試,《軟件調(diào)試》這本書中有些內(nèi)容值得參考。對(duì)于如何設(shè)計(jì)測(cè)試用例、寫測(cè)試程序?qū)⒊绦蛑械膯栴}暴露出來,雖有自夸之嫌,但還是要推薦大家不妨參考一下我寫的《軟件測(cè)試實(shí)踐》中的一些方法。 CSDN:聽說您最近在撰寫一本有關(guān)多核編程的書,這是怎樣的一本書?請(qǐng)簡(jiǎn)單介紹一下。 周偉明:從去年6月開始,我就在使用全職時(shí)間寫作一本名為《多核計(jì)算與程序設(shè)計(jì)》的多核編程方面的書。 這本書的核心內(nèi)容就是共享資源分布式計(jì)算、任務(wù)分解與調(diào)度方面的內(nèi)容,這些內(nèi)容需要使用今年將在SD大會(huì)上講的各種多核編程模式。同時(shí)也有一部分并行計(jì)算方面的內(nèi)容,不過與以往的并行計(jì)算方面的書不同的是,這本書的并行計(jì)算方面的內(nèi)容是專門針對(duì)多核環(huán)境的,如并行搜索、并行排序、并行數(shù)值計(jì)算等內(nèi)容都會(huì)涉及到CPU核數(shù)的擴(kuò)展性,CPU Cache的偽共享問題等多核相關(guān)的內(nèi)容。 當(dāng)然書中也介紹了一些多線程編程基礎(chǔ)知識(shí)、OpenMP編程基礎(chǔ)知識(shí)、Lock-Free編程基礎(chǔ)知識(shí)等基礎(chǔ)內(nèi)容。 這本書目前正在出版社內(nèi)進(jìn)行編輯加工,如不出意外,明年4月份左右估計(jì)可以上市。 CSDN:對(duì)于今年的SD大會(huì),您有什么期望或者祝福嗎? 周偉明:從去年的SD大會(huì)舉辦情況來看,它舉辦得非常成功,毫不夸張地說它已經(jīng)成為了我國(guó)IT行業(yè)內(nèi)影響力最大的一個(gè)技術(shù)盛會(huì)。非常好地促進(jìn)了先進(jìn)技術(shù)在我國(guó)軟件行業(yè)的交流和推廣,對(duì)提升我國(guó)軟件企業(yè)的技術(shù)水平起了很好的引導(dǎo)作用。 對(duì)于今年的SD大會(huì),自然希望有更多的技術(shù)人員參加,有更多的各個(gè)專業(yè)領(lǐng)域的重量級(jí)的最先進(jìn)技術(shù)在會(huì)上進(jìn)行演講和交流,使之成為影響和提升中國(guó)軟件技術(shù)發(fā)展的一場(chǎng)盛會(huì)。 被采訪者簡(jiǎn)介: 周偉明先生,畢業(yè)于上海交通大學(xué),1994年開始從事專業(yè)軟件開發(fā),曾工作于美國(guó)加州硅谷的DASCOM Inc公司(現(xiàn)為IBM的全資子公司)和華為技術(shù)有限公司等企業(yè)。在網(wǎng)絡(luò)安全軟件、服務(wù)端軟件、機(jī)器翻譯軟件、工具軟件、嵌入式系統(tǒng)等領(lǐng)域都擁有豐富的專業(yè)實(shí)踐經(jīng)驗(yàn)。近年來周偉明先生潛心研究多核編程技術(shù),于2006年編著出版了國(guó)內(nèi)第一本專門研究多任務(wù)情況下數(shù)據(jù)結(jié)構(gòu)與算法的專著,獲得業(yè)界的好評(píng)。此后周偉明先生再接再厲,更加深入地研究多核程序設(shè)計(jì)中范圍更加廣泛的重要的主題,提出多核程序設(shè)計(jì)的新觀念——“象使用內(nèi)存一樣使用CPU”,并且致力與編寫一本新的多核編程技術(shù)著作,將自己的研究成果和技術(shù)思路總結(jié)出來。
            posted on 2010-02-05 20:04 chaosuper 閱讀(594) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            欧美亚洲国产精品久久蜜芽| 亚洲国产精品婷婷久久| 久久久亚洲欧洲日产国码二区 | 奇米影视7777久久精品人人爽| 久久国产精品成人免费| 久久99精品国产自在现线小黄鸭| 亚洲精品美女久久久久99| 久久天天躁狠狠躁夜夜avapp| 日韩电影久久久被窝网| 手机看片久久高清国产日韩| 久久午夜福利电影| 色99久久久久高潮综合影院| 色悠久久久久久久综合网| 伊人 久久 精品| 久久香综合精品久久伊人| 亚洲色大成网站WWW久久九九| 麻豆精品久久久久久久99蜜桃| 久久综合亚洲色HEZYO社区| 久久久精品国产免大香伊| 国产69精品久久久久9999APGF | 久久久久女人精品毛片| 精品综合久久久久久888蜜芽| 国产一区二区三区久久| 18岁日韩内射颜射午夜久久成人 | 亚洲国产精品久久久久婷婷软件 | 久久亚洲欧美日本精品| 久久亚洲高清观看| 久久久久久久久久免免费精品 | 97精品依人久久久大香线蕉97| 久久天堂AV综合合色蜜桃网 | 久久精品中文无码资源站| 久久精品成人免费网站| 老司机午夜网站国内精品久久久久久久久 | 无码精品久久久久久人妻中字| 99久久99久久久精品齐齐| 狠狠色综合久久久久尤物| 久久人人爽人人爽人人片AV东京热| 久久99国产综合精品女同| 久久露脸国产精品| 69久久夜色精品国产69| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 |