犔状 狓机群上应用程序的优化犻狌.pdf

犔状 狓机群上应用程序的优化犻狌.pdf

ID:58314849

大小:789.01 KB

页数:3页

时间:2020-09-07

犔状 狓机群上应用程序的优化犻狌.pdf_第1页
犔状 狓机群上应用程序的优化犻狌.pdf_第2页
犔状 狓机群上应用程序的优化犻狌.pdf_第3页
资源描述:

《犔状 狓机群上应用程序的优化犻狌.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第31卷第6期勘探地球物理进展Vol.31,No.62008年12月ProgressinExplorationGeophysicsDec.,2008文章编号:16718585(2008)06043803犔犻狀狌狓机群上应用程序的优化陈维(中国石油集团东方地球物理勘探有限责任公司物探技术研究中心,河北涿州072750)摘要:随着计算机技术的发展,尤其是多核CPU的出现以及Linux机群的大规模应用,程序的运行性能越来越受到重视。如何充分利用多核CPU技术,提高多核CPU上应用程序的运行效率,是软件开发人员急待解决的问题。介绍了基于多核CPU的Linux机群环境下并行

2、计算程序的运行模式,分析了影响程序运行性能的主要因素,在此基础上介绍了程序优化的目标、步骤和方法,最后介绍了程序优化过程中常用的系统命令和软件工具。关键词:机群;多核CPU;并行计算;程序优化;调优工具中图分类号:TE19文献标识码:A[1]在地震数据处理中,Linux机群得到了广泛的2)主从式并行程序:节点上每个CPU可以应用。同时,随着多核CPU技术的普及,机群计运行一个并行计算任务,主任务(T0)负责向其他算能力有了大幅度的提升。然而,应用程序的运行任务发送数据或从其他任务接收处理结果,同时负效率并没有随着机器性能的提升有较大的提高。责数据的输入和输出,如图

3、2所示。在实际应用中,很多程序由于没有很好地针对机群和多核运行环境进行优化,无法充分发挥系统的优异性能。在大型地震数据处理中,某些地震处理功能(如叠前偏移)计算量大、运行时间长,即使使用数百个节点的机群系统也需要十几天甚至几十天。因此,在新的系统环境下我们有必要把更多的注意力转移到如何提高程序运行效率上来,以充分利用图2主从式并行计算运行模式机群和多核CPU资源,缩短程序运行时间。1.2影响程序运行效率的因素在多用户、多任务网络环境下,程序运行效率1问题描述主要受以下因素的影响:1)I/O节点负载过大,应用程序等待数据I/O;1.1机群环境下应用程序的运行模式[2

4、]2)网络通讯延迟;在机群环境下,串行程序和并行程序通常有如3)节点内任务间争夺内存资源,引起过多的下的运行模式。交换分区的操作;1)串行程序:节点上每个CPU可以运行一个4)程序代码本身引起的性能不高,包括算法、串行计算任务,每个节点有多个任务,每个任务通I/O方式、通讯方式等。过I/O节点进行数据的输入与输出,如图1所示。2程序优化目标与优化步骤2.1程序优化目标程序优化要达到如下目标:收稿日期:20080902;改回日期:20081008。作者简介:陈维(1963—),男,高级工程师,1983年7月毕业于沈阳工业学院(现为沈阳理工大学),一直从事石油地震处理

5、软件的维护和开发,主要研究方向为机群环境下的高性能计算和并行软件图1串行程序运行模式开发。第6期陈维.Linux机群上应用程序的优化4391)程序运行效率有较大的提高;处理数据,以提高缓存利用率;④改进循环,实现2)系统资源的利用更有效(CPU、内存);每次加载连续处理的数据。3)并行计算程序要有较好的可扩展性。3)优化计算量大的函数。2.2程序优化步骤4)分配合理大小的内存,尽量避免过多使用1)基准数据的准备。即准备测试作业使用的交换分区。数据。一般应该准备两套数据:一套较小的数据,3.2程序的多线程化使作业能够在比较短的时间内结束,该数据在程序在多核CPU的机

6、群环境中,多线程程序可以调优时使用;一套较大的数据,使作业能够运行较使程序并行执行多个任务,从而提高系统效率。由长的时间,该数据主要应用于性能测试对比。于使用OpenMP进行程序的线程化比并行编程相2)基准测试。即使用基准数据和当前系统库,对简单,对于运算时间相对较长的部分地震处理模运行测试作业,得到优化前的基准作业运行时间。块,可以先考虑用OpenMP进行多线程化改造,以3)使用编译器的各种优化选项进行编译器优较小的工作量提升程序运行性能。化。使用不同的优化选项及其组合编译程序,并运在多核平台上开发多线程程序需注意以下行作业,记录每个作业的运行时间。这是最直接而

7、问题:且见效快的优化手段。1)只有各线程负载平衡,才能达到最高性能;4)程序运行瓶颈的确定和调优软件的使用。2)在多核情况下线程同时运行,线程优先级使用调优软件运行程序,并通过该软件分析和确定不起作用;程序运行热点,找到程序运行的性能瓶颈。3)一个节点上过多的线程可能会导致性能[1]5)根据步骤4)的结果,尝试修改源代码、编译下降。并运行作业,记录程序的修改和作业运行时间。3.3并行程序的优化6)对于运行时间很长的程序,考虑程序的并基于消息传递(MPI)的并行程序的优化除了行化和多线程化。遵循前面讨论的优化方法外,还要考虑以下方面的7)如果程序中使用了FFT等子程

8、序,考虑使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。