-
Notifications
You must be signed in to change notification settings - Fork 553
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
[SCIP, SCIP_PaPILO] use bliss_jll and enable boost #6054
Conversation
apart from the minor comment from @fingolfin looks good to me, thanks! |
8fc2206
to
0466ae6
Compare
@@ -17,9 +18,15 @@ script = raw""" | |||
# remove when CMake accounts for this | |||
if [[ "${target}" == *86*-linux-gnu ]]; then | |||
export LDFLAGS="-lrt" | |||
elif [[ "${target}" == *-mingw* ]]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
was this tested on windows? So far I've never managed to have the windows binaries work
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without this change the linker would complain that it can't find bliss. I did not test it on Windows but I can give it a try in a VM later today.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is optional of course, but if it resolves the problem that would be fantastic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't seem to change anything, I get the same crashes on Windows (without any meaningful backtrace) when using the current SCIP_jll and with my new binaries.
@benlorenz it seems it didn't suffice to get the windows build working, there is still a segfault somewhere :/ |
Yes, that is what I observed as well and posted further up: #6054 (comment) I did a little bit of experiments with different configurations and some debugging, the crash seems to happen in the constructor for |
ping @leoneifler in case if you've an idea about the thread local option? |
The thread_local issue also disappears with gcc 12, but this is probably more related to the bundled binutils version which is version 2.38 for gcc 12. With gcc 11 (binutils 2.36) we get errors like this: The disassembly for the crashing code looks similar to what was happening here: Another option to fix this crash is to make I did a few further experiments, that other weird infinite loop in for( i = 0; i < heurdata->nneighborhoods; ++i )
1080: 83 c7 01 add $0x1,%edi
1083: 48 83 c5 08 add $0x8,%rbp
1087: 41 39 bc 24 d8 00 00 cmp %edi,0xd8(%r12)
108e: 00
108f: 0f 8f 9f fe ff ff jg f34 <heurInitAlns+0x84>
1095: eb fe jmp 1095 <heurInitAlns+0x1e5>
1097: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
109e: 00 00 (Note that jmp to 1095 in line 1095 ...) So in summary, building with
At some point this discussion should probably be continued in the SCIP.jl repo. Also I don't really have time to continue this debugging any further now but I hope this helps someone who knows more about the internals of scip & soplex. Some tests with julia 1.8.4 on 64 bit Windows:julia> using SCIP
julia> using Test
julia> @static if VERSION >= v"1.7"
import LinearAlgebra, OpenBLAS32_jll
LinearAlgebra.BLAS.lbt_forward(OpenBLAS32_jll.libopenblas_path)
end
4860
julia> include("test/MOI_nonlinear_exprs.jl");
Test Summary: | Pass Total Time
linear expressions | 6 6 37.4s
Test Summary: | Pass Total Time
pot pourri | 18 18 9.5s
Test Summary: |Time
add nonlinear constraint after solve | None 1.8s
julia> include("test/direct_library_calls.jl");
Test Summary: | Pass Total Time
create small problem and solve | 18 18 4.3s
Test Summary: | Pass Total Time
SCIP_CALL macro (@SCIP_CALL) | 3 3 1.1s
julia> include("test/scip_data.jl");
Test Summary: | Pass Total Time
create and manual free | 2 2 2.6s
Test Summary: | Pass Total Time
create, add var and cons, and manual free | 2 2 0.9s
Test Summary: | Pass Total Time
create and semi-manual free | 2 2 0.2s
Test Summary: | Pass Total Time
create with vars and cons, and free | 22 22 0.1s
Test Summary: | Pass Total Time
create vars and cons, delete some, and free | 10 10 0.0s
Test Summary: | Pass Total Time
print statistics | 51 51 35.7s
julia> include("test/sepa_support.jl");
julia> include("test/sepa.jl");
Test Summary: | Pass Total Time
DummySepa (no separation) | 1 1 5.0s
Test Summary: | Pass Total Time
AddSingleCut (cut off one optimal solution) | 5 5 4.0s
Test Summary: | Pass Total Time
AddSingleCut (cut off another optimal solution) | 5 5 0.4s
Test Summary: | Pass Total Time
AddSingleCut (too strong cut) | 5 5 0.2s
julia> include("test/cutcallback.jl");
Test Summary: | Pass Total Time
obtaining the LP-solution | 5 5 2.3s
Test Summary: | Pass Total Time
cutting one optimal solution | 6 6 1.8s
Test Summary: | Pass Total Time
cutting another optimal solution | 6 6 0.5s Other things not so much: julia> include("test/MOI_wrapper_direct.jl")
Assertion failed: coef != 0.0, file /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip/expr.c, line 3425
Thread 1 hit Breakpoint 1, 0x00007ffc2ba520b7 in msvcrt!abort () from C:\Windows\System32\msvcrt.dll
=> 0x00007ffc2ba520b7 <msvcrt!abort+7>: e8 f0 b7 ff ff call 0x7ffc2ba4d8ac <msvcrt!__fpecode+28>
(gdb) bt
#0 0x00007ffc2ba520b7 in msvcrt!abort () from C:\Windows\System32\msvcrt.dll
#1 0x00007ffc2ba4e9ed in msvcrt!_assert () from C:\Windows\System32\msvcrt.dll
#2 0x0000000005f26014 in SCIPexprCheckQuadratic (set=0x252ab1d92a0, blkmem=0x2529dd89220, expr=expr@entry=0x252ac712190, isquadratic=<optimized out>,
isquadratic@entry=0x6b649f9b60) at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip/expr.c:3425
#3 0x00000000060bb677 in SCIPcheckExprQuadratic (scip=0x2529dbc5d40, expr=0x252ac712190, isquadratic=0x6b649f9b60)
at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip/scip_expr.c:2360
#4 0x00000252ea6b3c35 in SCIPcheckExprQuadratic () at C:\Users\User\.julia\dev\SCIP\src/LibSCIP.jl:3822
#5 macro expansion () at C:\Users\User\.julia\dev\SCIP\src/wrapper.jl:11
#6 julia_get_2679 (o=..., ci=...) at C:\Users\User\.julia\dev\SCIP\src\MOI_wrapper\quadratic_constraints.jl:56
#7 0x000002529e5422c9 in macro expansion () at C:\msys64\home\User\julia2\usr\share\julia\stdlib\v1.8\Test\src/Test.jl:464 or: julia> include("test/conshdlr_support.jl");
julia> include("test/conshdlr.jl");
Test Summary: | Pass Total Time
dummy conshdlr (always satisfied, no constraint) | 3 3 1.6s
Test Summary: | Pass Total Time
dummy conshdlr (always satisfied, with constraint) | 3 3 0.7s
Test Summary: | Pass Total Time
dummy conshdlr (always satisfied, no constraint, but needs it) | 3 3 0.0s
Test Summary: | Pass Total Time
never satisfied conshdlr (does not need constraint) | 3 3 1.0s
Test Summary: | Pass Total Time
never satisfied conshdlr (needs constraint but does not have it) | 3 3 0.0s
Assertion failed: divecandvars != NULL, file /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip/heur_farkasdiving.c, line 143
signal (22): SIGABRT
in expression starting at C:\Users\User\.julia\dev\SCIP\test\conshdlr.jl:105
crt_sig_handler at C:/msys64/home/User/julia2/src\signals-win.c:93
raise at C:\Windows\System32\msvcrt.dll (unknown line)
abort at C:\Windows\System32\msvcrt.dll (unknown line)
assert at C:\Windows\System32\msvcrt.dll (unknown line)
checkDivingCandidates at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\heur_farkasdiving.c:143
checkGlobalProperties at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\heur_farkasdiving.c:267 [inlined]
heurExecFarkasdiving at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\heur_farkasdiving.c:401
SCIPheurExec at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\heur.c:1312
SCIPprimalHeuristics at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\solve.c:363
solveNode at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\solve.c:4226 [inlined]
SCIPsolveCIP at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\solve.c:4993
SCIPsolve at /workspace/srcdir/scipoptsuite-8.0.3/scip/src/scip\scip_solve.c:2780
SCIPsolve at C:\Users\User\.julia\dev\SCIP\src\LibSCIP.jl:6566
unknown function (ip: 00000172a97c828d)
jl_apply at C:/msys64/home/User/julia2/src\julia.h:1843 [inlined] |
I bumped the patch-level from 300 to 301 to be able to add a compat entry for this version in polymake_jll.
This uses
FindBLISS.cmake
from the scip repo which does not do any version checks but this should not be necessary here.I ran the testsuite for SCIP.jl on linux with locally built binaries and checked that I can now compile polymake_jll with the scip and soplex interfaces active.
cc: @matbesancon
fixes: #5651