并行编程模型 是并行计算,尤其是并行软件的基础,也是并行硬件系统的导向,在面临多核新挑战的情况下,什么样的并行编程模型在未来能成为主流,还很难说。至少到目前,还处于百家争鸣的时代,很多模型提出,很多在应用,下面我们简单介绍一下当前的并行编程模型现状。
并行编程模型一直是并行计算研究领域中的重点内容,它和并行计算机体系结构紧密相关。共享存储体系结构下的并行编程模型主要是共享变量编程模型,它具有单地址空间、编程容易、可移植性差等特点,其实现有OpenMP和Pthreads等。分布式存储体系结构下的并行编程模型主要有消息传递编程模型和分布式共享编程模型两种:消息
传递编程模型的特点是多地址空间、编程困难、可移植性好,其实现有MPI, PVM等;分布式共享编程模型是指有硬件或软件的支持,在分布式体系结构下实现的具有共享变量编程模型特点的编程模型。后者可以分别按照硬件或软件的实现分为DSM和SVM,其实现有TreadMark和JiaJia等,目前研究热点的分割全局地址空间(PGAS)模型的研究有 UPC等代表,具有很强的发展潜力。
多层次的SMP集群是由共享内存的SMP作为超节点,而超节点间采用消息传递,内存不能直接访问。SMP集群同时具备了共享存储和分布式存储体系结构的特点,因而传统并行体系结构下的编程模型己经不再完全适用于它。根据SMP集群多级并行结构的特点,很自然地考虑到将共享存储编程模型与分布式存储编程模型相结合。目前国内外学术界对于SMP集群体系结构上编程模型的选择仍然存在着分歧,为此已经提出了多种方案,有的侧重性能有的侧重可移植性和易用性,孰优孰劣,尚无定论。但从编程模型的评价标准— 计算性能和易用性综合的角度考虑,Openw 优于Thread,使得MPI+OpenMP的混合编程模型得到了广泛的应用。
混合编程模型提供了节点间和节点