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

多核編程中的負載平衡難題

開發 前端
前面多核編程中的鎖競爭難題這篇文章中講過一個多核編程中的串行化的難題,這篇文章中再來講解一下多核編程中的另外一個難題,就是負載平衡方面的難題。

前面多核編程中的鎖競爭難題這篇文章中講過一個多核編程中的串行化的難題,這篇文章中再來講解一下多核編程中的另外一個難題,就是負載平衡方面的難題。

多核CPU中,要很好地發揮出多個CPU的性能的話,必須保證分配到各個CPU上的任務有一個很好的負載平衡。否則一些CPU在運行,另外一些CPU處于空閑,無法發揮出多核CPU的優勢來。

要實現一個好的負載平衡通常有兩種方案,一種是靜態負載平衡,另外一種是動態負載平衡。

1、靜態負載平衡

靜態負載平衡中,需要人工將程序分割成多個可并行執行的部分,并且要保證分割成的各個部分能夠均衡地分布到各個CPU上運行,也就是說工作量要在多個任務間進行均勻的分配,使得達到高的加速系數。

靜 態負載平衡問題從數學上來說是一個NP完全性問題,Richard M. Karp, Jeffrey D. Ullman, Christos H. Papadimitriou, M. Garey, D. Johnson等人相繼在1972年到1983年間證明了靜態負載問題在幾種不同約束條件下的NP完全性。

雖然NP完全性問題在數學上是難題,但是這并不是標題中所說的難題,因為NP完全性問題一般都可以找到很有效的近似算法來解決。      

2、動態負載平衡

動態負載平衡是在程序的運行過程中來進行任務的分配達到負載平衡的目的。實際情況中存在許多不能由靜態負載平衡解決的問題,比如一個大的循環中,循環的次數是由外部輸入的,事先并不知道循環的次數,此時采用靜態負載平衡劃分策略就很難實現負載平衡。

動態負載平衡中對任務的調度一般是由系統來實現的,程序員通常只能選擇動態平衡的調度策略,不能修改調度策略,由于實際任務中存在很多的不確定因素,調度算法無法做得很優,因此動態負載平衡有時可能達不到既定的負載平衡要求。

3、負載平衡的難題在那里?

負載平衡的難題并不在于負載平衡的程度要達到多少,因為即使在各個CPU上分配的任務執行時間存在一些差距,但是隨著CPU核數的增多總能讓總的執行時間下降,從而使加速系數隨CPU核數的增加而增加。

負載平衡的困難之處在于程序中的可并行執行塊很多要靠程序員來劃分,當然CPU核數較少時,比如雙核或4核,這種劃分并不是很困難。但隨著核數的增加,劃分 的粒度將變得越來越細,到了16核以上時,估計程序員要為如何劃分任務而抓狂。比如一段順序執行的代碼,放到128核的CPU上運行,要手工劃分成128 個任務,其劃分的難度可想而知。

負載劃分的誤差會隨著CPU核數的增加而放大,比如一個需要16個時間單位的程序分到4個任務上執行,平均每個任務上的負載執行時間為4個時間單位,劃分誤 差為1個時間單位的話,那么加速系數變成 16/(4+1)=3.2,是理想情況下加速系數 4的80%。但是如果放到一個16核CPU上運行的話,如果某個任務的劃分誤差如果為0.5個時間單位的話,那么加速系數變成16/(1+0.5) = 10.67,只有理想的加速系數16的66.7%,如果核數再增加的話,由于誤差的放大,加速系數相比于理想加速系數的比例還會下降。

負載劃分的難題還體現在CPU和軟件的升級上,比如在4核CPU上的負載劃分是均衡的,但到了8核、16核上,負載也許又變得不均衡了。軟件升級也一樣, 當軟件增加功能后,負載平衡又會遭到破壞,又需要重新劃分負載使其達到平衡,這樣一來軟件設計的難度和麻煩大大增加了。

如果使用了鎖的話,一些看起來是均衡的負載也可能會由于鎖競爭變得不平衡起來,詳細情況請看:http://blog.csdn.net/drzhouweiming/archive/2007/04/10/1559718.aspx

4、負載平衡的應對策略

對于運算量較小的軟件,即使放到單核CPU上運行速度也很快,負載平衡做得差一些并沒有太大影響,實際中負載平衡要考慮的是大運算量和規模很大的軟件,這些軟件需要在多核上進行負載平衡才能較好地利用多核來提高性能。

對于大規模的軟件,負載平衡方面采取的應對策略是發展劃分并行塊的宏觀劃分方法,從整個軟件系統層面來進行劃分,而不是象傳統的針對某些局部的程序和算法來進行并行分解,因為局部的程序通常都很難分解成幾十個以上的任務來運行。

另外一個應對策略是在工具層面的,也就是編譯工具能夠協助人工進行并行塊的分解,并找出良好的分解方案來,這方面Intel已經作出了一些努力,但是還需要更多的努力讓工具的功能更強大一些才能應對核數較多時的情況。

原文鏈接:http://blog.csdn.net/drzhouweiming/article/details/1568364

責任編輯:陳四芳 來源: blog.csdn.net
相關推薦

2010-05-04 17:50:41

負載平衡

2010-05-04 17:54:50

網絡負載平衡

2010-04-20 13:36:17

負載平衡

2010-05-04 17:31:05

2010-05-05 18:07:53

網絡負載平衡

2010-05-10 17:15:36

負載平衡方案

2010-05-04 17:38:36

ISP負載平衡

2010-12-17 10:45:13

ldirectordLVS負載平衡

2009-12-21 17:24:46

WCF負載平衡

2010-04-21 13:48:48

網絡負載平衡

2010-04-21 10:17:59

2010-05-04 17:45:49

自動負載平衡

2010-04-25 23:36:47

負載平衡服務器

2010-05-10 18:27:51

負載平衡產品

2010-05-10 18:19:00

負載平衡技術

2010-02-22 16:43:09

WCF負載平衡

2022-02-06 11:50:29

HAProxy網絡流量系統運維

2013-05-30 09:58:50

RouterosADSL負載均衡技術

2023-12-15 19:29:20

2020-03-19 13:10:48

DRSVMware負載平衡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区久久 | 国产三级电影网站 | 久久精品久久精品久久精品 | 波多野结衣在线观看一区二区三区 | 在线啊v | 欧美精品被 | 欧美黄在线观看 | 91网站在线观看视频 | 成人精品视频99在线观看免费 | 99精品免费视频 | 久久精品欧美一区二区三区不卡 | 在线视频亚洲 | 国产欧美精品一区二区 | 亚洲一区影院 | 欧美激情综合 | 日韩免费1区二区电影 | 亚洲视频三区 | 亚洲一区二区电影网 | 国产黄色小视频在线观看 | 精品国产31久久久久久 | 天堂色区| 黄在线免费观看 | 免费h视频 | 亚洲视频在线免费观看 | 99久久国产| 欧美精品一区二区三区四区 在线 | 亚洲九色| 国产日韩欧美 | k8久久久一区二区三区 | 一区二区三区影院 | 九九精品在线 | 久久久久久久久精 | 九色av| 日本亚洲一区二区 | 亚洲成网站 | 国产一区二区三区四区在线观看 | 成人夜晚看av | 国产精品夜夜夜一区二区三区尤 | 青青草华人在线视频 | www久| 伊人网99|