查看cpu核數(shù) 關(guān)于并行計(jì)算(單CPU多核并行,單節(jié)點(diǎn)多CPU并行,多節(jié)點(diǎn)并行)的效率?
關(guān)于并行計(jì)算(單CPU多核并行,單節(jié)點(diǎn)多CPU并行,多節(jié)點(diǎn)并行)的效率?1級(jí)緩存:6x64kb 2級(jí)緩存:6x256kb 3級(jí)緩存:15MB,即1級(jí)緩存和2級(jí)緩存對(duì)每個(gè)核心是獨(dú)占的,而3級(jí)緩存是共享的
關(guān)于并行計(jì)算(單CPU多核并行,單節(jié)點(diǎn)多CPU并行,多節(jié)點(diǎn)并行)的效率?
1級(jí)緩存:6x64kb 2級(jí)緩存:6x256kb 3級(jí)緩存:15MB,即1級(jí)緩存和2級(jí)緩存對(duì)每個(gè)核心是獨(dú)占的,而3級(jí)緩存是共享的。每個(gè)核都必須從內(nèi)存中獲取數(shù)據(jù)才能進(jìn)行計(jì)算,這是一個(gè)緩慢的過程。緩存是存儲(chǔ)公共數(shù)據(jù)的小空間(非常昂貴),因此減少了從內(nèi)存獲取數(shù)據(jù)的時(shí)間。多節(jié)點(diǎn)計(jì)算時(shí),不同節(jié)點(diǎn)的cpu之間需要進(jìn)行數(shù)據(jù)交換。此時(shí)的瓶頸是網(wǎng)絡(luò)傳輸。即使是最昂貴的連接硬件也非常慢,這與緩存幾乎沒有關(guān)系。
并行開發(fā)優(yōu)缺點(diǎn)?
并行開發(fā)的優(yōu)點(diǎn)是可以節(jié)省時(shí)間和提高效率。缺點(diǎn)是缺乏溝通可能導(dǎo)致重復(fù)工作太簡(jiǎn)單了。這取決于哪種串行端口與哪種并行端口相比較。沒有約束很難解釋清楚這個(gè)問題。
目前,很多人認(rèn)為串口的速度一定要比并口塊快。實(shí)際上,這是一種誤解,因?yàn)槲覀兺ǔJ褂没诖诩夹g(shù)發(fā)展的接口和線纜,如串口的SATA而不是并口的IDE,這給人們帶來了很大的錯(cuò)誤。串口是ox,速度很快。
實(shí)際上,串口的極限速度并不比并口快,因?yàn)椴⒖诳梢酝ㄟ^增加電纜接口不斷提高一次性并發(fā)的位數(shù),速度可以更快。例如,CPU內(nèi)部的高速互連通道/高比特寬數(shù)據(jù)總線和DDR標(biāo)準(zhǔn)的數(shù)據(jù)交換都是并行的。
而且一開始,串口的誕生速度不快,由于當(dāng)時(shí)的技術(shù)限制,一旦速度快了,接收器就不能正確地接受/恢復(fù)數(shù)據(jù),數(shù)據(jù)就會(huì)變成一堆垃圾,根本無法使用。但后來,工程師們?cè)谘芯苛诵盘?hào)分割、時(shí)鐘數(shù)據(jù)恢復(fù)和信道均勻化后,解決了高速傳輸和抗干擾問題,速度提升緩慢。
提高傳輸帶寬的方法不超過兩種,一種是提高單線傳輸速率,另一種是增加數(shù)據(jù)傳輸通道。仔細(xì)想想,我們都知道現(xiàn)在企業(yè)都在追逐利潤(rùn)。增加傳輸通道就是增加電纜。建造這樣一條平行的標(biāo)準(zhǔn)電纜,光是買電線就要花很多錢。顯然,提高單線傳輸速度更劃算。其次,MCUCPU的數(shù)據(jù)I/O端口仍然很緊。如果要使并行數(shù)據(jù)占用更多的數(shù)據(jù)總線位寬度,還需要添加芯片來保持并行數(shù)據(jù)的準(zhǔn)確性。另外,PCB上并聯(lián)的設(shè)計(jì)過于復(fù)雜,現(xiàn)有設(shè)備的PCB面積有限,不能進(jìn)行并聯(lián)布線。這些需求和物理因素限制了并行接口技術(shù)的發(fā)展,并使其難以實(shí)現(xiàn),并不是說它太慢。
然而,隨著電子技術(shù)的進(jìn)步和人們的日常需求,快速并行口的設(shè)計(jì)不如高速串行口的設(shè)計(jì)經(jīng)濟(jì),串行口可以大大減少電纜的使用量。串行接口/電纜已經(jīng)滿足了日常的需要,因此串口技術(shù)將在日常通用設(shè)備中得到應(yīng)用。
為什么串口比并口快?
一個(gè)非常重要的因素與操作系統(tǒng)和平臺(tái)有關(guān)。有一個(gè)很好的例子。
在windows平臺(tái)上,由于效率問題和缺乏并行計(jì)算方案,8核16線程在大多數(shù)情況下可能是無用的。
但是在Linux平臺(tái)上是不一樣的,幾乎所有的科學(xué)計(jì)算或仿真軟件都是基于Linux平臺(tái)的,這種幾十萬的CPU使用太普遍了。
例如,目前所有的芯片設(shè)計(jì)軟件都是在Linux平臺(tái)上進(jìn)行的,特別是先進(jìn)技術(shù)(如7Nm)的設(shè)計(jì)極其復(fù)雜,設(shè)計(jì)規(guī)模巨大(100億設(shè)備規(guī)模)。使用幾十個(gè)或幾百個(gè)cpu和簡(jiǎn)單線程運(yùn)行模擬是很常見的。
所以學(xué)習(xí)一個(gè)并行計(jì)算工具或模擬軟件,你會(huì)發(fā)現(xiàn)8核16線程有時(shí)是不夠的
并行計(jì)算的原理是將代碼分配給多個(gè)處理器進(jìn)行操作。
例如,8核機(jī)器可以同時(shí)部署8個(gè)處理器。
不過,為了不讓計(jì)算太枯燥,你最好留一個(gè)自己去做其他事情。
1. 并行計(jì)算函數(shù)的啟動(dòng)和關(guān)閉:corenum=7%的被調(diào)用處理器數(shù)。