SAT Competition 2017

Submission Instructions

All the tracks except for the Parallel and Incremental Library Track will be run on the StarExec-cluster. The solvers will be executed with a time limit of 5000 seconds and memory limit of 24GB. The StarExec system will be also used for submitting the solvers (expect for the Parallel and Incremental Library tracks that use e-mail submission).

Usage of StarExec

Getting an acount

  1. Register for an account in the SAT community (unless you are already registered).
  2. Wait until one of the SAT community leaders (Marijn Heule and Tomas Balyo) approves your request (should not take more than 24h).

Uploading a solver for testing

  1. The solver is submitted by uploading its source code and a build script. The solvers are then compiled by StarExec.
  2. The uploaded file must have a special format (see the StarExec User Guide for details, here is an example with minisat). Please follow the required directory structure precisely otherwise StarExec will not be able to compile and run your solver.
  3. Login to StarExec and click Spaces->Explore (on the top) then on the left open root->SAT->Sat2016Testing
  4. At the bottom of page click "upload solver" to open the upload dialog.
  5. Click "Browse" and select the zip file with your solvers code, enter the solver name, change downloadable to "no" (otherwise everyone can see you source code) and click "upload".

Testing your solver

We put a few testing instances in the Sat2016Testing space which you can use if you uploaded your solver to this space. To run a test:

  1. Go to the root->SAT->Sat2016Testing space.
  2. Click "create job" on the bottom of the page. This opens a page where you don't need to change anything so just click "next"
  3. On the next page select the "choose" option and then "all in Sat2016Testing"
  4. A page with all solvers (and their configurations) comes up, select the solver you want to run and click "submit" at the bottom of the page.
  5. You can check out the status and results of your test job by clicking on Jobs on the top and selecting your job.

Outputing proofs in the Main Track

The proof for UNSAT instances must be written in a file called proof.out and placed in the folder which your start script gets as the second parameter ($2). Thefore your starexec_run_default should contain something like

./solver $1 --proof-file=$2/proof.out

Note, that the answer line ("s SATISFIABLE" and "s UNSATISFIABLE") and the solution in case of a satisfiable instance (lines starting with "v") must still go to stdout (not into "proof.out").

Uploading the final version of your solver

The submission of the final version of a solver is essentially the same as uploading the solver for testing (see above). To submit the final version of your solver upload it to the space root->SAT->SatComp17->[track], where [track] is one of Agile, Main, NoLimit and RandomSat, depending on the track you want to participate in (Glucose hacks should be uploaded to the Main Track space) . If you want to participate in several tracks upload your solver to each one of them separately.

Don't forget to select "downloadable:no" when uploading your solver to prevent other participants from seeing your source code before the start of the competition. After the solver submission deadline we will ask all the participants to update the downloadable option to "downloadable:yes". This will make the source code visible to the organizers and all the participants. The participants must comply with this request in order to participate in the competition (except for the No Limits Track).

For the Parallel Track and the Incremental Library Track the source codes are submitted by email to the organizers.

Emailing your System Description Document and Benchmarks to the organizers

After you have submitted the final version of your solver send an email to the organizers ( containing your system description document and 20 benchmark problems (see General Rules for more information).