[SCIP] Using GuRoBi as LP solver: error in compilation using make LPS=grb ZIMPL=false

Naga Venkata Chaitanya Gudapati - nagavenkata.gudapati@studio.unibo.it nagavenkata.gudapati at studio.unibo.it
Thu Dec 12 18:24:40 CET 2019


I think I have figured most of what I need to do thanks to all of your very helpful suggestions.

I wanted to solve a couple of examples that come along with SCIP to test the robustness of my installation.

The first example was Queens in scipoptsuite-6.0.2/scip/examples/Queens and "make LPS=grb" was helpful and produced a nice grid.

I then moved onto the bin packing example in /scipoptsuite-6.0.2/scip/examples/Binpacking/ and similarly "make LPS=grb" worked like a charm.

To run the binary, I used "./binpacking -f ../data/u80_00.bp" and I was able to see the log on the screen and optimal solution was found. I created a file scip.set with  "display/lpinfo = TRUE" and the log is more extensive than before.  The starting part of the log looks like this:

        ./binpacking -f ../data/u80_00.bpa
        SCIP version 6.0.2 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Gurobi 8.1.1] [GitHash: e639a0059d]
        Copyright (C) 2002-2019 Konrad-Zuse-Zentrum fuer Informationstechnik Berlin (ZIB)

        External codes:
          Readline 7.0         GNU library for command line editing (gnu.org/s/readline)
          Gurobi 8.1.1         Linear Programming Solver developed by Gurobi Optimization (www.gurobi.com)
          CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (www.coin-or.org/CppAD)
          ZLIB 1.2.8           General purpose compression library by J. Gailly and M. Adler (zlib.net)
          GMP 6.1.2            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)

It says that the LP solver is GuRoBi. So I think it is using GuRoBi to solve the LP problems.

And finally, if I want to create my own model for branch and price, my understanding is that I have to copy the makefile and the modify its contents to include my source code and SCIP's. Is there an easier way to do this?

Thanks a lot for your very kind and helpful comments,
Nag

________________________________________
From: Scip <scip-bounces at zib.de> on behalf of Tobias Achterberg <achterberg at zib.de>
Sent: Wednesday, December 11, 2019 11:23 AM
To: scip at zib.de
Subject: Re: [SCIP] Using GuRoBi as LP solver: error in compilation using make LPS=grb ZIMPL=false

I guess for "make test" you also need to provide the same flags that you used to compile
SCIP, including the "LPS=" flag.

To see which LP solver you are using, I think you could also set the "display/lpinfo"
parameter to TRUE (1). Then, the LP solver should produce log output for the LP solves,
and this is of course specific to the solver. I guess you know how a Gurobi LP log looks
like...

Regards,

Tobias


Am 2019-12-11 um 12:06 schrieb Naga Venkata Chaitanya Gudapati -
nagavenkata.gudapati at studio.unibo.it:
> Thanks for your suggestions.
>
> I tried the CMAKE route and the GuRoBi directories couldn't be found.  I have tried the other suggestion to load the softlinks and I think it worked.
>
> but during compilation of the source code, I got numberous warnings:
>
>                  warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
>                        '-Wno-uninitialized'? [-Wunknown-warning-option]
>
> But I think that is a clang/LLVM issue and not SCIP issues.
>
> At the end of the compilation,
>
>                  ** Build complete.
>                  ** Find your SCIP binary in "/Users/cgudapati/scipoptsuite-6.0.2/scip/bin".
>                  ** Enter "make test" to solve a number of easy instances in order to verify that SCIP runs correctly.
>
> But make test is not working and gives me the following error
>
>                  cd check; \
>                                  bash ./check.sh short bin/scip-6.0.2.darwin.x86_64.gnu.opt.spx2.none default scip-6.0.2.darwin.x86_64.gnu.opt.spx2.none results 3600 2100000000 6144 1 default 10000 \
>                                  false false 6.0.2 spx2 none /tmp false optimize 0 1 false 0 \
>                                  0 0;
>                  ERROR: "bin/scip-6.0.2.darwin.x86_64.gnu.opt.spx2.none" not found.
>                         This is needed by ./check.sh to work. Check your
>                         $PATH variable or install the tool "bin/scip-6.0.2.darwin.x86_64.gnu.opt.spx2.none".
>                  Skipping test since the binary bin/scip-6.0.2.darwin.x86_64.gnu.opt.spx2.none does not exist.
>                  make[1]: *** [test] Error 2
>                  make: *** [test] Error 2
>
> It is probably because soplex is not installed.
>
> When I cd into scipoptsuite-6.0.2/scip/bin/ and run
>
>                          ./scip
>
> I get the folliowing error:
>
>                  SCIP version 6.0.2 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Gurobi 8.1.0] [GitHash: e639a0059d]
>                  Copyright (C) 2002-2019 Konrad-Zuse-Zentrum fuer Informationstechnik Berlin (ZIB)
>
>                  External codes:
>                    Readline EditLine w  GNU library for command line editing (gnu.org/s/readline)
>                    Gurobi 8.1.0         Linear Programming Solver developed by Gurobi Optimization (www.gurobi.com)
>                    CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (www.coin-or.org/CppAD)
>                    ZLIB 1.2.11          General purpose compression library by J. Gailly and M. Adler (zlib.net)
>                    GMP 6.1.2            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
>
>                  user parameter file <scip.set> not found - using default parameters
>
>                  [1]    50704 segmentation fault  ./scip
>
> I have decided to stop fiddling with macOS  and since I have access to a linux server I tried doing the same with make and using the softlinks and it seemed to have worked( I only compiled the SCIP part of the suite and not soplex).
>
> when I run ./scip in my linux machine,
>
>
>                  SCIP version 6.0.2 [precision: 8 byte] [memory: block] [mode: optimized] [LP solver: Gurobi 8.1.1] [GitHash: e639a0059d]
>                  Copyright (C) 2002-2019 Konrad-Zuse-Zentrum fuer Informationstechnik Berlin (ZIB)
>
>                  External codes:
>                    Readline 7.0         GNU library for command line editing (gnu.org/s/readline)
>                    Gurobi 8.1.1         Linear Programming Solver developed by Gurobi Optimization (www.gurobi.com)
>                    CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (www.coin-or.org/CppAD)
>                    ZLIB 1.2.8           General purpose compression library by J. Gailly and M. Adler (zlib.net)
>                    GMP 6.1.2            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
>
>                  user parameter file <scip.set> not found - using default parameters
>
>                  SCIP>
>
> So looks like it is working on the linux machine. I only have a small question now. Since I compiled only SCIP on linux without soplex, when I do this:
>
>          SCIP> read ../instances/adlittle.mps
>          SCIP> optimize
>
> everything seems to work and since Gurobi is loaded as the solver, so I can be confident that GuROBI was used to solve this? and similarly if I run the MIP instances in ug folder, is GuRoBi being  used to solve them?
>
> Thanks a lot for your help,
> Nag
>
>
> ________________________________________
> From: Scip <scip-bounces at zib.de> on behalf of Gerald Gamrath <gamrath at zib.de>
> Sent: Wednesday, December 11, 2019 3:18 AM
> To: Gregor Hendel; scip at zib.de
> Subject: Re: [SCIP] Using GuRoBi as LP solver: error in compilation using make LPS=grb ZIMPL=false
>
> Dear Nag,
>
> on the other hand, if you want to keep using the Makefile, compiling SCIP should not be too hard either, you just need to set the correct links.
> When SCIP asks you for the links, it should print some explanation at the top of the prompt, which also gives some more details about where your links should point to:
>
> * SCIP needs some softlinks to external programs, in particular, LP-solvers.
> * Please insert the paths to the corresponding directories/libraries below.
> * The links will be installed in the 'lib/include' and 'lib/static' directories.
> * For more information and if you experience problems see the INSTALL file.
>
>    -> "grbinc" is the path to the Gurobi "include" directory, e.g., "<Gurobi-path>/include".
>    -> "libgurobi.*" is the path to the Gurobi library, e.g., "<Gurobi-path>/lib/libgurobi.so"
>
> Thus, you set the grbinc link correctly, but the libgurobi.darwin.x86_64.gnu.so link should point directly to the shared library of Gurobi, which should be /Library/gurobi810/mac64/lib/libgurobi81.so in your case.
>
> If you want to update the links you can run "make LPS=grb ZIMPL=false links", which will ask you for new targets.
>
> Best,
> Gerald
>
> Am 11.12.19 um 08:52 schrieb Gregor Hendel:
> Hi Nag,
>
> welcome to the SCIP mailing list.  I recommend you switch to CMake to compile SCIP, if available, which is much easier, especially on non-Linux platforms. Please refer to
>
> https://scip.zib.de/doc-6.0.2/html/CMAKE.php
>
> In your case, the cmake command should be
>
> cmake .. -DGUROBI_DIR=/Library/gurobi810/mac64/ -DLPS=grb
>
> Happy branch-and-pricing,
> Gregor
>
>
>
> Am 11.12.19 um 06:33 schrieb Naga Venkata Chaitanya Gudapati - nagavenkata.gudapati at studio.unibo.it<mailto:nagavenkata.gudapati at studio.unibo.it>:
> Hello Everyone,
>
>
> I had never used SCIP before and I am hoping to use it for branch and price. I had never used CPLEX before and I am mostly familiar with GuROBi (I currently have my "column generation" Framework in GuRoBi) but I am facing lot of issues in trying to compile SCIP using GuRoBi as an LP solver.
>
> I compile using
>
> make LPS=grb ZIMPL=false
>
> I am facing issues at these following areas:
>
>> Enter soft-link target file or directory for "lib/include/grbinc" (return if not needed):
>
> I am not 100% sure where this directory is. I  am currently using this directory for the include
>
>      /Library/gurobi810/mac64/include
>
> and then for the library
>
>> Enter soft-link target file or directory for "lib/shared/libgurobi.darwin.x86_64.gnu.so" (return if not needed):
>
> and I am using this directory
>
> /Library/gurobi810/mac64/lib
>
>
> I think the paths are wrong as it is failing to compile.
>
> This is the error I am getting:
>
> ld: can't map file, errno=22 file '/Users/cgudapati/scipoptsuite-6.0.2/scip/lib/shared/libgurobi.darwin.x86_64.gnu.so'
>
> clang: error:
> linker command failed with exit code 1 (use -v to see invocation)
>
> build failed with READLINE=true: if readline is not available, try building with READLINE=false
>
> build failed with ZLIB=true: if ZLIB is not available, try building with ZLIB=false
>
> build failed with GMP=true: if GMP is not available, try building with GMP=false (note that this will deactivate Zimpl support)
>
> make[3]: *** [bin/scip-6.0.2.darwin.x86_64.gnu.opt.grb.none] Error 1
>
> make[2]: *** [all] Error 2
>
> make[1]: *** [scipbinary] Error 2
>
> make: *** [scipbinary] Error 2
>
>
>
> I understand the error and SCIP is telling me that it cannot find the .so library and neither can I.  I realize that GuRoBi support is still in Beta but any help is appreciated.
>
>
> Thanks,
>
> Nag
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de<mailto:Scip at zib.de>
> https://listserv.zib.de/mailman/listinfo/scip
>
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de<mailto:Scip at zib.de>
> https://listserv.zib.de/mailman/listinfo/scip
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>
_______________________________________________
Scip mailing list
Scip at zib.de
https://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list