亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MPI并行計(jì)算方法的實(shí)踐

        2021-12-28 23:19:20郭福洲
        科技資訊 2021年28期
        關(guān)鍵詞:并行計(jì)算通信進(jìn)程

        郭福洲

        摘? 要:步入信息高速快車的時代,基于MPI的并行計(jì)算是解決物聯(lián)網(wǎng)、圖像處理獲取數(shù)據(jù),人工智能處理數(shù)據(jù)的重要途徑之一;同時也是MIMD(多指令多機(jī))并行計(jì)算實(shí)現(xiàn)高效、高速目標(biāo)的重要策略與方法。筆者從MPI(Message-Passing-Interface 消息傳遞接口)一個跨語言的通信協(xié)議機(jī)制,通過Linux或Windows操作系統(tǒng)平臺,以C++語言平臺為基礎(chǔ),論述并行計(jì)算實(shí)現(xiàn)幾種方法。

        關(guān)鍵詞:MPI? 并行計(jì)算? 算法? 進(jìn)程? 消息? 通信

        中圖分類號:TP301? ? ? ?文獻(xiàn)標(biāo)識碼:A

        Abstract: In the era of information high-speed train, MPI-based parallel computing is one of the important ways to solve the Internet of Things, image processing to obtain data, and artificial intelligence to process data; It is also an important strategy and method for MIMD (multiple instruction multiple machine) parallel computing to achieve high efficiency and high speed. Starting from MPI (Message-Passing-Interface), a cross-language communication protocol mechanism, through Linux or Windows operating system platform, based on the C++ language platform, the author discusses several ways to realize parallel computing.

        Key Words: MPI; Parallel computing; Algorithm; Process; Message; Communication

        1? 并行計(jì)算發(fā)展的背景

        經(jīng)歷幾十年來電子信息產(chǎn)業(yè)的軟硬件相互倒逼、促進(jìn)與發(fā)展,人類在許多領(lǐng)域(如:空間氣象與遙感、圖像處理與捕捉、物聯(lián)網(wǎng)、人工智能、虛擬現(xiàn)實(shí)等)發(fā)展迅猛。但隨著人類在科學(xué)領(lǐng)域?qū)π畔⑴c數(shù)據(jù)處理數(shù)量規(guī)模與速度的要求更高,對數(shù)據(jù)處理、信息交換與傳輸效能、速度也在不斷地增加,并行計(jì)算[1]與分布式系統(tǒng)調(diào)度等新型算法與程控策略也更加日新月異。硬件搭臺(基礎(chǔ)),軟件唱戲(調(diào)度與并行計(jì)算編程),從硬件實(shí)現(xiàn)并行計(jì)算基礎(chǔ)層面來看:以網(wǎng)絡(luò)系統(tǒng)支撐重要結(jié)點(diǎn)――計(jì)算機(jī)為標(biāo)志,單機(jī)性能大幅度提升的主要舉措有:日益增加的集成電路晶體管密度、將提升信息傳遞速度增快與集成電路的散熱能力已經(jīng)達(dá)到極致,發(fā)展多核處理器;從軟件實(shí)現(xiàn)并行編程與計(jì)算層面來看:著力編寫任務(wù)并行和數(shù)據(jù)并行的程序,以期更大程度上利用多核處理器將有待解決的問題分解成的任務(wù)與數(shù)據(jù)科學(xué)分配并均衡到各個核上完成。

        為實(shí)現(xiàn)這一目標(biāo)的并行硬件基礎(chǔ)構(gòu)建:主存+CPU+總線(互連設(shè)備)。采用Flynn(費(fèi)林)法基于指令和數(shù)據(jù)流方式分類,即,可以將并行計(jì)算機(jī)劃分為SISD、MISD、SIMD和MIMD四種。

        除SISD系統(tǒng)外,其他三個才是真正的并行計(jì)算系統(tǒng)[2]。其中,SIMD是以同一指令進(jìn)行對多個數(shù)據(jù)執(zhí)行操作,進(jìn)而實(shí)現(xiàn)完成對多數(shù)據(jù)流進(jìn)行同時計(jì)算的目的。因此,該系統(tǒng)非常適合處理大型數(shù)組的簡單循環(huán),從此衍生出向量處理器[3],重點(diǎn)對數(shù)組或數(shù)據(jù)向量進(jìn)行操作。我們常說的GPU(graphics processing unit)圖形處理器計(jì)算機(jī)就是講物體表面的內(nèi)部表示為使用點(diǎn)、線、面的像素?cái)?shù)組來表示的,其初期也是一個概念上的SIMD系統(tǒng),不過隨著技術(shù)的發(fā)展,現(xiàn)代GPU也可以有幾十個核,每個核也能獨(dú)立地執(zhí)行指令流。

        在并行計(jì)算中,一般將MIMD作為主要研究對象。其中MIMD系統(tǒng)有兩種類型:共享內(nèi)存系統(tǒng)(見圖1)和分布式內(nèi)存系統(tǒng)(見圖2)。

        在共享內(nèi)存系統(tǒng)中,自治的CPU通過互連網(wǎng)絡(luò)與內(nèi)存系統(tǒng)相連,每個CPU都能訪問每個內(nèi)存系統(tǒng)中的內(nèi)存。分布式內(nèi)存系統(tǒng)中,每個CPU都有自己的獨(dú)立內(nèi)存,每個單元之間的內(nèi)存訪問通過消息通信或者特殊的函數(shù)來進(jìn)行。

        軟件編程實(shí)現(xiàn)并行計(jì)算的策略:無論哪一種互連,均需分布式運(yùn)算調(diào)度與并行計(jì)算作為靈魂支撐。SPMD(單程序多數(shù)據(jù)流):指的不是在每個核上運(yùn)行不同的程序,而是一個程序僅包含一份代碼,通過一定的條件分支,使得這一份代碼再執(zhí)行的時候表現(xiàn)得像是在不同的處理器上執(zhí)行不同的代碼。

        以MIMD分布式內(nèi)存系統(tǒng)來說,其CPU 各個內(nèi)核以DMA方式各自訪問自身內(nèi)存,負(fù)責(zé)處理CPU核之間通信的進(jìn)程進(jìn)行數(shù)據(jù)交換時,則只好通過消息[4]傳遞API來處理。負(fù)責(zé)消息傳遞API需提供至少一對發(fā)送函數(shù)和接收函數(shù)。并通過它們的序號(rank)來標(biāo)識。

        并行計(jì)算程序的編寫主要目的當(dāng)然是為了提供它們的性能,那么我們應(yīng)該如何去評價一個并行計(jì)算程序的性能呢?答案是:加速比S=T串行T并行S=T串行T并行與效率E=T串行P×T并行E=T串行P×T并行。

        理論上而言,如果使用p個進(jìn)程或者線程來運(yùn)行一個并行程序,并且每個核中之多只有一個進(jìn)程/線程,那么,S=p,E=1。但是在實(shí)際情況下,S<p, E<1。假設(shè)我們已具備如何評判由串行程序改為并行程序性能的能力,若現(xiàn)有一串行程序,為了提高性能,我們?nèi)绾螌⒋谐绦蚋臑椴⑿杏?jì)算程序獲取高性能?從理論層面策略實(shí)現(xiàn)如何分步?一般情況下,需要將工作進(jìn)行拆分,使得分布在每個進(jìn)程中的工作量均衡,并行讓它們之間的通信量最少。于是串行程序并行化設(shè)計(jì)策略展開一般按以下幾步進(jìn)行:

        第一步:劃分。將串行程序細(xì)分并序化成為與為一個個具備獨(dú)立并行執(zhí)行的任務(wù),每個任務(wù)都包含自己的指令與數(shù)據(jù)集;

        第二步:通信。確定第一步識別出來的任務(wù)之間需要執(zhí)行那些通信。

        第三步:凝聚/聚合。將第一步確定的任務(wù)與通信結(jié)合成上層宏觀任務(wù)。

        第四步:分配。將層宏觀任務(wù)再分配至進(jìn)程/線程。這一步我們就關(guān)注:應(yīng)讓通信量最小化,并保證各個進(jìn)程/線程所領(lǐng)受的工作量基本均衡。

        由務(wù)虛的理論走向務(wù)實(shí),實(shí)現(xiàn)的手段有:MPI(Message-Passing-Interface 消息傳遞接口,后簡稱MPI)、Pthreads、OpenMP、OpenCL、GPU、Hadoop等,該文僅就MPI為主要闡述對象,討論其實(shí)現(xiàn)并行算法的途徑。

        2? MPI的特性與并行編程機(jī)制

        MPI(Message-Passing-Interface 消息傳遞接口)其任務(wù)是在并行計(jì)算進(jìn)程之間完成消息傳遞。傳遞層級為進(jìn)程層級。它并非編程語言,而是一個獨(dú)立且可被Fortran、C++和c#程序調(diào)用的函數(shù)庫。它主要集成了可供兩個進(jìn)程之間進(jìn)行各種情況通信處理的函數(shù)。并且其在Windows、Linux等不同平臺環(huán)境中都有對應(yīng)的庫。該文所述其應(yīng)用實(shí)踐,是以Windows10為開發(fā)環(huán)境為背景。

        MPI定義了獨(dú)特的數(shù)據(jù)類型參數(shù),不采用字節(jié)計(jì)數(shù),而是以數(shù)據(jù)類型為單位指定消息長度;對于C和Fortran,MPI均預(yù)定義了一組數(shù)據(jù)類型和一些附加的數(shù)據(jù)類型;可以發(fā)送或接收連續(xù)的數(shù)據(jù),還可以處理不連續(xù)的數(shù)據(jù);允許發(fā)送和接收不同的數(shù)據(jù)類型。

        MPI與OpenMP并行程序的區(qū)別是:MPI是一種基于信息傳遞的并行編程技術(shù)。消息[5]傳遞接口是一種編程接口標(biāo)準(zhǔn),并非一種具體的編程語言。簡言之,MPI標(biāo)準(zhǔn)定義了一組具有可移植性的編程接口。主要的MPI-1模型不包括共享內(nèi)存概念,MPI-2也只有有限的分布共享內(nèi)存概念。 但MPI程序經(jīng)常在共享內(nèi)存的機(jī)器上運(yùn)行。在MPI模型周邊設(shè)計(jì)程序比在NUMA架構(gòu)下設(shè)計(jì)要好,是因?yàn)镸PI鼓勵內(nèi)存本地化。盡管MPI屬于OSI參考模型的第五層(會話層)或者更高,他的實(shí)現(xiàn)可能通過傳輸層的sockets和Transmission Control Protocol (TCP)覆蓋大部分的層。大部分的MPI實(shí)現(xiàn)由一些指定慣例集(API)組成,可由有此類庫的語言比如C#, Java or Python直接調(diào)用。從通信[6]角度上,可視作為一個跨語言平臺的通信協(xié)議,用于計(jì)算機(jī)編寫程序?qū)崿F(xiàn)并行計(jì)算。支持點(diǎn)對點(diǎn)和廣播。MPI作為一個信息傳遞應(yīng)用程序接口,包括協(xié)議和和語義說明,用以說明其如何在各種實(shí)現(xiàn)中發(fā)揮其特性。MPI的特點(diǎn)是高性能、大規(guī)模性和可移植性。MPI在今天仍為高性能計(jì)算的主要模型。

        MPI實(shí)現(xiàn)并行是進(jìn)程級;采用的是分布式內(nèi)存系統(tǒng),顯式(數(shù)據(jù)分配方式)實(shí)現(xiàn)并行執(zhí)行,通過通信在進(jìn)程之間進(jìn)行消息傳遞,有較好的可擴(kuò)展性。MPI雖適合于各類機(jī)型,但其編程模型復(fù)雜:需要分析及劃分應(yīng)用程序問題,并將問題映射到分布式進(jìn)程集合;并需解決通信延遲長和負(fù)載不平衡兩大主要問題。

        3? MPI安裝與設(shè)置要領(lǐng)

        (1)MPI以mpich2-1.4.1p1-win-ia32.msi版本下載,地址http://www.mpich.org/static/downloads/1.4.1p1/ ,下載完成后直接安裝,安裝過程中使用者那里選擇everyone,其他的都默認(rèn)。

        (2) 以管理員的身份運(yùn)行CMD(命令行),輸入MPICH[5]的安裝路徑來到bin目錄下,然后輸入 smpd –install -phrase [你的關(guān)鍵字,默認(rèn)是behappy]。

        (3)為了使計(jì)算機(jī)群能夠使用MPI,應(yīng)該給每一個安裝MPI的計(jì)算機(jī)添加一個相同的賬戶,賬戶密碼必須相同,賬戶要求是管理員的身份。比如所有的計(jì)算機(jī)都添加一個賬號為mpi,密碼是mpi的用戶。

        (4)在MPICH的安裝目下的bin文件夾中找到wmpiregister.exe,將第二步注冊的賬戶密碼添加進(jìn)去,然后點(diǎn)擊確定。

        (5)打開wmpiexec,在Application那一欄選擇MPICH安裝后自帶的例子,測試是否安裝成功,勾選run in an separate window,點(diǎn)擊Execute執(zhí)行。

        4 結(jié)語

        MPI標(biāo)準(zhǔn),集成了核心庫的語法和語義,其函數(shù)庫可被Fortran、C調(diào)用,形成可移植的信息傳遞程序。MPI提供了適應(yīng)各種并行硬件商的基礎(chǔ)集,它們都能被有效地實(shí)現(xiàn)。這促進(jìn)了硬件廠商可以基于這一系列底層標(biāo)準(zhǔn)來創(chuàng)建高層次的慣例,從而為分布式內(nèi)存交互系統(tǒng)提供并行機(jī)型。MPI還提供了一個簡單易用的可移植接口,極大方便了程序員可以用它在高級機(jī)器上進(jìn)行高性能信息傳遞操作。但MPI接口標(biāo)準(zhǔn)定義的思想與參數(shù)定義的原則秘而不宣,也在一定程度上制約了編程開發(fā)技術(shù)人員思維的廣度、深度與拓展力。

        參考文獻(xiàn)

        [1]周志強(qiáng),崔國民,楊嶺,等.一種基于并行計(jì)算的混和算法優(yōu)化有分流換熱網(wǎng)絡(luò)[J/OL].化工學(xué)報:1-20[2021-09-23].http://kns.cnki.net/kcms/detail/11.1946.TQ.20210913.1556.002.html.

        [2]李銘,丁衛(wèi)平,鞠恒榮,等.基于Spark的證據(jù)鄰域粗糙并行分類高效算法[J].南京理工大學(xué)學(xué)報,2021,45(4):409-419.

        [3] CHANG? D, LI? L, CHANG Y,et al.Implementation of MapReduce parallel computing framework based on multi-data fusion sensors and GPU cluster[J]. EURASIP Journal on Advances in Signal Processing,2021(1):1-14.

        [4]鄔江興,祁曉峰,高彥釗.異構(gòu)計(jì)算并行編程模型綜述[J].上海航天(中英文),2021,38(4):1-11.

        [5]王如斌,李瑞遠(yuǎn),何華均,等.面向海量空間數(shù)據(jù)的分布式距離連接算法[J/OL].計(jì)算機(jī)科學(xué):1-10[2021-09-23].http://kns.cnki.net/kcms/detail/50.1075.TP.20210819.1850.054.html.

        [6]肖漢,郭寶云,李彩林,等.面向異構(gòu)架構(gòu)的傳遞閉包并行算法[J].計(jì)算機(jī)工程,2021,47(8):131-139.

        猜你喜歡
        并行計(jì)算通信進(jìn)程
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        云計(jì)算中MapReduce分布式并行處理框架的研究與搭建
        矩陣向量相乘的并行算法分析
        簡述計(jì)算機(jī)通信網(wǎng)絡(luò)安全與防護(hù)策略
        Android環(huán)境下主UI線程與子線程通信機(jī)制研究
        無線自組網(wǎng)在野戰(zhàn)防空通信系統(tǒng)中的應(yīng)用
        并行硬件簡介
        對數(shù)字微波通信技術(shù)的研究
        基于Matlab的遙感圖像IHS小波融合算法的并行化設(shè)計(jì)
        科技視界(2016年11期)2016-05-23 08:13:35
        社會進(jìn)程中的新聞學(xué)探尋
        亚洲成av人最新无码| 老熟女重囗味hdxx70星空| 亚洲高清一区二区三区在线播放| 国产精品久久免费中文字幕| 亚洲αv在线精品糸列| 国产乱码一区二区三区爽爽爽| 激情综合色五月丁香六月亚洲| 中文字幕高清在线一区二区三区| 中文字幕无码免费久久9| 亚洲熟女一区二区三区不卡| 亚洲最大一区二区在线观看| 大陆国产乱人伦| 亚洲精华国产精华液的福利| 高清国产日韩欧美| 亚洲AV无码一区二区三区精神| 中文字幕日韩一区二区不卡| 亚洲综合在线观看一区二区三区| 久久精品国产字幕高潮| 国产深夜男女无套内射| 成人无码视频| 久久精品成人91一区二区| 亚洲国产成人av第一二三区| 人妻精品久久一区二区三区| 一本无码中文字幕在线观| 欧洲熟妇色xxxx欧美老妇多毛 | 国产精品一区二区性色| 97精品久久久久中文字幕| 亚洲欧美日韩综合久久久| 亚洲av日韩aⅴ无码电影| 精品日产一区2区三区| 中文资源在线一区二区三区av| 永久天堂网av手机版| 毛多水多www偷窥小便| 最新国产拍偷乱偷精品| 国产黄片一区视频在线观看| 亚洲精品美女中文字幕久久| 蜜臀久久99精品久久久久久| 亚洲成av人片在线观看ww| 精品欧美乱子伦一区二区三区| 国产精品自拍首页在线观看| 最近中文字幕精品在线|