精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PRAM模型、BSP模型、LogP模型優缺點分析

電子工程師 ? 來源:網絡整理 ? 作者:工程師3 ? 2018-05-07 09:12 ? 次閱讀

并行計算模型通常指從并行算法的設計和分析出發,將各種并行計算機(至少某一類并行計算機)的基本特征抽象出來,形成一個抽象的計算模型。

PRAM模型

PRAM(Parallel Random Access Machine,隨機存取并行機器)模型,也稱為共享存儲的SIMD模型,是一種抽象的并行計算模型,它是從串行的RAM模型直接發展起來的。在這種模型中,假定存在一個容量無限大的共享存儲器,有有限個或無限個功能相同的處理器,且他們都具有簡單的算術運算和邏輯判斷功能,在任何時刻各處理器都可以通過共享存儲單元相互交互數據。根據處理器對共享存儲單元同時讀、同時寫的限制,PRAM模型可以分為下面幾種:

不允許同時讀和同時寫(Exclusive-Read and Exclusive-Write)的PRAM模型,簡稱為PRAM-EREW;
允許同時讀但不允許同時寫(Concurrent-Read and Exclusive-Write)的PRAM模型,簡稱為PRAM-CREW;
允許同時讀和同時寫(Concurrent-Read and Concurrent-Write)的PRAM模型,簡稱為PRAM-CRCW。

顯然,允許同時寫是不現實的,于是又對PRAM-CRCW模型做了進一步約定,于是形成了下面幾種模型:

只允許所有的處理器同時寫相同的數,此時稱為公共(common)的PRAM-CRCW,簡稱為CPRAM-CRCW;
只允許最優先的處理器先寫,此時稱為優先(Priority)的PRAM-CRCW,簡稱為PPRAM-CRCW;
允許任意處理器自由寫,此時稱為任意(Arbitrary)的PRAM-CRCW,簡稱為APRAM-CRCW。
往存儲器中寫的實際內容是所有處理器寫的數的和,此時稱為求和(Sum)的PRAM-CRCE,將稱為SPRAM-CRCW。

PRAM模型的優點

PRAM模型特別適合于并行算法的表達、分析和比較,使用簡單,很多關于并行計算機的底層細節,比如處理器間通信、存儲系統管理和進程同步都被隱含在模型中;易于設計算法和稍加修改便可以運行在不同的并行計算機系統上;根據需要,可以在PRAM模型中加入一些諸如同步和通信等需要考慮的內容。

PRAM模型的缺點

(1)模型中使用了一個全局共享存儲器,且局存容量較小,不足以描述分布主存多處理機的性能瓶頸,而且共享單一存儲器的假定,顯然不適合于分布存儲結構的MIMD機器;

(2)PRAM模型是同步的,這就意味著所有的指令都按照鎖步的方式操作,用戶雖然感覺不到同步的存在,但同步的存在的確很耗費時間,而且不能反映現實中很多系統的異步性;

(3)PRAM模型假設了每個處理器可在單位時間訪問共享存儲器的任一單元,因此要求處理機間通信無延遲、無限帶寬和無開銷,假定每個處理器均可以在單位時間內訪問任何存儲單元而略去了實際存在的,合理的細節,比如資源競爭和有限帶寬,這是不現實的;

(4) PRAM模型假設處理機有限或無限,對并行任務的增大無開銷;

(5)未能描述所線程技術和流水線預取技術,而這兩種技術又是當今并行體系結構用的最普遍的技術。

BSP模型

BSP模型基本原理

BSP模型是一種異步MIMD-DM模型(DM: distributed memory,SM: shared memory),BSP模型支持消息傳遞系統,塊內異步并行,塊間顯式同步,該模型基于一個master協調,所有的worker同步(lock-step)執行, 數據從輸入的隊列中讀取,該模型的架構如圖所示:

PRAM模型、BSP模型、LogP模型優缺點分析

另外,BSP并行計算模型可以用 p/s/g/I 4個參數進行描述:

P為處理器的數目(帶有存儲器)。

s為處理器的計算速度。

g為每秒本地計算操作的數目/通信網絡每秒傳送的字節數,稱之為選路器吞吐率,視為帶寬因子 (time steps/packet)=1/bandwidth。

i為全局的同步時間開銷,稱之為全局同步之間的時間間隔 (Barrier synchronization time)。

那么假設有p臺處理器同時傳送h個字節信息,則gh就是通信的開銷。同步和通信的開銷都規格化為處理器的指定條數。

BSP計算模型不僅是一種體系結構模型,也是設計并行程序的一種方法。BSP程序設計準則是整體同步(bulk synchrony),其獨特之處在于超步(superstep)概念的引入。一個BSP程序同時具有水平和垂直兩個方面的結構。從垂直上看,一個BSP程序由一系列串行的超步(superstep)組成,如圖所示:

PRAM模型、BSP模型、LogP模型優缺點分析

這種結構類似于一個串行程序結構。從水平上看,在一個超步中,所有的進程并行執行局部計算。一個超步可分為三個階段,如圖所示:

PRAM模型、BSP模型、LogP模型優缺點分析

本地計算階段,每個處理器只對存儲本地內存中的數據進行本地計算。

全局通信階段,對任何非本地數據進行操作。

柵欄同步階段,等待所有通信行為的結束。

BSP模型特點

1. BSP模型將計算劃分為一個一個的超步(superstep),有效避免死鎖。

2. 它將處理器和路由器分開,強調了計算任務和通信任務的分開,而路由器僅僅完成點到點的消息傳遞,不提供組合、復制和廣播等功能,這樣做既掩蓋具體的互連網絡拓撲,又簡化了通信協議;

3. 采用障礙同步的方式以硬件實現的全局同步是在可控的粗粒度級,從而提供了執行緊耦合同步式并行算法的有效方式,而程序員并無過分的負擔;

4. 在分析BSP模型的性能時,假定局部操作可以在一個時間步內完成,而在每一個超級步中,一個處理器至多發送或接收h條消息(稱為h-relation)。假定s是傳輸建立時間,所以傳送h條消息的時間為gh+s,如果 ,則L至少應該大于等于gh。很清楚,硬件可以將L設置盡量小(例如使用流水線或大的通信帶寬使g盡量小),而軟件可以設置L的上限(因為L越大,并行粒度越大)。在實際使用中,g可以定義為每秒處理器所能完成的局部計算數目與每秒路由器所能傳輸的數據量之比。如果能夠合適的平衡計算和通信,則BSP模型在可編程性方面具有主要的優點,而直接在BSP模型上執行算法(不是自動的編譯它們),這個優點將隨著g的增加而更加明顯;

5. 為PRAM模型所設計的算法,都可以采用在每個BSP處理器上模擬一些PRAM處理器的方法來實現。

BSP模型的評價

1. 在并行計算時,Valiant試圖也為軟件和硬件之間架起一座類似于馮·諾伊曼機的橋梁,它論證了BSP模型可以起到這樣的作用,正是因為如此,BSP模型也常叫做橋模型。

2. 一般而言,分布存儲的MIMD模型的可編程性比較差,但在BSP模型中,如果計算和通信可以合適的平衡(例如g=1),則它在可編程方面呈現出主要的優點。

3. 在BSP模型上,曾直接實現了一些重要的算法(如矩陣乘、并行前序運算、FFT和排序等),他們均避免了自動存儲管理的額外開銷。

4. BSP模型可以有效的在超立方體網絡和光交叉開關互連技術上實現,顯示出,該模型與特定的技術實現無關,只要路由器有一定的通信吞吐率。

5. 在BSP模型中,超級步的長度必須能夠充分的適應任意的h-relation,這一點是人們最不喜歡的。

6. 在BSP模型中,在超級步開始發送的消息,即使網絡延遲時間比超級步的長度短,該消息也只能在下一個超級步才能被使用。

7. BSP模型中的全局障礙同步假定是用特殊的硬件支持的,但很多并行機中可能沒有相應的硬件。

BSP與MapReduce對比

執行機制:MapReduce是一個數據流模型,每個任務只是對輸入數據進行處理,產生的輸出數據作為另一個任務的輸入數據,并行任務之間獨立地進行,串行任務之間以磁盤和數據復制作為交換介質和接口

BSP是一個狀態模型,各個子任務在本地的子圖數據上進行計算、通信、修改圖的狀態等操作,并行任務之間通過消息通信交流中間計算結果,不需要像MapReduce那樣對全體數據進行復制。

迭代處理:MapReduce模型理論上需要連續啟動若干作業才可以完成圖的迭代處理,相鄰作業之間通過分布式文件系統交換全部數據。BSP模型僅啟動一個作業,利用多個超步就可以完成迭代處理,兩次迭代之間通過消息傳遞中間計算結果。由于減少了作業啟動、調度開銷和磁盤存取開銷,BSP模型的迭代執行效率較高。

數據分割:基于BSP的圖處理模型,需要對加載后的圖數據進行一次再分布的過程,以確定消息通信時的路由地址。例如,各任務并行加載數據過程中,根據一定的映射策略,將讀入的數據重新分發到對應的計算任務上(通常是放在內存中),既有磁盤I/O又有網絡通信,開銷很大。但是一個BSP作業僅需一次數據分割,在之后的迭代計算過程中除了消息通信之外,不再需要進行數據的遷移。而基于MapReduce的圖處理模型,一般情況下,不需要專門的數據分割處理。但是Map階段和Reduce階段存在中間結果的Shuffle過程,增加了磁盤I/O和網絡通信開銷。

MapReduce的設計初衷:解決大規模、非實時數據處理問題。"大規模"決定數據有局部性特性可利用(從而可以劃分)、可以批處理;"非實時"代表響應時間可以較長,有充分的時間執行程序。而BSP模型在實時處理有優異的表現。這是兩者最大的一個區別。

BSP模型的實現

1.Pregel

Google的大規模圖計算框架,首次提出了將BSP模型應用于圖計算,具體請看Pregel——大規模圖處理系統,不過至今未開源。

2.Apache Giraph

ASF社區的Incubator項目,由Yahoo!貢獻,是BSP的java實現,專注于迭代圖計算(如pagerank,最短連接等),每一個job就是一個沒有reducer過程的hadoop job。

3.Apache Hama

也是ASF社區的Incubator項目,與Giraph不同的是它是一個純粹的BSP模型的java實現,并且不單單是用于圖計算,意在提供一個通用的BSP模型的應用框架。

4.GraphLab

CMU的一個迭代圖計算框架,C++實現的一個BSP模型應用框架,不過對BSP模型做了一定的修改,比如每一個超步之后并不設置全局同步點,計算可以完全異步進行,加快了任務的完成時間。

5.Spark

加州大學伯克利分校實現的一個專注于迭代計算的應用框架,用Scala語言寫就,提出了RDD(彈性分布式數據集)的概念,每一步的計算數據都從上一步結果精簡而來,大大降低了網絡傳輸,同時保證了血統的純正性(即出錯只需返回上一步即可),增強了容錯功能。Spark論文里也基于此框架實現了BSP模型(叫Bagel)。值得一提的是國內的豆瓣也基于該思想用Python實現了這樣一個框架叫Dpark,并且已經開源。https://github.com/douban/dpark

6.Trinity

這是微軟的一個圖計算平臺,C#開發的,它是為了提供一個專用的圖計算應用平臺,包括底層的存儲到上層的應用,應該是可以實現BSP模型的,文章發在SIGMOD13上,可恨的是也不開源。主頁

7.GoldenOrb

另一個BSP模型的java實現,是對Pregel的一個開源實現,應用在hadoop上。
官網:(要FQ)
源碼:https://github.com/jzachr/goldenorb

8.Phoebus

Erlang語言實現的BSP模型,也是對Pregel的一個開源實現。https://github.com/xslogic/phoebus

9.Rubicon

Pregel的開源實現。https://launchpad.net/rubicon

10.Signal/Collect

也是一個Scala版的BSP模型實現。

11.PEGASUS

在hadoop上實現的一個java版的BSP模型,發表在SIGKDD2011上。~pegasus/index.htm

LogP模型

根據技術發展的趨勢,20世紀90年代末和未來的并行計算機發展的主流之一是巨量并行機,即MPC(Massively Parallel Computers),它由成千個功能強大的處理器/存儲器節點,通過具有有限帶寬的和相當大的延遲的互連網絡構成。所以我們建立并行計算模型應該充分考慮到這個情況,這樣基于模型的并行算法才能在現有和將來的并行計算機上有效的運行。根據已有的編程經驗,現有的共享存儲、消息傳遞和數據并行等編程方式都很流行,但還沒有一個公認的和占支配地位的編程方式,因此應該尋求一種與上面的編程方式無關的計算模型。而根據現有的理論模型,共享存儲PRAM模型和互連網絡的SIMD模型對開發并行算法還不夠合適,因為它們既沒有包含分布存儲的情況,也沒有考慮通信和同步等實際因素,從而也不能精確的反映運行在真實的并行計算機上的算法的行為,所以,1993年D.Culer等人在分析了分布式存儲計算機特點的基礎上,提出了點對點通信的多計算機模型,它充分說明了互聯網絡的性能特性,而不涉及到具體的網絡結構,也不假定算法一定要用現實的消息傳遞操作進行描述。

LogP模型是一種分布存儲的、點到點通信的多處理機模型,其中通信網絡由4個主要參數來描述:

(1)L(Latency) 表示源處理機與目的處理機進行消息(一個或幾個字)通信所需要的等待或延遲時間的上限,表示網絡中消息的延遲。

(2)o(overhead)表示處理機準備發送或接收每個消息的時間開銷(包括操作系統核心開銷和網絡軟件開銷),在這段時間里處理不能執行其它操作。

(3)g(gap)表示一臺處理機連續兩次發送或接收消息時的最小時間間隔,其倒數即微處理機的通信帶寬。

(4)P(Processor)處理機/存儲器模塊個數

假定一個周期完成一次局部操作,并定義為一個時間單位,那么,L,o和g都可以表示成處理器周期的整數倍。

LogP模型的特點

(1)抓住了網絡與處理機之間的性能瓶頸。g反映了通信帶寬,單位時間內最多有L/g個消息能進行處理機間傳送。
(2)處理機之間異步工作,并通過處理機間的消息傳送來完成同步。

(3)對多線程技術有一定反映。每個物理處理機可以模擬多個虛擬處理機(VP),當某個VP有訪問請求時,計算不會終止,但VP的個數受限于通信帶寬和上下文交換的開銷。VP受限于網絡容量,至多有L/g個VP。

(4)消息延遲不確定,但延遲不大于L。消息經歷的等待時間是不可預測的,但在沒有阻塞的情況下,最大不超過L。

(5)LogP模型鼓勵編程人員采用一些好的策略,如作業分配,計算與通信重疊以及平衡的通信模式等。

(6)可以預估算法的實際運行時間。

LogP模型的不足之處

(1)對網絡中的通信模式描述的不夠深入。如重發消息可能占滿帶寬、中間路由器緩存飽和等未加描述。

(2)LogP模型主要適用于消息傳遞算法設計,對于共享存儲模式,則簡單地認為遠地讀操作相當于兩次消息傳遞,未考慮流水線預取技術、Cache引起的數據不一致性以及Cache命中率對計算的影響。

(3)未考慮多線程技術的上下文開銷。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • BSP
    BSP
    +關注

    關注

    1

    文章

    86

    瀏覽量

    26109
  • 并行計算
    +關注

    關注

    0

    文章

    27

    瀏覽量

    9421
  • PRAM
    +關注

    關注

    0

    文章

    4

    瀏覽量

    9443
收藏 人收藏

    評論

    相關推薦

    LogP簡化模型參數估計

    LogP簡化模型參數估計針對LogP微觀通信模型涉及參數較多,其算法分析較復雜;而簡化的LogP
    發表于 06-17 09:52

    SPICE仿真模型的優點和缺點

    作者: TI 專家 Bruce Trump翻譯: TI信號鏈工程師 Rickey Xiong (熊堯)每一個讀過我博客的人都知道,我使用SPICE模型仿真電路。你可能聽說過Bob Pease,在
    發表于 09-21 15:51

    SPICE模型有什么優缺點?如何合理的使用SPICE模型

    請問SPICE模型有什么優缺點?如何合理的使用SPICE模型
    發表于 04-13 06:59

    MRAS模型和可調模型參考

    1、簡寫MRAS參考模型和可調模型參考模型和可調模型方程:簡寫為如下形式:參考模型:可調模型:定
    發表于 08-27 06:44

    LogP簡化模型參數估計

    針對LogP微觀通信模型涉及參數較多,其算法分析較復雜;而簡化的LogP模型把兩臺處理機傳送長度為N的消息的所需時間分為:與數據量無關和與數
    發表于 04-26 18:24 ?28次下載

    基于多級混合模型的圖像分割方法

    本文研究了典型的基于區域的圖像分割方法主動形狀模型(Active Shape Model, ASM)和基于邊緣的圖像分割snake 算法,分析了算法適用條件和各自的優缺點。結合snake 模型
    發表于 07-08 09:58 ?20次下載

    什么是IBIS模型?以及IBIS模型的仿真及優缺點

    IBIS 模型的介紹 1. 什么是IBIS模型?   IBIS(Input/Output Buffer Information Specification)
    發表于 03-20 14:12 ?4924次閱讀

    深度分析RNN的模型結構,優缺點以及RNN模型的幾種應用

    強大的Bert模型家族,都是站在RNN的肩上,不斷演化、變強的。 這篇文章,闡述了RNN的方方面面,包括模型結構,優缺點,RNN模型的幾種應用,RNN常使用的激活函數,RNN的缺陷,以
    的頭像 發表于 05-13 10:47 ?2.4w次閱讀
    深度<b class='flag-5'>分析</b>RNN的<b class='flag-5'>模型</b>結構,<b class='flag-5'>優缺點</b>以及RNN<b class='flag-5'>模型</b>的幾種應用

    AI大模型和小模型是什么?AI大模型和小模型的區別

      隨著人工智能的不斷發展和應用,機器學習模型的大小越來越成為一個重要的問題。在機器學習中,我們通常將模型分為兩類:大模型和小模型。本文將介紹AI大
    發表于 08-08 16:55 ?8811次閱讀

    卷積神經網絡模型優缺點

    卷積神經網絡模型優缺點? 卷積神經網絡(Convolutional Neural Network,CNN)是一種從圖像、視頻、聲音和一系列多維信號中進行學習的深度學習模型。它在計算機視覺、語音識別
    的頭像 發表于 08-21 17:15 ?4285次閱讀

    盤古大模型和阿里哪個好?

    盤古大模型和阿里哪個好? 介紹盤古大模型和阿里巴巴兩個產品的優缺點和適用場景。 一、 盤古大模型 1. 產品介紹 盤古大模型是杭州大朗科技有
    的頭像 發表于 08-31 09:01 ?1372次閱讀

    神經網絡模型的原理、類型、應用場景及優缺點

    模型的原理、類型、應用場景以及優缺點。 神經網絡模型的原理 神經網絡模型的基本原理是模擬人腦神經元的工作方式。人腦由大約860億個神經元組成,每個神經元通過突觸與其他神經元相互連接。神
    的頭像 發表于 07-02 09:56 ?1077次閱讀

    數學建模神經網絡模型優缺點有哪些

    、預測分析等。然而,神經網絡模型也存在一些優缺點。本文將詳細分析神經網絡模型優缺點。 一、優點
    的頭像 發表于 07-02 11:36 ?800次閱讀

    AI大模型與小模型優缺點

    在人工智能(AI)的廣闊領域中,模型作為算法與數據之間的橋梁,扮演著至關重要的角色。根據模型的大小和復雜度,我們可以將其大致分為AI大模型和小模型。這兩種
    的頭像 發表于 07-10 10:39 ?2375次閱讀

    三層神經網絡模型優缺點

    三層神經網絡模型是一種常見的深度學習模型,它由輸入層、兩個隱藏層和輸出層組成。本文將介紹三層神經網絡模型優缺點,以及其在實際應用中的表現。 一、三層神經網絡
    的頭像 發表于 07-11 10:58 ?410次閱讀