<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>