高性能計(jì)算(HPC) 指通常使用很多處理器(作為單個(gè)機(jī)器的一部分)或者某一集群中組織的幾臺(tái)計(jì)算機(jī)(作為單個(gè)計(jì)算資源操作)的計(jì)算系統(tǒng)和環(huán)境。高性能集群上運(yùn)行的應(yīng)用程序一般使用并行算法,把一個(gè)大的普通問(wèn)題根據(jù)一定的規(guī)則分為許多小的子問(wèn)題,在集群內(nèi)的不同節(jié)點(diǎn)上進(jìn)行計(jì)算,而這些小問(wèn)題的處理結(jié)果,經(jīng)過(guò)處理可合并為原問(wèn)題的最終結(jié)果。由于這些小問(wèn)題的計(jì)算一般是可以并行完成的,從而可以縮短問(wèn)題的處理時(shí)間。
高性能集群在計(jì)算過(guò)程中,各節(jié)點(diǎn)是協(xié)同工作的,它們分別處理大問(wèn)題的一部分,并在處理中根據(jù)需要進(jìn)行數(shù)據(jù)交換,各節(jié)點(diǎn)的處理結(jié)果都是最終結(jié)果的一部分。高性能集群的處理能力與集群的規(guī)模成正比,是集群內(nèi)各節(jié)點(diǎn)處理能力之和,但這種集群一般沒(méi)有高可用性。高性能計(jì)算的分類方法很多。這里從并行任務(wù)間的關(guān)系角度來(lái)對(duì)高性能計(jì)算分類。
一、高吞吐計(jì)算(High-throughput Computing)
有一類高性能計(jì)算,可以把它分成若干可以并行的子任務(wù),而且各個(gè)子任務(wù)彼此間沒(méi)有什么關(guān)聯(lián)。因?yàn)檫@種類型應(yīng)用的一個(gè)共同特征是在海量數(shù)據(jù)上搜索某些特定模式,所以把這類計(jì)算稱為高吞吐計(jì)算。所謂的Internet計(jì)算都屬于這一類。按照Flynn的分類,高吞吐計(jì)算屬于SIMDSingle Instruction/Multiple Data,單指令流-多數(shù)據(jù)流)的范疇。
二、分布計(jì)算(Distributed Computing)
另一類計(jì)算剛好和高吞吐計(jì)算相反,它們雖然可以給分成若干并行的子任務(wù),但是子任務(wù)間聯(lián)系很緊密,需要大量的數(shù)據(jù)交換。按照Flynn的分類,分布式的高性能計(jì)算屬于MIMD(Multiple Instruction/Multiple Data,多指令流-多數(shù)據(jù)流)的范疇。
有許多類型的HPC 系統(tǒng),其范圍從標(biāo)準(zhǔn)計(jì)算機(jī)的大型集群,到高度專用的硬件。大多數(shù)基于集群的HPC系統(tǒng)使用高性能網(wǎng)絡(luò)互連,基本的網(wǎng)絡(luò)拓?fù)浜徒M織可以使用一個(gè)簡(jiǎn)單的總線拓?fù)?。HPC系統(tǒng)由計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、集群軟件四部分組成。
高性能計(jì)算HPC系統(tǒng)技術(shù)特點(diǎn)是什么?
HPC系統(tǒng)目前主流處理器是X86處理器,操作系統(tǒng)是linux 系統(tǒng)(包括Intel、AMD、NEC、Power、PowerPC、Sparc等)、構(gòu)建方式采用刀片系統(tǒng),互聯(lián)網(wǎng)絡(luò)使用IB和10GE。
高性能計(jì)算HPC集群中計(jì)算節(jié)點(diǎn)一般 分3種: MPI節(jié)點(diǎn)、胖節(jié)點(diǎn)、GPU加速節(jié)點(diǎn)。雙路節(jié)點(diǎn)稱為瘦節(jié)點(diǎn)(MPI節(jié)點(diǎn)),雙路以上稱為胖節(jié)點(diǎn);胖節(jié)點(diǎn)配置大容量?jī)?nèi)存;集群中胖節(jié)點(diǎn)的數(shù)量要根據(jù)實(shí)際應(yīng)用需求而定。
GPU英文全稱Graphic Processing Unit,中文翻譯為圖形處理器。 在浮點(diǎn)運(yùn)算、并行計(jì)算等部分計(jì)算方面,GPU可以提供數(shù)十倍乃至于上百倍于CPU的性能。目前GPU廠家只有三家NVIDIA GPU、AMD GPU和Intel Xeon PHI??蛇x擇的GPU種類比較少。
高性能計(jì)算的性能指標(biāo)怎樣衡量?
CPU的性能計(jì)算公式: 單節(jié)點(diǎn)性能=處理器主頻*核數(shù)*單節(jié)點(diǎn)CPU數(shù)量*單周期指令數(shù)。單周期指令數(shù)=8(E5-2600/E5-2600 v2/E7-4800 v2)或16(E5-2600 v3);節(jié)點(diǎn)數(shù)量=峰值浮點(diǎn)性能需求/單節(jié)點(diǎn)性能。
時(shí)延( 內(nèi)存和磁盤訪問(wèn)延時(shí))是計(jì)算的另一個(gè)性能衡量指標(biāo),在HPC系統(tǒng)中,一般時(shí)延要求如下:
一個(gè)MFlops等于每秒一佰萬(wàn)(=10^6)次的浮點(diǎn)運(yùn)算;
一個(gè)GFlops等于每秒拾億(=10^9)次的浮點(diǎn)運(yùn)算;
一個(gè)TFlops等于每秒一萬(wàn)億(=10^12)次的浮點(diǎn)運(yùn)算,(1太拉)
一個(gè)PFlops等于每秒一千萬(wàn)億(=10^15)次的浮點(diǎn)運(yùn)算;
一個(gè)EFlops等于每秒一佰京(=10^18)次的浮點(diǎn)運(yùn)算。
高性能計(jì)算的靈魂—并行文件系統(tǒng)
TOP500 HPC系統(tǒng)中存儲(chǔ)主要使用分布式文件系統(tǒng),分布式文件系統(tǒng)(Distributed File System)可以有效解決數(shù)據(jù)的存儲(chǔ)和管理難題: 將固定于某個(gè)地點(diǎn)的某個(gè)文件系統(tǒng),擴(kuò)展到任意多個(gè)地點(diǎn)/多個(gè)文件系統(tǒng),眾多的節(jié)點(diǎn)組成一個(gè)文件系統(tǒng)網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)可以分布在不同的地點(diǎn),通過(guò)網(wǎng)絡(luò)進(jìn)行節(jié)點(diǎn)間的通信和數(shù)據(jù)傳輸。人們?cè)谑褂梅植际轿募到y(tǒng)時(shí),無(wú)需關(guān)心數(shù)據(jù)是存儲(chǔ)在哪個(gè)節(jié)點(diǎn)上、或者是從哪個(gè)節(jié)點(diǎn)從獲取的,只需要像使用本地文件系統(tǒng)一樣管理和存儲(chǔ)文件系統(tǒng)中的數(shù)據(jù)。
分布式文件系統(tǒng)的設(shè)計(jì)基于客戶機(jī)/服務(wù)器模式。一個(gè)典型的網(wǎng)絡(luò)可能包括多個(gè)供多用戶訪問(wèn)的服務(wù)器。當(dāng)前主流的分布式文件系統(tǒng)包括: Lustre、Hadoop、MogileFS、FreeNAS、FastDFS、NFS、OpenAFS、MooseFS、pNFS、以及GoogleFS等,其中Lustre、GPFS是HPC最主流的。