日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

并行计算——基础并行计算

發布時間:2023/12/9 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 并行计算——基础并行计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果這篇博客對您有用的話,可以給我點個贊嗎,這對我很重要,謝謝!??

文章目錄

  • 2 基礎并行計算
    • 2.1 并行算法的基礎知識
      • 2.1.1 并行算法的基本概念
      • 2.1.2 并行算法的表達
      • 2.1.3 并行算法的復雜性度量
        • 2.1.3.1 概述
        • 2.1.3.2 串行和并行算法的復雜性度量
        • 2.1.3.3 Brent定理
      • 2.1.4 并行算法中的同步和通信
        • 2.1.4.1 并行算法的同步
        • 2.1.4.2 并行算法的通信
    • 2.2 并行計算模型的回顧

2 基礎并行計算

2.1 并行算法的基礎知識

2.1.1 并行算法的基本概念

在開始這一小節之前,容我們先了解幾個概念:

術語解釋
算法解題方法和步驟的精確描述
并行算法一些可同時執行的諸進程的集合,這些進程互相作用和協調動作從而達到給定問題的求解
數值算法基于數值計算原理,使用代數運算的一類算法
非數值算法基于比較關系,使用符號運算的一類算法
同步算法一種隱含同步要求的諸進程執行必須相互等待的一類并行算法
異步算法一種顯式同步要求的諸進程執行不必相互等待的一類并行算法
確定算法算法的每一步都明確指定下一步如何進行的一類算法
隨機算法算法執行時,隨機從指定范圍內選擇某些參數,以此確定算法運行過程的一類算法
分布算法泛指由通信鏈路連接的多個場點或節點,協同完成計算的一類并行算法

其中算法我們提倡用形式描述,即用計算機的某種編程語言來描述。對于算法來說,算法可以簡單地范圍串行算法和并行算法。串行算法和并行算法是相對于物理設備來講的,如果一個算法運行在單處理機上,那么我們說其為串行算法;如果一個算法是允許在并行機(不包含并行單處理機)或者多處理機上,那么該算法為并行算法。

對于一般算法來說還可以分為數值算法和非數值算法。對于數值算法來說,我們可以用矩陣等代數處理方法進行計算;而對于非數值算法來說,我們一般用比較,如a>b,而非35\frac3553?這類具體數的計算過程。

還有一種是,我們可以分為同步算法和異步算法,同步算法可以用于銀行轉賬,此時關于轉賬的轉賬人進程和被轉賬人進程必須同步進行;而對于進程來說是具有異步性的,當我們對于一件事要分成很多步驟來執行時,就可以使用異步算法一步一步走下去,如同接力棒一般。當然,對于大多數情況,同步算法相對于異步算法來說會比較慢,因為同步算法要求兩個進程必須同步進行,如果此時一個進程較慢,那么較快的進程需等待;而異步算法不要求一件事必須做完才能做下一件事,它可以錯開進行,無需等待。

并行算法中實際上蘊含著分布式算法,在一些場景中,并行算法有時候用的是多計算機,那么此時并行算法即為分布式算法;而當并行算法用在多處理器單機上時,并行算法就不是分布式算法了。關于并行算法和分布式算法的區別,在1.1.4我們已經談過了,這里就不過多介紹了。分布式算法有時候也叫網絡算法或者叫做分而治之方法,因為對于分布式集群一般是通過網絡來連接的,故名為網絡算法。

最后談到的是確定算法和隨機算法,對于我們的這門學科來說,我們一般談論的都是確定算法。

2.1.2 并行算法的表達

對于并行算法的表達,我們一般可以有兩種形式:物理描述和形式描述。

在前面我們曾經提到過我們在這門課用的會是形式描述,即用編程語言來描述算法,但是卻不是一定要能運行。類似于學習數據結構和算法時用類C語言來描述算法一般,我們在并行算法中也引入了類Algol和類Pascal來描述算法。

還有一種描述是用物理描述,即直接用語義來描述,比如用文字指明哪里該并行哪里該串行。

在形式描述中,用類Algol和類Pascal來描述算法的時候,有的是串行語言,有的是并行語言,如果要在代碼中使其并行,我們可以假如并行語句。如下所示:

  • par-do語句
for i = 1 to n par-do ... end for
  • for all語句
for all Pi,where 0<=i<=k do...end for

對于第一個示例來說,其過程實際上是:我們給進程編號1到n,其中計算內容例如有ai+bia_i+b_iai?+bi?,那么進程1做a1+b1a_1+b_1a1?+b1?,進程2做a2+b2a_2+b_2a2?+b2?,以此類推,并且n個進程是并行的在做這樣一件事。需要注意的是,一般以for開頭,就要以end for結尾,這是一個必須的工作。當然,也不強制要求一定要用這種形式,你也可以用C++中學過的花括號括起也是可以的。

同時,在書寫的過程中一定要注意縮進,雖然這不是一種強制要求,但這是一種好習慣,方便閱讀的層次。

對于第二個示例來說,PiP_iPi?既可以表示進程,也可以表示處理器,具體情況具體分析,而上面的代碼說明了對于編號i(0<=i<=k)的進程,都做省略號部分代碼所做的事。其中i可以是以0為索引,n-1為結束;也可以是1開始,n結束,這看個人喜好。

2.1.3 并行算法的復雜性度量

2.1.3.1 概述

一個并行算法設計好了, 一定要度量其復雜性。在數據結構與算法的課中我們曾經談論一個算法的復雜度是用漸進復雜度量衡量的,這里同樣地,我們也是用復雜度的漸進表示,即n趨近于無窮大時。

設f(n)和g(n)是自然數集合上的兩個函數,其中C,C1,C2C,C_1,C_2CC1?,C2?都是正整數。那么有上界:f(n)=O(g(n)),f(n)<=Cg(n)f(n) = O(g(n)),f(n)<=Cg(n)f(n)=O(g(n)),f(n)<=Cg(n),也有下界:f(n)=Ω(g(n)),f(n)>=Cg(n)f(n) = \Omega(g(n)),f(n)>=Cg(n)f(n)=Ω(g(n)),f(n)>=Cg(n)。

其中緊致界為:f(n)=Θ(g(n)),C1g(n)<=f(n)<=C2g(n)f(n) = \Theta(g(n)),C_1g(n)<=f(n)<=C_2g(n)f(n)=Θ(g(n)),C1?g(n)<=f(n)<=C2?g(n)。其中緊致界也叫精確界。

上面的每次可能聽著很懵,但是如果我換一個術語你馬上就懂了,上界叫做最壞復雜度,下界叫做最好復雜度。最壞時間復雜度和最好時間復雜度時間相差的區域即為精確界。

2.1.3.2 串行和并行算法的復雜性度量

對于串行算法的復雜性度量一般分析兩種,即最壞情況下的復雜度和期望復雜度,其中期望復雜度也叫平均復雜度。這些在數據結構中都已學過這里不細講。

而對于并行算法的復雜性度量一般有四種:運行時間t(n)、處理器數p(n)、并行算法成本c(n)和總運算量W(n)。其中c(n) = t(n)×p(n),W(n)為并行算法求解問題時所完成的總的操作步數。

2.1.3.3 Brent定理

Brent定理衡量了W(n)和T(n)的關系。令W(n)是某并行算法A在運行時間T(n)內所執行的運算量,則A使用p臺處理器可在t(n) = O(W(n)/p+T(n))時間內執行完畢。

在上面的敘述中可以看出:

  • W(n)和c(n)密切相關
  • P = O(W(n)/T(n))時,W(n)和c(n)兩者是漸進一致的
  • 對于任意的p,c(n)>W(n)

2.1.4 并行算法中的同步和通信

2.1.4.1 并行算法的同步

同步是在時間上強使各執行進程在某一點必須互相等待,這種方式可用軟件、硬件和固件的辦法來實現。

上面的同步概念可以用一個例子來說明,假如一個老師帶領一幫學生去公司實習,實習這件事就是并行算法需要干的事,而干這件事是需要所有學生都到達,而各學生相當于進程,每個進程具有異步性,有的進程執行快有的進程執行慢,快的進程則需要等待慢的進程,而這個等待的方式可以用軟硬件和固件來調控。

如果拿共享存儲多處理器上進行求和算法來演示同步語句的話,即如下所示:

輸入:A = (a0,...,an?1)(a_0,...,a_{n-1})(a0?,...,an?1?),處理器p

輸出:S = ∑ai\sum a_iai?

Begin(1)S = 0(2)for all Pi where 0<=i<=p-1 do //啟動多個處理器(2.1)for j = i to n step p do //把任務分配給每個處理器L = L+aj //求局部和end for(2,3)lock(S) //上鎖S = S+L //互斥提交(2.4)unlock(S) //解鎖end forEnd

以上這個例子我們曾經在1.1.3講過,對于共享存儲多處理器做一個求和工作來說,它相當于有多少個進程,就把這個求和分成多少段,進程分配的每段求和相當于在求一個局部和,所有進程求完和后,就需要求總和。由于每個進程計算的速度可能不一,所以就需要進程同步機制,在共享存儲多處理器上這種機制只用臨界區來體現的。

臨界區這個概念我們曾經在操作系統提到過,臨界區是保存臨界資源的,而臨界資源指的是一個時間段只允許一個進程使用的資源。各進程需要互斥地訪問臨界資源。對于共享存儲多處理器來說,每個局部和求解完成后,各個進程需要互斥地往臨界區中提交局部和,當所有局部和提交完成后,才進行求總和。

2.1.4.2 并行算法的通信

對于共享存儲多處理器來說,其通常采用global read(x,y)和global write(x,y)來傳遞消息。

在操作系統我們曾經學到過共享存儲,使用共享存儲的方式進行進程通信的話,操作系統會在內存中開辟一個共享空間,讓兩個進程進行通信。假如兩個進程想要互相通信,則一個進程將消息寫于共享存儲單元中,然后另外一個進程去該單元讀該消息。

而對于分布存儲多計算機來說,其采用的為send(x,i)和receive(y,i)來傳遞消息。

同樣地,在操作系統中我們也曾經學到過消息傳遞,這也是為什么分布存儲多計算機被稱為消息傳遞多計算機的原因。其使用消息傳遞,所謂消息傳遞,就是進程間的數據交換以格式化的消息為單位。進程通過操作系統提供的“發送消息/接受消息”兩個原語進行數據交換。

下面我們給出通信語句示例:

算法:環連接的分布存儲多計算機上矩陣向量乘算法

輸入:處理器數p,A劃分為B = A[1…n,(i-1)r+1…ir],r = n/p,x劃分為w = w[(i-1)r+1;ir]

輸出:P1P_1P1?保存乘積AX

begin(1)Compute z = Bw(2)if i = 1 then yi = 0 else receive(y,left) endif(3)y = y+z(4)send(y.right)(5)if i = 1 then receive(y,left) End

2.2 并行計算模型的回顧

在前面我們已經提到了并行計算模型,并行計算模型是算法設計者與體系結構家之間的一個橋梁,是并行算法設計和分析的基礎;它屏蔽掉并行機的差異,從并行機中抽取若干個能反映計算特性的可計算或可測量的參數;并按照模型所定義的計算行為為構造成本函數以此進行算法的復雜度分析。

我們對模型的基本要求是:計算模型應提供反映并行機計算特性的一組時間參數,它包括cpu性能參數,多層存儲訪問時間和網絡通信特性參數等。在計算模型中,我們應該定義計算過程行為,如同步式和異步式。也應該給出計算并行算法時間復雜度的成本函數。

我們設計的算法除非是那些學純理論的人可以不用應用,否則其都是要應用在并行機上。應用在并行機上有兩種情況,特別和普遍。特別指的是設計的算法只能用于某一種并行機上,而普遍則是大多數通用。從學術觀點來看,我們更希望設計的算法可以實現后者的情況。

按照模型所定義計算行為,我們在此基礎上進行并行算法的設計。根據模型參數和計算行為,構造成本函數。并且我們結合在具體并行機上所測量的模型參數,進行并行算法運行時間理論分析。

總結

以上是生活随笔為你收集整理的并行计算——基础并行计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久资源网 | 美女黄色一级 | 99re这里都是精品 | 131mm少妇做爰视频 | 国产精品嫩草69影院 | 69精品在线观看 | 蜜臀av一区二区三区激情综合 | 国产精品乱码一区二区视频 | 波多野结衣在线一区二区 | 激情五月激情 | 国产人人看 | 成人午夜激情影院 | 青青草伊人久久 | 动漫av在线 | 影音先锋亚洲一区 | 操一操| 久久久久亚洲AV成人网人人小说 | 先锋资源久久 | www.色哟哟| 午夜精品久久久久久久99老熟妇 | av资源网在线观看 | 国产人人爱 | 在线视频久 | 波多野结衣99 | 最新中文字幕在线视频 | 人人看超碰 | 精品人妻一区二区色欲产成人 | 日韩三级网 | 偷偷久久 | 黑鬼大战白妞高潮喷白浆 | 妖精视频一区二区三区 | 九九在线精品 | 日韩免费淫片 | 亚洲一区二区精品在线观看 | 暗呦丨小u女国产精品 | 玖玖在线 | 欧美在线免费视频 | 看全黄大色黄大片美女人 | 操你啦免费视频 | 精品人妻一区二区三区含羞草 | 久久加久久 | 秋霞午夜视频 | 99在线精品视频 | 成人日批 | 精品人妻少妇一区二区 | 国产高清自拍视频 | 国产字幕侵犯亲女 | 欧美人妖老妇 | 三级全黄做爰在线观看 | 琪琪成人 | 日韩在线视频看看 | 日韩精品免费电影 | 黄视频免费在线观看 | 欧美午夜网 | 日韩成人一区二区视频 | 日本久久激情 | 国产精品xxx在线观看 | 最近中文字幕 | 中文字幕无线码 | 日本一区二区三区在线观看 | 成年人黄色 | 福利电影一区二区 | 欧美丰满bbw | 日本不卡二区 | 一区二区三区高清 | 国产麻豆免费观看 | 久草视频在线免费看 | 国产国产乱老熟女视频网站97 | 国产精品揄拍一区二区 | 六月丁香激情 | 日韩av激情 | 北条麻妃一区二区三区在线观看 | 日本女优中文字幕 | ass日本寡妇pics | free黑人多人性派对hd | а√天堂资源官网在线资源 | 口述3p做爰全过程 | 免费在线观看av的网站 | 在线免费观看黄网站 | 国产av一区二区三区传媒 | 国产精品日韩欧美大师 | 18岁免费观看电视连续剧 | 香蕉视频网页版 | 亚洲二区在线观看 | 黑人高潮一区二区三区在线看 | 国产夫绿帽单男3p精品视频 | 成人性生交免费看 | 亚洲v天堂 | 性色av蜜臀av浪潮av老女人 | 国产又粗又黄又爽视频 | 91久久久久 | 色av吧| 亚洲午夜久久久久久久久 | 污污内射久久一区二区欧美日韩 | 色欲久久久天天天精品综合网 | 天天国产视频 | 日韩欧美国产一区二区 | 亚洲av无一区二区三区久久 | 99ri国产|