<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">&nbsp;</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&#8217;s users.</p>
        <p class="MsoNormal">&nbsp;</p>
        <p class="MsoNormal">I had a few questions I can&#8217;t seem to find
          answers for in the code (or in the user&#8217;s guide) if anyone
          could help!</p>
        <p class="MsoNormal">&nbsp;</p>
        <p class="MsoListParagraph"><span>1)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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&#8230;</p>
        <p class="MsoNormal">&nbsp;</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">&nbsp;</p>
        <p class="MsoListParagraph"><span>2)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>How
          does the ClpSolve::automatic mode work (using similar code as
          the above)?</p>
        <p class="MsoNormal">&nbsp;</p>
      </div>
    </blockquote>
    automatic is only choosing between dual and various forms of
    crash+primal.&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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">&nbsp;</p>
      </div>
    </blockquote>
    If you just do that you will get<br>
    Clp6005E Quadratic barrier needs a KKT factorization<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp; ClpCholeskyBase * cholesky = new ClpCholeskyBase();<br>
    &nbsp;&nbsp;&nbsp;&nbsp; cholesky-&gt;setKKT(true);<br>
    &nbsp;&nbsp;&nbsp;&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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 &#8220;Quadratic Barrier needs a KKT factorization&#8221;. My
          first guess was to do the following:</p>
        <p class="MsoListParagraph">&nbsp;</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(&amp;clpMumps);</span><span></span></p>
        <p class="MsoNormal">&nbsp;</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">&nbsp;</p>
        <p class="MsoListParagraph"><span>5)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>If
          I solve LPs using the barrier solver and sequential Mumps,
          will I still expect (in general &#8211; 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.&nbsp; 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">&nbsp;</p>
        <p class="MsoListParagraph"><span>6)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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&#8230;. 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">&nbsp;</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.&nbsp;
    Cilk will use it's default number of workers - unless you override.&nbsp;
    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">&nbsp;</p>
        <p class="MsoNormal">Thanks for any help!</p>
        <p class="MsoNormal">&nbsp;</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 &amp; ELECTRONIC ENGINEERING<br>
            AUT UNIVERSITY</span><span></span></p>
        <p class="MsoNormal"><span><br>
            ph: (+64) 09 921 9999 x6608&nbsp;</span><span lang="EN-US">|</span><span>
            mob: (+64) 021 550 483&nbsp;</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 &amp; 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">&nbsp;</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>