• <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>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>

            以下為截止2009321日前發(fā)布在本人博客中的多核相關(guān)的文章匯總,這些文章大部分摘自于我寫的《多核計(jì)算與程序設(shè)計(jì)》一書。現(xiàn)將這些文章分類匯總,方便大家閱讀。

            后續(xù)如果博客中繼續(xù)發(fā)布了多核相關(guān)的文章,那么本文章將會(huì)被更新。如果對(duì)多核編程技術(shù)非常感興趣的話,可以考慮將這篇文章加入您的瀏覽器收藏夾中,也歡迎您將這篇文章推薦給您的朋友。

            一、基礎(chǔ)篇

            1多核編程的幾個(gè)難題及其應(yīng)對(duì)策略

            主要講解多核編程時(shí)的串行化方面的難題及其應(yīng)對(duì)策略。閱讀全文

            2多核編程中的鎖競(jìng)爭(zhēng)難題

            鎖競(jìng)爭(zhēng)會(huì)導(dǎo)致加速系數(shù)隨CPU核數(shù)增多而下降的現(xiàn)象。核數(shù)增加到128時(shí),加速系數(shù)只有0.78,還不如在單核CPU上運(yùn)行的速度。 S(p) = (t +1)/ (p + t/p) = p*(t+1) / (p*p+t) (鎖競(jìng)爭(zhēng)下的加速系數(shù)公式) 。閱讀全文

            3多核編程中的負(fù)載平衡難題

            負(fù)載平衡的難度與CPU的核數(shù)成正比,CPU核數(shù)越多,負(fù)載劃分的難度就越大。 閱讀全文 

            二、OpenMP專題

            1OpenMP并行程序設(shè)計(jì)(一)

            介紹OpenMP程序在并行計(jì)算時(shí)的效率,在雙核CPU上效率增加了整整一倍。 閱讀全

            2OpenMP并行程序設(shè)計(jì)(二)

            1fork/join并行執(zhí)行模式的概念 2OpenMP指令和庫函數(shù)介紹 3parallel 指令的用法 4for指令的使用方法 5 sectionssection指令的用法。閱讀全文

            3OpenMP中的數(shù)據(jù)處理子句

            本文主要介紹了OpenMP中的privatefirstprivatelastprivatethreadprivatereductioncopyincopyprivate等數(shù)據(jù)處理子句的用法。 閱讀全文

            4OpenMP中的任務(wù)調(diào)度

            本文主要介紹了OpenMP中任務(wù)調(diào)度子句schedule的使用方法。閱讀全文

            5OpenMP創(chuàng)建線程中的鎖及原子操作性能比較

            主要比較了原子操作,Windows CriticalSection OpenMP庫帶的鎖在單任務(wù)運(yùn)行情況下和多任務(wù)運(yùn)行情況下的性能情況,在多核CPU上,多任務(wù)的鎖競(jìng)爭(zhēng)花費(fèi)的時(shí)間是單任務(wù)時(shí)的鎖運(yùn)行花費(fèi)時(shí)間的18倍。鎖競(jìng)爭(zhēng)帶來的效率下降完全出乎意料之外,由此也可見多核編程和單核多任務(wù)編程是有很大區(qū)別的。 閱讀全文

            6OpenMP程序設(shè)計(jì)的兩個(gè)小技巧

            講述了如何動(dòng)態(tài)設(shè)置線程數(shù)量以適應(yīng)硬件和軟件的擴(kuò)展性,如何將嵌套循環(huán)并行化的技巧。 閱讀全文

            三、性能篇

            1雙核CPU上的快速排序效率

            在雙核CPU上運(yùn)行后,打印出花費(fèi)的時(shí)間為 234 ms , 單任務(wù)版的快速排序函數(shù)約需406ms左右,并行運(yùn)行效率為:406/2×234 = 86.7% 左右。運(yùn)行速度快了172ms閱讀全文

            2多核系統(tǒng)中三種典型鎖競(jìng)爭(zhēng)的加速比分析

            本文主要討論了固定式鎖競(jìng)爭(zhēng)、隨機(jī)鎖競(jìng)爭(zhēng)、分布式鎖競(jìng)爭(zhēng)三種典型鎖競(jìng)爭(zhēng)情況下的加速比,并分析了任務(wù)粒度因子和鎖粒度因子對(duì)加速比的影響。結(jié)論: 分布式鎖競(jìng)爭(zhēng)加速比隨CPU核數(shù)成正比,可以達(dá)到和單核多任務(wù)時(shí)相當(dāng)?shù)男阅埽嵌嗪司幊痰陌l(fā)展方向。 閱讀全文

            3無鎖編程與分布式編程那個(gè)更適合多核CPU

            本文重點(diǎn)比較了無鎖編程和分布式鎖競(jìng)爭(zhēng)的性能,無鎖(原子操作)實(shí)際上是一種細(xì)粒度鎖。然后又從實(shí)現(xiàn)的功能,程序員掌握難易程度,現(xiàn)有軟件的移植等方面進(jìn)行了比較,得出結(jié)論:無鎖編程遠(yuǎn)不如分布式編程。分布式編程更適合多核CPU系統(tǒng)。 閱讀全文

            四、多核編程模式專題

            1多核編程中的線程分組競(jìng)爭(zhēng)模式

            討論了使用任務(wù)分組鎖競(jìng)爭(zhēng)方式來消除鎖競(jìng)爭(zhēng)導(dǎo)致的CPU饑餓現(xiàn)象,隊(duì)列池就是任務(wù)分組競(jìng)爭(zhēng)的一個(gè)非常好的實(shí)踐任務(wù)分組競(jìng)爭(zhēng)模式相對(duì)于無鎖編程具有更好的優(yōu)勢(shì)。 閱讀全文

            2多核編程中的線程隨機(jī)競(jìng)爭(zhēng)模式的概率分析

            本文主要分析了多個(gè)任務(wù)在隨機(jī)分布式鎖競(jìng)爭(zhēng)的情況下,有不少于CPU核數(shù)個(gè)數(shù)的任務(wù)在運(yùn)行的概率。然后將隨機(jī)競(jìng)爭(zhēng)和無鎖編程的性能進(jìn)行了理論上的比較。閱讀全文

            3多核編程中的條件同步模式

            本文講解了一種減少鎖使用的方法,將每次都加鎖改為滿足一定條件時(shí)才加鎖,非常適合具有狀態(tài)機(jī)性質(zhì)的場(chǎng)合使用。 閱讀全文

            五、多核數(shù)據(jù)結(jié)構(gòu)與算法專題

            1多核分布式隊(duì)列的實(shí)現(xiàn):偷與自私的運(yùn)用

            本文講述了多核系統(tǒng)中分布式隊(duì)列的實(shí)現(xiàn)方法,所謂分布式隊(duì)列指的是每個(gè)線程除了可以訪問線程池外還自動(dòng)擁有一個(gè)本地隊(duì)列。實(shí)現(xiàn)分布式隊(duì)列的基本方法就是自私閱讀全文

            2多核查找-順序查找也瘋狂

            用 數(shù)組進(jìn)行查找,由于其插入和刪除需要按順序進(jìn)行,需要移動(dòng)較多的數(shù)據(jù),對(duì)于大數(shù)據(jù)量的查找是無法使用的。然而,在多核時(shí)代,一切都改變了,大數(shù)據(jù)量的查找 結(jié)構(gòu)也可以用數(shù)組來實(shí)現(xiàn)。并且用數(shù)組實(shí)現(xiàn)的大數(shù)據(jù)量查找結(jié)構(gòu)有著比其他查找結(jié)構(gòu)更明顯的優(yōu)勢(shì):效率高、內(nèi)存占用少、并且容易避免偽共享問題。 閱讀全文

            3多核中的并行前綴和計(jì)算

            前綴和計(jì)算在并行計(jì)算中很有用,因?yàn)樵谔幚碡?fù)載平衡問題時(shí),經(jīng)常需要將若干段數(shù)據(jù)重新平分,而計(jì)算前綴和通常是一種有效的將數(shù)據(jù)平分的方法。 閱讀全文

            六、多核編程思想專題

            1多核新觀念-象使用內(nèi)存一樣使用CPU

            象使用內(nèi)存一樣使用CPU閱讀全文

            2老子”是偉大的多核計(jì)算科學(xué)家

            本文主要論述道家的小國(guó)寡民無為”“大道自然等思想與多核計(jì)算中使用的思想的異曲同工之處,給出了道家思想在多核計(jì)算中的實(shí)踐實(shí)例分析。大道自然,貪心自私偷竊這些大自然賦給人類的自然力量,在多核計(jì)算中得到了廣泛的使用。 閱讀全文

            3多核編程的四層境界

            從先天方法策略、目標(biāo)需求評(píng)價(jià)、本質(zhì)根源保障、算法實(shí)現(xiàn)執(zhí)行四個(gè)層面闡述多核計(jì)算的含義    閱讀全文

            4高房?jī)r(jià)與多核分布式計(jì)算

            本文主要從多核計(jì)算的角度來論述高房?jī)r(jià)問題及其對(duì)社會(huì)的影響,并給出了高房?jī)r(jià)問題的最終解決措施。 閱讀全文

            5道家·老子的算法思想分析

            將 道家老子的思想與軟件中的思想進(jìn)行對(duì)比分析,得出結(jié)論,道家追求穩(wěn)定可靠性。所以歷代在撥亂反正時(shí)期,用的都是道家思想。歷史上最典型的三個(gè)朝代漢、唐、 明為例,漢朝時(shí)張良等人都是好黃老之術(shù)(也就是道家思想),唐朝的宰相魏征也是道家人物,明朝的劉伯溫也是屬于道家人物。 閱讀全文

            6屈原·漁父的算法追求

            屈原與漁父兩種不同的思想,相當(dāng)于軟件中的兩種不同算法思想。世人皆濁,眾人皆醉可以理解為軟件運(yùn)行的場(chǎng)景。  閱讀全文

             

            更多的多核相關(guān)的資源,可以訪問:

            1Intel軟件社區(qū)多核論壇:http://forum.csdn.net/Intel/IntelMulti-core/

            2Intel的博客:http://softwareblogs-zho.intel.com/

            關(guān)于多核相關(guān)的書籍介紹可以參考下面這篇文章:

            多核編程高處并不”,文章地址: http://news.csdn.net/n/20081107/120632.html

            這篇文章里有我對(duì)現(xiàn)在市面上有關(guān)多核編程和并行計(jì)算書籍的一個(gè)點(diǎn)評(píng)。可以給大家購(gòu)買書籍作為一個(gè)參考。

            多核相關(guān)的開源項(xiàng)目介紹:

            1、Intel 開源項(xiàng)目TBB庫,鏈接:http://www.threadingbuildingblocks.org/

            這是一個(gè)專門針對(duì)多核的開源項(xiàng)目,包含一些常見的多核數(shù)據(jù)結(jié)構(gòu)與算法,如分段鎖的哈希表、分布式內(nèi)存管理、動(dòng)態(tài)任務(wù)調(diào)度器等,其中最重要的一個(gè)是動(dòng)態(tài)任務(wù)調(diào)度器,可以使用動(dòng)態(tài)任務(wù)調(diào)度器將串行算法自動(dòng)變成并行算法,免去程序員學(xué)習(xí)并行算法之苦。

            TBB開源項(xiàng)目的使用方法詳見O’Reilly出版的James Reinders的《Intel Threading Building Blocks》一書,如果要了解它的實(shí)現(xiàn)原理和方法,可以參考我寫的《多核計(jì)算與程序設(shè)計(jì)》一書。

            2Capi開源項(xiàng)目,鏈接:http://gforge.osdn.net.cn/projects/capi 

            這個(gè)項(xiàng)目是我開發(fā)的一個(gè)針對(duì)多核的數(shù)據(jù)結(jié)構(gòu)與算法庫,提供了許多實(shí)用的適應(yīng)多核系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與算法,主要的功能有以下一些:

            1)各種并行算法,如并行歸并排序、并行基數(shù)排序等并行排序算法;并行順序搜索及終止檢測(cè)算法、并行Dijikstra最短路徑算法等并行搜索算法;并行前綴和、并行矩陣乘法等并行數(shù)值算法;等等。

            2)分布式查找算法,如分段鎖的哈希表、動(dòng)態(tài)分布式哈希數(shù)組、動(dòng)態(tài)哈希AVL樹等。

            3)搶奪式內(nèi)存管理算法,即使在分配和釋放共享內(nèi)存時(shí),也幾乎不需要使用鎖。

            4)基于偷取和自私的分布式隊(duì)列,用分布式隊(duì)列實(shí)現(xiàn)的兩種動(dòng)態(tài)任務(wù)調(diào)度器、以及用動(dòng)態(tài)嵌套任務(wù)調(diào)度器實(shí)現(xiàn)的Parallel_For()功能,用Parallel_For()實(shí)現(xiàn)的并行快速排序算法、并行歸并算法等。

            5)任務(wù)圖調(diào)度器,可以用來實(shí)現(xiàn)對(duì)有依賴關(guān)系的執(zhí)行塊的并行計(jì)算。

            這個(gè)開源項(xiàng)目和TBB相比起來各有特色,TBB庫的優(yōu)勢(shì)在于它是商業(yè)化的開源項(xiàng)目,代碼經(jīng)過優(yōu)化和相對(duì)完善的測(cè)試。CAPI的代碼專門為學(xué)習(xí)而設(shè)計(jì),代碼沒有經(jīng)過優(yōu)化,代碼簡(jiǎn)單易懂,易于學(xué)習(xí),并且實(shí)現(xiàn)了比TBB庫更多的數(shù)據(jù)結(jié)構(gòu)與算法容器,有一些創(chuàng)新的數(shù)據(jù)結(jié)構(gòu)與算法在里面。其缺點(diǎn)是,現(xiàn)在發(fā)布的版本為0.2版本,如果進(jìn)行商業(yè)使用需要自行增加測(cè)試用例進(jìn)行更完善的測(cè)試和優(yōu)化。

            CAPI開源項(xiàng)目的實(shí)現(xiàn)原理和使用方法詳見我寫的《多核計(jì)算與程序設(shè)計(jì)》一書。

            posted on 2011-03-20 14:46 小果子 閱讀(593) 評(píng)論(0)  編輯 收藏 引用

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


            91精品国产综合久久精品| 久久精品视频网| 日本WV一本一道久久香蕉| 久久人妻AV中文字幕| 久久国产精品一区二区| 99久久国产综合精品网成人影院| 国产精品免费久久久久久久久| 无码任你躁久久久久久老妇| 亚洲综合伊人久久综合| 一本大道加勒比久久综合| 精品国产乱码久久久久久人妻| 999久久久免费精品国产| 理论片午午伦夜理片久久| 男女久久久国产一区二区三区| 久久97久久97精品免视看| 日韩精品久久久久久免费| 久久se精品一区二区影院| 无码AV中文字幕久久专区| 武侠古典久久婷婷狼人伊人| 国内精品久久人妻互换| 奇米影视7777久久精品人人爽| 亚洲国产精品婷婷久久| 久久久久av无码免费网| 久久伊人五月天论坛| 久久久久久久综合日本亚洲| 无码人妻精品一区二区三区久久久| 国産精品久久久久久久| 久久电影网一区| 亚洲国产精品无码久久久秋霞2| 久久久久噜噜噜亚洲熟女综合| 99国产欧美精品久久久蜜芽| 久久综合亚洲欧美成人| 久久久久亚洲国产| 无码任你躁久久久久久久| 久久免费国产精品| 国产成人精品久久综合| 久久综合久久综合九色| 国产精品久久精品| 久久综合综合久久97色| 久久综合丁香激情久久| 国产91久久综合|