<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">David,<br>
      <br>
      appendCol may be doing a delete/new at each call - this may cause
      locks.<br>
      <br>
      Assuming you have a reasonable upper limit on size of matrix, I
      would allocate enough memory to build matrix and use addColumns to
      do all at once.  Even if you have not got much idea of size then
      you could add in chunks.<br>
      <br>
      John Forrest  <br>
      On 26/09/16 12:27, David Prime wrote:<br>
    </div>
    <blockquote
cite="mid:CAKAJfxvqsGU+MNDDaF=BGnf6ocbrHGnp4gUHvmsaLMTEKFJCHg@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi All,</div>
        <div><br>
        </div>
        <div>I've been using CLP for a little while and am finding it to
          be very good, proving fast and stable results.</div>
        <div><br>
        </div>
        <div>One issue I've seen is that when I'm creating and executing
          many models in parallel (we build and execute perhaps a few
          hundred models per second across 16 cores in one program) the
          ratio of time spent creating the model and then executing it
          goes from 1:1 to 10:1 under heavy load when we attempt to run
          the same code on a 32 core machine with work spread evenly
          across all cores. Execution times remain pretty much static,
          only increasing with model complexity or when the machine
          running it is maxing out all available cores and the program
          becomes CPU starved.</div>
        <div><br>
        </div>
        <div>The model creation time is spent almost exclusively in the </div>
        <div>CoinPackedMatrix->appendCol(</div>
        <div>const int <span class="gmail-Apple-tab-span"> </span>vecsize,</div>
        <div>const int * <span class="gmail-Apple-tab-span"> </span>vecind,</div>
        <div>const double * <span class="gmail-Apple-tab-span"> </span>vecelem<span
            class="gmail-Apple-tab-span"> </span>)</div>
        <div><br>
        </div>
        <div>method. I'm wondering if there's any internal global locks
          in any of the libraries involved here that might be making
          performance worse as parallelism increases. Another theory I
          have is that we only want to increase parallelism from 16 to
          32 cores when we're under very heavy load so the
          characteristics of the models may also be changing in terms of
          the size of the matrix we want to construct. Is there a more
          efficient way to allocate the matrix than using appendCol?</div>
        <div><br>
        </div>
        <div>Any thoughts?</div>
        <div><br>
        </div>
        <div>Thanks,</div>
        <div>David Prime</div>
      </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="https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=js2M0T-3OIMIVDvokcKjokJbk0F8QOCd0mT4FsVFE88&m=pHOYvsXa0_Zqv_U15oE55jSNMep6TTkDVkrMY4xiDPo&s=5axPjeE3O9TC6t0mmqjIipCHDnEdWSRmLXC1aRvc9Tg&e=">https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coin-2Dor.org_mailman_listinfo_clp&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=js2M0T-3OIMIVDvokcKjokJbk0F8QOCd0mT4FsVFE88&m=pHOYvsXa0_Zqv_U15oE55jSNMep6TTkDVkrMY4xiDPo&s=5axPjeE3O9TC6t0mmqjIipCHDnEdWSRmLXC1aRvc9Tg&e=</a> 
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>