A Framework for Building Parallel ATPs. James Cook University. Automated Theorem Proving (ATP) systems attempt to prove proposed theorems from given

Similar documents
director executor user program user program signal, breakpoint function call communication channel client library directing server

T H. Runable. Request. Priority Inversion. Exit. Runable. Request. Reply. For T L. For T. Reply. Exit. Request. Runable. Exit. Runable. Reply.

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

Seungjae Han, Harold A. Rosenberg, and Kang G. Shin. Department of Electrical Engineering and Computer Science. The University of Michigan

TUM{INFO{06-I /1.{FI Alle Rechte vorbehalten Nachdruck auch auszugsweise verboten c1997 SFB 342 Methoden und Werkzeuge fur die Nutzung parallel

Adaptive Methods for Distributed Video Presentation. Oregon Graduate Institute of Science and Technology. fcrispin, scen, walpole,

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

On the Use of Multicast Delivery to Provide. a Scalable and Interactive Video-on-Demand Service. Kevin C. Almeroth. Mostafa H.

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

tee is to design a new TCP/IP API which matches the requirements of embedded systems. RTOS Automotive Application Technical Committee With current pra

Internet-based Desktops in Tcl/Tk: Collaborative and Recordable

Compiler and Runtime Support for Programming in Adaptive. Parallel Environments 1. Guy Edjlali, Gagan Agrawal, and Joel Saltz

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

N1 N2 N3 The narratives and slides are specified as a parallel-last

Shared File Directory

TEMPORAL TABLEAUX. United Kingdom. ABSTRACT

RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH. Computer Science Department and Institute. University of Maryland

Multimedia Systems Design. Klara Nahrstedt. University of Illinois. curriculum because digital audio/video information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

In this paper, we present the results of a comparative empirical study of two safe RTS techniques. The two techniques we studied have been implemented

PARALLEL EXECUTION OF HASH JOINS IN PARALLEL DATABASES. Hui-I Hsiao, Ming-Syan Chen and Philip S. Yu. Electrical Engineering Department.

Operating Systems Overview. Chapter 2

A Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster

Cluster quality 15. Running time 0.7. Distance between estimated and true means Running time [s]

Wei Shu and Min-You Wu. Abstract. partitioning patterns, and communication optimization to achieve a speedup.

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety

Periodic Thread A. Deadline Handling Thread. Periodic Thread B. Periodic Thread C. Rate Change. Deadline Notification Port

information is saved on a history stack, and Reverse, which runs back through a previous conservative execution and undoes its eect. We extend Forth's

CUMULVS: Collaborative Infrastructure for Developing. Abstract. by allowing them to dynamically attach to, view, and \steer" a running simulation.

JOHN GUSTAF HOLM. B.S.E., University of Michigan, 1989 THESIS. Submitted in partial fulllment of the requirements.

A study of dynamic optimization techniques : lessons and directions in kernel design

DPS: A Distributed Program Simulator and Performance. Measurement Tool. The Pennsylvania State University. The Graduate School

GET <URL1> GET <URL2>

Building FPGA Communications Projects with LabVIEW

warped: A Time Warp Simulation Kernel for Analysis and Application Development Dale E. Martin, Timothy J. McBrayer, and Philip A.

Submitted for TAU97 Abstract Many attempts have been made to combine some form of retiming with combinational

Networks. Wu-chang Fengy Dilip D. Kandlurz Debanjan Sahaz Kang G. Shiny. Ann Arbor, MI Yorktown Heights, NY 10598

Operating System Protection for Fine-Grained Programs

100 Mbps DEC FDDI Gigaswitch

SOFTWARE VERIFICATION RESEARCH CENTRE DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF QUEENSLAND. Queensland 4072 Australia TECHNICAL REPORT

CHAPTER 4 AN INTEGRATED APPROACH OF PERFORMANCE PREDICTION ON NETWORKS OF WORKSTATIONS. Xiaodong Zhang and Yongsheng Song

Hardware Implementation of GA.

Operating System. Operating System Overview. Layers of Computer System. Operating System Objectives. Services Provided by the Operating System

Operating System Overview. Operating System

Adam Donlin, University of Edinburgh, James Clerk Maxwell Building, Mayeld Road, Edinburgh EH9 3JZ. Scotland

task object task queue

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science

EMERALD: Event Monitoring Enabling Responses. to Anomalous Live Disturbances y. Phillip A. Porras and Peter G. Neumann

cell rate bandwidth exploited by ABR and UBR CBR and VBR time

System-Level Specication of Instruction Sets. Department of Electrical and Computer Engineering. Department of Computer Science

Abstract. A survey of concurrent object-oriented languages is presented. a variety of relationships between threads and objects, an Interaction

UNIT V SYSTEM SOFTWARE TOOLS

Dynamics of an Explicit Rate Allocation. Algorithm for Available Bit-Rate (ABR) Service in ATM Networks. Lampros Kalampoukas, Anujan Varma.

Language-Based Parallel Program Interaction: The Breezy Approach. Darryl I. Brown Allen D. Malony. Bernd Mohr. University of Oregon

2 c LNCS To appear in PLILP'98 all le modication times in order to incrementally rebuild a system would clearly be lengthy, tedious and error-prone. S

Kevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a

Analysis and Transformation in an. Interactive Parallel Programming Tool.

Projected node. Pruned node. h h + 1

March 6, 2000 Applications that process and/or transfer Continuous Media (audio and video) streams become

December 28, Abstract. In this report we describe our eorts to parallelize the VGRIDSG unstructured surface

Marthon User Guide. Page 1 Copyright The Marathon developers. All rights reserved.

Conclusions and Future Work. We introduce a new method for dealing with the shortage of quality benchmark circuits

Worker-Checker A Framework for Run-time. National Tsing Hua University. Hsinchu, Taiwan 300, R.O.C.

under Timing Constraints David Filo David Ku Claudionor N. Coelho, Jr. Giovanni De Micheli


1 Introduction The demand on the performance of memory subsystems is rapidly increasing with the advances in microprocessor architecture. The growing

Center for Supercomputing Research and Development. were identied as time-consuming: The process of creating

more complex. Since there are many avors of PI, I'll begin by making a precise denition of simple priority inheritance (SPI) and then consider enhance

Mailspike. Henrique Aparício

Optimistic Implementation of. Bulk Data Transfer Protocols. John B. Carter. Willy Zwaenepoel. Rice University. Houston, Texas.

Figure 1: The evaluation window. ab a b \a.b (\.y)((\.)(\.)) Epressions with nested abstractions such as \.(\y.(\.w)) can be abbreviated as \y.w. v al

\Classical" RSVP and IP over ATM. Steven Berson. April 10, Abstract

The Totem System. L. E. Moser, P. M. Melliar-Smith, D. A. Agarwal, R. K. Budhia, C. A. Lingley-Papadopoulos, T. P. Archambault

imc STUDIO measurement data analysis visualization automation Integrated software for the entire testing process imc productive testing

Monitoring Script. Event Recognizer

Application. CoCheck Overlay Library. MPE Library Checkpointing Library. OS Library. Operating System

The members of the Committee approve the thesis of Baosheng Cai defended on March David B. Whalley Professor Directing Thesis Xin Yuan Commit

Logged Virtual Memory. David R. Cheriton and Kenneth J. Duda. Computer Science Department. Stanford University. Stanford, CA 94305

BasicScript 2.25 User s Guide. May 29, 1996

GNATDIST : a conguration language for. distributed Ada 95 applications. Yvon Kermarrec and Laurent Nana. Departement Informatique

Ecube Planar adaptive Turn model (west-first non-minimal)

PtTcl: Using Tcl with Pthreads

Performance Study of a Multithreaded Superscalar Microprocessor Buckeye Drive University of California at Irvine

Research on outlier intrusion detection technologybased on data mining

SEED User Requirements (Draft)

Netsim: A Network Performance Simulator. University of Richmond. Abstract

An FPGA-based Target Acquisition System

times the performance of a high-end microprocessor introduced in 1984 [3]. 1 Such rapid growth in microprocessor performance has stimulated the develo

describes a multimedia document retrieval system that will be used as a \proof-of-concept" vehicle for PO/PR service. This section includes an overvie

Exploring the Performance Impact of. QoS Support in TCP/IP Protocol Stacks. Robert Engely, Dilip Kandlury, Ashish Mehraz, and Debanjan Sahay.

Internet Performance and Reliability Measurements

A New Theory of Deadlock-Free Adaptive. Routing in Wormhole Networks. Jose Duato. Abstract

First Order Logic in Practice 1 First Order Logic in Practice John Harrison University of Cambridge Background: int

BSDM. David Robertson. John Fraser y. Christine Lissoni z. techniques can be used to build domain specic knowledge into such a tool

DSP Development Environment: Introductory Exercise for TI TMS320C55x

A Study of Query Execution Strategies. for Client-Server Database Systems. Department of Computer Science and UMIACS. University of Maryland

BPEL Workflow Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012] Oracle Part Number E

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.

Transcription:

A Framework for Building Parallel ATPs Geo Sutclie and Kalvinder Singh James Cook University 1 Introduction Automated Theorem Proving (ATP) systems attempt to prove proposed theorems from given sets of axioms. The one major problem with ATP systems is that proving dicult theorems requires searching extremely large search spaces. This makes the use of ATP systems impractical in most situations, due to the too high resource requirements. Parallel ATP systems, such as ROO, PARROT, HPDS, METEOR, RCTHEO, and SPTHEO, have tackled this problem by harnessing more computing power and using proof-search strategies that have no obvious corresponding sequential strategies. Parallel ATP systems are successful in that they are often many times more eective (in terms of resource requirements) than sequential ATP systems. Most parallel ATP systems show good to very good processor utilization, when compared to other parallel and distributed applications. Parallel ATP systems are often based on existing sequential ATP systems. For example, ROO is based on OTTER, and SPTHEO is based on SETHEO. This approach allows the sophistication of the underlying sequential ATP systems to be inherited by the parallel ATP systems. The underlying sequential ATP systems have inevitably been designed and written to run on workstations, and the corresponding parallel ATP systems are designed to (or are capable of) run on networks of such workstations. Further, some parallel ATP systems, e.g. RCTHEO, have been explicitly designed to run on networks of workstations. These types of parallel ATP systems exploit a coarse-grain approach to parallelism. A primary benet of this parallelization strategy is the ready availability of the 'parallel hardware'. Considering that parallel ATP systems improve the ecacy of theorem proving and that coarse grained parallel hardware is readily available in the form of workstation networks, parallel ATP systems are not as widely developed and used as they could be. This is presumably because parallel ATP systems are signicantly harder to design, implement, and use. At the design level, an appropriate (in senses such as completeness, fairness, etc) parallel ATP algorithm has to be developed, which in itself is a dicult task. Issues of intercomponent communication and synchronization have to be addressed. It can be the case that the design will be the work of a logician (as opposed to a computer scientist) who does not have the requisite skills to translate the design into a operational parallel ATP system. At the implementation level, the implementor often has to cope with low level communication primitives. Such primitives may or may not work harmoniously with the implementation language. The implementation will often capture the system conguration in code, and reconguration requires signicant eort. As a result experimentation with dierent designs is limited. At the user level, it is hard to monitor and interact with the execution of a parallel ATP system. A technical reason for this is that the component processes often do not have user I/O streams. A more human reason is that parallel ATP systems are often designed and implemented by computer scientists for computer scientists, and the user interface is cryptic. The need is for a framework within which parallel ATP system designs can easily be translated into working systems. The framework must allow existing sequential ATP systems to 1

be combined with little or no modication. Interprocess communication and synchronization must be simple, and implemented in terms of well known programming constructs. The framework must provide an easy to use interface to allow the user (who may be only semicomputer literate) to monitor and control all aspects of the parallel system. The X-windows Parallel ATP (XPATP) framework meets these requirements. XPATP is a graphical user interface for building parallel ATP systems out of component sequential ATP systems, to run on networks of machines connected on the InterNet. This particular type of Parallel ATP system is called a PATP system, and the component sequential ATP systems are called PATP components. Intercomponent communication and synchronization is implemented in terms of the standard input and output streams of each PATP component, so that this facet is easily codable in the PATP components. The user interacts with XPATP using a point-and-click mouse interface, so very little keyboard interaction is required. The interface makes it easy to specify the PATP system's architecture, in terms of the PATP components and the required communication links. The user is able to monitor and control the execution of the PATP system in terms of the PATP components and the communication links. 2 The Basics Figure 1: An Example XPATP Window 2

The execution of XPATP will cause a window to appear on the screen. Figure 1 shows a sample window. The window hastwo sections, the menu bar and the work area. The menu bar has ve menus and a display area. Their uses are described in Sections 3 and 5. The work area is used to display the conguration of the PATP system. Each PATP component is represented by an ATP frame, in which the component name and host machine name are given. Each ATP frame also has two menus, one for controlling the execution of the component and one that lists the output ports of that component. Each output port can be attached to multiple simplex communication links that lead to other PATP components. Any data or control messages written to an output port are placed onto all the associated communication links. The communication links are represented in the work area by link lines between the corresponding ATP frames. Link lines have arrow heads indicating the direction of ow, and are broken by link frames. Each link frames contains the name of the output port from which the communication link receives messages, and a menu for controlling the communication link. 3 Conguration The available PATP components and host machines are specied by the user, in conguration les. The XPATPComponents le lists the available PATP components, using the syntax <ATP Name>:<Command>:<Output port name>,:::,<output port name>. For example, otter_hyper:~geoff\atpsystems\otter <%s.hyper_in:demodulators otter_ur:~geoff\atpsystems\otter <%s.ur_in:urresolvants,demodulators setheo:~geoff\atpsystems\setheo %s:lemmas The <ATP Name> eld contains the name of the PATP component. The <Command> eld is the command line instruction that invokes the PATP component. This eld can contain %s parts. Before the command line is executed, each occurrence of a %s is replaced by the user specied string (typically the name of the input le containing the theorem to be proved) in the menu display area. The <Output port name> eld lists the output ports of that PATP component. The XPATPMachines le lists the names of the machines that XPATP can use, using the syntax <Machine Name>:<InterNet Name>. For example, coral:coral.cs.jcu.edu.au daydream:daydream.cs.jcu.edu.au sailfish:sailfish.jcu.edu.au Conguration of a PATP system is done interactively using the menus and the work area. Initially the work area is empty. PATP components are selected from the ATP menu, which lists the PATP components given in the XPATPComponents le. The selection of a PATP component from the menu causes a movable ATP frame to appear in the work area. The frame's Machine menu button is used to select what machine the component is to execute on. The Machine menu lists the machines given in the XPATPMachines le. A communication link between two PATP components is formed by selecting an output port from the Ports menu of the source component's ATP frame, and dragging to the destination component's ATP frame. The Ports menu lists the output ports specied for that PATP component in the XPATPComponents le. The File menu contains options to save and load congurations, allowing congured PATP systems to be reused. 3

4 Execution of a PATP System To specify the theorem to be attempted by a congured PATP system, the display areain the menu bar needs to contain a value. This value is used to replace %s parts of the command lines supplied in the XPATPComponents le. The value may be obtained using the TPTP menu, which allows the user to browse the TPTP Problem Library (if available, which it should be!) for a theorem to attempt. Otherwise, the display area can be entered manually. When all is ready, the PATP system is executed by selecting the Start option in the Process Control menu. This causes all the PATP components to be executed on the specied machines, by executing the specied command lines (after replacement of %s parts). The PATP components execute as normal, with the exception of their standard output. XPATP lters the stdout streams of the PATP components for lines with the formats :::<Port>:<Message> and :::<Port>!<Message>. Such output lines are used to implement intercomponent communication and synchronization. Data messages, of the form :::<Port>:<Message>, are copied onto all the communication links connected to the <Port>. Control messages, of the form :::<Port>!<Message>, are intercepted and interpreted by XPATP. The possible values for <Message> in control messages are start, kill, suspend, resume, and interrupt(n). The eect of these messages on the recipient components is described in Section 5. As well as the output ports listed in the XPATPComponents le, there are two special <Port> values, all and self, which can be used by an XPATP component. If the <Port> value is all then the <Message> is destined for all output ports of the PATP component. If the <Port> value is self then the <Message> is destined for the sending PATP component itself. Any standard output lines that are not ltered out are put in a stdout window for that ATP frame, as described in Section 6. 5 System Control As indicated in Section 4, overall control of a PATP system is exercised through the Process Control menu. The process control options are Start, Stop, Suspend, Resume, Interrupt(N), View, and Remove. These menu options are duplicated at the individual component level in the Control menus of the ATP frames, and are also used in intercomponent control messages as described in Section 4. The eects of the process control options are: Start: Start the PATP components(s), on the specied machine(s), by executing the command line specied. Stop: Stop the PATP components(s). This kills the ATP component'(s') process(es). Suspend: Suspend the PATP components(s). If a component is already suspended then this has no eect. Resume: Resume execution of the suspended PATP components(s). If a component is not suspended then this has no eect. Interrupt(N): Send interrupt number N to the PATP components(s). The Stop option is implemented in terms of this option, with N = 9. View: Creates a display window(s) containing the genuine standard output from the PATP component(s). Remove: Removes the PATP component(s) from the PATP system. Any communication links attached to the PATP component(s) are also removed. 4

In combination with the special <Port> values, control messages facilitate neat control of PATP components. For example, if one PATP component needs to synchronize with another, it can send a suspend control message to itself, and the second PATP component sends a resume message when it is ready. Overall control of the communication links is exercised through the Communication Control menu. The communication control options are Clear, Suspend, Resume, View, and Remove. These menu options are duplicated at the individual link level in the Control menus of the link frames. The eects of the control options are: Clear: Remove all messages from the communication link(s). Suspend: Stop placing messages on the communication link(s). Messages written to the output port(s) are buered. Resume: Resume placing messages on the communication link(s). Any buered messages are placed on the communication link(s) rst. View: Creates a display window(s) containing messages on the communication link(s). Remove: Removes the communication link(s) from the PATP system. Any messages on the communication link(s) are discarded. 6 System Monitoring All genuine standard output from PATP components and all intercomponent messages can be monitored in separate display windows. Genuine standard output from PATP components is viewed in scrollable stdout windows. Intercomponent messages are viewed in scrollable message windows. All windows are accessed through the View option in the Control menus of the ATP frames and link frames, or from the main Process Control and Communication Control menus. Control of display windows is exercised through the option bar at the top of the window. The options are Quit, Pause, Add, and Delete. The eects of the control options are: Pause: Stops the display of any new output. To resume the display of output click on the pause option again. Add: Add a user specied message to the communication link. This option only appears in message windows. Delete: Remove an indicated message from the communication link. This option only appears in message windows. Quit: Removes the window from the screen. 7 Conclusion XPATP is being implemented in tcl/tk. Tcl/tk is a simple scripting language which is freely distributed from a number of sites around the world. The language is specically designed to build user interfaces. XPATP fully utilises the facilities of tcl/tk, to make an easy to use interface for designing and implementing PATP systems. 5