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

Parallel CBC Bug #109

Closed
svigerske opened this issue Mar 3, 2019 · 1 comment
Closed

Parallel CBC Bug #109

svigerske opened this issue Mar 3, 2019 · 1 comment
Labels
bug Something isn't working

Comments

@svigerske
Copy link
Member

Issue created by migration from Trac.

Original creator: @h-g-s

Original creation time: 2011-03-04 16:33:43

Version: 2.7

Keywords: parallel cbc bug

I found this bug in previous versions of CBC but only now I had time to properly discover how to replicate it.

It occurs when CBC runs in parallel and creates many nodes in the search tree.

Versions compiled with "-O2 -g" are more likely to show this bug earlier in the search tree (could not replicate with -O0 -g).

To replicate it I suggest to run cbc in problem markshare1, from miplib2003.

To speed up node creation, I used this command line:
cbc markshare1.mps dualS preprocess=off cuts=off heur=off passF=0 threads=6 strong=0 trust=0 log=3 solve

Follows the message printed while running cbc in gdb:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff493f700 (LWP 7875)]
doNodesThread (voidInfo=) at CbcThread.cpp:1088
1088 assert (node->nodeInfo());
(gdb) backtrace
#0 doNodesThread (voidInfo=) at CbcThread.cpp:1088
#1 0x00007ffff75e29ca in start_thread (arg=) at pthread_create.c:300
#2 0x00007ffff522770d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#3 0x0000000000000000 in ?? ()
(gdb)
#0 doNodesThread (voidInfo=) at CbcThread.cpp:1088
#1 0x00007ffff75e29ca in start_thread (arg=) at pthread_create.c:300
#2 0x00007ffff522770d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#3 0x0000000000000000 in ?? ()

@svigerske svigerske added bug Something isn't working major labels Mar 3, 2019
@svigerske
Copy link
Member Author

With the current Cbc/master, it looks ok.
I skipped log=3 and stopped it after 1 million nodes.

Welcome to the CBC MILP Solver 
Version: Trunk (unstable) 
Build Date: Mar 12 2019 
Revision Number: 2526 

command line - ./bin/cbc ../Data/miplib3/markshare1.gz dualS preprocess=off cuts=off heur=off passF=0 threads=6 strong=0 trust=0 solve (default strategy 1)
At line 1 NAME
At line 2 ROWS
At line 10 COLUMNS
At line 175 RHS
At line 179 BOUNDS
At line 236 ENDATA
Problem no_name has 6 rows, 62 columns and 312 elements
Coin0008I no_name read with 0 errors
Presolve 6 (0) rows, 56 (-6) columns and 306 (-6) elements
Perturbing problem by 0.001% of 985.03756 - largest nonzero change 9.2705254e-05 ( 9.411342e-06%) - largest zero change 9.2556055e-05
0  Obj 0 Primal inf 74.738366 (6)
15  Obj 0.00010623273
Optimal - objective value 0
After Postsolve, objective 0, infeasibilities - dual 0 (0), primal 0 (0)
Optimal objective 0 - 15 iterations time 0.002, Presolve 0.00
Option for preprocess changed from sos to off
Option for cutsOnOff changed from on to off
Option for heuristicsOnOff changed from on to off
passFeasibilityPump was changed from 30 to 0
threads was changed from 0 to 6
strongBranching was changed from 5 to 0
trustPseudoCosts was changed from 10 to 0
Continuous objective value is 0 - 0.00 seconds
Cbc0010I After 0 nodes, 1 on tree, 1e+50 best solution, best possible 0 (0.00 seconds)
...
Cbc0010I After 10335000 nodes, 242115 on tree, 3 best solution, best possible 0 (1484.65 seconds)
^CCbc0030I Thread 0 used 1916970 times,  waiting to start 259.98317,  8662265 locks, 35.93001 locked, 149.11161 waiting for locks
Cbc0030I Thread 1 used 1815416 times,  waiting to start 277.10129,  8203067 locks, 33.381135 locked, 147.50624 waiting for locks
Cbc0030I Thread 2 used 1734364 times,  waiting to start 296.44853,  7837429 locks, 31.860247 locked, 142.07316 waiting for locks
Cbc0030I Thread 3 used 1672307 times,  waiting to start 313.40363,  7557874 locks, 30.395593 locked, 135.84538 waiting for locks
Cbc0030I Thread 4 used 1637737 times,  waiting to start 326.2292,  7403171 locks, 29.58309 locked, 127.48674 waiting for locks
Cbc0030I Thread 5 used 1559040 times,  waiting to start 350.55113,  7047033 locks, 28.067659 locked, 114.86135 waiting for locks
Cbc0030I Main thread 391.11167 waiting for threads,  20692362 locks, 104.50769 locked, 128.09617 waiting for locks
Cbc0027I Exiting on user event
Cbc0005I Partial search - best objective 3 (best possible 0), took 34583454 iterations and 10335829 nodes (1485.63 seconds)
Cbc0035I Maximum depth 46, 6332020 variables fixed on reduced cost
Cuts at root node changed objective from 0 to 0

Result - User ctrl-cuser ctrl-c

Objective value:                3.00000000
Lower bound:                    0.000
Gap:                            inf
Enumerated nodes:               10335829
Total iterations:               34583454
Time (CPU seconds):             1485.63
Time (Wallclock seconds):       760.92

Total time (CPU seconds):       1485.63   (Wallclock seconds):       760.92

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant