论文部分内容阅读
随着工程科学领域对高性能计算需求的加剧,科学计算的规模迅速膨胀。例如军事、能源、医学、生物、气象和人工智能等领域需要更加快速有效的计算能力。传统的串行计算无法满足超级计算的需求,网络并行计算发展起来。伴随着并行计算的发展,出现了服务于并行计算的支撑平台,如MPI、PVM等。这些平台都提供了用以实现并行计算基本功能的API接口,开发人员通过调用这些平台提供的函数进行并行程序开发。但这些平台的共同特点是应用接口复杂,需开发人员熟练掌握,对开发人员的要求较高,开发效率低下,容错性差,复用率低下,进而导致并行计算发展缓慢。由于并行程序在分析和设计时要考虑到任务分配、数据划分、进程间的通信和同步等底层问题,同时要求开发人员熟练掌握支撑平台提供的复杂函数来完成数据划分和进程通信。这使得并行程序开发较之串行程序更有难度,开发人员对并行编程思想的不熟悉也是造成并行编程发展缓慢的原因之一。本文提出的并行函数库是在MPI提供的函数接口的基础上实现的。MPI是一个相对比较成熟的标准,几乎所有并行计算机制造商都对其提供支持,一个正确的MPI程序可直接在任何并行机上运行。该并行函数库在MPI的基础上进行了封装及扩展,设计并实现了一个基于MPI的、应用面向对象技术的、提供了较全面的应用接口的并行函数库。该并行函数库通过分析MPI中主从结构的并行编程模式和并行计算中较常用到的并行算法提出的、面向数组计算领域、具有面向对象特征的并行算法库。该库提供了常用的典型数值并行算法的封装函数,为开发人员提供高层次的并行程序接口。为了使开发的并行函数库更为结构化,该库采用了层次式体系结构的思想。并行函数库被按照功能不同划分为四个层次:基础支撑层、消息通信层、数据划分层和应用接口层。其中,应用接口层为该并行函数库的最高层,为开发人员提供直接调用的接口。应用接口层是基于基础支撑层、数据划分层和消息通信层实现的,而基础支撑层、消息通信层和数据划分层则完成了并行函数库的基础构建。最后通过实验证明,使用该并行函数库提供的API接口进行程序开发,程序结构清晰,开发过程简捷,提高了开发效率,使并行编程更加简单有效。