<div dir="ltr">On Wed, Jul 31, 2013 at 9:54 PM, Vane, Edwin <span dir="ltr"><<a href="mailto:edwin.vane@intel.com" target="_blank">edwin.vane@intel.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
<br>
> -----Original Message-----<br>
> From: Manuel Klimek [mailto:<a href="mailto:klimek@google.com">klimek@google.com</a>]<br>
</div><div class="im">> Sent: Wednesday, July 31, 2013 2:04 PM<br>
> To: Chandler Carruth<br>
> Cc: Vane, Edwin; Daniel Jasper; Clang Dev List (<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a>)<br>
> Subject: Re: [cfe-dev] FW: RFC: YAML as an intermediate format for<br>
> clang::tooling::Replacement data on disk<br>
<br>
</div>...<br>
<div class="im"><br>
> Everything else in the extra tool is about reading the changes from disk, and<br>
> using multi-threading to apply them in a scalable way.<br>
<br>
</div>How did you envision parallelism being used? Reading files off the disk right now means iterating over the directory structure looking for files. De-duplicating and reporting conflicts, done as part of clang::tooling, would need a rewrite to use a parallel algorithm if this is where you intended parallelism. Then applying the deduplicated replacements would require the Rewriter is thread-safe. This all presumes there would be a large number of change descriptions for a given header. Is this something that happens in your experience? Or am I misunderstanding where you want multi-threading?<br>
</blockquote><div><br></div><div>So, the way we parallelize is:</div><div>-> read all the replacements</div><div>-> shard them by source file on which they're applied</div><div>-> in parallel for each source file:</div>
<div>--> deduplicate</div><div>--> apply / write</div><div><br></div><div>The last part can be slower when networked file systems or strange source control systems are involved (which is our case), or simply avoid some i/o latency.</div>
<div><br></div></div></div></div>