偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為您揭曉多核并行計(jì)算是什么

開發(fā) 后端
多核CPU的誕生,標(biāo)志著多核并行計(jì)算時(shí)代的到來。本文將為大家講述,什么是并行計(jì)算,可能從硬件的角度談?wù)撦^多。

由處理器技術(shù)的發(fā)展而催生的多核技術(shù)帶動(dòng)了軟件編程的變革.

以前只有在超級(jí)計(jì)算機(jī)中才能體驗(yàn)的并行計(jì)算目前被普及到了臺(tái)式機(jī)中.

在多核技術(shù)沒有產(chǎn)生之前,臺(tái)式機(jī)中有一種多CPU的架構(gòu):對(duì)稱式多處理器,在一塊主板上放置多塊CPU的技術(shù),但是這種主板架構(gòu)當(dāng)時(shí)來講也非常昂貴,winNT支持這種技術(shù),一般在服務(wù)器上才被應(yīng)用.

多核CPU的產(chǎn)生,開啟了并行計(jì)算的美好篇章,普通開發(fā)者/用戶都可以廉價(jià)的得到它(xp支持這種多核CPU,win98則不支持).

多核CPU架構(gòu)與多CPU架構(gòu)并無(wú)太大區(qū)別,只是將芯片封裝的更緊密,成本更低而已.

在***的Intel i7系列處理器上同時(shí)支持多核與超線程,這意味著處理器將擴(kuò)充一倍的內(nèi)核數(shù)量,如4核心CPU,將被操作系統(tǒng)識(shí)別為8核心.

例如在一個(gè)主板上有4個(gè)CPU插槽,每個(gè)槽插一個(gè)4核的CPU,并且每一核都具有超線程,那么將會(huì)有32個(gè)線程共同執(zhí)行代碼(32位windows支持CPU數(shù)量的極限),這太帥了,不是嗎?

概念

Concurrent(并發(fā))與Parallel(并行)

并發(fā)是用來描述并行執(zhí)行的方式(看上去一起發(fā)生的事件,例如目前操作系統(tǒng)的多任務(wù)調(diào)度程序,看上去桌面上有許多程序在同時(shí)運(yùn)行.),并發(fā)是形容詞.

并行是指通過并發(fā)將一個(gè)操作分解成一組粒度更細(xì)的工作單元,并且這些工作單元可以在不同的處理器內(nèi)核上運(yùn)行.并行是動(dòng)詞,指必須有兩個(gè)以上的事件發(fā)生.

工作單元,以粒度可分為最小到單一CPU指令,大到函數(shù)或系統(tǒng)任務(wù).

并行有數(shù)據(jù)并行性與任務(wù)并行性

數(shù)據(jù)并行性指對(duì)許多數(shù)據(jù)執(zhí)行相同的并行操作,比如對(duì)一組數(shù)的每個(gè)數(shù)進(jìn)行加法操作.

任務(wù)并行性指對(duì)相同的一組數(shù)據(jù)執(zhí)行不同的并行操作,比如一個(gè)執(zhí)行加法操作,而另一個(gè)執(zhí)行乘法操作.

優(yōu)秀的多核微處理器:

   AMD Multicore Opteron

   Intel Core2 Duo

并行編程的麻煩:內(nèi)存一致模型簡(jiǎn)稱內(nèi)存模型

緩存一致性(cache coherency) 將緩存與主內(nèi)存數(shù)據(jù)進(jìn)行同步

內(nèi)存一致性模型(memory consistency model)

CPU可以對(duì)內(nèi)存的讀取或?qū)懭氩僮髦匦屡判?亂序執(zhí)行Out of Order),而導(dǎo)致內(nèi)存一致性的產(chǎn)生.就是指CPU中實(shí)際內(nèi)存訪問操作與程序代碼中內(nèi)存訪問操作的不一致性程度.

CPU的硬件架構(gòu)決定了內(nèi)存模型的強(qiáng)度,強(qiáng)度越高寫代碼就會(huì)更容易.

x86/64架構(gòu)的CPU有較強(qiáng)的內(nèi)存一致性模型,而安騰系列處理器Itanium(IA-64)是較弱的模型.它為了提高性能(不必根蹤緩存行的狀態(tài))不會(huì)主動(dòng)刷新緩存,而是提供指令操作緩存刷新到主內(nèi)存.

還有一些軟件實(shí)現(xiàn)的內(nèi)存模型,比如java虛擬機(jī)和.NET CLR,它們都是比較強(qiáng)的內(nèi)存模型,而且不考慮具體的硬件實(shí)現(xiàn).

解決辦法:內(nèi)存柵欄(memory fence)

內(nèi)存柵欄可以阻止目標(biāo)架構(gòu)對(duì)指令進(jìn)行重排.利用語(yǔ)言平臺(tái)的特性或原子方法可以實(shí)現(xiàn)內(nèi)存柵欄,比如.net中的Interlocked類方法,c++中的volatile變量.

附錄一些并行庫(kù):

Single Unix Specification的POSIX線程庫(kù).

Intel的TBB線程庫(kù).

Standard Template Adaptive Parallel Library,STAPL:標(biāo)準(zhǔn)模板適配并行庫(kù).

***并行編程庫(kù)必須得到操作系統(tǒng)的支持,如果系統(tǒng)沒有相應(yīng)功能api,上面那些并行庫(kù)也就一無(wú)是處了.

原文標(biāo)題:并行編程 - 給不及格的程序員

鏈接:http://www.cnblogs.com/ioriwellings/archive/2010/06/08/1749343.html

【編輯推薦】

  1. .NET 4并行編程入門之Task基礎(chǔ)
  2. 詳解.NET 4.0并行計(jì)算支持歷史
  3. .NET 4并行編程入門之Task的休眠
  4. .NET 4并行編程入門之Task執(zhí)行和異常處理
  5. .NET 4并行編程入門之Task的取消
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2010-03-22 14:45:40

云計(jì)算

2011-12-31 10:31:44

云計(jì)算虛擬化IT

2020-06-09 10:49:34

先導(dǎo)杯

2021-06-01 05:51:37

云計(jì)算并行計(jì)算分布式計(jì)算

2011-04-21 09:13:14

并行計(jì)算

2012-08-17 09:32:52

Python

2010-03-22 16:02:50

云計(jì)算

2011-04-20 17:15:21

并行計(jì)算

2009-12-18 09:38:27

.NET 4.0并行計(jì)

2010-03-19 17:23:45

云計(jì)算

2014-04-24 10:25:15

2013-12-18 17:29:10

多核并行

2019-04-18 09:15:05

DaskPython計(jì)算

2014-01-21 11:16:59

MPI并行計(jì)算

2024-03-01 09:53:34

2020-10-20 09:57:04

量子計(jì)算人工智能技術(shù)

2011-08-29 10:40:02

浪潮英特爾并行計(jì)算

2010-03-11 15:23:44

Visual Stud

2010-04-21 09:23:09

.NET 4

2017-04-24 12:07:44

Spark大數(shù)據(jù)并行計(jì)算
點(diǎn)贊
收藏

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