A Hybrid Parallel Execution Model for Logic Based Requirement Specifications (Invited Paper)

It is well known that undiscovered errors in a requirements specification is extremely expensive to be fixed when discovered in the software maintenance phase. Errors in the requirement phase can be reduced through the validation and verification of the requirements specification. Many logic-based requirements specification languages have been developed to achieve these goals. However, the execution and reasoning of a logic-based requirements specification can be very slow. An effective way to improve their performance is to execute and reason the logic-based requirements specification in parallel. In this paper, we present a hybrid model to facilitate the parallel execution of a logic-based requirements specification language. A logic-based specification is first applied by a data dependency analysis technique which can find all the mode combinations that exist within a specification clause. This mode information is used to support a novel hybrid parallel execution model, which combines both top-down and bottom-up evaluation strategies. This new execution model can find the failure in the deepest node of the search tree at the early stage of the evaluation, thus this new execution model can reduce the total number of nodes searched in the tree, the total processes needed to be generated, and the total communication channels needed in the search process. A simulator has been implemented to analyze the execution behavior of the new model. Experiments show significant improvement based on several criteria.

[1]  Saumya K. Debray,et al.  Automatic Mode Inference for Logic Programs , 1988, J. Log. Program..

[2]  David H. D. Warren,et al.  The SRI Model for Or-Parallel Execution of Prolog: Abstract Design and Implementation Issues , 1987, SLP.

[3]  Hung-Chin Jang,et al.  A Hybrid Knowledge Representation as a Basis of Requirement Specification and Specification Analysis , 1992, IEEE Trans. Software Eng..

[4]  Philippe Codognet,et al.  Non-deterministic Stream AND-Parallelism Based on Intelligent Backtracking , 1989, ICLP.

[5]  Saumya K. Debray Flow Analysis of Dynamic Logic Programs , 1989, J. Log. Program..

[6]  Kish Shen,et al.  Exploiting Dependent And-Parallelism in Prolog: The Dynamic Dependent And-Parallel Scheme (DDAS) , 1992, JICSLP.

[7]  Bart Demoen,et al.  Abstract Interpretation: Towards the Global Optimization of Prolog Programs , 1987, SLP.

[8]  Maurice Bruynooghe Adding Redundancy to Obtain more Reliable and Readable Prolog Programs , 1982, ICLP.

[9]  Kevin Steer Testing Data Flow Diagrams with PARLOG , 1988, ICLP/SLP.

[10]  Philippe Robert,et al.  The PEPSys Model: Combining Backtracking, AND- and OR-Parallelism , 1987, SLP.

[11]  Seif Haridi,et al.  OR-Parallel Prolog Made Efficient on Shared Memory Multiprocessors , 1987, SLP.

[12]  Uday S. Reddy,et al.  Transformation of Logic Programs into Functional Programs , 1984, SLP.

[13]  Dean Jacobs,et al.  Compilation of Logic Programs for Restricted And-Parallelism , 1988, ESOP.

[14]  Ehud Shapiro,et al.  A subset of Concurrent Prolog and its interpreter , 1988 .

[15]  Chuan-lin Wu,et al.  A Parallel Execution Model of Logic Programs , 1991, IEEE Trans. Parallel Distributed Syst..

[16]  Heikki Mannila,et al.  Flow Analysis of Prolog Programs , 1987, SLP.

[17]  Peter Borgwardt,et al.  Distributed Semi-intelligent Backtracking for a Stack-based AND-parallel Prolog , 1986, SLP.

[18]  Manuel V. Hermenegildo,et al.  An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs , 1986, ICLP.

[19]  Gilberto Filé,et al.  Yet Another Intelligent Backtracking Method , 1988, ICLP/SLP.

[20]  Vipin Kumar,et al.  An Intelligent Backtracking Scheme for Prolog , 1987, SLP.

[21]  Doug DeGroot,et al.  AND-Parallelism of Logic Programs Based on a Static Data Dependency Analysis , 1985, COMPCON.

[22]  Rong Yang,et al.  IDIOM: Integrating Dependent And-, Independent And-, and Or-parallelism , 1991, ISLP.

[23]  Doug DeGroot Alternate Graph Expressions for Restricted AND-Parallelism , 1985, COMPCON.

[24]  Alain J. Martin,et al.  The Sync Model: A Parallel Execution Method for Logic Programming , 1986, SLP.

[25]  Thomas Weigert,et al.  A Logic-Based Transformation System , 1998, IEEE Trans. Knowl. Data Eng..

[26]  Gary Lindstrom,et al.  A Performance-Oriented Design for OR-Parallel Logic Programming , 1987, ICLP.

[27]  Saumya K. Debray Static Analysis of Parallel Logic Programs , 1988, ICLP/SLP.

[28]  Alvin M. Despain,et al.  Semi-Intelligent Backtracking of Prolog Based on Static Data Dependency Analysis , 1985, SLP.

[29]  Saumya K. Debray,et al.  Global Flow Analysis as a Practical Compilation Tool , 1992, J. Log. Program..

[30]  Gert Smolka Making control and data flow in logic programs explicit , 1984, LFP '84.

[31]  Doug DeGroot Restricted and parallel execution of logic programs , 1988 .

[32]  Jan Maluszynski,et al.  AND-Parallelism with Intelligent Backtracking for Annotated Logic Programs , 1985, SLP.

[33]  Chris Mellish,et al.  Some Global Optimizations for a Prolog Compiler , 1985, J. Log. Program..

[34]  Alan Liu,et al.  Knowledge-Based Software Architectures: Acquisition, Specification, and Verification , 1999, IEEE Trans. Knowl. Data Eng..

[35]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..