[Coin-lpsolver] St9bad_alloc with ClpINterior

Matthew Guthaus mguthaus at eecs.umich.edu
Wed Aug 31 22:55:14 EDT 2005


Hi Kish,

I am having a similar problem with ClpInterior using plain  
ClpCholeskyBase and ClpCholeskyDense.
My problem has about 10k constraints, 17k variables, and 42% density  
(pretty dense...). With your problem, 50k variables x 50k constraints  
in dense mode would be >2.5GB, wouldn't it??

My stack trace:

terminate called after throwing an instance of 'std::bad_alloc'
   what():  St9bad_alloc

Program received signal SIGABRT, Aborted.
0x00bb47a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) bt
#0  0x00bb47a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1  0x006f97d5 in raise () from /lib/tls/libc.so.6
#2  0x006fb149 in abort () from /lib/tls/libc.so.6
#3  0x00a30b0b in __gnu_cxx::__verbose_terminate_handler () from /usr/ 
lib/libstdc++.so.6
#4  0x00a2e821 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6
#5  0x00a2e856 in std::terminate () from /usr/lib/libstdc++.so.6
#6  0x00a2e99f in __cxa_throw () from /usr/lib/libstdc++.so.6
#7  0x00a2edec in operator new () from /usr/lib/libstdc++.so.6
#8  0x00a2ee89 in operator new[] () from /usr/lib/libstdc++.so.6
#9  0x0034aff5 in CoinPackedMatrix::reverseOrderedCopyOf  
(this=0x8672f68, rhs=@0x866fe58) at CoinPackedMatrix.cpp:813
#10 0x003d6d7c in ClpPackedMatrix::reverseOrderedCopy (this=0x0) at  
ClpPackedMatrix.cpp:158
#11 0x003d8a4e in ClpPackedMatrix::scale (this=0x86f8740,  
model=0xbffbc080) at ClpPackedMatrix.cpp:1729
#12 0x00456b8c in ClpInterior::createWorkingData (this=0xbffbc080) at  
ClpInterior.cpp:557
#13 0x0046bccb in ClpPredictorCorrector::solve (this=0xbffbc080) at  
ClpPredictorCorrector.cpp:42
#14 0x0045461d in ClpInterior::primalDual (this=0x0) at  
ClpInterior.cpp:988
#15 0x0804b3c3 in qp (vars=16422, constr=9516, qrow=0xb3a32008,  
qcol=0xaf51f008, qval=0xa6af9008, qsize=9058280, d=0x8894350,  
arow=0x97035008,
     acol=0x87571008, aval=0x67fe9008, asize=50755945, bl=0x88b4488,  
bu=0x88c6df0, xl=0x88540e0, xu=0x8874218, x=0x8833fa8) at qp.C:369



I also ran valgrind on linux and got this message:

==28660== Warning: set address range perms: large range 144856360, a  
0, v 1
==28660== Warning: set address range perms: large range 262946108, a  
0, v 1
==28660== Warning: set address range perms: large range 262946108, a  
0, v 1
**28660** new/new[] failed and should throw an exception, but Valgrind
    cannot throw exceptions and so is aborting instead.  Sorry.
==28660==    at 0x1B8FF98E: VALGRIND_PRINTF_BACKTRACE (valgrind.h:246)
==28660==    by 0x1B905990: operator new[](unsigned)  
(vg_replace_malloc.c:138)


So I pretty much think I might need to try a 64-bit machine...

Matt

On Aug 31, 2005, at 9:18 PM, Kish Shen wrote:

>
> Hi,
>
> I have been trying out the barrier solver of Clp, using the  
> testBarrier
> driver in Clp/Samples as a blueprint, but using ClpCholeskyDense  
> instead of
> ClpCholeskyWssmp.
>
> For two moderately sized problems (one of them the MIPLIB problem  
> nw04)
> with about 200000 non-zeros and 50000 rows and columns, I got a
>
> terminate called after throwing an instance of 'std::bad_alloc'
>   what():  St9bad_alloc
>
> message and the execution aborted. This happened very soon after the
> solving process started, and the process was using about 50M of memory
> (which I was monitoring using 'top') immediately before this  
> message, and
> the machine I was running on has about 750M of real memory and 2G  
> of swap
> space, and most of the swap space was available, so it seems  
> unlikely that
> there was really insufficient memory.
>
> Any ideas what the problem might be? Thanks in advance for any  
> information
> and help!
>
> Cheers,
>
> Kish Shen
> IC-Parc
> Imperial College London
> U.K.
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-lpsolver
>




More information about the Clp mailing list