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