成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開(kāi)發(fā) 前端
眾所周知,關(guān)于加速比有一個(gè)阿姆達(dá)爾定律,說(shuō)的是加速比方面的事情,即加速比S(n)和串行部分所占比例f有關(guān)

 1.1 引言

在多核系統(tǒng)中,衡量程序性能的一個(gè)重要指標(biāo)就是加速比,加速比定義如下:

S(n) 單處理器上最優(yōu)串行化算法計(jì)算時(shí)間 / 使用n個(gè)處理器并行計(jì)算時(shí)間

眾所周知,關(guān)于加速比有一個(gè)阿姆達(dá)爾定律,說(shuō)的是加速比方面的事情,即加速比S(n)和串行部分所占比例f有關(guān),而與CPU核數(shù)n無(wú)關(guān),也就是說(shuō)

 

                               

當(dāng)處理器個(gè)數(shù)n趨近于無(wú)窮大時(shí),有以下等式。

                                                  

阿姆達(dá)爾定律的提出讓整個(gè)軟件界灰心了許多年,因?yàn)橹灰斜壤秊?%,那么不論增加多少處理器,加速比最多也只能達(dá)到20

若干年后一個(gè)叫Gustafson的人提出了和阿姆達(dá)爾定律不同的意見(jiàn),得到了一個(gè)新的加速比公式如下:

                               

其中的K是一個(gè)常數(shù),表示串行執(zhí)行時(shí)間所占的比例。

照Gustafson定律,加速比顯然和CPU核數(shù)n是成正比的,CPU核數(shù)越大,加速比也越大。

Gustafson定律的前提條件假設(shè)串行化代碼的規(guī)模是固定的,計(jì)算規(guī)模是隨CPU核數(shù)增加而增加的。實(shí)際情況中,共享資源訪問(wèn)的計(jì)算量和程序的計(jì)算規(guī)模是成正比的,如果共享資源通過(guò)鎖保護(hù)操作而變成串行化執(zhí)行的話,那么串行化代碼的規(guī)模將隨程序規(guī)模的增加而線性增加,這樣將導(dǎo)致不符合Gustafson定律的前提條件,而是符合阿姆達(dá)爾定律的前提條件。最終得出的加速比將是按照阿姆達(dá)爾定律計(jì)算出結(jié)果。

因此如何消除鎖競(jìng)爭(zhēng)造成的串行化執(zhí)行就成了程序員需要解決的問(wèn)題,下面就來(lái)先看一下幾種不同類型的鎖競(jìng)爭(zhēng)形式對(duì)加速比指標(biāo)的具體影響,在鎖競(jìng)爭(zhēng)的情況中,任務(wù)粒度因子和鎖粒度因子是影響加速比的重要因素之一,因此需要先看一下任務(wù)粒度因子和鎖粒度因子的概念。

1.2 任務(wù)粒度因子與鎖粒度因子

在一個(gè)有鎖保護(hù)操作的程序中,每個(gè)任務(wù)中的計(jì)算可以分為如下圖所示的幾部分:

圖1:任務(wù)內(nèi)的計(jì)算分類

其中

ts - 表示鎖內(nèi)計(jì)算時(shí)間,大小由共享資源的操作時(shí)間決定,與共享資源類型有關(guān),并且與程序員的程序設(shè)計(jì)有關(guān)。

tl - 表示 Lock操作和Unlock操作耗費(fèi)的時(shí)間,如果CPU核的速度固定,那么它為一常量。

tp - 表示鎖外可并行計(jì)算部分耗費(fèi)的時(shí)間,大小與具體的應(yīng)用類型及程序員的分解有關(guān)

為了形象地表示出各段計(jì)算間的比例關(guān)系,引入兩個(gè)概念:任務(wù)粒度因子和鎖粒度因子。

1.任務(wù)粒度因子

任務(wù)粒度因子主要是用來(lái)反映一個(gè)任務(wù)的計(jì)算量大小,由tl是常量,因此把任務(wù)內(nèi)的有效計(jì)算和tl的比值叫做任務(wù)粒度因子,記為:

     

2.鎖粒度因子

鎖粒度因子反映了一個(gè)任務(wù)內(nèi)鎖操作的粒度關(guān)系,用鎖內(nèi)計(jì)算和tl的比值來(lái)表示鎖粒度因子,記為:

1.3 固定式鎖競(jìng)爭(zhēng)中的加速比分析

在一個(gè)固定式鎖競(jìng)爭(zhēng)情況中,是由若干個(gè)同 時(shí)創(chuàng)建的對(duì)等任務(wù)競(jìng)爭(zhēng)同一把鎖,在這種固定式競(jìng)爭(zhēng)環(huán)境中,假設(shè)每個(gè)任務(wù)都執(zhí)行一次鎖內(nèi)操作,鎖競(jìng)爭(zhēng)一定會(huì)發(fā)生并因鎖競(jìng)爭(zhēng)而導(dǎo)致任務(wù)排隊(duì)串行執(zhí)行鎖操作及鎖 內(nèi)計(jì)算。固定式鎖競(jìng)爭(zhēng)屬于實(shí)際情況中的常見(jiàn)現(xiàn)象,比如使用前面提到過(guò)的OpenMP來(lái)創(chuàng)建任務(wù),如果在任務(wù)中使用了鎖操作的話,那么它就是一種固定式鎖競(jìng) 爭(zhēng)。

固定式鎖競(jìng)爭(zhēng)的情況在這篇文章:多核編程中的鎖競(jìng)爭(zhēng)難題里做過(guò)分析,如果用前面的任務(wù)粒度因子和鎖粒度因子代入的話,可以得到固定式鎖競(jìng)爭(zhēng)的加速比如下:

1.4 隨機(jī)鎖競(jìng)爭(zhēng)中的加速比分析

在實(shí)際情況中,除了上節(jié)講過(guò)的固定式鎖競(jìng)爭(zhēng)情況外,鎖競(jìng)爭(zhēng)還有一種隨機(jī)競(jìng)爭(zhēng)的形式,在多核編程中的任務(wù)隨機(jī)競(jìng)爭(zhēng)模式的概率分析 一文中對(duì)隨機(jī)鎖競(jìng)爭(zhēng)做過(guò)分析。

在隨機(jī)鎖競(jìng)爭(zhēng)中,各個(gè)對(duì)等任務(wù)運(yùn)行鎖計(jì)算的時(shí)間是隨機(jī)的。比如在服務(wù)器軟件中,各個(gè)任務(wù)創(chuàng)建后,每個(gè)任務(wù)都在循環(huán)地做同樣的計(jì)算,而各個(gè)任務(wù)的運(yùn)行時(shí)間受網(wǎng)絡(luò)客戶端的影響,其處理時(shí)間不是固定的,而是隨機(jī)的,這樣將導(dǎo)致各個(gè)任務(wù)在競(jìng)爭(zhēng)同一把鎖時(shí)出現(xiàn)隨機(jī)競(jìng)爭(zhēng)現(xiàn)象。

隨機(jī)鎖競(jìng)爭(zhēng)情況下的加速比期望值如下:

 

 

n 隨機(jī)鎖競(jìng)爭(zhēng)最壞情況下的加速比

上面計(jì)算出的加速比是期望值,在最壞情況下,實(shí)際上有 的概率所有的任務(wù)都處于鎖內(nèi)計(jì)算狀態(tài),在這種最壞情況下,只有一個(gè)任務(wù)在運(yùn)行,因此加速比為1,如果考慮鎖計(jì)算開(kāi)銷,那么加速比為

在最壞的情況下,加速比將小于1。

#p#

1.5 分布式鎖競(jìng)爭(zhēng)的加速比分析

在一個(gè)分布式鎖競(jìng)爭(zhēng)環(huán)境中,有多個(gè)任務(wù)競(jìng)爭(zhēng)多把不同的鎖,不妨設(shè)有m個(gè)任務(wù)競(jìng)爭(zhēng)r把不同的鎖。

如果任務(wù)數(shù)量m足夠大的話,那么運(yùn)行鎖外計(jì)算的任務(wù)數(shù)量將會(huì)大于CPU核數(shù),導(dǎo)致每個(gè)CPU核上都有任務(wù)在運(yùn)行,此時(shí)的多CPU效率為

 

可以看出這種情況下的加速比和CPU核數(shù)成正比,并和任務(wù)粒度因子有關(guān),任務(wù)粒度因子越大,那么加速比也越大。此時(shí)加速比和鎖粒度沒(méi)有任何關(guān)系。這是分布式鎖競(jìng)爭(zhēng)和普通鎖競(jìng)爭(zhēng)的最大區(qū)別。

如果任務(wù)數(shù)量m不夠大,運(yùn)行鎖外計(jì)算的任務(wù)數(shù)量小于CPU核數(shù)的話,那么需要計(jì)算在有多少個(gè)進(jìn)行鎖競(jìng)爭(zhēng)的任務(wù)在運(yùn)行。

為方便起見(jiàn) ,令k為運(yùn)行鎖內(nèi)計(jì)算的任務(wù)數(shù)量,那么這k個(gè)任務(wù)在競(jìng)爭(zhēng)r把鎖,假設(shè)有 1把鎖上有任務(wù)在競(jìng)爭(zhēng),可以求出q的期望值為:

實(shí)際上q表示了這些鎖競(jìng)爭(zhēng)的任務(wù)中,最多可能有q個(gè)任務(wù)在運(yùn)行,最大運(yùn)行鎖內(nèi)計(jì)算的任務(wù)數(shù)為沒(méi)有運(yùn)行鎖外計(jì)算的CPU核數(shù)。

如果q小于n-m+k,那么有m-k個(gè)任務(wù)在運(yùn)行鎖外計(jì)算,有q個(gè)任務(wù)在運(yùn)行q把鎖上的鎖內(nèi)計(jì)算,此時(shí)多CPU效率為 ,求出加速比的期望值為:

加速比的大小完全取決于q的大小,而q的大小與任務(wù)數(shù)k和鎖的數(shù)量r有關(guān),r保持不變情況下,任務(wù)數(shù)愈大,則q愈大;任務(wù)數(shù)k保持不變情況下,r愈大則q愈大。

如果q大于等于n-m+k,那么將至少有n個(gè)任務(wù)在運(yùn)行,所有的CPU核都處于運(yùn)行狀態(tài),考慮加鎖解鎖增加的開(kāi)銷后,多CPU效率期望值為 ,可以求出此時(shí)的加速比期望值為:

所以在隨機(jī)分布式鎖競(jìng)爭(zhēng)的情況下,加速比只和四個(gè)因素有關(guān),CPU核數(shù)、任務(wù)粒度因子、任務(wù)數(shù)量、鎖的數(shù)量。

只要選取合適的任務(wù)數(shù)量、鎖的數(shù)量,那么就可以使加速比和CPU核數(shù)成正比關(guān)系。

n分布式鎖競(jìng)爭(zhēng)在最壞情況下的概率計(jì)算

分布式鎖競(jìng)爭(zhēng)情況下,考慮一種最壞的情況,所有的任務(wù)都在運(yùn)行鎖內(nèi)計(jì)算,此時(shí)可以

只要選擇合適的任務(wù)數(shù)m,鎖數(shù)量r,那么可以將概率P控制在一個(gè)比較大的值,這樣在最壞情況下也不會(huì)出現(xiàn)問(wèn)題。

1.6 結(jié)論

以上三種鎖競(jìng)爭(zhēng)形式中,固定式鎖競(jìng)爭(zhēng)所得 到的加速比是很糟糕的,和阿姆達(dá)爾定律相當(dāng),隨機(jī)式鎖競(jìng)爭(zhēng)所得到的加速比比固定式好了許多,但最壞情況下仍然不容樂(lè)觀。分布式鎖競(jìng)爭(zhēng)所得到的加速比是最好 的,加速比和CPU核數(shù)成正比,和Gustafson定律描述的相當(dāng)。因此在多核系統(tǒng)中使用分布式鎖競(jìng)爭(zhēng)的話,可以取得和單核系統(tǒng)中多任務(wù)編程差不多的性 能。分布式鎖競(jìng)爭(zhēng)形式將是多核編程的發(fā)展方向。

 

責(zé)任編輯:陳四芳 來(lái)源: blog.51cto.com
相關(guān)推薦

2013-12-16 15:04:51

多核編程

2018-01-17 15:02:28

VMware網(wǎng)絡(luò)連接

2012-03-26 12:23:25

JavaSwing

2009-06-09 16:53:22

Java Swing處理方法比較

2009-07-01 17:22:05

連接字符串

2021-11-29 06:57:50

App使用屬性

2023-09-13 09:52:14

分布式鎖Java

2017-01-05 16:19:12

C++正則表達(dá)式

2024-02-26 13:47:00

C#Socket數(shù)據(jù)接收

2010-04-26 12:19:28

Oracle 數(shù)據(jù)庫(kù)

2023-10-28 16:25:17

濾波C++

2010-04-16 15:12:12

ORACLE鎖機(jī)制

2010-04-02 13:15:01

Oracle跟蹤

2013-12-18 16:18:08

多核線程

2010-07-07 09:14:35

SQL Server數(shù)

2011-08-01 18:42:40

分區(qū)維度物化視圖

2024-07-16 14:15:09

2009-09-01 10:00:55

Tomcat集群方式

2018-12-13 20:14:18

物聯(lián)網(wǎng)平臺(tái)物聯(lián)網(wǎng)IOT

2009-05-08 15:29:53

LTE策略運(yùn)營(yíng)商
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品成人av久久 | 成人一区二区电影 | 日韩 欧美 二区 | 日韩在线一区视频 | 日韩视频1 | 国产美女自拍视频 | 日韩欧美一区二区三区免费观看 | 四虎影院新网址 | 男女视频在线免费观看 | 亚洲网一区| 五月激情久久 | 日韩欧美中文在线 | 精品国产91亚洲一区二区三区www | 国产免费va | 欧美理论在线观看 | 亚洲毛片| 免费国产黄网站在线观看视频 | 亚洲精品欧美精品 | 91精品国产色综合久久不卡蜜臀 | 91国产视频在线 | 国产成年人小视频 | 国外成人在线视频网站 | 亚洲在线免费观看 | 亚洲国产视频一区 | 日韩一区在线视频 | 久久综合一区 | 国产成人综合久久 | 爱操影视 | 精品一区二区三区在线观看国产 | 久久精品久久综合 | 免费国产视频在线观看 | 国产精品久久网 | 国产一区二区三区免费观看在线 | 男女网站免费 | 日韩午夜激情 | 亚洲成人免费在线观看 | 国产精品欧美一区二区三区不卡 | 一区二区三区免费 | 国产分类视频 | 97国产一区二区精品久久呦 | 日韩在线国产 |