Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update HiGHS_jll version #65

Closed
hellemo opened this issue Sep 12, 2021 · 8 comments · Fixed by #69
Closed

Update HiGHS_jll version #65

hellemo opened this issue Sep 12, 2021 · 8 comments · Fixed by #69

Comments

@hellemo
Copy link

hellemo commented Sep 12, 2021

Hi, great work on making HiGHS available with Julia and JuMP!

I just learned about the MIP solver in HiGHS and gave it a try, unfortunately it crashed on my test problem:

334 rows, 228 cols, 996 nonzeros
148 rows, 183 cols, 609 nonzeros
148 rows, 97 cols, 437 nonzeros
148 rows, 97 cols, 437 nonzeros

Solving MIP model with:
   148 rows
   97 cols (88 binary, 0 integer, 0 implied int., 8 continuous)
   437 nonzeros

( 0.0s) Starting symmetry detection
( 0.0s) No symmetry present

Solving root node LP relaxation
corrupted size vs. prev_size

signal (6): Aborted
in expression starting at REPL[13]:1

MPS for the test problem here:
https://gist.github.com/hellemo/7b549f496f7a6ad2803d0e53794c9330

@odow
Copy link
Member

odow commented Sep 12, 2021

How did you run this? I can't reproduce.

julia> using HiGHS_jll

julia> HiGHS_jll.highs() do exe
           run(`$(exe) /Users/oscar/Desktop/grid.mps`)
       end
Running HiGHS 1.0.0 [date: , git hash: ]
Copyright (c) 2021 ERGO-Code under MIT licence terms
Number of BV entries in BOUNDS section is 145
MIP  grid has 429 rows; 240 cols; 1103 nonzeros; 145 integer variables


Presolving model
178 rows, 213 cols, 669 nonzeros
148 rows, 183 cols, 609 nonzeros
148 rows, 97 cols, 437 nonzeros
148 rows, 97 cols, 437 nonzeros

Solving MIP model with:
   148 rows
   97 cols (88 binary, 0 integer, 0 implied int., 9 continuous)
   437 nonzeros

( 0.0s) Starting symmetry detection
( 0.0s) Found 1 generators

Solving root node LP relaxation

        Nodes      |    B&B Tree     |            Objective Bounds              |  Dynamic Constraints |       Work      
     Proc. InQueue |  Leaves   Expl. | BestBound       BestSol              Gap |   Cuts   InLp Confl. | LpIters     Time

         0       0         0   0.00%   -34.8319908     inf                  inf        0      0      0       123     0.0s
 H       0       0         0   0.00%   -33.370549      -31.0353553        7.52%     5811     44    469       761     0.4s
 L       0       0         0   0.00%   -33.370549      -31.0559017        7.45%     5817     44    496       761     0.5s
 L       0       0         0   0.00%   -33.370549      -31.0707107        7.40%     5656     28    500       862     0.5s

Solving report
  Status            Optimal
  Primal bound      -31.0707106781
  Dual bound        -31.0707106781
  Solution status   feasible
                    -31.0707106781 (objective)
                    0 (bound viol.)
                    0 (int. viol.)
                    0 (row viol.)
  Timing            0.70 (total)
                    0.00 (presolve)
                    0.00 (postsolve)
  Nodes             1
  LP iterations     7673 (total)
                    6454 (strong br.)
                    638 (separation)
                    158 (heuristics)
Process(`/Users/oscar/.julia/artifacts/c4849f1d25b1de7712f353e5f1fea57dc665c37a/bin/highs /Users/oscar/Desktop/grid.mps`, ProcessExited(0))

@hellemo
Copy link
Author

hellemo commented Sep 13, 2021

I was running in the same environment where I generated the model with JuMP and HiGHS.jl, using HiGHS_jll version = "0.3.2+0"

Whereas if I just install HiGHS_jll I get version 0.3.3, and can solve the model with the same results as you.

@odow
Copy link
Member

odow commented Sep 13, 2021

Ah, we should update this package then. I guess I forgot to do it.

@hellemo
Copy link
Author

hellemo commented Sep 13, 2021

Great, thanks for updating!

Which branch of JuMP would be the best to test this, I run into version incompatibilities due to the MOI 0.10 requirement?

@odow
Copy link
Member

odow commented Sep 13, 2021

Can you try this PR instead? #67

It should work with JuMP 0.21.

The master branch (and #66) of HiGHS.jl will have version incompatibilities that are a while away from being fixed.

@hellemo
Copy link
Author

hellemo commented Sep 13, 2021

Thanks, this is a step forward, the problem can now be solved, but the solver crashes immediately after solving after this error double free or corruption (!prev) (full log below)


❯ julia --project=.
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.2 (2021-07-14)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> versioninfo()
Julia Version 1.6.2
Commit 1b93d53fc4 (2021-07-14 15:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-8665U CPU @ 1.90GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)
Environment:
  JULIA_COPY_STACKS = 1
  JULIA_NUM_THREADS = 4

(dev-highs) pkg> st
      Status `~/projects/dev-highs/Project.toml`
  [87dc4568] HiGHS v0.2.4 `~/code/HiGHS.jl`
  [4076af6c] JuMP v0.21.10
  [a1760a79] Wordhunt v0.2.0 `~/code/Wordhunt.jl`
  [8fd58aa0] HiGHS_jll v0.3.3+0

julia> using HiGHS, JuMP, HiGHS_jll

julia> m = JuMP.read_from_file("grid4.mps");

julia> set_optimizer(m, HiGHS.Optimizer)

julia> optimize!(m)

Presolving model
334 rows, 228 cols, 996 nonzeros
148 rows, 183 cols, 609 nonzeros
148 rows, 97 cols, 437 nonzeros
148 rows, 97 cols, 437 nonzeros

Solving MIP model with:
   148 rows
   97 cols (88 binary, 0 integer, 0 implied int., 8 continuous)
   437 nonzeros

( 0.0s) Starting symmetry detection
( 0.0s) Found 1 generators

Solving root node LP relaxation

        Nodes      |    B&B Tree     |            Objective Bounds              |  Dynamic Constraints |       Work
     Proc. InQueue |  Leaves   Expl. | BestBound       BestSol              Gap |   Cuts   InLp Confl. | LpIters     Time

         0       0         0   0.00%   -34.8319908     inf                  inf        0      0      0       100     0.0s
 L       0       0         0   0.00%   -33.4446511     -30.0353553       11.35%     3821     45    614       962     0.8s
 L       0       0         0   0.00%   -33.4446511     -31.0559017        7.69%     3498     35    614      1094     0.8s
 B       0       0         0   0.00%   -33.4446511     -31.0707107        7.64%     3500     35    616      1145     1.0s

Solving report
  Status            Optimal
  Primal bound      -31.0707106781
  Dual bound        -31.0707106781
  Solution status   feasible
                    -31.0707106781 (objective)
                    0 (bound viol.)
                    0 (int. viol.)
                    0 (row viol.)
  Timing            1.17 (total)
                    0.01 (presolve)
                    0.00 (postsolve)
  Nodes             1
  LP iterations     6785 (total)
                    5336 (strong br.)
                    862 (separation)
                    183 (heuristics)
double free or corruption (!prev)

signal (6): Aborted
in expression starting at REPL[6]:1

@odow
Copy link
Member

odow commented Sep 13, 2021

Okay. I probably need to change the C API. It's not as simple as just bumping the JLL.

@odow odow changed the title Solver crashes on test problem Update HiGHS_jll version Sep 13, 2021
@hellemo
Copy link
Author

hellemo commented Sep 13, 2021

I see, thanks for looking into it. HiGHS looks very promising :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

2 participants