https://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692018-08-20T07:23:29ZOpen-Source ProjectsKlever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=344582018-08-20T07:23:29ZEvgeny Novikovnovikov@ispras.ru
<ul><li><strong>Assignee</strong> changed from <i>Ilja Zakharov</i> to <i>Evgeny Novikov</i></li><li><strong>Priority</strong> changed from <i>High</i> to <i>Urgent</i></li><li><strong>Target version</strong> set to <i>3.0</i></li></ul><p>Weaver became a real bottleneck. It does too much I/O work most of which is redundant. For instance, its wall time exceeds its CPU time in ~6 times!</p> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=349722018-09-28T09:22:41ZEvgeny Novikovnovikov@ispras.ru
<ul><li><strong>Subject</strong> changed from <i>Reuse processed models</i> to <i>Optimize weaving</i></li><li><strong>Description</strong> updated (<a title="View differences" href="/journals/34972/diff?detail_id=39644">diff</a>)</li></ul> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=355482019-01-25T12:21:49ZEvgeny Novikovnovikov@ispras.ru
<ul><li><strong>Priority</strong> changed from <i>Urgent</i> to <i>High</i></li><li><strong>Target version</strong> deleted (<del><i>3.0</i></del>)</li></ul><p>Let's do minor optimizations one day later.</p> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=359642019-04-10T07:42:01ZEvgeny Novikovnovikov@ispras.ru
<ul><li><strong>Blocked by</strong> <i><a class="issue tracker-4 status-5 priority-5 priority-high3 closed" href="/issues/6731">Feature #6731</a>: Pass source code just through C-backend if aspects are empty</i> added</li></ul> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=380682020-02-10T15:23:34ZEvgeny Novikovnovikov@ispras.ru
<ul><li><strong>Priority</strong> changed from <i>High</i> to <i>Urgent</i></li><li><strong>Target version</strong> set to <i>3.0</i></li></ul><p>This issue became urgent after Weaver started to obtain cross references for models with Clade. Although, it is possible to essentially speed up this by launching builds and Clade in parallel, but it is just a workaround that can cause very unpleasant consumption of computational resources. So, I suggest to implement some trivial caching to store immutable results of both weaving and cross reference calculation.</p> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=381252020-02-17T06:39:48ZEvgeny Novikovnovikov@ispras.ru
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Closed</i></li></ul><p>I implemented the feature in branch <em>weaver-cache</em> that I merged to master in <a class="changeset" title="Merge branch 'master' into weaver-cache" href="https://forge.ispras.ru/projects/klever/repository/331/revisions/499b949a6abbc6ecfc2b640625ff2dee08241f75">499b949a6</a>.</p>
<p>The optimization speed ups Weaver considerably, so that it becomes even faster than as it was before we added support for so called additional sources and cross references. On powerful machines with fast disks it is not very noticeable, but, say, on OpenStack virtual machines one will get considerable improvement. Besides, it affects those jobs that have rather simple tasks much while for jobs with complicated tasks the absolute difference will be not so big.</p> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=381272020-02-17T11:25:31ZEvgeny Novikovnovikov@ispras.ru
<ul></ul><p>One important note! By using option "Original C source files" (it is default for the production mode) for "Code coverage details" when starting job decisions, one can speed up Weaver by an order of magnitude. Of course, there will be neither additional sources except for original ones nor cross references and highlights for them.</p> Klever - Feature #8568: Optimize weavinghttps://forge.ispras.ru/issues/8568?journal_id=381282020-02-17T11:26:07ZEvgeny Novikovnovikov@ispras.ru
<ul></ul><p>This works since <a class="changeset" title="Do not get additional sources and corresponding cross references if this is not required" href="https://forge.ispras.ru/projects/klever/repository/331/revisions/1ec20b12048a488a874b15bddb62c5bac3539bc2">1ec20b120</a> to master.</p>