群集技術(shù)是實(shí)現(xiàn)并行(MP)的另一種方法,通常指多個(gè)操作系統(tǒng)內(nèi)核通過(guò)群集管理軟件或者并行計(jì)算應(yīng)用軟件進(jìn)行并行處理,實(shí)現(xiàn)高性能或者故障恢復(fù)。而SMP技術(shù)則是使用單一的操作系統(tǒng)映像(內(nèi)核)由支持SMP的操作系統(tǒng)進(jìn)行任務(wù)的分配和調(diào)度。
由于SMP需要特別的硬件設(shè)計(jì),Cluster則一般使用軟件編程就可以實(shí)現(xiàn),所以從實(shí)現(xiàn)成本考慮,Cluster技術(shù)在深度計(jì)算(deep computing)/高性能計(jì)算HPC(high perfpumance computing)上占據(jù)非常高的市場(chǎng)份額,越來(lái)越多的高性能計(jì)算機(jī)不是采用數(shù)量少,CPU數(shù)多的高端SMP計(jì)算機(jī),而是采用只有少量CPU的廉價(jià)機(jī)進(jìn)行疊加,依靠數(shù)量眾多的計(jì)算機(jī)組成群進(jìn)行計(jì)算,由應(yīng)用軟件切分任務(wù),通過(guò)網(wǎng)絡(luò)進(jìn)行任務(wù)發(fā)送和結(jié)果回收,例如Linux群集。這一類群集技術(shù)的缺點(diǎn)要求軟件能對(duì)任務(wù)進(jìn)行很好的切分,否則無(wú)法實(shí)現(xiàn)并行計(jì)算的能力。
隨著CPU之間耦合的程度不同,從最緊密的SMP到最松的軟件群集技術(shù),中間還有一類過(guò)渡技術(shù)的典型代表稱為NUMA(Non-Uniform Memory Access)。與共享一切(CPU、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)對(duì)程序完全對(duì)等,沒(méi)有區(qū)別)的SMP技術(shù)不同,也與什么都不共享的軟件群集技術(shù)不同,NUMA將內(nèi)存分為幾個(gè)層次:第一層內(nèi)存被單一的 CPU獨(dú)占,第二層內(nèi)存被2-4個(gè)CPU共享,第三層被更多的 CPU共享,不同層次內(nèi)存之間依靠類似Cache的控制機(jī)制 進(jìn)行協(xié)調(diào)。與SMP的L1/L2/L3 Cache機(jī)制最大的不同在于,對(duì)同一塊內(nèi)存,和不同的CPU是不同的,現(xiàn)在都沒(méi)有多CPU的計(jì)算機(jī)是常年納粹的 SMP架構(gòu)了,都或多或少的引入了NUMA的機(jī)制。
提高系統(tǒng)性能的方式有多種,首先提高單一的 CPU性能,一般是提高主頻或者更新?lián)Q代,然后是通過(guò)SMP(增加操作系統(tǒng)中的CPU數(shù)目),之后是NUMA,也可以稱為是多核加SMP技術(shù)的組合。再之后是軟件的群集,系統(tǒng)性能提高的線性度越來(lái)越差,但是實(shí)現(xiàn)的成本越來(lái)越低,允許并行的節(jié)點(diǎn)數(shù)也越來(lái)越多。
除了負(fù)載分擔(dān),群集的另外一個(gè)目的是提高系統(tǒng)的冗余度,實(shí)現(xiàn)更高的可用性,高可用是另外一個(gè)比較復(fù)雜的技術(shù),IBM小型機(jī)采用的是HACMP軟件來(lái)實(shí)現(xiàn)雙或者多機(jī)之間的故障保護(hù),HACMP的技術(shù)綜合利用了AIX操作系統(tǒng)的各種功能,詳見(jiàn)本網(wǎng)站相關(guān)HACMP的介紹。