波多野结衣AV无码高请AVI日韩第二页I国产9999I97欧美I91国精产品自偷偷I四虎一区二区三区I色悠久久综合I一区二区三区四区免费视频I亚洲AV无码一区二区二三区I另类老妇奶性生BBwBBw洗澡I欧美A级视频I国产gv在线I9久爱视频I免费电影一区二区I五月天丁香亚洲IAV亚洲天堂在线I日韩艹比I国产情侣啪啪视频

美國服務器Linux系統多核并行編程技術介紹

目前主流的美國服務器 Linux 系統主機都是馮諾依曼架構,即共享內存的計算模型,這種過程計算模型對并行計算并不友好。這種架構中,有如下設計特點: 1 )多個美國服務器 CPU 核改

美國服務器Linux系統多核并行編程技術介紹

來源:美國服務器 作者:美聯科技小編Zoe 瀏覽量:155
2020-02-27
0

目前主流的美國服務器Linux系統主機都是馮諾依曼架構,即共享內存的計算模型,這種過程計算模型對并行計算并不友好。這種架構中,有如下設計特點:

1)多個美國服務器CPU核改善處理器的計算處理能力

2)多級cache改善美國服務器CPU訪問主存的效率

3)各個CPU都有本地內存(NUMA(非一致性內存訪問)),進一步改善CPU訪問主存的效率

4store buffer模塊改善cache write由于應答延遲而造成的寫停頓問題

5invalidate queue模塊改善使無效應答的時延,把使無效命令放入queue后就立即發送應答

6)外設DMA支持直接訪問主存,改善美國服務器CPU使用效率

這些硬件體系設計特點也引入很多問題,最大的問題就是cache一致性問題和亂序執行問題。cache一致性問題由cache一致性協議MESI解決,MESI由硬件保證,對軟件來說是透明的。

MESI協議保證所有CPU對單個cache line中單個變量修改的順序保持一致,但不保證不同變量的修改在所有CPU上看到的是相同順序。這就造成了亂序。不僅如此,亂序的原因還有很多:

1store buffer引起的延遲處理,會造成亂序

2invalidate queue引起的延遲處理,會造成亂序

3)編譯優化,會造成亂序

4)分支預測、多流水線等CPU硬件優化技術,會造成亂序

5)外設DMA,會造成數據亂序

這種情況造成,就連簡單的++運算操作的原子性都無法保證,而這些問題必須采用多核并行編程新的技術手段來解決。

多核并行編程關鍵技術

1、鎖技術

美國服務器Linux kernel提供了多種鎖機制,如自旋鎖、信號量、互斥量、讀寫鎖、順序鎖等。各種鎖的簡單比較如下:

1)自旋鎖,不休眠,無進程上下文切換開銷,可以用在中斷上下文和臨界區小的場合

2)信號量,會休眠,支持同時多個并發體進入臨界區,可以用在可能休眠或者長的臨界區的場合

3)互斥量,類似與信號量,但只支持同時只有一個并發體進入臨界區

4)讀寫鎖,支持讀并發,寫寫/讀寫間互斥,讀會延遲寫,對讀友好,適用讀側重場合

5)順序鎖,支持讀并發,寫寫/讀寫間互斥,寫會延遲讀,對寫友好,適用寫側重場合

鎖技術雖然能有效地提供并行執行下的競態保護,但鎖的并行可擴展性很差,無法充分發揮多核的性能優勢。鎖的粒度太粗會限制擴展性,粒度太細會導致巨大的系統開銷,而且設計難度大,容易造成死鎖。以下技術手段或指導原則能解決或減輕這些問題的風險:

1)按統一的層次順序使用鎖,解決死鎖問題

2)指數后退,解決活鎖/饑餓問題

3)范圍鎖,解決鎖驚群問題

4)優先級繼承,解決優先級反轉問題

2、原子技術

原子技術主要是解決cache不一致性和亂序執行對原子訪問的破壞問題。主要的原子原語有:

1ACCESS_ONECE():只限制編譯器對內存訪問的優化

2)barrier():只限制編譯器的亂序優化

3)smb_wmb():寫內存屏障,刷新store buffer,同時限制編譯器和美國服務器CPU的亂序優化

4smb_rmb():讀內存屏障,刷新invalidate queue,同時限制編譯器和美國服務器CPU的亂序優化

5smb_mb():讀寫內存屏障,同時刷新store bufferinvalidate queue,同時限制編譯器和CPU的亂序優化

6atomic_inc()/atomic_read()美國服務器整型原子操作

3無鎖技術

原子技術是無鎖技術中的一種,除此之外,無鎖技術還包括RCUHazard pointer等,這些無鎖技術都基于內存屏障實現的:

1Hazard pointer主要用于對象的生命周期管理,類似引用計數,但比引用計數有更好的并行可擴展性。

2RCU適用的場景很多,其可以替代:讀寫鎖、引用計數、垃圾回收器、等待事物結束等,而且有更好的并行擴展性。但RCU也有一些不適用的場景,如寫側重、臨界區長、臨界區內休眠等場景。

不過,所有的無鎖原語也只能解決讀端的并行可擴展性問題,寫端的并行可擴展性只能通過數據分割技術來解決。

4、數據分割技術

分割數據結構,減少共享數據,是解決并行可擴展性的根本辦法。對分割友好(即并行友好)的數據結構有:

1)數組

2)哈希表

3)基樹/稀疏數組

4)跳躍列表

使用這些便于分割的數據結構,有利于通過數據分割來改善并行可擴展性。除了使用合適的數據結構外,合理的分割指導規則也很重要:

1)讀寫分割:把以讀為主的數據與以寫為主的數據分開

2)路徑分割:按獨立的代碼執行路徑來分割數據

3)專項分割:把經常更新的數據綁定到指定的CPU/線程中

4)所有權分割:按美國服務器CPU/線程個數對數據結構進行分割,把數據分割到per-cpu/per-thread

以上這些美國服務器Linux系統多核并行編程內容,基本上涵蓋了Linux kernel中所有的并發編程關鍵技術。當然并行編程還有很多其他技術沒有應用到Linux kernel中的,如無副作用的并行函數式編程技術、消息傳遞、MapReduce等等。

關注美聯科技,了解更多IDC資訊!

部分文章來源與網絡,若有侵權請聯系站長刪除!
主站蜘蛛池模板: 国产精品麻豆成人av电影艾秋 | h视频在线观看网站 | 日日噜噜噜 | 亚洲卡1卡2卡三卡4卡5卡6卡 | 天天摸夜夜摸夜夜狠狠摸 | 日韩三级在线免费观看 | 天堂在线免费观看视频 | 亲近乱子伦免费视频无码 | 日韩六区 | 精品国产乱码久久久久久88av | 黄色片网站大全 | 日韩精品一区二区午夜成人版 | 国产av明星换脸精品网站 | 中文字幕在线观看不卡 | 性做爰高清视频在线观看视频 | 精品无码久久久久久国产 | 日韩精品专区 | 天堂а√在线中文在线 | 一区二区三区毛片 | 人妻av综合天堂一区 | 久久五月婷 | 日韩一区二区在线看 | 无码专区3d动漫精品免费 | 久久综合综合久久av在钱 | 日韩欧美精品有码在线 | 成人网在线播放 | 久久久久久伊人 | 欧洲美女熟乱av | 欧美日韩亚洲tv不卡久久 | 国产成人黄色 | 中文字幕肉感巨大的乳专区 | 好爽又高潮了毛片免费下载 | 波多野结衣电车痴汉 | 色午夜日本高清视频www | 91超碰在线观看 | 国产婷婷精品av在线 | 亚洲国产欧美中文丝袜日韩 | 成人做爰高潮片免费视频 | 久久久久人妻精品一区二区三区 | 久久青青草原国产毛片 | 免费夫妻生活片av | 日日干综合 | 国产午夜福利在线观看视频 | 国产成人av免费 | 精品久久久久久无码人妻 | 福利视频在线免费观看 | 亚洲图区综合网 | 在线看片国产 | 97人妻碰碰碰久久久久禁片 | 中文字幕无码乱人伦免费 | 亚洲国产一区二区三区a毛片 | 业余 自由 性别 成熟偷窥 | 尤物国产在线 | 日本乱子伦xxxx| 99热最新成人国产精品 | 97人人澡人人爽人人模亚洲 | 久久国产高潮流白浆免费观看 | 在教室伦流澡到高潮hnp视频 | 国产美女久久久久 | 99黄色网 | 国产麻豆一精品一av一免费软件 | 熟妇与小伙子matur老熟妇e | 无码人妻丰满熟妇区五十路百度 | 曰本无码人妻丰满熟妇啪啪 | 97碰碰碰人妻无码视频 | 依人九九 | 五月综合缴情婷婷六月 | 亚洲精品无码一二区a片 | 亚洲 视频 一区 | 精品综合在线 | 亚洲乱码国产乱码精品精不卡 | 性视频播放免费视频 | 中文字幕 国产精品 | 精品国产91 | 亚洲精品视频91 | 黄色一级片免费看 | 一区二区免费在线观看视频 | 午夜福利理论片在线观看 | 国产韩国精品一区二区三区 | 欧美三级自拍 | 男女做爰猛烈吃奶啪啪喷水网站 | 国产成人亚洲精品无码av大片 | 国产最新av在线播放不卡 | 人人妻人人爽人人澡欧美一区 | 精品久久久久久久久久久国产字幕 | 播五月开心婷婷欧美综合 | 五月婷婷中文字幕 | 久久aaa| 国产成人精品人人 | 国产免费黄 | 人人模人人干 | 免费无码又黄又爽又刺激 | 欧美专区在线观看 | 久久97久久97精品免视看 | 国产精品v欧美精品∨日韩 五月婷六月婷婷俺也去 | www.久久网 | 亚洲熟妇色xxxxx欧美老妇 | 日韩av无码中文无码不卡电影 | 欧美精品小视频 |