thomasmatzke / qpar Goto Github PK
View Code? Open in Web Editor NEWParallel QBF Solving
Parallel QBF Solving
QPar - Distributed QBF-Solving CAUTION: THIS CODE IS CURRENTLY (again) UNDER HEAVY DEVELOPMENT. COMMITS MAY NOT EXECUTE AT ALL. Description QPar is a system for the distributed computation of quantified boolean formulas (qbf) to multiple machines. QPar was initially designed to receive a qbf in boole-format and distribute it to remote multicore hosts for satisfiability-checking with qpro (http://big.tuwien.ac.at/staff/seidl/qpro/). It can however be easily expanded to use other solvers and branching heuristics. Quickstart: 1. Master Setup Choose a control-host, which is reachable from all slave-hosts 1.1 Edit a batch-file, like "batch.txt" 1.2 1.2 Start the master daemon ./qpar_master.sh -i=PATH_TO_MY_BATCH_FILE [-log={debug|info}] Its waiting for the slaves to register now 2. Slave Setup 2.1 Connect to the waiting master ./qpar_slave.sh tcp://MASTERS_IP_ADDRESS:61616 [-log={debugg|info}] 3. Result The result should be in your specified file, together with some stats GUI The master can be started with the "-gui" option. The gui gives some basic functionality as starting, stopping and creation of jobs. There is also an overview of registered slaves. Interactive Shell & Batch files Batch files specified by the "-i"- parameter use the same interpreter as the interactive shell. The interactive shell is started by default, if no "-gui" or "-i" parameter was given. Available commands include (case insensitive): NEWJOB path_to_formula path_to_outputfile solverid heuristic Creates a new job. STARTJOB Starts the job with the specified id. ABORTJOB jobid Aborts the job with the specified id. VIEWJOBS Shows a list of Jobs. KILLSLAVE hostname Kills the slavedaemon on the specified host. VIEWSLAVES Shows a list of registered slaves. WAITFORSLAVE number_of_cores solverid Halts execution until at least the specified number of cores providing the solver are registered. KILLALLSLAVES Kills the slavedaemon on all registered hosts. HELP Show a help message. QUIT Terminates the masterdaemon. SOURCE path_to_file Sources a specified file (batchfile) WAITFORRESULT jobid Pauses execution until a result for the specified job is available Testing For testing purposes, there are already a couple of formulas in boole format available in the "testing/boole" directory. For convenience, these are accompanied by three shell scripts, described below. The scripts require the tools "boole2qpro" in "testing" as well as "qpro" somewhere in $PATH (both tools are available at http://big.tuwien.ac.at/staff/seidl/qpro/dl.html). The scripts are quite straightforward and can be easily adapted to future versions of QPar, supporting more in- and output formats. The scripts are: * convert_boole_to_qpro.sh This script takes the .qbf formulas in boole format from the testing/boole" directory and converts them to formulas in the qpro input format. After conversion, they are stored in the qpro directory. The filenames are changed accordingly (e.g.: a_formula.qbf -> a_formula.qpro). * solve_qpro.sh This script takes every formula from the "testing/qpro" directory and runs them through qpro. Results are printed on stdout. * createbatch_boole.sh This script creates a batchfile for all formulas in "testing/boole" which will place result files in "testing" (e.g. testing/boole/formula.qbf -> testing/formula.out). The script prints to stdout as well, so redirecting the output to a file may be necessary.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.