资源描述:
《# 力学可用的mpi并行计算编程及其运行平台的组建》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、可用于力学的MPI并行计算编程及其运行平台的组建研究四川大学物理科学与技术学院李久楷*四川大学建筑与环境学院宁交贤**摘要:探索了一种基于Windows系统平台的、可用于力学的实验系统和实现高性能力学计算的MPI并行环境.描述了机群体系结构及其构建的关键技术.分析了MPI并行编程的优势和挑战.采用MPI最新版本MPICH2-1.0.6作为并行计算的支撑环境,通过编制的三个具有代表性的MPI并行计算程序,并在以100Mbps交换式局域网作为互连的机群上和具有双核处理器的PC机上分别进行了并行效率的实际测试,得到了预期结果,并做了
2、相应分析.关键词:并行计算MPI;多核处理器PC机;网络技术;1引言随着计算机的广泛应用,处理问题的规模也越来越大,从科学计算、信息数据处理、图像处理、知识处理到智能处理.特别是一大批有巨大挑战意义的科学和工程计算问题,如实验力学中的力学高速数据采集、大容量力学动态数据存储和实时处理、流场计算、复杂结构的有限元计算、气象预报、油勘探和核物理等方面的计算问题,还有一些重大和国防的工程技术应用系统,如医学三维图像生成、雷达、声纳、航空流场试验分析系统以及视频传输、压缩编码等,对计算机的运算速度、处理精度、快速时效性等提出了越来越高
3、的要求.在计算机的发展史中,提高计算机处理速度的途径有两个,一是改进元器件的工艺以提高其性能,二是开发系统的并行性.但试验数据表明,无论如何发展技术.单个处理器的速度由于受到材料的物理限制,突破单机极限速度的唯一方法就是进一步挖掘计算机运行中的并行处理能力.因此,使用多个微处理器组成一种具有并行结构的高性能计算机,是满足科学计算和工程问题中高性能数据计算处理要求的有效途径.近年来,由于PC机运算速度的大幅度提高、硬件价格的降低、网络技术的发展和成熟、计算机操作系统软件功能的不断加强和完善、以及单机多核CPU的PC机的出现,还有
4、MPI并行计算编程开发软件技术的发展,使并行计算这一问题的有效解决,提供了新的解决思路和方案.目前许多单位都建立了主要用于信息传输和业务服务的局域网甚至校园网或园区网一类的网络系统.但人们的习惯思路,对建立具有强大功能的并行计算应用系统平台,仍然停留于过去的看法,即认为需要巨大的经费支持和具有复杂的技术解决能力,而没有看到现已具有的条件.*李久楷男生物医学物理研究方向硕士研究生**宁交贤教授实验力学及生物医学工程博士生导师10本文依托已具有的网络条件和单机多核处理器的PC机,试图探索建立起基于MPI技术支撑的并行计算和应用系统
5、平台的可行性、需要解决的编程环境和技术实践、可能遇到的问题和注意事项等基本问题,其依托的网络是我校物理科学及技术学院语音教学实验室的具有40台PC机组成的局域网,试验中对原有语音功能的硬软件和网络联结没有做任何变动,而所用的多核机则为二台分别具有Intel酷睿双核及IntelPentiumD双核处理器、内存分别为1GB及512MB的PC机,结果得到了肯定的结论.选用已存的网络条件实现并行计算应用系统平台,能大大推进和普及运用并行计算技术解决实际问题,从而推动学术和技术工作,又能充分挖掘已建计算机网络的应用潜力,同样采用单机的多
6、核PC机或服务器作为工程技术应用系统的硬件平台,并用并行计算完成一些复杂的计算、传输和存储等的数据处理问题,可以大大简化重大技术问题的解决和节省投资,因此,这具有十分重大的技术和经济意义.2MPI在并行计算系统中的应用相对于串行计算而言的,将一个应用问题分解为多个子任务分配给不同的处理器,每个处理器相互协同、并行地执行子任务,从而达到加快求解速度或是提高求解问题规模的目的.为了开展并行计算,必须具备以下条件:(1)、并行计算机,并需包含多个处理器,且相互连接,相互协作.(2)、应用问题一般具有并行度,可以分解为多个可并行执行的
7、子任务.其将一个应用问题分解为多个子任务的过程称为并行算法.(3)、可在并行编程环境下,实现并行算法并编写程序运行,从而实现并行求解的目的.衡量并行系统性能有两个主要的技术指标,即:并行加速比和并行效率.并行加速比是串行耗时除以该问题的并行求解的耗时.并行效率,即加速比除以并行求解时处理器的数目.机群的体系结构属于分布存储,,每个处理器有私有的存储空间,不能直接访问其它处理器的私有存储空间,不同要通过系统进行通信相互协作和数据交换.其体系结构如图1所示:2.1MPI的优势:MPI为高性能并行计算提供了一个方便、灵活的环境,也为
8、不同的平台消息传递提供了有效支持。消息传递的并行编程主要是通过调用消息传递库MPI函数来进行的.它实现了处理机间的数据交换功能,并提供并行任务之间的同步和收发数据的接口.MPI2.0在MPI1.0的基础上扩展了一些新的特性:如动态进程管理,远程存储访问,并行I/O,对面向对象