[Cbc] memory leaks in time-constrained parallel cbc-based solver

Pietro Belotti petr.7b6 at gmail.com
Sat Nov 8 06:56:24 EST 2014


Hello. I am using libCbc to build a convex MINLP solver for a specific
application. The solver is based on Cbc's branch-and-bound and a cut
separator. I have an incomplete problem at every node, since the
linear cuts are a relaxation of a nonlinear (convex) constraint. This
is done through

  OsiBabSolver solverChar;
  solverChar. setSolverType (3);
  dsbb. solver () -> setAuxiliaryInfo (&solverChar);

When configuring with --enable-cbc-parallel, I can run this program in
parallel, but two problems occur:

1) if a time or node limit is given, there are memory leaks at the end
(see the two attachments valg-out2-200nodes.txt and
valg-out2-10s.txt), but no leak happens when reaching optimalitiy (see
valg-out2.txt); most of these seem to be cuts added through addCuts()
at CbcNodeInfo.cpp:354. I have removed non-Cbc output from these
files.

2) The parallel version seems to use more memory than the single-CPU
version at a given time. A back-to-back solve shows that the parallel
version uses 2x the memory of the sequential one even when they are
exploring the same number of nodes; memory occupation is the same
until the BB starts.

It should be emphasized that this solver generates a large number of
cuts, and for some instances after 500,000 nodes it is killed after
using the 240GB memory limit. I could not replicate this with the
console version of parallel cbc with time/node limit on a MILP, so I
suspect I might be doing something wrong. Has anything like this
happened in the past?

Thanks,
Pietro
-------------- next part --------------
==30042== Memcheck, a memory error detector
==30042== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==30042== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==30042== Command: dsOpt ../inst/sim80_in-dos.txt -t 10 -j 4
==30042== 
Cbc0012I Integer solution of -316.54 found by Round+Explore after 0 iterations and 0 nodes (0.23 seconds)
Cbc0012I Integer solution of -330.53 found by Round+Explore after 45 iterations and 0 nodes (2.62 seconds)
Cbc0031I 5 added rows had average density of 80
Cbc0013I At root node, 5 cuts changed objective from -373.27838 to -353.95324 in 9 passes
Cbc0014I Cut generator 0 (ConiCuts) - 8 row cuts average 80.0 elements, 0 column cuts (5 active)
Cbc0014I Cut generator 1 (Probing) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.396 seconds - new frequency is -100
Cbc0014I Cut generator 3 (KnapsackCover) - 4 row cuts average 15.5 elements, 0 column cuts (0 active)  in 0.376 seconds - new frequency is 1
Cbc0014I Cut generator 5 (Clique) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.072 seconds - new frequency is -100
Cbc0014I Cut generator 6 (MixedIntegerRounding2) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.192 seconds - new frequency is -100
Cbc0014I Cut generator 7 (FlowCover) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.036 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, -330.53 best solution, best possible -353.95324 (3.30 seconds)
Cbc0030I Thread 0 used 13 times,  waiting to start 2.4582493,  100 locks, 0.099166632 locked, 0.00057411194 waiting for locks
Cbc0030I Thread 1 used 13 times,  waiting to start 1.8120663,  103 locks, 0.035176992 locked, 0.00061488152 waiting for locks
Cbc0030I Thread 2 used 15 times,  waiting to start 3.8408585,  126 locks, 0.034774303 locked, 0.00078487396 waiting for locks
Cbc0030I Thread 3 used 12 times,  waiting to start 4.9325213,  92 locks, 0.027747393 locked, 0.00053143501 waiting for locks
Cbc0030I Main thread 35.754411 waiting for threads,  118 locks, 0.03478837 locked, 0.0013306141 waiting for locks
Cbc0020I Exiting on maximum time
Cbc0005I Partial search - best objective -338.6 (best possible -352.62667), took 521 iterations and 50 nodes (41.05 seconds)
Cbc0032I Strong branching done 502 times (1757 iterations), fathomed 0 nodes and fixed 1 variables
Cbc0035I Maximum depth 10, 0 variables fixed on reduced cost
==30042== 
==30042== HEAP SUMMARY:
==30042==     in use at exit: 23,320 bytes in 154 blocks
==30042==   total heap usage: 604,418 allocs, 604,264 frees, 1,280,524,775 bytes allocated
==30042== 
==30042== 40 bytes in 1 blocks are indirectly lost in loss record 1 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x80C80A: OsiClpSolverInterface::getWarmStart() const (OsiClpSolverInterface.cpp:1637)
==30042==    by 0x4BF28B: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:75)
==30042==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 40 bytes in 1 blocks are indirectly lost in loss record 2 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x487D8B: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:344)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 48 bytes in 1 blocks are indirectly lost in loss record 3 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x8043EF: CoinWarmStartBasis::CoinWarmStartBasis(CoinWarmStartBasis const&) (CoinWarmStartBasis.cpp:103)
==30042==    by 0x80C822: OsiClpSolverInterface::getWarmStart() const (OsiClpSolverInterface.cpp:1637)
==30042==    by 0x4BF28B: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:75)
==30042==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 104 bytes in 1 blocks are indirectly lost in loss record 4 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x476A2B: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 128 bytes in 7 blocks are indirectly lost in loss record 5 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x487D8B: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:344)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 208 bytes in 2 blocks are indirectly lost in loss record 6 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x46B304: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15593)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 272 bytes in 2 blocks are indirectly lost in loss record 7 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x487E2F: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 352 bytes in 4 blocks are indirectly lost in loss record 8 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x48A6B1: CbcSimpleInteger::createCbcBranch(OsiSolverInterface*, OsiBranchingInformation const*, int) (CbcSimpleInteger.cpp:175)
==30042==    by 0x4780DF: CbcNode::chooseBranch(CbcModel*, CbcNode*, int) (CbcNode.cpp:782)
==30042==    by 0x464156: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:13854)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 408 bytes in 18 blocks are indirectly lost in loss record 9 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x48919D: CbcPartialNodeInfo::CbcPartialNodeInfo(CbcNodeInfo*, CbcNode*, int, int const*, double const*, CoinWarmStartDiff const*) (CbcPartialNodeInfo.cpp:70)
==30042==    by 0x477033: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 432 bytes in 18 blocks are indirectly lost in loss record 10 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x806CDA: CoinWarmStartBasisDiff::clone() const (CoinWarmStartBasis.hpp:400)
==30042==    by 0x489161: CbcPartialNodeInfo::CbcPartialNodeInfo(CbcNodeInfo*, CbcNode*, int, int const*, double const*, CoinWarmStartDiff const*) (CbcPartialNodeInfo.cpp:63)
==30042==    by 0x477033: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 504 bytes in 18 blocks are indirectly lost in loss record 11 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x4A3F0E: unsigned int* CoinCopyOfArray<unsigned int>(unsigned int const*, int) (CoinHelperFunctions.hpp:186)
==30042==    by 0x8066DE: CoinWarmStartBasisDiff::CoinWarmStartBasisDiff(CoinWarmStartBasisDiff const&) (CoinWarmStartBasis.cpp:717)
==30042==    by 0x806CEC: CoinWarmStartBasisDiff::clone() const (CoinWarmStartBasis.hpp:400)
==30042==    by 0x489161: CbcPartialNodeInfo::CbcPartialNodeInfo(CbcNodeInfo*, CbcNode*, int, int const*, double const*, CoinWarmStartDiff const*) (CbcPartialNodeInfo.cpp:63)
==30042==    by 0x477033: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 640 bytes in 1 blocks are indirectly lost in loss record 12 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x4BF1A7: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:64)
==30042==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 640 bytes in 1 blocks are indirectly lost in loss record 13 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x4BF1C3: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:65)
==30042==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 640 bytes in 2 blocks are indirectly lost in loss record 14 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x7CFC39: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:341)
==30042==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==30042==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==30042==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==30042==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==30042==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 640 bytes in 2 blocks are indirectly lost in loss record 15 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x7CFC59: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:342)
==30042==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==30042==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==30042==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==30042==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==30042==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 1,280 bytes in 2 blocks are indirectly lost in loss record 16 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x7CFC79: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:343)
==30042==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==30042==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==30042==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==30042==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==30042==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==30042==    by 0x40540A: main (dsMain.cpp:262)
==30042== 
==30042== 1,496 bytes in 11 blocks are indirectly lost in loss record 17 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x487E2F: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 1,788 (8 direct, 1,780 indirect) bytes in 1 blocks are definitely lost in loss record 18 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x487D8B: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:344)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 1,872 bytes in 18 blocks are indirectly lost in loss record 19 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x476FFA: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==30042==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 3,272 bytes in 13 blocks are indirectly lost in loss record 20 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x7CFC39: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:341)
==30042==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==30042==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==30042==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==30042==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==30042==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 3,272 bytes in 13 blocks are indirectly lost in loss record 21 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x7CFC59: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:342)
==30042==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==30042==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==30042==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==30042==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==30042==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 6,544 bytes in 13 blocks are indirectly lost in loss record 22 of 24
==30042==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x7CFC79: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:343)
==30042==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==30042==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==30042==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==30042==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==30042==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 7,108 (272 direct, 6,836 indirect) bytes in 2 blocks are definitely lost in loss record 23 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x487E2F: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==30042==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==30042==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== 14,424 (208 direct, 14,216 indirect) bytes in 2 blocks are definitely lost in loss record 24 of 24
==30042==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30042==    by 0x46B304: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15593)
==30042==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==30042==    by 0x5358E99: start_thread (pthread_create.c:308)
==30042==    by 0x629B31C: clone (clone.S:112)
==30042== 
==30042== LEAK SUMMARY:
==30042==    definitely lost: 488 bytes in 5 blocks
==30042==    indirectly lost: 22,832 bytes in 149 blocks
==30042==      possibly lost: 0 bytes in 0 blocks
==30042==    still reachable: 0 bytes in 0 blocks
==30042==         suppressed: 0 bytes in 0 blocks
==30042== 
==30042== For counts of detected and suppressed errors, rerun with: -v
==30042== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 2 from 2)
-------------- next part --------------
==29205== Memcheck, a memory error detector
==29205== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==29205== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==29205== Command: dsOpt ../inst/sim80_in-dos.txt -n 200 -j 4
==29205== 
Cbc0012I Integer solution of -316.54 found by Round+Explore after 0 iterations and 0 nodes (0.23 seconds)
Cbc0012I Integer solution of -330.53 found by Round+Explore after 45 iterations and 0 nodes (2.58 seconds)
Cbc0031I 5 added rows had average density of 80
Cbc0013I At root node, 5 cuts changed objective from -373.27838 to -353.95324 in 9 passes
Cbc0014I Cut generator 0 (ConiCuts) - 8 row cuts average 80.0 elements, 0 column cuts (5 active)
Cbc0014I Cut generator 1 (Probing) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.392 seconds - new frequency is -100
Cbc0014I Cut generator 3 (KnapsackCover) - 4 row cuts average 15.5 elements, 0 column cuts (0 active)  in 0.372 seconds - new frequency is 1
Cbc0014I Cut generator 5 (Clique) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.068 seconds - new frequency is -100
Cbc0014I Cut generator 6 (MixedIntegerRounding2) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.188 seconds - new frequency is -100
Cbc0014I Cut generator 7 (FlowCover) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.032 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, -330.53 best solution, best possible -353.95324 (3.25 seconds)
Cbc0010I After 62 nodes, 24 on tree, -340.64 best solution, best possible -348.64181 (39.58 seconds)
Cbc0010I After 124 nodes, 36 on tree, -340.64 best solution, best possible -345.9284 (69.84 seconds)
Cbc0010I After 186 nodes, 33 on tree, -340.64 best solution, best possible -343.06371 (91.66 seconds)
Cbc0030I Thread 0 used 52 times,  waiting to start 6.5238738,  356 locks, 0.15569067 locked, 0.0019233227 waiting for locks
Cbc0030I Thread 1 used 52 times,  waiting to start 7.092896,  369 locks, 0.094445944 locked, 0.0019137859 waiting for locks
Cbc0030I Thread 2 used 54 times,  waiting to start 8.2267604,  361 locks, 0.092430592 locked, 0.0018997192 waiting for locks
Cbc0030I Thread 3 used 45 times,  waiting to start 9.6405482,  306 locks, 0.072924852 locked, 0.0015816689 waiting for locks
Cbc0030I Main thread 90.857048 waiting for threads,  423 locks, 0.069015503 locked, 0.0028252602 waiting for locks
Cbc0003I Exiting on maximum nodes
Cbc0005I Partial search - best objective -340.64 (best possible -343.06371), took 1382 iterations and 200 nodes (96.35 seconds)
Cbc0032I Strong branching done 1376 times (4234 iterations), fathomed 4 nodes and fixed 14 variables
Cbc0035I Maximum depth 13, 0 variables fixed on reduced cost
==29205== 
==29205== HEAP SUMMARY:
==29205==     in use at exit: 25,692 bytes in 172 blocks
==29205==   total heap usage: 1,708,740 allocs, 1,708,568 frees, 3,755,796,695 bytes allocated
==29205== 
==29205== 40 bytes in 1 blocks are indirectly lost in loss record 1 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x80C80A: OsiClpSolverInterface::getWarmStart() const (OsiClpSolverInterface.cpp:1637)
==29205==    by 0x4BF28B: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:75)
==29205==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 40 bytes in 1 blocks are indirectly lost in loss record 2 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x487D8B: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:344)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 48 bytes in 1 blocks are indirectly lost in loss record 3 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x8043EF: CoinWarmStartBasis::CoinWarmStartBasis(CoinWarmStartBasis const&) (CoinWarmStartBasis.cpp:103)
==29205==    by 0x80C822: OsiClpSolverInterface::getWarmStart() const (OsiClpSolverInterface.cpp:1637)
==29205==    by 0x4BF28B: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:75)
==29205==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 104 bytes in 1 blocks are indirectly lost in loss record 4 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x476A2B: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 136 bytes in 1 blocks are indirectly lost in loss record 5 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x487E2F: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 200 bytes in 10 blocks are indirectly lost in loss record 6 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x487D8B: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:344)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 208 bytes in 2 blocks are indirectly lost in loss record 7 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x46B304: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15593)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 264 bytes in 3 blocks are indirectly lost in loss record 8 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x48A6B1: CbcSimpleInteger::createCbcBranch(OsiSolverInterface*, OsiBranchingInformation const*, int) (CbcSimpleInteger.cpp:175)
==29205==    by 0x4780DF: CbcNode::chooseBranch(CbcModel*, CbcNode*, int) (CbcNode.cpp:782)
==29205==    by 0x464156: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:13854)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 320 bytes in 1 blocks are indirectly lost in loss record 9 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x7CFC39: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:341)
==29205==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==29205==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==29205==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==29205==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==29205==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 320 bytes in 1 blocks are indirectly lost in loss record 10 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x7CFC59: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:342)
==29205==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==29205==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==29205==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==29205==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==29205==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 388 (104 direct, 284 indirect) bytes in 1 blocks are definitely lost in loss record 11 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x46B304: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15593)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 396 bytes in 17 blocks are indirectly lost in loss record 12 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x48919D: CbcPartialNodeInfo::CbcPartialNodeInfo(CbcNodeInfo*, CbcNode*, int, int const*, double const*, CoinWarmStartDiff const*) (CbcPartialNodeInfo.cpp:70)
==29205==    by 0x477033: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 408 bytes in 17 blocks are indirectly lost in loss record 13 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x806CDA: CoinWarmStartBasisDiff::clone() const (CoinWarmStartBasis.hpp:400)
==29205==    by 0x489161: CbcPartialNodeInfo::CbcPartialNodeInfo(CbcNodeInfo*, CbcNode*, int, int const*, double const*, CoinWarmStartDiff const*) (CbcPartialNodeInfo.cpp:63)
==29205==    by 0x477033: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 536 bytes in 17 blocks are indirectly lost in loss record 14 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x4A3F0E: unsigned int* CoinCopyOfArray<unsigned int>(unsigned int const*, int) (CoinHelperFunctions.hpp:186)
==29205==    by 0x8066DE: CoinWarmStartBasisDiff::CoinWarmStartBasisDiff(CoinWarmStartBasisDiff const&) (CoinWarmStartBasis.cpp:717)
==29205==    by 0x806CEC: CoinWarmStartBasisDiff::clone() const (CoinWarmStartBasis.hpp:400)
==29205==    by 0x489161: CbcPartialNodeInfo::CbcPartialNodeInfo(CbcNodeInfo*, CbcNode*, int, int const*, double const*, CoinWarmStartDiff const*) (CbcPartialNodeInfo.cpp:63)
==29205==    by 0x477033: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 640 bytes in 1 blocks are indirectly lost in loss record 15 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x4BF1A7: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:64)
==29205==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 640 bytes in 1 blocks are indirectly lost in loss record 16 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x4BF1C3: CbcFullNodeInfo::CbcFullNodeInfo(CbcModel*, int) (CbcFullNodeInfo.cpp:65)
==29205==    by 0x476A43: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:121)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 640 bytes in 1 blocks are indirectly lost in loss record 17 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x7CFC79: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:343)
==29205==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==29205==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==29205==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==29205==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==29205==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x43D817: CbcModel::branchAndBound(int) (CbcModel.cpp:3826)
==29205==    by 0x40540A: main (dsMain.cpp:262)
==29205== 
==29205== 1,664 bytes in 16 blocks are indirectly lost in loss record 18 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x476FFA: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 2,584 bytes in 19 blocks are indirectly lost in loss record 19 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x487E2F: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 4,068 bytes in 19 blocks are indirectly lost in loss record 20 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x7CFC39: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:341)
==29205==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==29205==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==29205==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==29205==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==29205==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 4,068 bytes in 19 blocks are indirectly lost in loss record 21 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x7CFC59: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:342)
==29205==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==29205==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==29205==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==29205==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==29205==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 8,136 bytes in 19 blocks are indirectly lost in loss record 22 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x7CFC79: CoinPackedVector::reserve(int) (CoinPackedVector.cpp:343)
==29205==    by 0x7D03B3: CoinPackedVector::gutsOfSetVector(int, int const*, double const*, bool, char const*) (CoinPackedVector.cpp:484)
==29205==    by 0x7D0294: CoinPackedVector::CoinPackedVector(CoinPackedVector const&) (CoinPackedVector.cpp:463)
==29205==    by 0x6FF4AD: OsiRowCut::OsiRowCut(OsiRowCut const&) (OsiRowCut.cpp:193)
==29205==    by 0x4B6497: CbcCountRowCut::CbcCountRowCut(OsiRowCut const&, CbcNodeInfo*, int, int, int) (CbcCountRowCut.cpp:52)
==29205==    by 0x487E59: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:354)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 11,876 (24 direct, 11,852 indirect) bytes in 2 blocks are definitely lost in loss record 23 of 24
==29205==    at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x487D8B: CbcNodeInfo::addCuts(OsiCuts&, int, int) (CbcNodeInfo.cpp:344)
==29205==    by 0x465129: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14102)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== 13,428 (104 direct, 13,324 indirect) bytes in 1 blocks are definitely lost in loss record 24 of 24
==29205==    at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29205==    by 0x476FFA: CbcNode::createInfo(CbcModel*, CbcNode*, CoinWarmStartBasis const*, double const*, double const*, int, int) (CbcNode.cpp:295)
==29205==    by 0x465037: CbcModel::chooseBranch(CbcNode*&, int, CbcNode*, OsiCuts&, bool&, CoinWarmStartBasis*, double const*, double const*, OsiSolverBranch*&) (CbcModel.cpp:14090)
==29205==    by 0x46B41D: CbcModel::doOneNode(CbcModel*, CbcNode*&, CbcNode*&) (CbcModel.cpp:15645)
==29205==    by 0x49D511: doNodesThread(void*) (CbcThread.cpp:1134)
==29205==    by 0x5358E99: start_thread (pthread_create.c:308)
==29205==    by 0x629B31C: clone (clone.S:112)
==29205== 
==29205== LEAK SUMMARY:
==29205==    definitely lost: 232 bytes in 4 blocks
==29205==    indirectly lost: 25,460 bytes in 168 blocks
==29205==      possibly lost: 0 bytes in 0 blocks
==29205==    still reachable: 0 bytes in 0 blocks
==29205==         suppressed: 0 bytes in 0 blocks
==29205== 
==29205== For counts of detected and suppressed errors, rerun with: -v
==29205== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 2 from 2)
-------------- next part --------------
==25550== Memcheck, a memory error detector
==25550== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==25550== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==25550== Command: dsOpt ../inst/sim80_in-dos.txt -j 4
==25550== 
Cbc0012I Integer solution of -316.54 found by Round+Explore after 0 iterations and 0 nodes (0.23 seconds)
Cbc0012I Integer solution of -330.53 found by Round+Explore after 45 iterations and 0 nodes (2.57 seconds)
Cbc0031I 5 added rows had average density of 80
Cbc0013I At root node, 5 cuts changed objective from -373.27838 to -353.95324 in 9 passes
Cbc0014I Cut generator 0 (ConiCuts) - 8 row cuts average 80.0 elements, 0 column cuts (5 active)
Cbc0014I Cut generator 1 (Probing) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.384 seconds - new frequency is -100
Cbc0014I Cut generator 3 (KnapsackCover) - 4 row cuts average 15.5 elements, 0 column cuts (0 active)  in 0.380 seconds - new frequency is 1
Cbc0014I Cut generator 5 (Clique) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.060 seconds - new frequency is -100
Cbc0014I Cut generator 6 (MixedIntegerRounding2) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.196 seconds - new frequency is -100
Cbc0014I Cut generator 7 (FlowCover) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.020 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, -330.53 best solution, best possible -353.95324 (3.25 seconds)
Cbc0010I After 62 nodes, 23 on tree, -338.6 best solution, best possible -348.8307 (40.96 seconds)
Cbc0010I After 124 nodes, 32 on tree, -340.64 best solution, best possible -345.91636 (74.28 seconds)
Cbc0010I After 186 nodes, 32 on tree, -340.64 best solution, best possible -343.185 (97.86 seconds)
Cbc0010I After 248 nodes, 26 on tree, -340.64 best solution, best possible -342.35475 (114.38 seconds)
Cbc0010I After 310 nodes, 3 on tree, -340.64 best solution, best possible -340.96246 (120.87 seconds)
Cbc0030I Thread 0 used 86 times,  waiting to start 6.1694593,  511 locks, 0.19646692 locked, 0.0028090477 waiting for locks
Cbc0030I Thread 1 used 81 times,  waiting to start 7.4745662,  497 locks, 0.12902045 locked, 0.002644062 waiting for locks
Cbc0030I Thread 2 used 80 times,  waiting to start 9.0959861,  490 locks, 0.11948395 locked, 0.0026471615 waiting for locks
Cbc0030I Thread 3 used 75 times,  waiting to start 10.458793,  467 locks, 0.11692691 locked, 0.0024421215 waiting for locks
Cbc0030I Main thread 116.48194 waiting for threads,  665 locks, 0.087877989 locked, 0.0038118362 waiting for locks
Cbc0001I Search completed - best objective -340.64, took 1846 iterations and 322 nodes (122.06 seconds)
Cbc0032I Strong branching done 1650 times (4863 iterations), fathomed 8 nodes and fixed 15 variables
Cbc0035I Maximum depth 13, 0 variables fixed on reduced cost
==25550== 
==25550== HEAP SUMMARY:
==25550==     in use at exit: 0 bytes in 0 blocks
==25550==   total heap usage: 2,046,557 allocs, 2,046,557 frees, 4,755,658,745 bytes allocated
==25550== 
==25550== All heap blocks were freed -- no leaks are possible
==25550== 
==25550== For counts of detected and suppressed errors, rerun with: -v
==25550== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)


More information about the Cbc mailing list