▲美國(guó)俄亥俄州立大學(xué)Dhabaleswar K. Panda教授
Dhabaleswar教授首先表示,從TOP500的發(fā)展速度來(lái)看,計(jì)算峰值正在從千萬(wàn)億次(Petaflop)正在向百億億次(Exaflop)發(fā)展,預(yù)計(jì)在2013年會(huì)達(dá)到20-30Pflops,在2016年達(dá)到100Pflops。在下一代百億億次計(jì)算(Exascale)模式下,如何簡(jiǎn)化了創(chuàng)建應(yīng)用程序的過(guò)程并將應(yīng)用程序任務(wù)分配到整個(gè)HPC系統(tǒng)中無(wú)疑是一項(xiàng)巨大的挑戰(zhàn)。
目前,MPI(Message Passing Interface)和OpenMP是高性能并行計(jì)算機(jī)上常用的兩種編程模型。其中MPI是消息傳遞并行編程模型的代表和事實(shí)標(biāo)準(zhǔn),可以輕松地支持分布式存儲(chǔ)和共享存儲(chǔ)拓?fù)浣Y(jié)構(gòu);OpenMP是為共享存儲(chǔ)環(huán)境編寫(xiě)并行程序而設(shè)計(jì)的一個(gè)應(yīng)用編程接口,是當(dāng)前支持共享存儲(chǔ)并行編輯的工業(yè)標(biāo)準(zhǔn)。
這兩種編程模型各有優(yōu)缺點(diǎn):
MPI可以在多機(jī)集群上使用,也可以用于單主機(jī)上多核/多CPU的并行計(jì)算,不過(guò)效率低。它能協(xié)調(diào)多臺(tái)主機(jī)間的并行計(jì)算,因此并行規(guī)模上的可伸縮性很強(qiáng),能在從個(gè)人電腦到世界TOP10的超級(jí)計(jì)算機(jī)上使用。缺點(diǎn)是使用進(jìn)程間通信的方式協(xié)調(diào)并行計(jì)算,這導(dǎo)致并行效率較低、內(nèi)存開(kāi)銷大、不直觀、編程麻煩。
OpenMP是針對(duì)單主機(jī)上多核/多CPU并行計(jì)算而設(shè)計(jì)的工具,更適合單臺(tái)計(jì)算機(jī)共享內(nèi)存結(jié)構(gòu)上的并行計(jì)算。由于使用線程間共享內(nèi)存的方式協(xié)調(diào)并行計(jì)算,它在多核/多CPU結(jié)構(gòu)上的效率很高、內(nèi)存開(kāi)銷小、編程語(yǔ)句簡(jiǎn)潔直觀,因此編程容易、編譯器實(shí)現(xiàn)也容易(現(xiàn)在最新版的C、C++、Fortran編譯器基本上都內(nèi)置OpenMP支持)。OpenMP最大的缺點(diǎn)是只能在單臺(tái)主機(jī)上工作,不能用于多臺(tái)主機(jī)間的并行計(jì)算!
▲百億億次計(jì)算MPI特性
在HPC領(lǐng)域,不管是多機(jī)集群的運(yùn)算,還是單主機(jī)多核/多CPU并行計(jì)算,都是常見(jiàn)的場(chǎng)景。Dhabaleswar教授著重介紹了百億億次計(jì)算MPI的優(yōu)勢(shì)和特性,他表示MPI編程模式可以支持多達(dá)百萬(wàn)到十億的處理器,并具備兼容其他編程模型的特性,如MPI+OpenMP,MPI+UPC等混合編程模式;同時(shí)支持多線程以及GPGPU加速;特別是在處理器向多核以及眾核發(fā)展的趨勢(shì)下,MPI可保持交互節(jié)點(diǎn)(inter-node)之間的平衡。