[Clp] Dense LP Problem Interface

Miles Lubin miles.lubin at gmail.com
Wed Jul 8 20:40:50 EDT 2015


No, segfaulting usually isn't an inherent property of an LP instance :)
If you can post the .mat file and short julia script which you use to run
it, I can try running the instance under debug mode myself.

Best,
Miles

On Wed, Jul 8, 2015 at 6:36 PM, Matt Bromberg <mattcbro at earthlink.net>
wrote:

>  Ipopt crashed as well in libc.so.6.  Perhaps it's fundamental to my
> problem?  However is it reasonable that you can feed a problem into one of
> these solvers and have it segfault?
> Since I'm not familiar with the foreign function interface for Julia,  the
> recompiling process is going to have to wait until I get a few chores done.
>
> I wonder if there are incompatible C++ libraries at play?
>
>
>
>
> On 07/08/2015 07:10 PM, Miles Lubin wrote:
>
> You might try compiling Clp with "--enable-debug --enable-shared" to get a
> bit more useful info in the backtrace. It could be that Clp is running into
> the limitations of using 32-bit integers for indexing. It wouldn't be too
> hard to fix, though I complained 3 years ago about this without much of a
> response (https://projects.coin-or.org/CoinUtils/ticket/75). From the
> open-source solvers, Ipopt might be more resilient, though you should
> compile your own version since the version distributed with Julia uses
> reference BLAS.
>
>  Best,
> Miles
>
> On Wed, Jul 8, 2015 at 4:55 PM, Matt Bromberg <mattcbro at earthlink.net>
> wrote:
>
>>  Yup trying it out now.  I really like Julia so far.  There is a lot of
>> innovation there.  Clp doesn't print out intermediate status as it does
>> under Python, or perhaps it just doesn't flush until it's done.
>>
>> I like the fact that all the packages are self contained so that,
>> presumably they play well together.  It looks like Clp barfed though.
>> Segmentation fault as before.
>> So this probably is a limitation of Clp,  which is a shame, since it's
>> memory profile is fantastic.
>>
>> I'll have to try other LP solutions to see whats up.
>>
>> Thanks for that tip by the way.  I wish I had started with Julia.
>>
>> The run time error info:
>> __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
>> unknown function (ip: 4199667)
>> unknown function (ip: 0)
>> Segmentation fault
>>
>>
>> -Matt
>>
>>
>> On 07/08/2015 01:03 PM, Miles Lubin wrote:
>>
>> Yes, it's very easy to read and write MAT files with the MAT package (
>> https://github.com/simonster/MAT.jl), also plain HDF5 (
>> https://github.com/timholy/HDF5.jl).
>>
>> On Wed, Jul 8, 2015 at 10:59 AM, Matt Bromberg <mattcbro at earthlink.net>
>> wrote:
>>
>>>  Thanks for reminding me of this. Looking at the julia interface was on
>>> my todo list.  Is there a julia interface for matlab files, or hdf5 file
>>> formats?
>>> That's one reason I've been using python for scripting.  I suppose julia
>>> can call python too.
>>>
>>> I appreciate the code snippet as well.
>>>
>>> Matt
>>>
>>>
>>> On 07/08/2015 12:01 PM, Miles Lubin wrote:
>>>
>>> Hi Matt,
>>>
>>>  You may want to try out the linprog function in Julia:
>>>
>>>  http://mathprogbasejl.readthedocs.org/en/latest/linprog.html
>>>
>>>  All you do is:
>>>
>>>  using MathProgBase
>>> using Clp
>>> sol = linprog(c, Acon, '<', rhsvec, -Inf, Inf, ClpSolver())
>>>
>>>  You can also easily switch in commercial solvers. Unfortunately I
>>> don't know of any well supported solvers which are optimized for such large
>>> dense problems.
>>>
>>>  Miles
>>>
>>> On Wed, Jul 8, 2015 at 9:53 AM, Matt Bromberg <mattcbro at earthlink.net>
>>> wrote:
>>>
>>>> I have yet to see a simple way to use CBC or CLP using raw binary
>>>> data.  In particular I have a large problem with 40K constraints 10K
>>>> variables or so.
>>>> That's about 3Gbytes of raw doubles.  It expands to an unwieldy size
>>>> using any of the text base input formats. (hundreds of gigabytes).
>>>>
>>>> I can get that data into a python numpy array but it does not appear to
>>>> be easy to dump that raw array into CLP.  Unfortunately cylp doesn't
>>>> support the latest API.
>>>> I would roll my own python interface but there is literally no
>>>> documentation I can find online for the C interface to something like
>>>> CoinMP.
>>>>
>>>> All the other interfaces appear to be useless for my purposes.  Pulp is
>>>> rather arcane and there is no obvious way to pull the data back into python.
>>>>
>>>> I am in somewhat disbelief that I can't do this:
>>>> [xopt,fmin] = linprog(c, Acon, rhsvec) ;
>>>>
>>>> to solve min c' * x  given Acon * x <= rhsvec .
>>>>
>>>>  The above is the one line matlab interface to linprog.  There should
>>>> be something similar in Python in support of CLP using it's primary matrix
>>>> array interface, numpy/ndarrays.
>>>> Even my cylp solution takes 10 lines of python code to do this, plus
>>>> half a day of parsing documentation.  It's just unfortunate that it
>>>> segfaults on the larger problems.
>>>>
>>>> If anyone has a good way to do this in Python or C, with an example I'd
>>>> love to see it.  For now I have to move on to other solvers.
>>>> _______________________________________________
>>>> Clp mailing list
>>>> Clp at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/clp
>>>>
>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20150708/59be8c43/attachment.html>


More information about the Clp mailing list