0

I want to install the SCIP solver in version 7.0.2 on my Ubuntu Linux 20.04 machine to use in Pyomos SolverFactory following the instructions in this manual.

But when I use make I get the following error:

crd@crd-laptop:~/Downloads$ cd scipoptsuite-7.0.2/
crd@crd-laptop:~/Downloads/scipoptsuite-7.0.2$ make
make[1]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2“ wird betreten
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/static".
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/include".
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/include/zimplinc".
** Creating directory "/home/cord/Downloads/scipoptsuite-7.0.2/scip/lib/include/".

** Building SoPlex library "/home/cord/Downloads/scipoptsuite-7.0.2/soplex/lib/libsoplex.linux.x86_64.gnu.opt.a".
make[2]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird betreten
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird betreten
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird verlassen
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird betreten
-> compiling obj/O.linux.x86_64.gnu.opt/lib/soplex/clufactor_rational.o
In file included from src/soplex/clufactor_rational.cpp:18:
src/soplex/spxdefines.h:46:10: fatal error: boost/multiprecision/number.hpp: Datei oder Verzeichnis nicht gefunden
   46 | #include "boost/multiprecision/number.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:503: obj/O.linux.x86_64.gnu.opt/lib/soplex/clufactor_rational.o] Fehler 1
make[3]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird verlassen
make[2]: *** [Makefile:375: makelibfile] Fehler 2
make[2]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2/soplex“ wird verlassen
make[1]: *** [Makefile.doit:187: /home/cord/Downloads/scipoptsuite-7.0.2/soplex/lib/libsoplex.linux.x86_64.gnu.opt.a] Fehler 2
make[1]: Verzeichnis „/home/cord/Downloads/scipoptsuite-7.0.2“ wird verlassen
make: *** [Makefile:85: scipbinary] Fehler 2

Using it on my Windows machine with the AMPL bindings worked perfectly but I got stuck here.

Any hints?

Thanks in advance!

Cord Kaldemeyer
  • 6,405
  • 8
  • 51
  • 81

2 Answers2

2

I could now solve the problem on my own using your hints! The trick was to compile using the flags BOOST=false and ZIMPL=false and now it works like a charm with pyomo's SolverFactory.

These are the commands that worked for me (output is surpressed):

user@machine:~/Downloads$ $ sudo apt install g++ zlib1g-dev bison flex libgmp-dev libreadline-dev libncurses5-dev
user@machine:~/Downloads$ tar xzf scipoptsuite-7.0.2.tgz 
user@machine:~/Downloads$ cd scipoptsuite-7.0.2/
user@machine:~/Downloads/scipoptsuite-7.0.2$ make BOOST=false ZIMPL=false
user@machine:~/Downloads/scipoptsuite-7.0.2$ cd scip/interfaces/ampl/
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ ./get.ASL
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ cd solvers/
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl/solvers$ sh configurehere
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl/solvers$ make
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl/solvers$ cd ..
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ make 
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ cd ..
user@machine:~/Downloads/scipoptsuite-7.0.2/scip/interfaces$ sudo cp ampl/bin/scipampl /usr/local/bin/

Within pyomo, the solver interface can be set to the nl format if not detected automatically using solver_io='nl'.

Thanks @Leon for pointing me in the right direction!

Edit: If libboost-all-dev is installed via apt install it also works with BOOST=true.

Cord Kaldemeyer
  • 6,405
  • 8
  • 51
  • 81
  • Sorry for not replying sooner. Maybe a bit of clarification: The issue you had with `ZIMPL` is probably a missing GMP library. `Boost` is only used within SoPlex but is not relevant if you just want to use SoPlex within SCIP. – Leon Mar 21 '21 at 22:48
  • Thanks. This leads away from the initial question, but: is the setup I chose for the compilation the fastest one to solve LP/MIPs? – Cord Kaldemeyer Mar 22 '21 at 06:42
1

did you try rebuilding with make BOOST=false?

Leon
  • 1,588
  • 1
  • 7
  • 16
  • 1
    This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - [From Review](/review/low-quality-posts/28577369) – Jin Lee Mar 21 '21 at 02:37
  • Hi Leon! Thanks a lot for your answer which seemed to work for building `scip` and `ampl` as described in the abovementioned manual. But now I get an error when copying the executable using `crd@crd-laptop:~/Downloads/scipoptsuite-7.0.2/scip/interfaces/ampl$ sudo cp bin/scipampl /usr/local/bin/` which says that no executable `scipampl` can be found in the folder `bin`. Am I missing something? – Cord Kaldemeyer Mar 21 '21 at 09:52
  • Here's a gist of the inputs and outputs: https://gist.github.com/ckaldemeyer/ae94be95597939ac6284661bf66bde21 – Cord Kaldemeyer Mar 21 '21 at 09:59
  • I have now tried again using `BOOST=false` in all `make` commands and updated my gist. Now I get an error: `reader_zpl.c:(.text+0x3228): undefined reference to `numb_todbl'` – Cord Kaldemeyer Mar 21 '21 at 18:43
  • Thanks for your hints :) – Cord Kaldemeyer Mar 21 '21 at 19:59
  • @JinLee This does provide an answer to the question ;) – Leon Mar 21 '21 at 22:50