Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

conp-solutions
Copy link
Contributor

This branch is a proposal for the parallel track of the SMT Comptition 2021 (See issue #399 )

The Dockerfile now

  • also installs MergeSat
  • uses transparent huge pages by default
  • uses the starexec portfolio configuration
  • only uses every 2nd CPU (to not run into hyperthread sharing)
  • does not support the stdin use case anymore
  • can access input from S3

A few related scripts have been adapted as well.

Note

This change is not meant to be (fully) merged, but rather to aid the discussion for SMT comp.

Testing Done

The change has been tested with the following sequence of commands:

# build verbose (to see steps), get the container ID
docker build -f Dockerfile . && STP_CONTAINER=$(docker build -q -f Dockerfile .) && echo "Container: $STP_CONTAINER"

# setup example input
export FILE_DIR=$PWD/tests/query-files/unit_test; export INPUT_FILE=bvsgt.smt2

# run the container with the input file
docker run --rm -i -v $FILE_DIR:$FILE_DIR:ro -e INPUT_FILE=$FILE_DIR/$INPUT_FILE "$STP_CONTAINER"

@msoos
Copy link
Member

msoos commented May 30, 2021

👍

@conp-solutions
Copy link
Contributor Author

conp-solutions commented Jun 11, 2021 via email

@aytey
Copy link
Member

aytey commented Jun 11, 2021

@conp-solutions you're not currently on the STP "team", which means, even if I create a branch on the main STP repo, you won't be able to push to it.

The quickest way for me to resolve this now is just to create a secondary repo and give you push access (as per your second suggestion).

Would you be okay with that for now?

@msoos
Copy link
Member

msoos commented Jun 11, 2021

Actually, I'd propose that we can of course add @conp-solutions to the STP team. Would that be okay with others?

@conp-solutions
Copy link
Contributor Author

conp-solutions commented Jun 11, 2021 via email

@conp-solutions
Copy link
Contributor Author

This is the branch merged on top of the current origin/master. This is what I'd hand in to the competition.

@conp-solutions conp-solutions mentioned this pull request Jun 11, 2021
@TrevorHansen
Copy link
Member

Actually, I'd propose that we can of course add @conp-solutions to the STP team. Would that be okay with others?

Yes! If Norbert would like to.

@conp-solutions
Copy link
Contributor Author

conp-solutions commented Jun 13, 2021 via email

Let's make sure we can test the solver locally via a file specified in
the environment, as well as via a file in S3. Hence, add a script that
can handle both cases and next calls the portfolio solver that is also
used in starexec.

While this case also covers the stdin case, the tooling is currently
broken.

Signed-off-by: Norbert Manthey <[email protected]>
For the starexec use case, we need to copy scripts as well.

Hence, allow to copy scripts into container in general.

Signed-off-by: Norbert Manthey <[email protected]>
Instead of directly starting the STP tool, we use a script that
can handle input from different sources. Furthermore, instead of
just running STP, we run the portfolio variant that is also used
when submitting to startexec.

Signed-off-by: Norbert Manthey <[email protected]>
For the SMT competition, we need to be able to access files from S3.
Hence, add aws tools.

Signed-off-by: Norbert Manthey <[email protected]>
As the portfolio also requires the MergeSat SAT solver, this change
makes it available in the container.

As installing MergeSat is very similar to installing MiniSat, only
place the binary in $PATH. We do not need the other files that would
be installed.

Signed-off-by: Norbert Manthey <[email protected]>
Depending on the used architecture, the underlying hardware reports
SMTs as actual cores. To avoid running solvers on SMT core siblings,
only use every second CPU.

Signed-off-by: Norbert Manthey <[email protected]>
Including Riss in the container for the portfolio is challenging.
Hence, use another configuration of MergeSat instead, which is
known to perform well on unsatisfiable formulas.

Signed-off-by: Norbert Manthey <[email protected]>
Huge pages are known to be beneficial for tools like SAT solvers.
As we do not run other things inside the container, enable them
for all processes.

Signed-off-by: Norbert Manthey <[email protected]>
For the production variant, we do not need debugging output.
Hence, disabled it.

As we might want to debug changes in the future, make re-enabling
the debug output simple.

Signed-off-by: Norbert Manthey <[email protected]>
@msoos
Copy link
Member

msoos commented Jun 13, 2021

Hey! This has not been merged yet. I invited you @conp-solutions to the team. You can accept and then merge :)

@rgov rgov mentioned this pull request Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants