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

            進(jìn)入多核時(shí)代后,必須使用多線程編寫程序才能讓各個(gè)CPU核得到利用。在單核時(shí)代,通常使用操作系統(tǒng)提供的API來(lái)創(chuàng)建線程,然而,在多核系統(tǒng)中,情況發(fā)生了很大的變化, 如果仍然使用操作系統(tǒng)API來(lái)創(chuàng)建線程會(huì)遇到一些問(wèn)題。具體來(lái)說(shuō),有以下三個(gè)問(wèn)題:

            1)CPU核數(shù)擴(kuò)展性問(wèn)題

            多 核編程需要考慮程序性能隨CPU核數(shù)的擴(kuò)展性,即硬件升級(jí)到更多核后,能夠不修改程序就讓程序性能增長(zhǎng),這要求程序中創(chuàng)建的線程數(shù)量需要隨CPU核數(shù)變 化,不能創(chuàng)建固定數(shù)量的線程,否則在CPU核數(shù)超過(guò)線程數(shù)量上的機(jī)器上運(yùn)行,將無(wú)法完全利用機(jī)器性能。雖然通過(guò)一定方法可以使用操作系統(tǒng)API創(chuàng)建可變化 數(shù)量的線程,但是比較麻煩,不如OpenMP方便。

            2)方便性問(wèn)題

            在 多核編程時(shí),要求計(jì)算均攤到各個(gè)CPU核上去,所有的程序都需要并行化執(zhí)行,對(duì)計(jì)算的負(fù)載均衡有很高要求。這就要求在同一個(gè)函數(shù)內(nèi)或同一個(gè)循環(huán)中,可能也 需要將計(jì)算分?jǐn)偟礁鱾€(gè)CPU核上,需要?jiǎng)?chuàng)建多個(gè)線程。操作系統(tǒng)API創(chuàng)建線程時(shí),需要線程入口函數(shù),很難滿足這個(gè)需求,除非將一個(gè)函數(shù)內(nèi)的代碼手工拆成多 個(gè)線程入口函數(shù),這將大大增加程序員的工作量。使用OpenMP創(chuàng)建線程則不需要入口函數(shù),非常方便,可以將同一函數(shù)內(nèi)的代碼分解成多個(gè)線程執(zhí)行,也可以 將一個(gè)for循環(huán)分解成多個(gè)線程執(zhí)行。

            3)可移植性問(wèn)題

            目前各個(gè)主流操作系統(tǒng)的線程API互不兼容,缺乏事實(shí)上的統(tǒng)一規(guī)范,要滿足可移植性得自己寫一些代碼,將各種不同操作系統(tǒng)的api封裝成一套統(tǒng)一的接口。OpenMP是標(biāo)準(zhǔn)規(guī)范,所有支持它的編譯器都是執(zhí)行同一套標(biāo)準(zhǔn),不存在可移植性問(wèn)題。

            綜上所述,在多核編程中,使用OpenMP就很有必要,下面列出以前發(fā)表在我的CSDN博客中的OpenMP文章,供大家參考。

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

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

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

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

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

            本文主要介紹了OpenMP中的private、firstprivate、lastprivate、threadprivate、reduction、copyin、copyprivate等數(shù)據(jù)處理子句的用法。 閱讀全文

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

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

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

            主 要比較了原子操作,Windows CriticalSection, OpenMP庫(kù)帶的鎖在單任務(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)帶來(lái)的效率下降完全出乎意料之外,由此也可見(jiàn)多核編程和單核多線程編程是有很大區(qū)別的。 閱讀全文

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

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

            上面列出的這些OpenMP知識(shí),屬于初步的入門知識(shí),如果需要進(jìn)一步深入掌握OpenMP或者了解其實(shí)現(xiàn)原理,則需要看更多的參考文獻(xiàn)。下面列出我寫的《多核計(jì)算與程序設(shè)計(jì)》一書的第3章OpenMP程序設(shè)計(jì)中的參考文獻(xiàn),供需要深入掌握的人參考。其中的文獻(xiàn)【2】講解了OpenMP的實(shí)現(xiàn)原理。

            【1】 Ananth Grama, Anshul Gupta,“并行計(jì)算導(dǎo)論”,張武等譯,機(jī)械工業(yè)出版社,2005.01

            【2】 Barbara Chapman, “How OpenMP is Compiled ”,http://cobweb.ecn.purdue.edu/ParaMount/iwomp2008/documents/chapman-underthehood

            【3】 Bruce McMillin等,“Parallel Algorithm Fundamentals and Analysis”,http://citeseer.ist.psu.edu/mcmillin93parallel.html

            【4】 Common Language Infrastructure (CLI) Partitions I to VI http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf

            【5】 Introduction to OpenMP,A Directive-based API for Parallel Processing on Shared-memory Computers,http://scv.bu.edu/documentation/tutorials/OpenMP/

            【6】 Michael J. Quinn, “MPI與OpenMP并行程序設(shè)計(jì)”,陳文光等譯,清華大學(xué)出版社,2004.10

            【7】 Mitsuhisa Sato, Shigehisa Satoh, Kazuhiro Kusano and Yoshio Tanaka, “Design of OpenMP Compiler for an SMP Cluster”,

            http://www.hpcs.is.tsukuba.ac.jp/~msato/pdplab/papers/ewomp99.pdf

            【8】 MSDN幫助材料

            ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vclang/html/652414c5-78ed-4b7f-8283-1a9fe4c5e78d.htm

            【9】 Omni OpenMP compiler, http://phase.hpcc.jp/omni/home.html.

            【10】 OpenMP2.0規(guī)范 http://www.openmp.org/

            【11】 OpenMP2.5規(guī)范 http://www.openmp.org/

            【12】 OpenMP: Simple, portable, scalable SMP Programming, http://www.OpenMP.org.

            【13】 Rudolf Eigenmann and Timothy G. mattson. “OpenMP tutorial, part 2: Advanced OpenMP.”, http://www.cise.ufl.edu/research/ParallelPatterns/sc01-omp-tut-advanced.ppt.

            【14】 Ruud van der Pas ,“An Introduction Into OpenMP”,http://www.nic.uoregon.edu/iwomp2005/iwomp2005_tutorial_openmp_rvdp.pdf

            【15】 Sanjiv Shah, Grant Haab, Paul Petersen, & Joe Throop,“Flexible Control Structures for Parallelism in OpenMP”,http://www.it.lth.se/ewomp99/papers/grant.pdf

            【16】 Shameem Akhter等,“多核程序設(shè)計(jì)技術(shù)-通過(guò)軟件多線程提升性能”,電子工業(yè)出版社,2007.03

            【17】 Special issue on OpenMP and its applications. Scientific Programming, 11(2),2003.

            【18】 Y. Charlie Hu, Honghui Lu, Alan L. Cox, and Willy Zwaenepoel. “OpenMP for networks of SMPs”,In Proceedings of 13th International Parallel Processing Symposium and 10th Symposium on Parallel and Distributed Processing, page 302-310. IEEE Computer Society, 1999.

            多核編程相關(guān)文章:

            1)用原子操作解決多線程退出問(wèn)題

            2)原子操作在多核編程中的使用

            3)多核編程偽共享問(wèn)題及其對(duì)策

            4)多核編程鎖競(jìng)爭(zhēng)問(wèn)題及其對(duì)策

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

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

            7)多核編程的四層境界

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

            9)程序員的十層樓(1~3層)

            10)多核編程文章匯總

            11)并行順序搜索及終止檢測(cè)

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

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


            99久久精品国产综合一区| 手机看片久久高清国产日韩 | 久久午夜无码鲁丝片午夜精品| 久久久老熟女一区二区三区| 久久亚洲sm情趣捆绑调教| 久久久WWW成人免费精品| 精品国产综合区久久久久久| 久久国产乱子伦精品免费强| 久久久久久久99精品免费观看| 69SEX久久精品国产麻豆| 国产人久久人人人人爽| 久久狠狠高潮亚洲精品| 欧美久久综合性欧美| 激情久久久久久久久久| 热RE99久久精品国产66热| 一97日本道伊人久久综合影院| 亚洲欧美另类日本久久国产真实乱对白| 青青草原综合久久大伊人导航| 热久久视久久精品18| 亚洲综合伊人久久综合| 久久久精品人妻一区二区三区蜜桃| 久久精品国产亚洲av麻豆小说 | 日韩电影久久久被窝网| 久久久久久曰本AV免费免费| 久久精品一本到99热免费| 久久亚洲国产午夜精品理论片| 久久精品国产亚洲精品| 国产激情久久久久久熟女老人| 性欧美大战久久久久久久久| 亚洲综合精品香蕉久久网97 | 日韩欧美亚洲国产精品字幕久久久| 亚洲国产精品综合久久网络| 午夜不卡久久精品无码免费| 99久久精品免费观看国产| 久久久这里只有精品加勒比| 97久久超碰国产精品旧版| 开心久久婷婷综合中文字幕| 无码精品久久久天天影视| 久久精品中文字幕一区| 国产成人精品久久一区二区三区 | 伊人久久大香线蕉成人|