首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 46 毫秒
1.
在并行程序测试中,测试输入和线程交互时序是影响并行错误检测的两个关键因素。以缩减并行错误检测的输入空间为目标,给出一种基于变异测试的测试用例最小化算法。首先对并行程序进行研究,选取与并行错误密切相关的9个变异算子,并以此为基础为待测程序生成多种变异体;采用JPF作为线程调度工具来执行测试用例,根据变异评分与平均时间成本对测试用例进行排序,在优化后的测试用例集中选取检测能力不重复的测试用例,从而得到面向并行错误检测的最小测试用例集。实验结果证明,该方法能有效减小测试用例集的规模,并大幅缩短运行时间,从而提高了并行程序的测试效率。  相似文献   

2.
本文以数据驱动的并行计算模型及其证明框架为理论基础,进一步探讨了并行程序构造及其关键步骤即谓词并行分解的理论与方法,得到一些较为实用的结果,在此基础上,最后讨论了并行程序的测试方法以及如何获得数据驱动的并行程序问题。  相似文献   

3.
4.
变异测试通过执行变异体评价给定测试用例集的质量。然而,一定比例的等价变异体,不仅增加变异测试成本,也影响测试用例评价结果的准确性。鉴于此,提出基于弱变异分析的方法,以有效检测等价变异体。所提方法将变异前后语句组合为条件语句,以反映杀死变异体的必要性条件,并构造变异分支;将所有变异分支集成到原程序中;通过分析变异分支的可满足性,判定等价变异体。将所提方法用于6个程序的实验,结果表明,所提方法能够有效检测等价变异体。  相似文献   

5.
在软件测试中,测试覆盖率(covrage ratio)是评判程序测试完成程度的重要指标之一。然而,针对并行程序时序的测试覆盖率,目前国际上还未见比较实用的定星分析方法。文中以树型拓扑结构的广播与归并操作的分布工并行实现为例,提高了一种建立在同步序列模型基础之上并专门适合于原子事件测试方法的有关分布式并行程序时序测试的测试覆盖率的数值计算方法。由于广播与归并是两个比较有代表性的并行操作,因此文中所描  相似文献   

6.
并行程序的错误可分为进程间错误(inter-process fault)和进程内部错误(intra-process fault)。其中,潮程内部错误晃由控制流错误造成的,面进程间错误是由进程间的不合理时序关系造成的。文中主要探讨了关于并进程序(以基于消息传递的分布式并行程序为主)时序测试中的一系列关键技术。为了能够简捷、较完备地反映并行程序的运行流程,文中首先构筑了一个同步序列模型,所有问题均在此  相似文献   

7.
在软件测试过程中,待测程序的预期输出是判断软件是否存在缺陷的重要因素.蜕变测试技术是利用被测软件的属性来检查程序输出,从而有效地解决程序预期输出难以构造的问题.近年来,蜕变测试在软件测试领域取得了蓬勃的发展,许多研究人员将蜕变测试技术进行优化,将其运用到各个领域,有效提高了软件质量.从原理、过程及其优化,应用领域3个方面,总结蜕变测试的研究工作,着重分析了近5年的研究进展,进一步展望了蜕变测试用于并行程序时,可能的研究主题.首先,介绍蜕变测试的基本概念和蜕变测试过程;接着,从蜕变关系、测试用例、测试执行过程以及蜕变测试工具4个角度,总结蜕变测试优化技术;然后,汇总了蜕变测试的应用领域;最后,基于已有研究成果,讨论蜕变测试在并行程序测试领域面临的问题,为蜕变技术在并行程序测试领域的研究提供可能的思路.  相似文献   

8.
随着并行编程越来越普及,并行程序的测试也变得越来越重要。本文面向共享内存的并行程序,研究一种新的并行程序测试技术,设计了工具CPTester,采用冗余分析方法避免重复的结果。和已有工作不同的是CPTester能够自动生成每一个并行bug的上下文信息,对程序员理解并修复一个并行bug具有重要意义。将CPTester在一些真实的并行程序上进行实验评测,结果显示CPTester能够有效地检测到程序中的并行bug,且每一个并行bug都有相应的上下文信息来描述该bug触发的根本原因。  相似文献   

9.
测试是提高软件可靠性的重要方法.消息传递并行程序中存在的不确定通信语句,使得进程执行顺序具有不确定性,这增加了测试该类程序的难度.鉴于进程执行顺序对目标路径覆盖难易程度的影响,本文研究消息传递并行程序多路径覆盖调度序列排序方法,以提高多路径覆盖测试数据生成的效率.首先,在每个调度序列下,以每个采样的程序输入执行程序,生...  相似文献   

10.
一种基于检查点的并行程序调试器的设计与实现   总被引:4,自引:1,他引:4  
为支持大规模长时间运行并行程序的调试,有必要将检查点机制引入到并行程序调试器中,检查点设置与卷回应用中需要解决中途消息,孤儿消息和多米诺效应,活锁4个问题,并行程序调试中需要解决不确定性问题,提出的基于状态冻结的确定性检查点设置方法,可以避免检查点应用中孤儿消息和多米诺效应,活锁3个问题,通过消化记录的方法处理中途消息问题,采用记录/重放方法解决并行调试中的不确定性问题,基于状态冻结的确定性检查点设置方法,有效地解决了并行程序调试器和检查点结合时产生的诸多问题,该方法具有结构清晰,易于实现的优点,基于此技术,设计并实现了一个并行调试工具-DENNET。  相似文献   

11.
在介绍消息传递接口标准(MPI)和分析并行程序设计方法的基础上,提出了在并行程序设计中需要进行算法级分析和程序级测试,以此来对影响具体的并行程序执行效率的因素进行分析,并用实例验证了分析结果。最后对MPI的实现之一———MPICH1.2.5版本的不足,提出了改进的方法。  相似文献   

12.
Program Slicing is a well-known decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. In this paper, we present two novel predicate-based dynamic slicing algorithms for message passing programs. Unlike more traditional slicing criteria that focus only on parts of the program that influence a variable of interest at a specific position in the program, a predicate focuses on those parts of the program that influence the predicate. The dynamic predicate slices capture some global requirements or suspected error properties of a distributed program and computes all statements that are relevant. The presented algorithms differ from each other in their computational approaches (forward versus backward) and in the granularity of information they provide. A proof of correctness of these algorithms is provided. Through the introduction of dominant states and dominant events, critical statement executions are identified that change the value of the global predicate. Under this formulation, optimizing dynamic predicate slicing becomes a meaningful goal as well. Finally, we present how predicate slices can be applied to support comprehension tasks for analyzing and maintaining distributed programs.  相似文献   

13.
    
High‐performance application development remains challenging, particularly for scientists making the transition to a heterogeneous grid environment. In general areas of computing, virtual environments such as Java and .Net have proved to be successful in fostering application development, allowing users to target and compile to a single environment, rather than a range of platforms, instruction sets and libraries. However, existing runtime environments are focused on business and desktop computing and they do not support the necessary high‐performance computing (HPC) abstractions required by e‐Scientists. Our work is focused on developing an application‐runtime that can support these services natively. The result is a new approach to the development of an application‐runtime for HPC: the Motor system has been developed by integrating a high‐performance communication library directly within a virtual machine. The Motor message passing library is integrated alongside and in cooperation with other runtime libraries and services while retaining a strong message passing performance. As a result, the application developer is provided with a common environment for HPC application development. This environment supports both procedural languages, such as C, and modern object‐oriented languages, such as C#. This paper describes the unique Motor architecture, presents its implementation and demonstrates its performance and use. Copyright © 2008 John Wiley & Sons, Ltd.  相似文献   

14.
15.
    
Debuggers play an important role in developing parallel applications. They are used to control the state of many processes, to present distributed information in a concise and clear way, to observe the execution behavior, and to detect and locate programming errors. More sophisticated debugging systems also try to improve understanding of global execution behavior and intricate details of a program. In this paper we describe the design and implementation of SPiDER, which is an interactive source‐level debugging system for both regular and irregular High‐Performance Fortran (HPF) programs. SPiDER combines a base debugging system for message‐passing programs with a high‐level debugger that interfaces with an HPF compiler. SPiDER, in addition to conventional debugging functionality, allows a single process of a parallel program to be expected or the entire program to be examined from a global point of view. A sophisticated visualization system has been developed and included in SPiDER to visualize data distributions, data‐to‐processor mapping relationships, and array values. SPiDER enables a programmer to dynamically change data distributions as well as array values. For arrays whose distribution can change during program execution, an animated replay displays the distribution sequence together with the associated source code location. Array values can be stored at individual execution points and compared against each other to examine execution behavior (e.g. convergence behavior of a numerical algorithm). Finally, SPiDER also offers limited support to evaluate the performance of parallel programs through a graphical load diagram. SPiDER has been fully implemented and is currently being used for the development of various real‐world applications. Several experiments are presented that demonstrate the usefulness of SPiDER. Copyright © 2002 John Wiley & Sons, Ltd.  相似文献   

16.
With the use of state and memory reduction techniques in verification by explicit state enumeration, runtime becomes a major limiting factor. We describe a parallel version of the explicit state enumeration verifier Mur for distributed memory multiprocessors and networks of workstations using the message passing paradigm. In experiments with three complex cache coherence protocols on an Sp2 multiprocessor and on a network of workstations at UC Berkeley, parallel Mur shows close to linear speedups, which are largely insensitive to communication latency and bandwidth. There is some slowdown with increasing communication overhead, for which a simple yet relatively accurate approximation formula is given. Techniques to reduce overhead and required bandwidth and to allow heterogeneity and dynamically changing load in the parallel machine are discussed, which we expect will allow good speedups when using conventional networks of workstations.  相似文献   

17.
    
Developing high‐quality, error‐free message‐passing concurrent programs is not trivial. Although a number of different primitives with associated semantics are available to assist such development, they often increase the complexity of the testing process. In this paper, we extend our previous test model for message‐passing programs and present new structural testing criteria, taking into account additional features used in this paradigm, such as collective communication, non‐blocking sends, distinct semantics for non‐blocking receives, and persistent operations. Our new model also recognizes that sender primitives cannot always be matched with every receive primitive. This improvement allows us to remove statically a significant number of infeasible synchronization edges that would otherwise have to be analyzed later by the tester. In this paper, the test model is presented using the Message‐Passing Interface standard; however, our new model has been designed to be flexible, and it can be configured to support a range of different message‐passing environments or languages. We have carried out case studies showing the applicability of the new test model to represent message‐passing programs and also to reveal errors, mainly those errors related to inter‐process communication. In addition to increasing the number of features supported by the test model, we have also reduced the overall cost of testing significantly. Our case studies suggest that the number of synchronization edges can be reduced by up to 93%, mainly by eliminating infeasible edges between unmatchable communication primitives. The main contribution of the paper is to present a more flexible test model that provides improved coverage for message‐passing programs and at the same time reduces the cost of testing significantly. Copyright © 2012 John Wiley & Sons, Ltd.  相似文献   

18.
网络并行计算系统的消息存储器网络接口设计   总被引:4,自引:0,他引:4  
文中通过定性分析典型并行应用程序,提出产蒙义了消息传递无关因子R,即堆中的数据的传递在整个消息传递中所占比例,而且后在一个实际的NPC环境中对一组典型并行应用程序进行踪迹统计,证实了R接近1的分析,根据这个定性分析以及定量统计结构,结合存储器技术的进展,在NPC中的网络接口上引入了消息存储器,使得NPC中各个结点可以直接访问其它结点的消息存储器,通过竣是出结论,在设置了消息存储器的网络接口的NPC  相似文献   

19.
随着许多工程领域的计算量在不断加大,就提出了并行计算技术问题。而在目前高性能计算机系统中,最广泛使用的一种标准是MPI,它已成为一种并行程序的标准。MPI的理念就是需要将问题的并行求解算法转化为特定的适合并行计算模型的并行算法。麦克斯韦旋度方程的数值分析有多种方法,但其中的时域有限差分法是一种较好的方法。在用时域有限差分法进行数值计算时,需要进行大量的数据采集与计算。在这里,采用并行的方法给予实现,提高计算速度。  相似文献   

20.
PVM并行调试环境的现状与技术分析   总被引:1,自引:0,他引:1  
本文通过分析目前并行调试技术的研究和发展,阐述了并行调试环境所应具备的基本功能,并在此基础上探讨了PVM并行调试环境的设计和关键技术。  相似文献   

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

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