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