什么是并行計(jì)算機(jī)?并行計(jì)算機(jī)有哪些優(yōu)勢(shì)?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Concurrent 公司的 iHawk 并行計(jì)算機(jī)仿真系統(tǒng)是具有高實(shí)時(shí)特性的實(shí)時(shí)仿真系統(tǒng),該仿真系統(tǒng)包含對(duì)稱多處理器計(jì)算機(jī)平臺(tái)、實(shí)時(shí)操作系統(tǒng)、實(shí)時(shí)開(kāi)發(fā)工具以及應(yīng)用軟件。系統(tǒng)以 MATLAB® / Simulink® 軟件作為前端建模工具,并可兼容C/C++、Ada 和 Fortran 等手工編程建模方式,應(yīng)用領(lǐng)域覆蓋系統(tǒng)架構(gòu)設(shè)計(jì)、功能設(shè)計(jì)、快速原型、半實(shí)物仿真測(cè)試等階段。并行計(jì)算機(jī)仿真系統(tǒng)可以應(yīng)用到航空、航天、國(guó)防、汽車等實(shí)時(shí)仿真及測(cè)試領(lǐng)域。
并行計(jì)算機(jī)公司的實(shí)時(shí)仿真系統(tǒng)包括:實(shí)時(shí)多處理器平臺(tái)—高性能貨架式實(shí)時(shí)計(jì)算機(jī)以及多種接口類型的 I/O 板卡;RedHawk 實(shí)時(shí) Linux 操作系統(tǒng)—高實(shí)時(shí)確定性;SimulaTIon WorkBench 仿真工作平臺(tái)—圖形化的多語(yǔ)言模型混合仿真;NightStar 實(shí)時(shí) Linux 調(diào)試分析工具—保證應(yīng)用程序?qū)崟r(shí)確定性前提下的在線分析調(diào)試。
實(shí)時(shí)多處理器平臺(tái)
iHawk 計(jì)算機(jī)的實(shí)時(shí)多處理器平臺(tái)是 Concurrent 公司的高性能實(shí)時(shí)多處理器平臺(tái),用于時(shí)間關(guān)鍵型仿真、數(shù)據(jù)采集、系統(tǒng)測(cè)試和工業(yè)系統(tǒng)的應(yīng)用。
? 支持多個(gè) 32/64 位多核 Intel 或 AMD 處理器
? 外部 I/O 總線
? 微秒級(jí)的高精度定時(shí)同步時(shí)鐘板卡 (RCIM)
? 提供 8 個(gè)微秒級(jí)高精度低溫漂時(shí)鐘
? 分布式實(shí)時(shí)仿真環(huán)境
? GPS 時(shí)鐘對(duì)準(zhǔn)的同步選項(xiàng)機(jī)制
在并行計(jì)算機(jī)中,硬件提供了很大的支持
一.片內(nèi)級(jí)
1.片內(nèi)級(jí)并行
指的是指令級(jí)并行,如指令的流水線,通過(guò)指令調(diào)度,使指令交替執(zhí)行,因?yàn)殚g隔時(shí)間很短,所以用戶體驗(yàn)像是多指令并行,但其本質(zhì)還是一次執(zhí)行一個(gè)指令,沒(méi)有做到真正意義上的并行。
2.片內(nèi)多線程
首先解釋一下線程和進(jìn)程的區(qū)別,
進(jìn)程指的是當(dāng)前正在運(yùn)行的程序,進(jìn)程有獨(dú)立的運(yùn)行內(nèi)存空間堆棧。
線程可以理解為輕量級(jí)的進(jìn)程,一個(gè)進(jìn)程可以分出多個(gè)線程,線程是沒(méi)有自己獨(dú)立的運(yùn)行空間,只能所有線程和進(jìn)程一起共享內(nèi)存空間。
因此,可以通過(guò)一個(gè)進(jìn)程下,衍生出多個(gè)線程這種方式,達(dá)到多指令并行的效果。
3.單片多處理器
指的是通過(guò)多核處理器,直接實(shí)現(xiàn)多指令并行。
二 .CPU級(jí)
1,多核處理器
與單片多處理器類似。
2.UMA對(duì)稱多處理器系統(tǒng)
CPU的發(fā)展向多核心發(fā)展中,過(guò)多的處理器會(huì)存在著冗余的問(wèn)題。因此把目光轉(zhuǎn)到了總線上。
UMA——Uniform Memory Access 譯為一致性內(nèi)存訪問(wèn)
由于在一致性內(nèi)存訪問(wèn)架構(gòu)中,所有CPU對(duì)內(nèi)存的訪問(wèn)都要通過(guò)總線完成,而總線發(fā)展緩慢,導(dǎo)致多核CPU通過(guò)一條總線共享內(nèi)存成為瓶頸。
三.計(jì)算機(jī)級(jí)
1.分布式系統(tǒng)
分布式系統(tǒng)主要包括NUMA
NUMA的提出是為了解決UMA的問(wèn)題。
NUMA全稱Non-Uniform Memory Access(非一致性內(nèi)存訪問(wèn))
原理是不同的內(nèi)存器件和CPU核心從屬于不同的Node,,每個(gè)Node都有自己的集成內(nèi)存控制器
這樣就緩解了總線的壓力,從而提高了存儲(chǔ)速率。
2.集群計(jì)算
集群計(jì)算指的是計(jì)算機(jī)集群將一組松散集成的計(jì)算機(jī)軟件或硬件連接起來(lái)高度緊密地協(xié)作完成計(jì)算工作。在某種意義上,他們可以被看作是一臺(tái)計(jì)算機(jī)。
并行計(jì)算或稱平行計(jì)算是相對(duì)于串行計(jì)算來(lái)說(shuō)的。它是一種一次可執(zhí)行多個(gè)指令的算法,目的是提高計(jì)算速度,及通過(guò)擴(kuò)大問(wèn)題求解規(guī)模,解決大型而復(fù)雜的計(jì)算問(wèn)題。
所謂并行計(jì)算可分為時(shí)間上的并行和空間上的并行。 時(shí)間上的并行就是指流水線技術(shù),而空間上的并行則是指用多個(gè)處理器并發(fā)的執(zhí)行計(jì)算。并行計(jì)算(Parallel Computing)是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程,是提高計(jì)算機(jī)系統(tǒng)計(jì)算速度和處理能力的一種有效手段。它的基本思想是用多個(gè)處理器來(lái)協(xié)同求解同一問(wèn)題,即將被求解的問(wèn)題分解成若干個(gè)部分,各部分均由一個(gè)獨(dú)立的處理機(jī)來(lái)并行計(jì)算。并行計(jì)算系統(tǒng)既可以是專門設(shè)計(jì)的、含有多個(gè)處理器的超級(jí)計(jì)算機(jī),也可以是以某種方式互連的若干臺(tái)的獨(dú)立計(jì)算機(jī)構(gòu)成的集群。通過(guò)并行計(jì)算集群完成數(shù)據(jù)的處理,再將處理的結(jié)果返回給用戶。并行計(jì)算可分為時(shí)間上的并行和空間上的并行。時(shí)間上的并行:是指流水線技術(shù),比如說(shuō)工廠生產(chǎn)食品的時(shí)候步驟分為:1. 清洗:將食品沖洗干凈。2. 消毒:將食品進(jìn)行消毒處理。3. 切割:將食品切成小塊。4. 包裝:將食品裝入包裝袋。如果不采用流水線,一個(gè)食品完成上述四個(gè)步驟后,下一個(gè)食品才進(jìn)行處理,耗時(shí)且影響效率。但是采用流水線技術(shù),就可以同時(shí)處理四個(gè)食品。這就是并行算法中的時(shí)間并行,在同一時(shí)間啟動(dòng)兩個(gè)或兩個(gè)以上的操作,大大提高計(jì)算性能??臻g上的并行:是指多個(gè)處理機(jī)并發(fā)的執(zhí)行計(jì)算,即通過(guò)網(wǎng)絡(luò)將兩個(gè)以上的處理機(jī)連接起來(lái),達(dá)到同時(shí)計(jì)算同一個(gè)任務(wù)的不同部分,或者單個(gè)處理機(jī)無(wú)法解決的大型問(wèn)題。比如小李準(zhǔn)備在植樹(shù)節(jié)種三棵樹(shù),如果小李1個(gè)人需要6個(gè)小時(shí)才能完成任務(wù),植樹(shù)節(jié)當(dāng)天他叫來(lái)了好朋友小紅、小王,三個(gè)人同時(shí)開(kāi)始挖坑植樹(shù),2個(gè)小時(shí)后每個(gè)人都完成了一顆植樹(shù)任務(wù),這就是并行算法中的空間并行,將一個(gè)大任務(wù)分割成多個(gè)相同的子任務(wù),來(lái)加快問(wèn)題解決速度。
一臺(tái)并行計(jì)算機(jī)可以是一臺(tái)具有多個(gè)內(nèi)部處理器的單計(jì)算機(jī),也可以是多個(gè)互聯(lián)的計(jì)算機(jī)構(gòu)成一個(gè)一體的高性能計(jì)算平臺(tái)。術(shù)語(yǔ)并行計(jì)算機(jī)通常是指專門設(shè)計(jì)的部件。根據(jù)不同的分類法可以分成不同類型的并行計(jì)算機(jī)。
1.1 費(fèi)林分類法
在操作系統(tǒng)中我們知道,程序根據(jù)高級(jí)程序設(shè)計(jì)語(yǔ)言設(shè)計(jì),程序設(shè)計(jì)語(yǔ)言在實(shí)現(xiàn)程序的功能的時(shí)候,是轉(zhuǎn)換為機(jī)器指令來(lái)告訴機(jī)器該干什么。大概在50年前Flynn(1996)創(chuàng)造了一種計(jì)算機(jī)分類方法,中文譯為費(fèi)林分類法,該分類基于兩個(gè)獨(dú)立維度的計(jì)算機(jī)體系結(jié)構(gòu),這兩個(gè)維度即數(shù)據(jù)和指令。
根據(jù)以上提到這兩個(gè)維度,我們可以劃分為四大類:
1.1.1 SISD
Single Instruction,Single Data(SISD)
SISD機(jī)器是一種傳統(tǒng)的串行計(jì)算機(jī),它的硬件不支持任何形式的并行計(jì)算,所有的指令都是串行執(zhí)行。并且在某個(gè)時(shí)鐘周期(時(shí)間片)內(nèi),CPU只能處理一個(gè)數(shù)據(jù)流。因此這種機(jī)器被稱作單指令流單數(shù)據(jù)流計(jì)算機(jī)。早期的計(jì)算機(jī)都是SISD機(jī)器,如馮諾.依曼架構(gòu),如IBM PC機(jī),早期的巨型機(jī)和許多8位的家用機(jī)等。
1.1.2 MIMD
Multiple Instruction,Multiple Data(MIMD)
在一個(gè)通用的多處理機(jī)系統(tǒng)中,每個(gè)處理器擁有一個(gè)獨(dú)立的程序,由每個(gè)程序?yàn)槊總€(gè)處理器生成一個(gè)指令流,每條指令對(duì)不同數(shù)據(jù)進(jìn)行操作。Flynn將這種形式的計(jì)算機(jī)分類為多指令流多數(shù)據(jù)流計(jì)算機(jī)。
我們前面敘述的共享存儲(chǔ)器或消息傳遞多處理機(jī)都屬于MIMD類型。其已經(jīng)經(jīng)受了時(shí)間考驗(yàn),至今仍然廣泛地用于這種操作模式下的計(jì)算機(jī)系統(tǒng)中。例如多核CPU計(jì)算機(jī)。
1.1.3 SIMD
Single Instruction,Multiple Data(SIMD)
如果對(duì)某些應(yīng)用而言將計(jì)算機(jī)設(shè)計(jì)成由單一程序生成指令流,但是卻有多個(gè)數(shù)據(jù)存在時(shí),將會(huì)在性能上有很大的優(yōu)勢(shì)。打個(gè)比方,如果是一個(gè)學(xué)生(處理器)做很多張相同的試卷(數(shù)據(jù)流),那么越做肯定越快。
SIMD是采用一個(gè)指令流處理多個(gè)數(shù)據(jù)流。這類機(jī)器在數(shù)字信號(hào)處理、圖像處理、以及多媒體信息處理等領(lǐng)域非常有效。
Intel處理器實(shí)現(xiàn)的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3擴(kuò)展指令集,都能在單個(gè)時(shí)鐘周期內(nèi)處理多個(gè)數(shù)據(jù)單元。也就是說(shuō)我們現(xiàn)在用的單核計(jì)算機(jī)基本上都屬于SIMD機(jī)器。
1.1.4 MISD
Multiple Instruction,Single Data(MISD)
MISD是采用多個(gè)指令流來(lái)處理單個(gè)數(shù)據(jù)流。由于實(shí)際情況中,采用多指令流處理多數(shù)據(jù)流才是更有效的方法,因此MISD只是作為理論模型出現(xiàn),僅僅只在1971年CMU的實(shí)驗(yàn)中出現(xiàn)過(guò),也就是說(shuō),實(shí)際上并不存在SISD。