




已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)基于pvm的occam反演性能优化.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
桂林理工大学硕士学位论文 摘要 o c c a m 反演以其稳定收敛和不依赖于初始模型的特性,被广泛应用于大地电磁数 据的处理。但是,在o c c a m 反演过程中偏导数矩阵的计算和拉格朗日乘子的求取导致 大量的模型正演,使得反演速度低下。为此,研究了利用基于p v m 的并行计算来解决 这个问题。 p v m 是当前流行的并行编程环境之一。p v m 系统兼容性好,但默认条件下性能设 置比较保守,系统性能还存在优化提升潜力。矩阵乘法是可以借助并行计算实现效率提 升的典型运算之一,本文利用预设的矩阵乘法运算测试用例,给出了从任务粒度划分、 消息传递的寻径与封包、任务分派、节点负载均衡等方面优化p v m 并行性能的策略, 并分析了相关优化手段在优化p v m 性能工作中的实用价值。 在讨论了p v m 的各种优化策略后,本文把相关优化手段引入o c c a m 反演并行化工 作中,以提升性能为主要目标,从反演任务粒度优化、通信性能优化、动态负载均衡、 节点数自适应4 个方面入手,对原有基于p v m 的o c c a m 反演并行程序实施了改进。 在优化性能的同时,本文在增强o c c a m 反演并行程序的易用性方面也进行了尝试, 并在原有o c c a m 反演并行程序基础上,实现了异速集群节点侦测、集群规模感应、节 点问文件自动分发功能。 最后,给出了改进后o e c a m 反演并行程序的性能测试数据。测试结果表明,相对 于原有o c c a m 反演并行程序无法很好利用更大规模集群的问题,改进后的o c c a m 反演 并行计算程序在2 0 节点集群环境下,整体加速比相对8 节点集群环境下得到了进一步 提升,并仍然保持了较高的节点效率。此外,改进后的o c c a m 反演并行程序的易用性 也有改善,对不同集群环境的适应性更强,在生产科研中更具实用价值。 关键词;并行虚拟机,集群,任务粒度,消息传递,负载均衡,o c c a m 反演,性能优 化 桂林理工大学硕士学位论文 a b s tr a c t o c c a m si n v e r s i o ni sw i d e l yu s e di nm a g n e t o t e l l u r i cd a t ap r o c e s s i n gf o ri t ss t a b i l i t yo f c o n v e r g e n c ea n di n d e p e n d e n c eo ni n i t i a lm o d e l b u tt h ec a l c u l a t i o n so fj a c o b i a nm a t r i xa n d l a g r a n g em u l t i p l i e rn e e ds o m ef o r w a r dc a l c u l a t i o n s ,w h i c hw o u l dr e s u l ti nal o wi n v e r s i o n s p e e d p a r a l l e lc o m p u t i n gb a s e do np v mi su s e dt os p e e d u pt h ei n v e r s i o np r o c e s s p v mi so n eo ft h em o s tp o p u l a rp a r a l l e lp r o g r a m m i n ge n v i r o n m e n t s b u tt h ed e f a u l t p e r f o r m a n c es e t t i n go fp v m i sn o tt h eb e s t m a t r i xm u l t i p l i c a t i o ni so n eo ft h em o s tt y p i c a l o p e r a t i o n si nt h ef i e l d so fc o m p u t i n gp a r a l l e l i z a t i o n b yt e s t i n gt h ee x a m p l eo fm a r x m u l t i p l i c a t i o no np v m ,t h i sp a p e rg i v e so u tt h et e s td a t ao fp v mp e r f o r m a n c ei m p r o v e m e n t u n d e rd i f f e r e n tt a s kg r a n u l a r i t y , m e s s a g ep a c k a g ea n dr o u t e , t a s kd i s t r i b u t i o na n dl o a d b a l a n c i n gc o n d i t i o n s t h er e s u l ts u g g e s t st h a th o w t oc h o o s et h er i g h ts t r a t e g yt oo p t i m i z et h e p e r f o r m a n c eo fp v m a f t e rt h ed i s c u s s i o na b o u tt h em e t h o d sf o rp v mp e r f o r m a n c eo p t i m i z i n g ,t h i sp a p e r u s e dt h es t r a t e g i e st oi m p r o v et h ep a r a l l e lp e r f o r m a n c eo fo c c a m si n v e r s i o n ,a n dr e v i s e dt h e o r i g i n a lp a r a l l e lp r o g r a m s t h ei m p r o v e m e n ti n c l u d e st a s kg r a n u l a r i t y , c o m m u n i c a t i o n p e r f o r m a n c e ,l o a db a l a n c i n ga n dc l u s t e rs c a l ea d a p t i o n i na d d i t i o n , t h ee x p e r i m e n tg o a lt oe n h a n c et h ef l e x i b i l i t yo fp a r a l l e lp r o g r a mf o r o c c a m si n v e r s i o nh a sb e e na c h i e v e di nt h i sp a p e r n ef u n c t i o ns u c ha sh e t e r o g e n e o u s c l u s t e rd e t e c t o r , c l u s t e rs c a l es e n s o r , a u t o m a t i cf i l ed i s t r i b u t o rh a sb e e nr e a l i z e d f i n a l l y , t h ep e r f o r m a n c et e s tb a s e do ni m p r o v e dp a r a l l e lp r o g r a mf o ro c c a m si n v e r s i o n i si n t r o d u c e di nt h i sp a p e r t h er e s u l t si n d i c a t et h a tt h er e v i s e dp r o g r a mi ss u p e r i o rt ot h e o r i g i n a lc o d e si nt h ec a p a b i l i t yt om a k eu s eo fl a r g es c a l ec l u s t e r b a s e do nt h ei m p r o v e d p a r a l l e lp r o g r a m ,t h es p e e d u ph a ss i g n i f i c a n ti n c r e a s e dw h e nt h ec l u s t e rs c a l ee x p a n d sf r o m8 t 02 0 a n dt h ec l u s t e re f f i c i e n c yk e e p sa tt h eh i g hl e v e l m o r e o v e r , t h ei m p r o v e dp a r a l l e l p r o g r a mi sm u c hm o r ep r a c t i c a l ,a n di tc a nw o r kw e l lu n d e rd i f f e r e n tc l u s t e rs c a l ec o n d i t i o n s t h ei m p r o v e dp a r a l l e lp r o g r a mf o ro o o a m si n v e r s i o ni sm o r ee f f i c i e n tt h a nt h eo r i g i n a l p r o g r a m s ,a n di tw i l lb em o r ev a l u a b l ei nt h ea r e a so f s c i e n t i f i cr e s e a r c ha n dp r o d u c t i o n k e yw o r d s :p v m ,c l u s t e r ,t a s kg r a n u l a r i t y ,m e s s a g ep a s s i n g ,l o a db a l a n c i n g ,o c c a m s i n v e r s i o n ,p e r f o r m a n c eo p t i m i z i n g 研究生学位论文独创性声明和版权使用授权书 独创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含他人已经发表或撰写 过的研究成果,也不包含为获得其它教育机构的学位或证书而使用过的材料。对论文的 完成提供过帮助的有关人员已在论文中作了明确的说明并表示谢意。 学位论文作者( 签字) :塑歪 签字日期:2 亚挈3 左! ! 易 学位论文版权使用授权书 本学位论文作者完全了解( 学校) 有关保留、使用学位论文的规定,有权保留并向 国家有关部门或机构送交论文的印刷本和电子版本,允许论文被查阅和借阅。本人授权 ( 学校) 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或扫描等复制手段保存、汇编学位论文。同时授权中国科学技术信息研究所将本学位 论文收录到中国学位论文全文数据库,并通过网络向社会公众提供信息服务。( 保密 的学位论文在解密后适用本授权书) 学位论文作者签名锄爻 签字日期:矽。弓年参月j 多日 们 月f 多日 桂林理工大学硕士学位论文 第1 章绪论 并行计算作为一种新兴的计算方法,能有效提高计算速度,解决串行计算冗长甚至 因时间因素无法求解的问题,是实现计算能力突破的根本手段。并行计算的研究与应用 已经在国内外普遍引起重视,应用并行计算解决科学计算与工程实际问题,已经成为一 种必然的发展趋势。 在高性能计算领域,集群计算机因具有投资风险小、可扩展性好、可继承现有软硬 件资源和开发周期短、可编程性好等特点,已经成为当前并行计算领域的热点和主流。 集群计算机是利用高速通信网络将一组高性能工作站或p c 按某种结构连接起来, 在并行程序设计及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高 效并行处理的系统。从结构和节点间的通信方式来看,它属于分布存储系统,主要利用 消息传递方式实现各节点之间的通信。 微处理器和网络技术的进步,是集群计算机性能提高的基础。主流处理器的运算能 力平均每年增长3 5 ,价格却不断降低,直接使用普通工作站或p c 作为运算节点的集 群计算机,在节点性能上能够同处理器的发展保持同步增长。网络技术的进步,使得松 散耦合系统的通信瓶颈得到缓解,因网络传输速度的提高,使得应用程序之间的通信带 宽有效地增加了。 良好的并行计算软件环境,是发挥并行计算系统作用的关键。并行编程环境的出现 使得集群计算机的使用和开发更为方便。随着集群计算机的发展,近年来出现了多个并 行编程工具,如p v m 、m p i 、o p c n m p 、e x p r e s s 、l i n d a 、p 4 等。这些工具适应的平台 非常广泛,应用程序在这些系统上的可移植性较好。特别是p v m 和m p i ,因为其开放 性优势,受到许多大学和研究机构的广泛重视。由这些并行编程工具和高效的并行编程 环境完成系统的资源管理及相互协作,集群计算机能够提供给用户一个易于使用的、高 性能、高可用的并行环境。 1 1 课题研究背景 随着勘探工作的深入,地球物理勘探工作不断向新的深度和广度发展,勘察精度的 要求越来越高,难度变得越来越大,对处理方法上也提出了更高的要求。 由于勘察精度的提高使数据采集量不断增加,处理规模不断扩大,一些复杂的处理 方法就难以在微机上快速实现。还有诸如地震数值模拟和一些基于神经网络的非线性方 法也都具有很大的计算工作量。 桂林理工大学硕士学位论文 可见,随着地球物理勘探新技术的发展和对勘探精度要求的不断提高,数据处理技 术是解决勘探问题的一种有效手段:但在实际应用中面临着数据量巨大和计算量巨大的 双重困难,加上市场经济要求勘探资料处理的周期越短越好,如何能大幅度提高勘探数 据分析计算效率,是当前实际工作中一个亟需解决的问题。 1 2 课题研究意义 o c c a m 反演在保证电性分布连续或光滑的条件下,寻求与实测数据拟合最好的地 电模型,直至达到指定的拟合精度。o c c a m 反演对初始模型依赖程度小、收敛稳定、 成像效果良好。 与其它的反演方法一样,o c c a r n 反演需要计算偏导数矩阵,由于该方法采用扫描 和维搜索的方式选取拉格朗日乘子,使得正演的计算量很大。在解决高维和大型问题 时,利用微机进行o c c a m 反演的计算速度非常慢,因此提高反演速度成为当前研究的 重要内容之一。提高反演速度的有效途径包括: ( 1 ) 从算法上加以改进,如吴小平等对拉格朗日乘子求取算法的改进、各种偏导 数矩阵的算法简化等,其对方法的艏求取策略提出了一些改进措施,提高了计算速度。 ( 2 ) 采用并行计算,将o c c a m 反演的时间复杂性转换为空间复杂性。 但方法( 1 ) 在一定程度上改变了o e c a m 反演机理,且方案中的初始艏和变化步 长五需凭经验确定,合理性还值得探讨;提早结束极为耗时的模型光滑过程( 反演的后 段) 也可以缩短计算时间,但此时反演接近收敛面实际并未收敛。o c c a m 反演文档指 出,如果要一味获得快的反演速度,不宜采用o c c a m 反演方法,一些试图通过改变方 法本身和收敛条件来提高速度的做法并不可取,因为那样得不到最光滑的模型,与 o c c a m 反演思想相悖。 因此,借助并行计算技术的方法( 2 ) ,在保留o c e a m 反演的优良特性的同时,实 现了o c c a m 反演的快速反演过程实现和准确反演结果目标,成为目前的首选思路。但 是,已有o c c a r n 反演并行程序还存在性能不太理想,程序的健壮性、灵活性、易用性 不足,以及无法充分利用大规模集群环境下所有节点计算能力的问题。 1 3 本文所做的工作 本文基于p v m 并行环境下展开o c c a m 反演的并行化研究,通过深入分析p v m 内 核特性后,对现有的i 1 1 2 1 3 1 1 4 1 大粒度的o c c a m 反演p v m 并行程序实施改进,进一步提高 了并行条件下的反演性能。所做的主要工作包括: 2 桂林理工大学硕士学位论文 ( 1 ) 从p v m 内核入手,对p v m 内核的工作机制进行了深入分析,讨论了提升 p v m 性能的基本策略。 ( 2 ) 结合给定的矩阵乘法用例,研究了基于任务粒度、通信性能和负载均衡等策 略的p v m 性能优化手段,同时给出了详细的测试数据,讨论了不同的优化策略在实际 应用中的价值。 ( 3 ) 改进了p v m 简单的轮询式任务分派机制。通过读取各节点l i n u x 内核负载状 态的p r o c 伪文件,构造自定义负载均衡器取代p v m f s p a w n 函数进行任务分派,使得在 异速集群环境下,主进程分派至各节点的任务大小与节点当前的可用计算资源更加匹 配提高了p v m 的整体工作效率。 ( 4 ) 增强了原有o c c a m 反演并行程序的易用性、实用性。在原有程序基础上,加 入了集群节点数侦测、异速集群环境自动判断功能,改进后的o c c a m 反演并行程序对 不同规模的集群硬件环境适应性更强、具备更高的集群利用效率。 ( 5 ) 详细研究了o c c a m 反演任务粒度划分策略,给出了对应小、中、大规模集群 条件下,频点级任务重组合、频点级任务、频点级任务再细分的由粗到细的粒度划分策 略。同时,进一步实现了配合集群规模自动侦测器的返回值。主进程能够主动选择最优 的任务粒度划分策珞的功能。 ( 6 ) 针对p v m 主从编程模式下,系统对多的散播消息通信容易造成主进程通 信拥塞问题,本文对其实施了二叉树型改进处理,优化了消息播送路径,降低了主节点 负担,大幅提高了系统通信效率。 ”,表示监控台已准备好,每次从标准输入读取一行 命令,将其交给p v m d 去完成。 2 4p v 8r s h 通信服务 l i n u x 集群条件下p v m 并行环境配置工作,很多资料都有讨论【2 9 】阳1 3 1 1 ,安装方法 主要包括t a r 包和r p m 包两种,讨论焦点主要集中在: ( 1 ) t a r 包方式下“t a r - z x v f m a k e ”指令的使用; ( 2 ) r p m 包方式下“r p m i v h ”指令的使用。 安装操作之所以会成为问题,关键在于l i n u x 的开放源码理念形成的“一切应用均 需从源代码编译而得”的操作理念,与w i n d o w s 平台下“双击即安装程序启动应用” 的惯性思维有着根本性的不同,在此不赘述。 在本文的初始摸索阶段中发现,对于绝大多数l i n u x 集群下p v m 配置工作来说, 成为主要障碍的不是安装p v m ,而是让p v m 节点顺利互联的r s h 配置、以及在调试 l l 桂林理工大学硕士学位论文 p v m 应用程序源码过程中所需用到a i m k 工具,及其依赖的条件编译文件m a k e f i l e f i l e 的配置不知如何入手,结合本文工作中的心得,下面着重说明这两个问题。 r s h 是“r e m o t es h e l l 的缩写,其含义就是“远程s h e l l ”。该命令在指定的远程主 机上启动一个s h e l l 并执行用户在r s h 命令行中指定的命令。如果用户没有给出要执行 的命令,r s h 就用r l o g i n 命令使用户登录到远程机上。f s h 实用程序使用信任主机机制, 对于一个需要批准的用户登录,它将把用户的密码通过网络以明文进行传送【劝。 相对于s s h 而言,r s h 不是安全的。但是对于处在物理安全的局域网环境内,比如 未与外界联网的机房,使用r s h 进行节点机之间的通信,可以使操作更方便,同时,由 于无需对数据进行加密解密操作,减少了c p u 时间的消耗,也使得其具备更高的通信 效率。 基于以上理由,p v m 将r s h 作为了节点间默认的通信途径,无论是远程p v m d 守护 进程的启停、或是p v m 节点的增删操作,都依赖于r s h 协议,当然,也可以通过设置 “p v mr s h ”系统环境变量指向“s s h ”绝对路径的方式,由“s s h a g e n t ”替代r s h , 但该内容不在本文的讨论之列,有兴趣可进一步参阅相关资料p 3 1 。r s h 的配置正确与否, 直接影响到l i n u x 集群p v m 并行环境能否顺利运行。针对常见的r s h 联网故障 “p e r m i s s i o nd e n i e d ”问题,给出了彻底排除故障的解决措施。 在开始配置r s h 服务工作开始之前,首先确保基本p v m 配置文件正确无误,以r o o t 用户、3 个节点a a 、b b 、c c 为例,配置说明流程图2 3 如下,不再赘述。 图2 3r s h 服务配置涉及参数修改明细图 首先,需要明确r s h 服务的依赖包关系,在本文所采用的f e d o r a c o r el 发行版中, 包括“r s h 0 1 7 - 1 9 i 3 8 6 r p m ”和“r s h s e r v e r - 0 1 7 1 9 i 3 8 6 r p m ”两个,其它l i n u x 发行版 可参照寻找“r s h r s h - s c r v c r ”开头的r p m 包文件,只是会在包版本号数字上有所差别。 1 2 桂林理工大学硕士学位论文 其中,r s h 包用来保证可以使用r s h 命令登录至远端r s h 服务器,但不支持本机提供 r s h 服务,一般默认已安装;问题关键在于,绝大多数缺少“r s h s e r v e r ”包,而该包正 是系统提供r e x e c r l o g i n r s h 服务功能所必需。判断本地l i n u x 节点安装“r s h s e r v e r ”包 与否,可在终端执行$ r p m - q aig r e p - ir s h s e r v e r 。 若返回“r s h s e r v e r - o 1 1 9 i 3 8 6 r p m ”则说明己安装,否则请手动安装。在确保 “r s h r s h s e r v e r ”包已经正确安装后,执行r s h 服务配置。配置工作分为四个步骤:首 先是,在n t s y s v 下开启r e x e c r l o g i n r s h 服务:其次是,重启x i n e t d 服务:再次是配置登 录安全文件e t c s e c u r e t t y ;最后是,修改l i n u x p a m 配置文件夹e t c p a m d 1 3 4 1 下的 m x c c r l o g i r d r s h 三个文件,详细终端指令清单如图2 4 所示。 开始 完成 $ n t s y s v # 找到陀晰i o g j n ,i 曲项服务 带并将服务荫的复选框置为选中 $ s e r v i c ex i n c t d 或a n # e x t e n d e di m e 小难丁s o i c e sd a e m o n # i n t c r n e t 标准超级守护进柙 s g e d i t e t c p a m d r e x e c $ g e d i t e t c p a m d r l o g i n s g c d i t a t p a r e d r s h 撑注释掉舵x e “m g i 曲i 个文件中如下行 # a u d ar e q u i r e d l i l y s o c u r i t y p a m _ s e c u r e t t y s o s e c h o 。愆x ” e t c s e c u r e t t y s e c h o “r l o g i n “ e 舡s c c u n m y $ e o h o 。r s h e t r j s e c u 础y ¥添加r c x c c r l o g i n r s h - - 项 # 至登录安全文件e t c s e c u r c t t y 图2 4 配置r s h 服务配置涉及的修改文件流程 上述配置要点是本文r s h 服务使用过程中的关键点归纳。依上述实施配置工作可确 保r s h 的顺利使用,为研究工作提供了通信支持与操作便利。 2 5p v maim k 编译工具 在p v m 环境下对c 和f o r t r a n 的源文件进行编译,大致步骤为:首先,编写源 文件。然后,调用g c c 或9 7 7 编译器,采用相应的命令实施编译,编译成功之后将所得 l i n u x 平台下的可执行文件拷贝至$ p v mr o o 确i n 几i n u x l 3 8 6 目录下供p v m 调用, 较为繁琐。 所幸的是,p v m 提供了一个a i m k 编译工具,将这个工作自动连贯起来完成。a i m k 的有效工作依赖于m a k e f i l e a i m k 脚本,缺少了m a k e f i l e a i m k 自动编译脚本支持的a i m k 工具形同虚设。但m a k e f i l e 脚本文件的编写繁琐易错,成为众多p v m 用户实现高效编 译的障碍。为此,本文对a i m kt 具和m a k e f i l e a i m k 脚本进行了细致分析,给出了 m a s t e r - s l a v e 和s p m d 两种情况下各自的通用m a k e f i l e a i m k 模版。 1 3 桂林理工大学硕士学位论文 2 5 1a i m k 编译机制 工作l i n u x u n i x 下的软件项目,往往动辄几百个源文件,如果每一个源文件都需 要程序员手工键入g c c c c 命令编译的话,工作量将会太大,利用m a k e 工具可以帮助我 们解决这个问题。m a k e 的工作原理很简单,先把需要键入的g c c c c 命令保存到文件, 编译时m a k e 将自动执行预置命令,完成编译过程【3 5 1 。其基本用法为:m a k e 【f m a k e f i l e 】 f i l e n a m e s 。 , 其中“,选项决定预先保存命令的文件名称,默认时为文件“m a k e f i l e ”。当没有 m a k e f i l e 文件时,m a k e 工具将自动套用预优化选项“o ”,并且依赖“- 0 ”选项重定义 输出文件名。同时,m a k e 工具也可控制软件各模块之间的依赖关系,检查源文件是否 更新,进而决定是否需要编译。比如,对已编译的m a s t e r i 再次m a k e 时,由于m a s t e r l c 文件并未更新,系统自动决定不再编译。 参照m a k e 的工作原理可以理解a i m k 3 6 i 。a i m k 实质上就是一个轻量级的、包装了 m a k e 在内的脚本,方便在各种不同架构的机器上编译p v m 应用程序。a i m k 使用预先 定义的“a r c h i t e c t u r en a m e ”决定p v m 程序代码在编译期间生成合适的二进制目标文件、 以及在运行时选择正确的执行主机,使用格式为:a i m k 【- h c r e 】【m a k ea r g u m e n t s 。 a i m k 调用m a k e 有三种方式,主要取决于当前的m a k e f i l e s 类型。若 “$ p v ma r c h m a k e f i l e ”或“$ p v ma r c h m a k e f i l e ”存在,则切换至目录 “$ p v ma r c h ”下并执行m a k e 操作: 。若“m a k e f i l e a i m k ”已经存在,贝t j g , j 建“$ p a r c h ”目录,否则“m a k e f i l e a i m k ” 不存在,则执行如下操作: 以上条件均不满足,则仅在当前目录下执行m a k e 操作: 如果a i m k 成功调用m a k e ,其返回值等同于m a k e 的返回值,否则为l 。另外,a i m k 的“- h e r e ”参数强制a i m k 在当前目录下执行m a k e 操作。 1 4 桂林理工大学硕士学位论文 2 5 2a i m k 脚本结构 a i m k 编译指令所用m a k e f i l e a i m k 文件分为三部分,分别是源文件扩展名部分、a i m k 变量部分和编译方式部分。在a i m k 的使用格式中,作为参数的源文件不需要带扩展名, 使得a i m k 无法正确获知源文件的名称。比如,在执行“a i m km a s t e r l ”指令时,当前目 录下同时存在m a s t e r l c 和m a s t e r l f 两个文件,a i m k 将无法确定编译对象。 解决这个二义性问题的方案是使用不同的a i m k 参数确定编译对象,比如,使用 “a i m km a s t e r l ”编译“m a s t e r l c ”文件,而使用“a i m kf m a s t e r l ”编译“m a s t e r i f ,文 件。 i s p v mr o o t e x a m p l e s m a k e f i l e a i m k m a s t e r i $ ( e x e s f x ) :$ ( s d i r ) m a s t e r i c $ ( x d i r ) s t c c ) $ ( c f l a g s ) _ os s ( s d i r ) m a s t e r l c $ ;( l d f l a g s ) s ( l i b s ) m v s 回s _ ) a 城 f m a s t e r l $ ( e x e s f x ) :s t s d i r ) m a s t e r l f s ( x o m ) $ ( f o r t ) $ ( f f l a g s ) 帕$ $ ( s d i r ) m a s t e r l f 、 s ( l d n 。a g s ) s ( f l m s ) s ( l m s ) m y s s ( x d m ) 大型项目都具有专门的代码存放结构,包括源文件信息、头文件信息、库文件信息、 目标文件信息、宏定义信息和编译选项信息等多项内容,为了便于管理,常使用变量来 替换这些复杂的信息。其中,代表性的变量说明见表2 4 。 表2 4m a k e 变量名称说明 变 量描述 常 h o m e d i r当前项目的主目录 见l m d i i 峪 搜寻库文件的目录 约 l l b 编译所需的全部静态库文件列表 定 c c c 语言编译器。比如c c 、c c 、g c c 名 c f l a g sc 编译选i 受和宏定义 s h e l l 当前用户所用s h e l l 类型说明 pp v m d i r p v m 安装目录路径名 vs d i r p v m 自带e x a r a p l e s 所在路径 m b d i r p v m 编译后可执行文件预置b i n 目录 特 x d i r p v m 编译环境架构名称目录,预置于b d i r 目录下 有 p v m l i b p v m 编译依赖库 值 f o r t f o r t r a n 语言编译器,比如9 7 7 f f l a g s f o r t r a n 编译选项和宏定义 用户可以根据自己实际需要增加、删除、修改、变量及取值。由此,可以很容易参 照理解m a k e f i l e a i m k 预编译文件的变量说明选项的含义。表2 5 所示为 $ p v m _ r o o t c x a m p l e s ;i ;1 录下m a k e f i l e a i m k 文件中预编译变量说明清单。 1 5 桂林理工大学硕士学位论文 表2 5m a k e f il e a i m k 中预编译变量清单 在执行“$ ( c c ) $ ( c f l a g s ) 一0 $ $ ( s d i r ) m a s t e r l c $ ( l d f l a g s ) $ ( h l i b s ) ”命令 时,首先执行变量还原,其替换规律如表2 6 所示。 表2 6m a k e r il e 的变量替换规则 变量动作描述 $ ( v a r n 越n e ) 替换为变量v a r n a m e 的值 $ 替换为完整的日标名称 依据该规则,最终的执行结果为: m a k i n gi nl i n u x l 3 8 6 f o rl i n u x l 3 8 6 c c - g - i i n c l u d e d s y s v s i g n a l - d n o w a i t 3 d r s h c o m m a n d = ”u s r b i n r s h ”- d n e e d e n d i a n d f d s e 烈0 t s t r u c t - d h a s e 秉r o r w “咯一d c t i m e i s t i m e t - d s y s e r l u s c o n s t d n o t m p n a m - om a s t e d j e x a m p l e s m a s t e r i c l ,j l i b l i n u x l 3 8 6 i p v m 3 a i m k 配合m a k e f i l e a i m k 的优点在小规模的m a s t e r l c 程序编译中还不足以体现。随 着项目文件规模增大,编译配置问题曰益复杂,文件间依赖关系增多,其带来的工作效 率提高以及操作便利显著。 另外,m a k e f i l e a i m k 还完成如下的辅助工作。 移动目标文件过程。执行语句“m v $ $ ( x d i r ) ”的最终结果如下,将生成的目标 文件移动到特定的目录中,便于打包、安装、调用或运行。 m ym a s t e dz j b i n & i n u x l 3 8 6 1 1 1 6 桂林理工大学硕士学位论文 清除中间文件过程。执行如下的清理语句,删除了在编译过程中产生的中间文件, 保证源代码目录名副其实。 e 三$ 三( c p r o g 三s ) s f f p r i o g ss(c三txpro二gs$(m三bprogs=$(mhfprogs i 肌- f o ) 完全编译所有项目。执行完全编译语句“a i m ka l l ”,可以对指定目录下的所有特定 源代码实施编译,大大减轻了手动逐个编译的工作量。 a l l :c - a l lf - a l l e - a l l :$ ( c p r o g s ) $ ( c t x p r o g s ) $ ( m b p r o g s ) $ ( m h f p r o g s ) f - a l l :s ( f p r i ) g s ) 转移目标文件以及清除中间文件,还可以使当前目录变得清晰,欺骗m a k e 的模块 依赖检查功能,从而在未更改任何源代码的基础上实现代码的重新编译。 2 5 3a im k 脚本生成 在此,本文了给出自定义m a k e f i l e a i m k 脚本模板,作为a i m kt 作机制和 m a k e f i l e a i m k 脚本结构分析的总结,分别对应主从( m a s t e r - s l a v e ) 模式和对等( s p 加) 模式两种情形。 根据情况需要,对自定义模版中相应的源代码文件名、目标文件名字符串实施替换 后复制到m a k e f i l e a i m k 文件。即可实现调用a i m k 实用工具对用户的c 或f o r t r a n 并行 程序源代码实施编译、并生成指定名称的目标文件到p v m 系统的特定文件夹内。 针对m a s t e r - s l a v e 型并行程序,包含c 、f o r t r a n 两种源码情况,见表2 7 。 1 7 桂林理工大学硕士学位论文 表2 7m a s t e r - s l a v e 型并行程序a i m k 脚本 依据要求,对c 源码文件m y _ m a s t e r c m y _ s l a v e c 实施替换,编译指令为a i m k m y _ m a s t e rm y _ s l a v e ,目标文件对应为m y _ m a s t e r m y _ s l a v e ;对f o r t r a n 源码文件 m y _ m a s t e r f m y _ s l a v e f 实施替换,编译指令为a i m km y f m a s t e rm y f s l a v e ,目标文件对应为 m y f m a s t e r m y f s l a v e 。 针对s p m d 型并行程序,包含c 、f o r t r a n 两种源码情况,见表2 8 。 依据要求,对c 源码文件m y _ s p m d c 实施替换,编译指令为a i m km y _ s p m d ,目标 文件对应为m y _ s p m d ;对f o r t r a n 源码文件m y _ s p m d f 实施替换,编译指令为a i m k m y f s p m d ,目标文件对应为m y f s p m d 。 1 8 桂林理工大学硕士学位论文 第3 章o c c a m 反演并行性 大地电磁测深法m t ( m a g n e t o t e l l u r i cm e t h o d ) ,自2 0 世纪5 0 年代初问世以来, 经过5 0 多年的深入研究和广泛应用,已经发展成为电法勘探领域最成熟的物探方法之 一。随着社会经济的发展,特别是对能源、矿产等资源需求的日益增长,生产实践对 m t 的勘探效果也提出了越来越高的要求i ”1 ,电阻率反演方法在处理m t 实测资料的应 用越来越广泛。 3 1o c c a m 反演 由c o n s t a b l es c 、p a r k e rr l 、c o n s t a b l ec g 于1 9 8 7 年首次在一维m t 问题中被提 出的o c c a m 反演【3 8 1 1 3 9 1 理论,是一种基于电磁测深数据产生光滑模型的实用算法,而且 是一种带平滑约束的非线性最小二乘解决方案。 o c c a m 反演是一种非线性问题的正则化反演方法,目前已经在地球物理勘探领域 得到广泛的应用,其对二维m t 反演问题的实现,是该方法论中的典范之一。 o c c a m 反演在追求模拟数据与实测数据最大拟合的同时,反演还附带约束性条件, 要求模型数据最平滑。o c c a m 反演已经跳出了简单求取模型增量的传统模式,其在对 拉格朗日乘子值的搜索过程中,寻找靠近极值点的目标模型,保证了算法具有很好的稳 定性阳。 3 1 1o c c a m 反演原理 在o c c a m 反演过程中,为了让模型尽可能灵活,同时又要抑制地电结构的不合理 性,可通过定义模型粗糙度来解决这一问题,粗糙度可表示为模型参数相对某一坐标的 一阶或二阶导数平方的积分,如对z 方向,则有 墨= j ( 害) 2 出或马= 格产 公加 其中埘为模型的电性参数。o c c a m 反演要寻求的解为能尽可能的与实际观测数据 相吻合,同时又具有最小粗糙度的地电结构。 在一维反演中,式中函数j ,l 可表示为m ( z ) = m l ,乃一j 公式( 3 9 ) 式中,u - 1 为拉格朗日乘子,f 为反演所要求达到的拟合差。在反演迭代过程中, 目标函数u 将趋于极小值。因此,可令u ( u 在m 处的梯度) 等于零,可以得出模 型向量m 满足以下关系 或 一( 阿) 7 w j m 一一1 ( ) r w d + a ,o m = 0 公式( 3 1 0 ) 。1 ( 耵) r w j m l z - 1 ( 附) ,w d + ( a ;a ,+ a a ) m = 0 公式( 3 1 1 ) 式中,m x n 的矩阵,是雅可比( j a c o b i a n ) 矩阵,表达式如下 ,= v 。f 公式( 3 1 2 ) 其元素可以表示为蜊讲【朋】锄) 。在给定初始模型m l 后,反演便开始迭代求解 的过程。如f 在m j 可微,则对于足够小的向量有如下关系成立 f m i + a 】= f m l 】+ j i a 公式( 3 1 3 ) 式中,肛所2 一所i ,将该近似式代入方程( 3 1 0 ) ,则在m 2 有如下线形问题 u = r 。+ # - i l l w a f m 。】+ j i m ,) 一。m :1 1 2 一彳? 公式( 3 1 4 ) 2 1 桂林理工大学硕士学位论文 上式右端第二项圆括号中的表达式为数据向量,记为函。若定义m 2 为该近似下使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东初升高期末数学试卷
- 2025年河北石家庄市中医医院公开招聘药剂师6名笔试历年专业考点(难、易错点)附带答案详解
- 2025至2030城市交通控制行业市场深度研究及发展前景投资可行性分析报告
- 甘肃公务员行测(A类)真题及答案
- 北京肿瘤医院社会人员招聘考试真题2024
- 2025至2030草本化妆品行业市场深度研究与战略咨询分析报告
- 2025至2030采矿采石行业市场占有率及投资前景评估规划报告
- 福清市莲峰小学数学试卷
- 二年级设计数学试卷
- 广东河源小升初数学试卷
- 沉淀法白炭黑的性能与运用课件
- 胜任力调查问卷
- 李善友颠覆式创新课件
- 商业租户招商营运一户一档移交资料清单
- 分包单位过程施工进度款审批表
- 电白局设备采购4开标过程评标报告
- 比和比例综合练习题及答案-
- 小学古诗词大赛-九宫格练习课件
- 医院(诊所)门诊病人登记簿表格模板
- 浅析如何提高高职院校行政管理效率2100字
- 上海电动汽车充电设施建设管理暂行规定
评论
0/150
提交评论