|
高性能計算(HPC)高性能計算簡稱 HPC,是指利用聚集起來的計算能力來處理標準工作站無法完成的數(shù)據(jù)密集型計算任務,包括仿真、建模和渲染等。由于需要大量的運算,一臺通用的計算機無法在合理的時間內完成工作,或者由于所需的數(shù)據(jù)量過大而可用的資源有限,導致根本無法執(zhí)行計算。HPC 方法通過使用專門或高端的硬件,或是將多個單元的計算能力進行整合,能夠有效地克服這些限制。將數(shù)據(jù)和運算相應地分布到多個單元中,這就需要引入并行 概念。 就硬件配置而言,常用的類型有兩種:
在共享內存計算機上,所有處理單元都可以訪問隨機存取存儲器(RAM);而在分布式內存集群中,不同的處理單元或節(jié)點 之間無法訪問內存。在使用分布式內存配置時,由于不同的處理單元不能訪問同一個內存空間,因此必須存在一個相互連接的網(wǎng)絡,才能在這些單元之間發(fā)送消息(或者使用其他通信機制)。鑒于有些單元共享共同的內存空間,而其他單元又是另一種情況,現(xiàn)代 HPC 系統(tǒng)通常是融合了這兩個概念的混合體。 使用 HPC 的原因主要體現(xiàn)在兩個方面。首先,隨著中央處理單元(CPU)和節(jié)點數(shù)量的不斷增加,人們可以使用的計算能力越來越多。有了強大的計算能力,就能在單位時間內執(zhí)行更多運算,從而提高特定模型的計算速度。 另一方面,在集群的情況下,可用的內存量通常以線性方式增加,同時包含更多的節(jié)點。如此一來,隨著計算單元數(shù)量的增加,就能夠處理越來越大的模型。從某種意義上來說,運用這種方法可以對阿姆達爾定律提出的限制加以“欺騙”——該定律適用于固定大小的計算問題。將計算能力和內存提高一倍,就可以在相同的時間內完成大小為基本任務兩倍的計算任務。 并行化 不同類型的建模問題具有不同的可并行程度。以參數(shù)化掃描為例,這種問題求解多個具有獨立的幾何、邊界條件或材料屬性的相似的模型,幾乎可以完全并行計算。具體的實現(xiàn)方法是為將每一個模型設置分配給一個計算單元。這類問題非常適合并行計算,因此通常稱為“易并行問題”(embarrassingly parallel problem)。 易并行問題對集群中的網(wǎng)絡速度和延遲非常敏感。(在其他情況下,由于網(wǎng)絡速度不夠快,無法有效處理通信,很可能導致速度減慢。)因此,可以將通用硬件連接起來,加快這類問題的計算速度 有些問題可以分解為多個更小的部分,或者說是子問題。例如,可以通過數(shù)據(jù)分解(數(shù)據(jù)并行)或任務分解(任務并行)來進一步分解問題,通常這些子問題之間的耦合程度會直接影響它們的并行化程度。在多個節(jié)點上運行分布式內存仿真時,各個計算單元必須使用網(wǎng)絡進行通信。此時,網(wǎng)絡延遲和速度會進一步影響通信速度。正因如此,大多數(shù) HPC 集群都配備了高帶寬/低延遲網(wǎng)絡,實現(xiàn)在集群的各個節(jié)點之間快速傳輸數(shù)據(jù)。 |
