<div dir="ltr">A custom barrier method with GPU-based linear algebra seems pretty reasonable to me for these dense problems. You could even beat out the commercial solvers. Cvxopt might be useful as a starting point.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 10, 2015 at 11:37 AM, Matt Bromberg <span dir="ltr"><<a href="mailto:mattcbro@earthlink.net" target="_blank">mattcbro@earthlink.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Thanks for running this. I hope this
can be addressed since basically Clp is constrained to "smaller"
problems at this point.<br>
Unfortunately I keep needing larger constraint dimensions. I'm
actually considering running large problems in an inner loop of<br>
a hierarchical problem, so speed is going to be critical as well.
<br>
<br>
I'm actually considering rolling my own barrier method on a GPU,
presuming that fine grain parallelism is going to beat coarse
grained for these types of problems.<span class="HOEnZb"><font color="#888888"><br>
<br>
-Matt</font></span><div><div class="h5"><br>
<br>
On 07/09/2015 02:51 AM, Miles Lubin wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">All,
<div><br>
</div>
<div>Matt passed the data files to me privately, and I can
reproduce the segfault. Here's the backtrace:</div>
<div><br>
</div>
<div>
<div>#0 0x00007fffc8143bae in ClpFactorization::factorize
(this=0x315cac0, </div>
<div> model=0x79fb260, solveType=1, valuesPass=false) at
ClpFactorization.cpp:2208</div>
<div>#1 0x00007fffc81fdbaa in ClpSimplex::internalFactorize
(this=0x79fb260, solveType=1)</div>
<div> at ClpSimplex.cpp:1995</div>
<div>#2 0x00007fffc828c35b in
ClpSimplexPrimal::statusOfProblemInPrimal (this=0x79fb260, </div>
<div> lastCleaned=@0x7fffffffbafc: 0, type=1,
progress=0x79fb7a8, doFactorization=true, </div>
<div> ifValuesPass=0, originalModel=0x0) at
ClpSimplexPrimal.cpp:851</div>
<div>#3 0x00007fffc828ae46 in ClpSimplexPrimal::primal
(this=0x79fb260, ifValuesPass=0, </div>
<div> startFinishOptions=0) at ClpSimplexPrimal.cpp:357</div>
<div>#4 0x00007fffc8211cc3 in ClpSimplex::primal
(this=0x79fb260, ifValuesPass=1, </div>
<div> startFinishOptions=0) at ClpSimplex.cpp:5974</div>
<div>#5 0x00007fffc829eb4d in ClpSimplex::initialSolve
(this=0x79fb260, options=...)</div>
<div> at ClpSolve.cpp:2392</div>
<div>#6 0x00007fffc8126edf in Clp_initialSolveWithOptions
(model=0x3da3aa0, s=0x4747d90)</div>
<div> at Clp_C_Interface.cpp:798</div>
</div>
<div><br>
</div>
<div>The line in question is:</div>
<div><br>
</div>
<div>elementU[i] = slackValue;<br>
</div>
<div><br>
</div>
<div>and gdb reports that elementU is uninitialized (more
precisely, zero). Perhaps an unsuccessful call to malloc()?
That's about all the debugging I can do for now.</div>
<div><br>
</div>
<div>Best,</div>
<div>Miles</div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Jul 8, 2015 at 6:40 PM,
Miles Lubin <span dir="ltr"><<a href="mailto:miles.lubin@gmail.com" target="_blank">miles.lubin@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">No, segfaulting usually isn't an inherent
property of an LP instance :)
<div>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.</div>
<div><br>
</div>
<div>Best,</div>
<div>Miles</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>