当前位置:主页 > 科技论文 > 软件论文 >

基于分布式图计算的大规模程序静态分析算法与系统

发布时间:2021-01-06 05:36
  程序静态分析技术被广泛应用于计算机程序设计与开发的诸多环节,包括错误检测、代码优化、测试等。基于CFL(Context-Free Language)可达的过程间程序静态分析是一种具有较高通用意义的过程间静态分析方法,该方法本质上是一种图的可达性计算问题。尽管程序静态分析方面的研究取得了很多进展,但是由于硬件资源和传统方法的限制,单机计算已难以支撑日益增长大规模图数据的高效处理,从而导致了静态分析方法的性能低效且可扩展性较低。因此对大规模现代软件进行复杂的过程间分析仍然具有挑战性。针对大规模程序静态分析性能低效和可扩展性低的问题,本文提出了一种基于分布式图计算模型的高效可扩展的并行化大规模程序静态分析方法,并设计实现了高效可扩展的分布式大规模程序静态分析系统。本文的主要研究工作和贡献点如下:(1)将基于CFL可达的程序静态分析问题抽象为大规模图计算问题,基于数据并行框架研究设计了一种新型的并行化传递闭包算法和Join-Process-Filter计算模型,基于该算法和计算模型,设计实现了一个分布式离线全量程序静态分析系统,分别提出了算法级和系统级优化,并设计了具有压缩效果的数据结构。(2... 

【文章来源】:南京大学江苏省 211工程院校 985工程院校 教育部直属院校

【文章页数】:87 页

【学位级别】:硕士

【部分图文】:

基于分布式图计算的大规模程序静态分析算法与系统


图2-3?Spark生态系统组件??

可达关系,图表


第三章离线全量程序静态分析方法与并行化算法??用图的形式表达可达关系传递规则,则图中的边即为可达关系的体现。传递??闭包公式3-1分别对应图3-1中可达关系的三种传递方式,其中x?=?y上z即为一??组边对。??匚?c/l?<A?3??^?c??a)?e?s?b)?C?c/Z?c)?C?c/Z?乃??图3-1可达关系传递规则的图表现形式??边对模型的提出,为数据并行化算法设计提供了有利条件:将边对以中间节??点(节点y即是边对x^y三z的中间节点)为核心进行存储,由于产生式的右部??不超过两个符号,中间节点通过对入边(incomingedge)和出边(outgoingedge)??的收集,可以独立完成可达关系的传递,不必依赖别的节点的计算结果,因此可??以并行化执行每个中间节点的标签匹配任务,即多个中间节点同时对自己的“左??邻右舍”进行符合产生式的可达关系传递。??3.1.2?串行?Worklist?算法??从3.1.1节可达关系的传递方式可以看出,传递闭包是动态更新的,每次向??传递闭包中添加可达关系,都有可能触发新的可达关系的生成,这是一个迭代更??新的过程。??Worklist算法是一种基于搜索的可达性计算的算法[22][36]。它的主要工作流??程如下:使用worklist存储计算中的顶点和以它为终点的路径信息

中间节点,依赖关系,边集,顶点


顶点和目标顶点进行分区,即通过对边的复制,解除中间节点的边集共享问题。??这样做可以使边同时完成双向的路径传递,实现标签匹配操作的并行化。复制操??作如图3-2所示:??ABC????,?^??x?y?z?w??复制y->z??a?B?2? ̄?e?▲????^^??X?y?z?y?Z?W??图3-2通过复制解除中间节点的依赖关系??具有相同源或目标顶点(键)的边被放在与图3-4框中矩形相对应的相同分??区中。分区内部计算是并行执行的,提高了并行效率和资源利用率。??join和filter操作的并行化基于上述分区完成。??3.2.2数据结构设计??分区中边集(包括待计算边集IV和原传递闭包TC的边)被处理为以顶点为??键,与顶点相连的边集为值的key-value形式,这是离线系统实现中的基本数据??结构。需要注意的是,为了算法能及时收敛和避免冗余计算,每个键值对中,只??19??


本文编号:2960022

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2960022.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户d1604***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com