首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 125 毫秒
1.
一种从Z规约到并行程序的精化方法   总被引:3,自引:0,他引:3  
万剑怡  孙永强  薛锦云 《软件学报》2002,13(11):2106-2111
提出了一种通过对设计模式进行精化,从Z规约开发并行程序的方法.该方法对Z语言进行了并行扩充,从Z功能规约出发,通过使用扩展的设计模式逐步精化得到并行的设计规约,再通过保持语义的转换,得到可最后转换为并行代码的抽象并行程序.通过实例对这一方法进行了详细的描述.  相似文献   

2.
介绍了在Windows环境下,采用VB语言与动态链接库技术相结合设计部颁CDT循环规约的方法,给出了实现CDT循环规约的过程。该方法可满足电力系统高级应用软件共享数据资源的需要。  相似文献   

3.
鞠阳  陈锦涛 《微计算机信息》2005,21(30):175-176
介绍了在Windows环境下,采用VB语言与动态链接库技术相结合设计部颁CDT循环规约的方法,给出了实现CDT循环规约的过程.该方法可满足电力系统高级应用软件共享数据资源的需要.  相似文献   

4.
汪昕  陈驰  赵逸凡  彭鑫  赵文耘 《软件学报》2019,30(5):1342-1358
开发人员经常需要使用各种应用程序编程接口(application programming interface,简称API)来复用已有的软件框架、类库等.由于API自身的复杂性、文档资料的缺失等原因,开发人员经常会误用API,从而导致代码缺陷.为了自动检测API误用缺陷,需要获得API使用规约,并根据规约对API使用代码进行检测.然而,可用于自动检测的API规约难以获得,而人工编写并维护的代价又很高.针对以上问题,将深度学习中的循环神经网络模型应用于API使用规约的学习及API误用缺陷的检测.在大量的开源Java代码基础上,通过静态分析构造API使用规约训练样本,同时利用这些训练样本搭建循环神经网络学习API使用规约.在此基础上,针对API使用代码进行基于上下文的语句预测,并通过预测结果与实际代码的比较发现潜在的API误用缺陷.对所提出的方法进行实现并针对Java加密相关的API及其使用代码进行了实验评估,结果表明,该方法能够在一定程度上实现API误用缺陷的自动发现.  相似文献   

5.
传统的面向MPI的自动并行化使用的依赖测试技术,只能确定代码中是否含有循环携带依赖,而不对循环携带依赖的类型进行判定。经研究发现,当循环携带的是反依赖时,代码仍然可以在一定条件下实现面向MPI的自动并行化。基于依赖测试方法和数据流信息,通过创建合理的依赖数据副本,提出了一种循环携带反依赖的MPI自动并行方法。实验结果表明,所提出的方法能够有效识别存在循环携带反依赖的并行循环,将其作为后端生成MPI代码的依据可有效提高MPI程序的效率。  相似文献   

6.
大规模SIMD体系结构提供了更强的向量并行硬件支持,但是,大量迭代次数不足的循环由于不能提供足够的并行性,难以用等价的向量方式实现。为了更有效地利用SIMD,提出了一种非满载地使用SIMD指令的向量化方法。研究了向量寄存器的使用方式,基于非满载的向量寄存器使用方式实现了非满载的向量操作和短循环的向量化,并将非满载的向量化方法用于一般循环的向量化。提供了收益分析方法来为本向量化方法作精确指导。实验结果表明了该方法的有效性,所选测试用例的目标循环被向量化,平均加速比达到1.2。  相似文献   

7.
吴悦  雷超付  杨洪斌 《计算机工程》2010,36(9):35-37,40
针对含有大量循环的串行程序存在的问题,提出一种基于线程级前瞻技术的循环选择方案。该方案对循环进行最优选择后建立一个可并行运行的循环集。对于该集合中的循环,选择并行效率高的代码段作并行处理,以加快串行程序运行速度。实验表明,相对于一般的简单内部循环或外部循环并行方法,该方案使9种基准代码的加速比平均上升23.8%,从而提高串行程序并行运行的效率。  相似文献   

8.
针对含有大量循环的串行程序存在的问题,提出一种基于线程级前瞻技术的循环选择方案。该方案对循环进行最优选择后建立一个可并行运行的循环集。对于该集合中的循环,选择并行效率高的代码段作并行处理,以加快串行程序运行速度。实验表明,相对于一般的简单内部循环或外部循环并行方法,该方案使9种基准代码的加速比平均上升23.8%,从而提高串行程序并行运行的效率。  相似文献   

9.
阳雪林  于勐  陈道蓄  谢立 《软件学报》2002,13(8):1718-1722
针对分布式环境下可抽取观察循环的不规则串行程序循环的动态依赖关系分析问题,提出了一个基于观察/执行模型的动态分析算法.其贡献是:(1) 算法可并行执行于分布式系统;(2) 直接分析具有拷入和最后赋值操作的循环;(3) 给出了循环的并行化方法;(4) 并不要求循环是完全可并行的,对某些部分可并行循环,也支持其并行执行.理论分析和实验表明,在处理器数量适当的情况下,循环可以并行时,可以获得很好的加速比;不能并行时,对串行执行增加的开销也是小的.从而为分布式环境下开发更多的循环并行性提供了一种新的手段.  相似文献   

10.
夏薇  姚益平  慕晓冬  柳林 《软件学报》2012,23(6):1429-1443
非形式化仿真模型验证方法易受主观因素的影响且具有不完备性,而传统的形式化模型检验方法由于受到状态空间爆炸问题的影响,很难处理大规模的仿真模型.并行模型检验方法以其完备性、高效性已经在工业界中得到了成功的应用,但是由于涉及到形式化规约、逻辑学以及并行计算等多项技术,应用难度较大.针对上述问题,提出了基于事件图的离散事件仿真模型并行检验方法.该方法首先对事件图在模型同步方面进行了扩展,给出了扩展事件图的形式化定义、语法及语义;然后将扩展事件图模型转换到分布并行验证环境的DVE模型,成功地将并行模型检验方法应用于仿真模型验证领域.该方法使得仿真人员无须学习新的形式化验证语言就能采用并行模型检验方法对仿真模型进行形式化验证,可降低模型并行验证的难度,从而有效提高模型验证的效率和完备性.实验结果表明了该方法的有效性,有利于扩展并行模型检验方法在仿真领域中的应用.  相似文献   

11.
James Stanier  Des Watson 《Software》2012,42(1):117-130
Compilers use a variety of techniques to optimize and transform loops. However, many of these optimizations do not work when the loop is irreducible. Node splitting techniques transform irreducible loops into reducible loops, but many real‐world compilers choose to leave them unoptimized. This article describes an empirical study of irreducibility in current versions of open‐source software, and then compares them with older versions. We also study machine‐generated C code from a number of software tools. We find that irreducibility is extremely rare, and is becoming less common with time. We conclude that leaving irreducible loops unoptimized is a perfectly feasible future‐proof option due to the rarity of its occurrence in non‐trivial software. Copyright © 2011 John Wiley & Sons, Ltd.  相似文献   

12.
循环是程序中蕴含并行性最为丰富的一种结构,因此成为并行化编译最主要的对象.但循环内的过程调用严重妨碍了循环的数据相关性分析,使得循环语句潜在的大量并行性得不到开发.本文提出的循环嵌入方法使部分含过程调用循环语句的并行化成为可能,对部分用其它过程间分析技术也能开发其并行性的这一类循环语句采用循环嵌入方法,并行化开销低,并且分析更精确.采用循环嵌入方法还可降低程序由于多次过程调用带来的调度开销.这一方法在作者开发的自动并行化编译系统AFT(automaticPortrantransformer)中得到了实现,对Spec92测试程序包的试验结果表明了本文提出的方法是行之有效的.  相似文献   

13.
This paper describes several loop transformation techniques for extracting parallelism from nested loop structures. Nested loops can then be scheduled to run in parallel so that execution time is minimized. One technique is called selective cycle shrinking, and the other is called true dependence cycle shrinking. It is shown how selective shrinking is related to linear scheduling of nested loops and how true dependence shrinking is related to conflict-free mappings of higher dimensional algorithms into lower dimensional processor arrays. Methods are proposed in this paper to find the selective and true dependence shrinkings with minimum total execution time by applying the techniques of finding optimal linear schedules and optimal and conflict-free mappings proposed by W. Shang and A.B. Fortes  相似文献   

14.
童朝南  黄国强 《计算机仿真》2007,24(11):304-307
针对过去液压伺服系统中双环独立且压力环开环工作存在的不足,提出了一种压力、位置双环协调控制的液压伺服系统且在双环自动切换时能够实现无扰切换的方法.关键技术是从液压缸引入压力反馈形成压力闭环与位置闭环形成双环控制,采用限幅饱和的方法实时比较压力和位置给定信号,进入饱和的环退出工作,退出饱和的环投入工作,这样就实现了双环无扰自动切换,且两个环始终是一个环处于饱和状态而另一个环工作,从而实现双环协调工作.通过在dSPACE实时仿真平台进行了仿真分析,说明了该方法的可行性和有效性.  相似文献   

15.
In this paper, an approach to tiling nested loops for maximizing parallelism is proposed. The proposed method aims at aggregating independent computations of a loop nest into rectangular blocks and maximizing the block sizes for maximizing parallelism. At first, all the independent computations that can be executed in the first time unit are identified. These computations are called the initially independent computations. Then it is shown that all of them can be collected as a union of rectangular blocks. So, based on these, the entire iteration space of the loops is partitioned into rectangular blocks for maximizing parallelism. The proposed method is formulated as systematic procedures which can easily be implemented in a parallelizing compiler. It is shown that when the wavefront transformation is combined with the proposed method, the loops can always be tiled so that the tile size is greater than one. In comparison with previous work on tiling, the proposed method is shown to have several advantages as summarized in the conclusions of this paper.  相似文献   

16.
在详细讨论了简单数据组访问模式下假共享抖动现象及其消除方法的基础上,本文着重分析了复杂访问模式下的假共享Cache行抖动现象和真假共享抖动并存现象,引入了并行循环访问距概念,提出了消除假共享抖动的编译方法-块化错位方法。结合块化错位方法,我们提出了多维数组的数组扩展思想,给出了多重嵌套循环含多次写访问情况下减少或消除抖动的算法。  相似文献   

17.
This paper presents the results of an experiment to measure empirically the remaining opportunities for exploiting loop-level parallelism that are missed by the Stanford SUIF compiler, a state-of-the-art automatic parallelization system targeting shared-memory multiprocessor architectures. For the purposes of this experiment, we have developed a run-time parallelization test called the Extended Lazy Privatizing Doall (ELPD) test, which is able to simultaneously test multiple loops in a loop nest. The ELPD test identifies a specific type of parallelism where each iteration of the loop being tested accesses independent data, possibly by making some of the data private to each processor. For 29 programs in three benchmark suites, the ELPD test was executed at run time for each candidate loop left unparallelized by the SUIF compiler to identify which of these loops could safely execute in parallel for the given program input. The results of this experiment point to two main requirements for improving the effectiveness of parallelizing compiler technology: incorporating control flow tests into analysis and extracting low-cost run-time parallelization tests from analysis results  相似文献   

18.
Optimal performance of controllers and control loops is crucial for process economy, quality and safety in chemical plants. Industrial statistics show that often a significant percentage of them are performing sub-optimally at any given time. Effective real-time monitoring of control loops is a difficult task as there may be dozens of loops to monitor in a typical process. In addition, abnormal or suboptimal performance is often not apparent under cursory inspection. Hence, automated approaches for the real-time monitoring of control loop performance is of considerable interest. In this paper, we propose an automated qualitative shape analysis (QSA) formalism for detecting and diagnosing different kinds of oscillations in control loops. We extend our earlier QSA methodology to make it more robust by developing an algorithm for automatic identification of the appropriate global time-scales. We demonstrate this formalism on three case studies to detect and diagnose control loop oscillations.  相似文献   

19.
Conclusions The method of recognition of loop parallelisms based on simulation of loop execution has been described, for the sake of simplicity, within the scope of simple loop structure analysis. At the same time, the method can be effectively extended to loops of arbitrary structures including loop nests. The method allows to vary the number of analyzed passes from N1 to N1×N2×...×Nj, where Ni is the number of iterations of a loop of an imbedding i. Reduction of a nest of loops to a loop of the form (1) can be carried out as follows.With a minimum size of the analyzed passes, internal loops (if necessary) are treated as being unwound into a linear sequence; with a maximum size of passes, the heading of the nest of loops is represented as DO KI=J, N, M, where K, I, J, N, and M are vectors, and a run through the values of vector I is simulated.For parallel programs executed in MINIMAX-type systems, branches are implemented in individual elementary machines. In allocating loop passes to different branches it is necessary to minimize exchange interactions taking place between machines. The simulation method makes it possible in such cases to disclose information allowing to make rational decisions.Translated from Kibernetika, No. 3, pp. 28–33, May–June, 1981.  相似文献   

20.
一个有效的并行分析算法   总被引:3,自引:0,他引:3  
并行分析在并行编译系统中有着很重要的作用,它的优劣直接影响到编译系统的成败,随着机群系统及其并行开发环境的发展,多数的并行系统可支持多重并行循环的运行。而对只支持一重并行循环的编程系统,选择并行运行效率最高的循环,也是很重要的。为此,本文提出了一个有效的循环并行分析方案,它不但能给出多层循环的并行性,而且能够处理绝大部分实际应用中的并行性问题,本文对传统的并行分析算法进行修改,并给出了一个有效的并  相似文献   

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

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

京公网安备 11010802026262号