HPC China:Exascale需要怎样的编程模型

会上,来自美国俄亥俄州立大学的Dhabaleswar K. Panda教授做了“通向百亿亿次计算(Exascale)——PGAS及MPI最新进展”的主题演讲。Dhabaleswar介绍了阐述了在通向百亿亿次计算的道路上面临的挑战以及百亿亿次计算MPI(Message Passing Interface)编程模型的最新进展。

11111111111111

▲美国俄亥俄州立大学Dhabaleswar K. Panda教授

Dhabaleswar教授首先表示,从TOP500的发展速度来看,计算峰值正在从千万亿次(Petaflop)正在向百亿亿次(Exaflop)发展,预计在2013年会达到20-30Pflops,在2016年达到100Pflops。在下一代百亿亿次计算(Exascale)模式下,如何简化了创建应用程序的过程并将应用程序任务分配到整个HPC系统中无疑是一项巨大的挑战。

目前,MPI(Message Passing Interface)和OpenMP是高性能并行计算机上常用的两种编程模型。其中MPI是消息传递并行编程模型的代表和事实标准,可以轻松地支持分布式存储和共享存储拓扑结构;OpenMP是为共享存储环境编写并行程序而设计的一个应用编程接口,是当前支持共享存储并行编辑的工业标准。

这两种编程模型各有优缺点:

MPI可以在多机集群上使用,也可以用于单主机上多核/多CPU的并行计算,不过效率低。它能协调多台主机间的并行计算,因此并行规模上的可伸缩性很强,能在从个人电脑到世界TOP10的超级计算机上使用。缺点是使用进程间通信的方式协调并行计算,这导致并行效率较低、内存开销大、不直观、编程麻烦。

OpenMP是针对单主机上多核/多CPU并行计算而设计的工具,更适合单台计算机共享内存结构上的并行计算。由于使用线程间共享内存的方式协调并行计算,它在多核/多CPU结构上的效率很高、内存开销小、编程语句简洁直观,因此编程容易、编译器实现也容易(现在最新版的C、C++、Fortran编译器基本上都内置OpenMP支持)。OpenMP最大的缺点是只能在单台主机上工作,不能用于多台主机间的并行计算!

11111111111111

▲百亿亿次计算MPI特性

在HPC领域,不管是多机集群的运算,还是单主机多核/多CPU并行计算,都是常见的场景。Dhabaleswar教授着重介绍了百亿亿次计算MPI的优势和特性,他表示MPI编程模式可以支持多达百万到十亿的处理器,并具备兼容其他编程模型的特性,如MPI+OpenMP,MPI+UPC等混合编程模式;同时支持多线程以及GPGPU加速;特别是在处理器向多核以及众核发展的趋势下,MPI可保持交互节点(inter-node)之间的平衡。