高度的平行计算能力是现今超级计算机十分重要的性能指标之一,1994年公布其第1版的MPI(Message Passing Interface),可谓是平行计算普及化与标准化的重要推手。MPI的主要功能是做为应用程序与程序库软件之间的讯息传递界面,在多计算机或异质网络计算机系统的环境下,协调多个中央处理器(CPU)之间的资料与讯息传递,让平行计算得以顺利实现。MPI具有优异的存储器缓冲管理功能,更有着标准化的优势,因此在科学研究的计算领域上非常流行。但在目前超级计算机的计算规模快速发展的情势下,计算能力达每秒1018次的Exa级超级计算机有可能在2020年前就会诞生,届时已有20余年历史的MPI是否有足够的能力应付这个大变局?

面对未来巨量平行计算的挑战,由德国主导[1]的GASPI(Global Address Space Programming Interface)[2]是一个可能的解决方案。GASPI基于「分区全域位址空间」(Partitioned Global Address Space, PGAS)[3]概念设计而成。简而言之其提供了一个抽象的共享存储器位址空间,让每个程序的线程[4]都可以直接读/写它。程序设计者可以依照资料的大小等性质,决定要将资料送至该空间,抑或是直接在地进行运算。这种设计可以有效简化程序设计工作,同时也有利于在地运算、基于线程的程序运作和异步通讯的实现。而这些特性对于未来平行计算中巨大化的资料量与网络传输时间,均有正面的助益。GASPI具有高度的可扩充性、多功能性、容错机能与使用弹性之外,向下兼容更是它的一大卖点。GASPI的开发目标之一便是可与现有的MPI兼容,这表示习惯于MPI的程序开发者不必花费太大的精力就可以将程序转移到GASPI上。

目前看来,GASPI虽然有着许多不错的特性,但是否会成为次世代平行计算的标准可能还言之过早。同样基于PGAS概念,由美国橡树岭国家实验室所开发的OpenSHMEM[5]便提供了另一项选择。无论是哪一个能正式成为MPI的接班人,或是届时依旧由MPI独挑大梁,相信都是今后高速计算界必须注意观察的趋势。

参考资料:

[1] GASPI由德国联邦教育及研究部「信息通信技术2020计划:为创新而研究」(ICT 2020)所资助,该计划详见www.bmbf.de/pub/ict_2020.pdf
[2] GASPI的官方网站:www.gaspi.de
[3] PGAS的官方网站:www.pgas.org
[4] 线程(Thread)为程序码载入存储器中的执行轨迹,是计算机能够进行运算排程的最小单位。
[5] OpenSHMEM的官方网站:openshmem.org。