Skip to content

Commit

Permalink
international sat competition 2024 version
Browse files Browse the repository at this point in the history
  • Loading branch information
S-Mazigh committed Oct 3, 2024
1 parent 0b0d205 commit ad6b719
Show file tree
Hide file tree
Showing 2,712 changed files with 512,506 additions and 2,354 deletions.
105 changes: 103 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,105 @@
*.o
*.cnf
*.log
parameters.sh
outputs
inputs
painless-mcomsps
mapleCOMSPS/build/
mapleCOMSPS/m4ri-20140914/
painless
docs/
doxygen/html
doxygen/latex
doxygen/markdowns
.html
.pdf
*.uri
get_sat22_inputs.sh
.vscode/
*.gdb
*.output
*.swp
*.a
*.cpp_old
*.h_old
*.ignore
*.o
hostfile
openMPI
*.out
*.pb.*

libs/m4ri-20140914/Makefile
libs/m4ri-20140914/config.status
libs/m4ri-20140914/libm4ri.la
libs/m4ri-20140914/libtool
libs/m4ri-20140914/m4ri/m4ri_config.h
libs/m4ri-20140914/autom4te.cache
libs/m4ri-20140914/configure~
libs/m4ri-20140914/m4ri/config.h.in~
libs/m4ri-20200125/Makefile
libs/m4ri-20200125/Makefile.in
libs/m4ri-20200125/aclocal.m4
libs/m4ri-20200125/autom4te.cache/
libs/m4ri-20200125/bench/Makefile
libs/m4ri-20200125/bench/Makefile.in
libs/m4ri-20200125/compile
libs/m4ri-20200125/config.guess
libs/m4ri-20200125/config.sub
libs/m4ri-20200125/configure
libs/m4ri-20200125/depcomp
libs/m4ri-20200125/install-sh
libs/m4ri-20200125/ltmain.sh
libs/m4ri-20200125/m4/libtool.m4
libs/m4ri-20200125/m4/ltoptions.m4
libs/m4ri-20200125/m4/ltsugar.m4
libs/m4ri-20200125/m4/ltversion.m4
libs/m4ri-20200125/m4/lt~obsolete.m4
libs/m4ri-20200125/m4ri.pc
libs/m4ri-20200125/m4ri/brilliantrussian.lo
libs/m4ri-20200125/m4ri/config.h
libs/m4ri-20200125/m4ri/config.h.in
libs/m4ri-20200125/m4ri/debug_dump.lo
libs/m4ri-20200125/m4ri/djb.lo
libs/m4ri-20200125/m4ri/echelonform.lo
libs/m4ri-20200125/m4ri/graycode.lo
libs/m4ri-20200125/m4ri/io.lo
libs/m4ri-20200125/m4ri/m4ri_config.h
libs/m4ri-20200125/m4ri/misc.lo
libs/m4ri-20200125/m4ri/mmc.lo
libs/m4ri-20200125/m4ri/mp.lo
libs/m4ri-20200125/m4ri/mzd.lo
libs/m4ri-20200125/m4ri/mzp.lo
libs/m4ri-20200125/m4ri/ple.lo
libs/m4ri-20200125/m4ri/ple_russian.lo
libs/m4ri-20200125/m4ri/solve.lo
libs/m4ri-20200125/m4ri/stamp-h1
libs/m4ri-20200125/m4ri/strassen.lo
libs/m4ri-20200125/m4ri/triangular.lo
libs/m4ri-20200125/m4ri/triangular_russian.lo
libs/m4ri-20200125/missing
libs/m4ri-20200125/test-driver
libs/m4ri-20200125/tests/Makefile
libs/m4ri-20200125/tests/Makefile.in
libs/m4ri-20200125/tests/.*
libs/m4ri-20200125/.libs
libs/m4ri-20200125/bench/.deps
libs/m4ri-20200125/m4ri/.deps
libs/m4ri-20200125/m4ri/.dirstamp

solvers/kissat_mab/build/
solvers/kissat_mab/makefile
solvers/GASPIKISSAT/build/
solvers/GASPIKISSAT/makefile
solvers/yalsat/cflags.h
solvers/yalsat/config.h
solvers/yalsat/makefile
solvers/yalsat/yalsat

solvers/mapleCOMSPS/build

*.csv

build/
*.la
config.status
libtool
50 changes: 35 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,28 +1,48 @@
all:
##################################################
### MapleCOMSPS ###
### m4ri ###
##################################################
if [ -d mapleCOMSPS/m4ri-20140914 ]; then : ; \
else cd mapleCOMSPS && tar zxvf m4ri-20140914.tar.gz && \
cd m4ri-20140914 && ./configure; fi
+ $(MAKE) -C mapleCOMSPS/m4ri-20140914
+ $(MAKE) -C mapleCOMSPS
cd libs/m4ri-20200125 && autoreconf --install && ./configure --enable-thread-safe
+ $(MAKE) -C libs/m4ri-20200125

##################################################
### kissat_mab ###
##################################################
cd solvers/kissat_mab && bash ./configure --compact
+ $(MAKE) -C solvers/kissat_mab

##################################################
### PaInleSS ###
### GASPIKISSAT ###
##################################################
+ $(MAKE) -C painless-src
mv painless-src/painless painless-mcomsps
cd solvers/GASPIKISSAT && bash ./configure --compact --quiet
+ $(MAKE) -C solvers/GASPIKISSAT

##################################################
### yalsat ###
##################################################
cd solvers/yalsat && bash ./configure.sh
+ $(MAKE) -C solvers/yalsat

clean:
##################################################
### MapleCOMSPS ###
### MapleCOMSPS ###
##################################################
rm -rf mapleCOMSPS/m4ri-20140914
+ $(MAKE) -C mapleCOMSPS clean
+ $(MAKE) -C solvers/mapleCOMSPS r


##################################################
### PaInleSS ###
##################################################
+ $(MAKE) -C painless-src
mv painless-src/painless painless

clean:
##################################################
### PaInleSS ###
### Clean ###
##################################################
+ $(MAKE) clean -C solvers/kissat_mab -f makefile.in
rm -rf solvers/kissat_mab/build
+ $(MAKE) clean -C solvers/GASPIKISSAT -f makefile.in
rm -rf solvers/GASPIKISSAT/build
+ $(MAKE) -C solvers/mapleCOMSPS clean
+ $(MAKE) clean -C painless-src
rm -f painless-mcomsps
rm -f painless
96 changes: 72 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,93 @@
##### PaInleSS: A Framework for Parallel SAT Solving #####
Painless: a Framework for Parallel SAT Solving
==============================================

Authors: Ludovic LE FRIOUX, Vincent VALLADE, Souheib Baarir
* Souheib BAARIR (souheib.baarir@lip6.fr)
* Mazigh SAOUDI (mazigh.saoudi@epita.fr)

Contacts: Souheib.baarir@lip6.fr

===== Content =====

- painless-src:
Content
-------
* painless-src/:
Contains the code of the framework.
- clauses:
* clauses/:
Contains the code to manage shared clauses.
- working:
* working/:
Code links to the worker organization.
- sharing:
* sharing/:
Code links to the learnt clause sharing management.
- solvers:
* solvers/:
Contains wrapper for the sequential solvers.
- utils:
* utils/:
Contains code for clauses management. But also useful data structures.
* preprocessors/:
Contains the imported preprocessings of [PRS](https://github.com/shaowei-cai-group/PRS-sc23/tree/PRS-sc23) and [SBVA](https://github.com/hgarrereyn/SBVA).

- mapleCOMSPS:
Contains the code of MapleCOMSPS from the SAT Competition 17 with some little
changes.
* solvers/:
* mapleCOMSPS/:
Contains the code of MapleCOMSPS from the SAT Competition 17 with some little changes.

* kissat_mab/:
Contains the code of kissat_mab.

* yalsat/:
Contains the code of [yalsat](https://github.com/arminbiere/yalsat).

===== To compile the project =====
* GASPIKISSAT/:
Contains the code of [GaspiKissat](https://github.com/sabrinesaouli/GASPIKISSAT).

- In the painless-mcomsps home directory use 'make' to compile.
To compile the project
----------------------
* Must install an MPI implementation, painless was tested with [OpenMpi](https://www.open-mpi.org/).
* Requires [Protobuf](https://protobuf.dev/) to be installed with its compiler and--('') shared library.

- In the painless-mcomsps home directory use 'make clean' to clean.
* In the main directory use 'make' to compile the code.

* In the main directory use 'make clean' to clean.

===== To run the solvers =====
<!--
To run painless
---------------
- All options have a default value except for the filename.
```sh
nb_cpu=6 # the number of sequential solvers to instantiate
nb_nodes=3 # the number of mpi processes to launch
timeout=1000 # the timeout before giving up (in seconds)
strat=1 # 1 2 3 4 for strategies with Hordesat, 5 for Simple. 0 is the default. It is to randomize the strategy pick, can be useful with -dist.
verbose=0 # for the logs (1 for general logs) (2 for detailed logs)
gstrat=1 # 1 for AllGatherSharing, 2 for MallobSharing, and 3 for RingSharing
filename=./inputs_example/f/f2000.cnf #path to a cnf file
```
- Modes:
``` sh
-str "one thread in charge of strengthening learnt clauses per sharing group"
- P-MCOMSPS-AI :
./painless-mcomsps -c=#cpus -shr-strat=2 -shr-sleep=1500000 -lbd-limit=2 dimacs_filename
-dup "remove/promote duplicate clauses in local sharing strategy, not available in StrengtheningSharing"
- P-MCOMSPS-L2:
./painless-mcomsps -c=#cpus -shr-strat=1 -shr-sleep=500000 -lbd-limit=2 dimacs_filename
-dist "enable distributed mode"
- P-MCOMSPS-L4:
./painless-mcomsps -c=#cpus -shr-strat=1 -shr-sleep=500000 -lbd-limit=4 dimacs_filename
-one-sharer "use one sharer for all sharing strategies"
To use these solvers with strengthening add -strength flag and -c must be >= 2.
-simp "enable some preprocessings before launching the solvers"
```
* painless with kissat:
```sh
./painless -v=$verbose -c=$nb_cpu -solver="k" -t=$timeout -shr-strat=$strat $filename
```
* painless with maple:
```sh
./painless -v=$verbose -c=$nb_cpu -t=$timeout -shr-strat=$strat $filename
```
* painless-kissat with mpi each node in a separate terminal:
```sh
mpirun -n $nb_nodes xterm -hold -e ./painless -c=$nb_cpu -solver="k" -t=$timeout -v=$verbose -shr-strat=$strat -gshr-start=$gstrat -dist $filename
```
* The script `scripts/launch.sh` can be used to launch a certain instance described by `parameters.sh` on multiple forumale:
```sh
./scripts/launch.sh ./file_with_paths_to_instances
```
* The file `./file_with_paths_to_instances` can be generated using the `ls` command, for example:
```sh
ls $PWD/inputs_example/f/* > instances_f.txt
```
-->
Loading

0 comments on commit ad6b719

Please sign in to comment.