自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為您揭曉多核并行計算是什么

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

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

以前只有在超級計算機中才能體驗的并行計算目前被普及到了臺式機中.

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

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

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

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

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

概念

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

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

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

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

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

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

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

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

   AMD Multicore Opteron

   Intel Core2 Duo

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

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

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

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

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

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

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

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

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

附錄一些并行庫:

Single Unix Specification的POSIX線程庫.

Intel的TBB線程庫.

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

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

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

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

【編輯推薦】

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

2010-03-22 14:45:40

云計算

2011-12-31 10:31:44

云計算虛擬化IT

2020-06-09 10:49:34

先導(dǎo)杯

2021-06-01 05:51:37

云計算并行計算分布式計算

2011-04-21 09:13:14

并行計算

2012-08-17 09:32:52

Python

2010-03-22 16:02:50

云計算

2009-12-18 09:38:27

.NET 4.0并行計

2011-04-20 17:15:21

并行計算

2010-03-19 17:23:45

云計算

2014-04-24 10:25:15

2013-12-18 17:29:10

多核并行

2019-04-18 09:15:05

DaskPython計算

2014-01-21 11:16:59

MPI并行計算

2024-03-01 09:53:34

2020-10-20 09:57:04

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

2011-08-29 10:40:02

浪潮英特爾并行計算

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ù)并行計算
點贊
收藏

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