<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Jonathan,<br>
<br>
A "Few" questions -:) - answers not so simple<br>
<br>
On 29/04/13 10:41, Jonathan Currie wrote:<br>
</div>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<meta http-equiv="Context-Type" content="text/html;
charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered
medium)">
<div class="WordSection1">
<p class="MsoNormal">Hi,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I have been updating my MATLAB interface (<a
moz-do-not-send="true"
href="http://www.i2c2.aut.ac.nz/Wiki/OPTI/">http://www.i2c2.aut.ac.nz/Wiki/OPTI/</a>)
to Clp to support most of the options, together with
experimenting with the interior point solver and various
Cholesky options for Window’s users.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I had a few questions I can’t seem to find
answers for in the code (or in the user’s guide) if anyone
could help!</p>
<p class="MsoNormal"> </p>
<p class="MsoListParagraph"><span>1)<span> </span></span>If
I create a ClpSimplex object (simplex), load an LP into it
using loadProblem(..), then do the following, what algorithm
is being called? I presume it is the interior point…</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span>ClpSolve options</span><span>;</span></p>
<p class="MsoNormal"><span>options.setSolveType(ClpSolve::useBarrier);</span><span></span></p>
<p class="MsoNormal"><span>simplex.initialSolve(options);</span><span></span></p>
</div>
</blockquote>
Yes Interior point using home-grown cholesky<br>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"> </p>
<p class="MsoListParagraph"><span>2)<span> </span></span>How
does the ClpSolve::automatic mode work (using similar code as
the above)?</p>
<p class="MsoNormal"> </p>
</div>
</blockquote>
automatic is only choosing between dual and various forms of
crash+primal. It will never choose interior point.<br>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<div class="WordSection1">
<p class="MsoListParagraph"><span>3)<span> </span></span>If
I create a ClpInterior object (interior), load a QP into it
using loadProblem(..) and loadQuadraticObjective(..), then
call interior.primalDual(), which Cholesky factorization code
is being used? I.e. I have not specified it anywhere, I have
not added any COIN_HAS_MUMPS etc defines, and my problem is
typically large and sparse.</p>
<p class="MsoListParagraph"> </p>
</div>
</blockquote>
If you just do that you will get<br>
Clp6005E Quadratic barrier needs a KKT factorization<br>
<br>
ClpCholeskyBase * cholesky = new ClpCholeskyBase();<br>
cholesky->setKKT(true);<br>
interior.setCholesky(cholesky);<br>
<br>
will work using home-grown cholesky.<br>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<div class="WordSection1">
<p class="MsoListParagraph"><span>4)<span> </span></span>I
have access to the Mumps solver (sequential version) on
Windows, and would like to use it with Clp. However when I try
and use it with the interior point solver and a QP I get the
message “Quadratic Barrier needs a KKT factorization”. My
first guess was to do the following:</p>
<p class="MsoListParagraph"> </p>
<p class="MsoNormal"><span>ClpCholeskyMumps clpMumps;</span><span></span></p>
<p class="MsoNormal"><span>clpMumps.setKKT(</span><span>true</span><span>);</span><span></span></p>
<p class="MsoNormal"><span>interior.setCholesky(&clpMumps);</span><span></span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">However using my MATLAB interface it
promptly crashes when trying to solve the model. I see in the
source files only Wssmp has a KKT suffix header file, is this
the only Cholesky code setup to solve the KKT system of a QP
with the barrier (interior) solver?</p>
</div>
</blockquote>
Have not used Mumps for a long time - will get back to you<br>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"> </p>
<p class="MsoListParagraph"><span>5)<span> </span></span>If
I solve LPs using the barrier solver and sequential Mumps,
will I still expect (in general – for sparse problems) to see
a speedup over the CholeskyBase / CholeskyDense
implementations supplied with Clp?</p>
</div>
</blockquote>
Without Cilk home-grown cholesky is sequential so yes. With cilk
the dense part goes parallel (as it is a nice easy case for cilk)<br>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"> </p>
<p class="MsoListParagraph"><span>6)<span> </span></span>I
have bought Intel Parallel Studio XE and therefore have access
to the Cilk libraries and would like to try using ABC for
solving LPs (and QPs?) in parallel. However I cannot find any
examples…. Is it as simple as replacing ClpSimplex with
AbcSimplex, or is there a bit more to it? I have not managed
to compile the Abc part of Clp yet, so not quite at a point to
jump in and experiment.</p>
<p class="MsoNormal"> </p>
</div>
</blockquote>
In configure add --enable-aboca=4<br>
<br>
Abc is only simplex (but you do get the cilk bit of cholesky as
mentioned above) - no QP at present.<br>
<br>
If using initialSolve then add <br>
simplex.setAbcState(4) or (8) to partition work into 4/8 chunks.
Cilk will use it's default number of workers - unless you override.
On my laptop that is 4 as I have hyperthreading turned off.<br>
<br>
Will get back to you on Mumps.<br>
<br>
John Forrest<br>
<blockquote cite="mid:011801ce44bd$b50feab0$1f2fc010$@aut.ac.nz"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks for any help!</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span lang="EN-US">JONATHAN CURRIE </span><span>[BE
Hons]</span><span></span></p>
<p class="MsoNormal"><span>LECTURER<br>
ELECTRICAL & ELECTRONIC ENGINEERING<br>
AUT UNIVERSITY</span><span></span></p>
<p class="MsoNormal"><span><br>
ph: (+64) 09 921 9999 x6608 </span><span lang="EN-US">|</span><span>
mob: (+64) 021 550 483 </span><span lang="EN-US">|</span><span>
web: <a moz-do-not-send="true"
href="http://www.i2c2.aut.ac.nz/"><span>www.i2c2.aut.ac.nz</span></a></span><span><br>
</span><span>INDUSTRIAL INFORMATION & CONTROL CENTRE</span><span>
</span><span lang="EN-US">|</span><span lang="EN-US"> AUCKLAND
</span><span lang="EN-US">|</span><span lang="EN-US"> NEW
ZEALAND</span><span></span></p>
<p class="MsoNormal"> </p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Clp mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Clp@list.coin-or.org">Clp@list.coin-or.org</a>
<a class="moz-txt-link-freetext" href="http://list.coin-or.org/mailman/listinfo/clp">http://list.coin-or.org/mailman/listinfo/clp</a>
</pre>
</blockquote>
<br>
</body>
</html>