《桥梁工程结构智慧监测——理论与实践》 课件 第06章 科学计算系统平台的性能优化.pptx

《桥梁工程结构智慧监测——理论与实践》 课件 第06章 科学计算系统平台的性能优化.pptx

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;CONTENTS;上章研究了基于 MATLAB Builder JA 产品和 MATLAB 函数开发科学计算类库的组件化实现方案,以及基于 Java EE 和科学计算类库构建可为桥梁健康监测服务的 Web 智能计算平台的各项技术,并用实例验证了在 Web 智能计算平台上集成 MATLAB 语言强大的科学计算能力的可行性。结果表明,基于 Java EE 平台规范,结合监测数据处理算法的组件化实现方案,对于进行一般化的桥梁健康监测系统平台设计有重要的指导意义和实践意义。;;运行效率及性能的问题:系统平台在开发和正式投入运营时遇到的最主要的瓶颈问题。、 导致此问题的原因可分为两方面: 系统平台的数据处理面向海量的监测数据,当基于 MATLAB 开发的算法函数较为复杂时,耗费时间会很长; MATLAB 语言属于解释性语言,执行效率较低。 上述两方面因素导致了在用户通过浏览器在向服务器发送数据处理请求后,需等待较长时间方可查看到返回的数据处理结果,而这与人机界面的友好直观要求相悖,用户显然不愿意在浏览器端等候很长的时间。 针对此问题,本章展开了研究,认为在编写算法函数时采纳如下方案可以在一定程度上提升函数执行速度和性能,避免耗时过长或性能下降: 优化程序代码 使用 MEX 文件 采用并行计算方式 初始化MCR ;;1 采用向量化操作;按照常规的编程方式,编写计算函数fun1.m,如下:;采用向量化编程方式,编写计算函数 fun1_1.m,如下:;在同一台机器上分别运行两个函数 fun1.m 及 fun1_1.m,耗费时间如下表 ,从表中可以看出,采用向量化编程方式约可节约近一半时间。;2 优先采用内置函数;3 预分配数组;若矩阵维度为[10000,10],按照常规的编程方式,编写函数 fun2.m 如下:;采用事先预分配数组的方式,编写函数 fun2_1.m 如下:;3 预分配数组;对于二重循环和多重循环的特殊问题,还可以使用 meshgrid 函数或 ndgrid 函数构造循环变量的矩阵,这样,可以将多重循环体采用向量化的方式实现。其中,meshgrid 函数用于产生二维矩阵,ndgrid 函数用于产生多维矩阵。采用 meshgrid 函数,编写函数 fun2_2.m,如下:;3 预分配数组;4 修改内外层循环;在同一台机器上分别运行两个函数 fun2.m 及 fun2_3.m,耗费时间如下表所示,从表中可以看出,采用修改内外层循环方式可显著减少运行时间。;5 使用 mlint 函数和 profile 函数;关于 profile 函数的用法,可见函数 fun3.m:;5 使用 mlint 函数和 profile 函数;6 其他代码优化技术;;如前文所述,MATLAB 是一种解释性语言,这使其代码执行效率低。并且很多情况下,不可避免的要使用大量循环。这些因素使得 MATLAB 软件在运行速度方面,相比于其他编程语言处于劣势。 但是,MATLAB 软件提供了与 C 语言程序交互的应用编程接口(API),通过调用基于 C 语言开发的已编译的 MEX 文件,可以显著地加快函数的运行速度,同时,MEX文件还具有隐藏算法的优点。事实上,MATLAB 内置的函数很多都是以 MEX 文件的形式存在。;;基于 MATLAB 软件可以进行并行计算,包括在单个计算机上以及计算机机群(cluster)上的并行计算。通过并行计算,可以充分利用计算机的硬件资源,从而使运行速度加快。但是,并行计算方式在使用时有以下两个特点: 并行计算方式可以将大规模的任务分解为若干个子任务,再将各个子任务发布给不同的 CPU 或计算机去执行,最后把结果收回。这导致了各个子任务之间必须相互独立。 对于循环次数较多但单个循环体执行很快的任务,花费在任务调度上的时间可能要超过通过并行节省的时间,这时不建议采用并行计算方式。但是,对于循环次数较少或单个循环体执行耗时较长的任务,采用并行计算方式将大幅度提升计算速度。;1 基于多核 CPU 的并行计算;1 基于多核 CPU 的并行计算;1 基于多核 CPU 的并行计算;2 基于计算机机群的并行计算;MATLAB 机群模型;基于 MATLAB 与计算机机群的并行计算流程可以表述为: 首先,在每台参与计算的计算机中启动 MATLAB Distributed Computing Engine(MDCE)服务,该服务能够启动参与计算的 Worker 的 MATLAB Session 和管理各台计算机 Workers 的 Job Manager。Job Manager 对Workers 进行管理,给 Workers 分配计算任务,接收 Workers 计算后的结果。 而 Client 通过PCT 把工作分解为多个任务,然后把任务传递给 Job Ma

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档