首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 234 毫秒
1.
在并行化编译中,代码生成属于编译器的后端,决定着并行程序的执行效率.数据划分将计算循环中被重定义或没被读引用的数据映射到处理器,按照数据划分生成通信代码会产生冗余通信.提出了利用数组数据流分析求解暴露集,并建立计算划分、循环迭代以及暴露集的不等式限制系统,最后通过FME(fourier Motzkin elimination)消元生成数据分布代码的优化算法.测试结果表明该算法对数据分布的优化效果明显.  相似文献   

2.
程序自动并行化中的数组终写关系分析   总被引:1,自引:0,他引:1       下载免费PDF全文
罗勇  张平  龚雪容 《计算机工程》2008,34(16):95-97
在程序自动并行化中过程中,数据收集阶段可能产生冗余通信,该文利用数组终写关系分析的方法来消除冗余通信,实现嵌套循环中数组数据最后写关系的快速求解,并将结果提供给编译器后端,生成精确数据收集代码。描述数组终写关系的研究目的和内容,将所处理的嵌套循环根据其结构特征进行分类,给出实现算法的过程。测试结果证明了该算法的正确性和高效性,所产生的精确数据收集代码能够有效地消除部分冗余通信,从而优化和提高了并行化程序的性能。  相似文献   

3.
若自动生成的并行化代码中包含过多的冗余代码,将导致代码膨胀,同时增加不必要的时间开销。该文通过对计算划分不等式和依赖关系不等式进行傅立叶消元,消除并行化代码中的冗余通信部分,实现通信优化。测试结果表明,与通信优化前的代码相比,消除后的并行代码量减少了10%~30%,处理器数目相同的情况下加速比平均达到1.12。  相似文献   

4.
针对OSEK标准的应用设计了一个从OIL代码到C代码的自动生成系统,该系统允许用户输入OIL配置文件信息,读取用户的输入转换为标准的C程序,返回给用户,在具体应用的时候.文法限制严格.该系统结合代码自动生成的过程,提出了一些具体的解决过程,消弱了对文法输入的限制,提高了对文法的适应能力.  相似文献   

5.
采用代码自动生成技术能为软件开发带来代码质量的提高、开发风险的降低等优点,提高了软件开发的速度和质量。该文描述了一种基于模板的代码自动生成系统的设计和实现,并利用它完成了基于J2EE-Web应用系统的代码自动生成工作。  相似文献   

6.
代码注释作为软件中的重要组成部分,在软件维护、复用等领域中发挥着重要作用。代码注释自动生成技术旨在减轻人工编写注释的工作量,从而提高软件开发效率。现有的注释自动生成方法分为基于规则、文本摘要、数据驱动、主题模型、深度学习等层次。综述了代码注释自动生成的相关概念,对比总结各类代码注释自动生成方法,对近年来代码注释自动生成相关应用进行了梳理和总结,最后对注释自动生成所面临的挑战进行了分析,展望了该领域未来的研究。  相似文献   

7.
利用软件复用技术可以大大提高软件的生产效率,有效的减轻开发者的负担。代码自动生成是软件复用常用的一种技术手段。在SSH框架的基础上,研究了控制层的代码,从hibernate生成的javaBean数据对象入手,利用模板生成技术和配置树的层次方法,自动化生成控制层的代码,利用eclipse 的SWT 技术做可视化界面,实现了一个原型系统,并测试了该系统。  相似文献   

8.
Tcache Poisoning是面向堆管理机制的一种堆漏洞利用方法,现有的堆漏洞自动验证工作未考虑Tcache带来的影响,无法适用于高版本Glibc堆漏洞自动验证。分析Tcache机制以及Tcache Poisoning验证方法的原理,提出一种基于符号执行的Tcache Poisoning堆漏洞自动验证方法。定义多元组对堆块的状态进行形式化描述,通过对关键API函数的挂钩,在程序运行过程中收集堆块的状态信息,并引入符号变元将外部输入数据符号化,实现关键信息的获取。通过状态监控检测堆漏洞触发,依据Tcache Poisoning堆漏洞自动验证模型,逐步生成Tcache Poisoning攻击约束和攻击载荷约束,最后通过约束求解生成漏洞验证代码。基于S2E符号执行平台实现自动验证系统TPAEG,并对10个测试程序进行测试,其中在Tcache Poisoning方法的7个测试程序中有5个生成了验证代码。实验结果表明,TPAEG可有效地检测堆溢出漏洞和释放后重用漏洞,并能够针对符合Tcache Poisoning攻击特征的场景实现自动验证,完成控制流的劫持并生成验证代码。  相似文献   

9.
基于代码自动生成技术的汽车电子实时控制软件开发   总被引:2,自引:0,他引:2  
由于汽车电子实时控制软件的传统开发模式存在开发难度大、控制算法维护成本高、调试和测试难度大、硬件依赖性强等缺点,介绍代码自动生成技术和快速原型开发理论,提出基于代码自动生成技术的汽车电子实时控制软件开发模式,然后比较该模式与传统开发模式并分析其优势.利用Matlab的实时工作间(Real-Time Workshop,RTW)平台举例分析自动代码生成的实时嵌入式软件架构,指出目前该模式存在平台、功能和性能等限制,并基于RTW平台提出基于代码自动生成技术的二次开发技术.新的开发模式弥补代码自动生成技术的不足,大大缩短汽车电子实时控制软件的开发周期,提高自动代码在该领域的实用性.  相似文献   

10.
针对MDA中的两个重要转换之一——PSM到应用程序代码的转换,提出了一个基于XSLT技术的代码自动生成器设计方案,用来实现MDA的代码自动生成。此外,对代码生成器的输入、代码生成器的自动生成原理进行了详细讨论;最后给出了一个在RAD中如何采用代码自动生成器生成代码的例子。  相似文献   

11.
针对分布内存结构的并行化将串行程序转变为在各处理节点上运行的SPMD并行程序,节点程序包含该节点所执行的运算和与其它节点交换信息的通信操作。讨论了在已知数据分解和计算划分的前提下生成分布内存结构下的消息传递并行程序的算法,以Lam提出的线性不等式基本框架为基础,在Paraguin工作基础上进行了有效的改进:第一在代码生成算法中引入了数据分布;第二将处理器空间由一维扩展到多维;第三将虚拟处理器到物理处理器的映射关系引入代码生成算法,从而减少了节点间通信的数量,提高了生成并行代码的性能。  相似文献   

12.
杨皓  杨忠  吴愚 《数字社区&智能家居》2009,5(3):1712-1713,1721
针对现代大规模软件开发过程中遇到的重复代码编写问题,提出了一种基于XML脚本的自动代码生成技术。它首先介绍了自动代码生成技术;然后介绍了XML脚本标记语言;最后描述了TSL模板脚本语言在图形化用户交互系统中的应用。该技术采用XML文件描述软件业务领域的教据关系,提出了控制XML文件的通用脚本语言,操纵XML文件数据,并结合模板技术控制输出代码的格式。通过实际的软件开发过程证明,该技术在很大程度上减轻了开发人员编写重复代码的负担,提高了软件开发的效率和质量。  相似文献   

13.
简要介绍了并行编译中的计算划分和依赖关系分析,提出如何利用计算划分和依赖关系自动生成并行程序中的计算代码和同步通信代码.  相似文献   

14.
The decomposition slice graph and concept lattice are two program representations used to abstract the details of code into a higher-level view of the program. The decomposition slice graph partitions the program into computations performed on different variables and shows the dependence relation between computations, holding when a computation needs another computation as a building block. The concept lattice groups program entities which share common attributes and organizes such groupings into a hierarchy of concepts, which are related through generalizations/specializations. This paper investigates the relationship existing between these two program representations. The main result of this paper is a novel program representation, called concept lattice of decomposition slices, which is shown to be an extension of the decomposition slice graph, and is obtained by means of concept analysis, with additional nodes associated with weak interferences between computations, i.e., shared statements which are not decomposition slices. The concept lattice of decomposition slices can be used to support software maintenance by providing relevant information about the computations performed by a program and the related dependences/interferences, as well as by representing a natural data structure on which to conduct impact analysis. Preliminary results on small to medium size code support the applicability of this method at the intraprocedural level or when investigating the dependences among small groups of procedures.  相似文献   

15.
傅立国  姚远  丁锐 《计算机应用》2014,34(4):1014-1018
不规则计算在大规模并行应用中广泛存在。在面向分布存储结构的自动并行化过程中,较难在编译时为不规则循环生成并行代码。并行代码中的通信代码对程序运行结果的正确性以及加速效果有着严重的影响。通过分析程序的数组重分布图,使用部分冗余的通信方式来维持不规则数组访问的生产者消费者关系,可以在编译时为一类常见的不规则循环自动生成有效的通信代码。该方法使用计算分解和数组引用的访问表达式求解不规则数组在各处理器的本地定义集作为通信的数据集,分析针对此类不规则循环划分的通信策略,继而生成相应的通信代码。实验测试的结果取得了预期的加速效果,验证了方法的有效性。  相似文献   

16.
对于高性能并行计算机而言,如何由给出的计算、数据划分信息及精确数组数据流分析信息自动生成并行化代码是实现串行程序并行化的一个重要问题。根据Saman P.Amarasinghe和Lam的定理,实现了一种并行化识别工具中MPI(Message Passing Interface)并行化代码自动生成技术的算法,并对该算法的性能进行分析。  相似文献   

17.
针对现代大规模软件开发过程中遇到的重复代码编写问题,提出了一种基于XML脚本的自动代码生成技术。它首先介绍了自动代码生成技术;然后介绍了XML脚本标记语言;最后描述了TSL模板脚本语言在图形化用户交互系统中的应用。该技术采用XML文件描述软件业务领域的数据关系,提出了控制XML文件的通用脚本语言,操纵XML文件数据,并结合模板技术控制输出代码的格式。通过实际的软件开发过程证明,该技术在很大程度上减轻了开发人员编写重复代码的负担,提高了软件开发的效率和质量。  相似文献   

18.
Fortran D is a version of Fortran extended with data decomposition specifications. It is designed to provide a machine-independent programming model for data-parallel applications and has heavily influenced the design of High Performance Fortran (HPF). In previous work we described Fortran D compilation algorithms for individual procedures. This paper presents an interprocedural approach to analyze data and computation partitions, optimize communication, support dynamic data decomposition, and perform other tasks required to compile Fortran D programs. Our algorithms are designed to make interprocedural compilation efficient. First, we collect summary information after edits to solve important data-flow problems in a separate interprocedural propagation phase. Second, for nonrecursive programs we compile procedures in reverse topological order to propagate additional interprocedural information during code generation. We thus limit compilation to a single pass over each procedure body. We also perform optimizations across procedure boundaries by delaying instantiation of the computation partition, communication, and dynamic data decomposition. Empirical results show that interprocedural optimization is crucial in achieving acceptable performance for a common application code.  相似文献   

19.
The complexity of software systems has been increasing dramatically in the past decade, and software testing as a labor-intensive component is becoming more and more expensive. Testing costs often account for up to 50% of the total expense of software development; hence any techniques leading to the automatic generation of test data will have great potential to considerably reduce costs. Existing approaches of automatic test data generation have achieved some success by using evolutionary computation algorithms, but they are unable to deal with Boolean variables or enumerated types and they need to be improved in many other aspects. This paper presents a new approach utilizing program dependence analysis techniques and genetic algorithms (GAs) to generate test data. A set of experiments using the new approach is reported to show its effectiveness and efficiency based upon established criterion.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号