<div style="font-family: arial, helvetica, sans-serif"><font size="2"><div class="gmail_quote">On Sat, Jun 16, 2012 at 8:36 PM, Matthieu Monrocq <span dir="ltr"><<a href="mailto:matthieu.monrocq@gmail.com" target="_blank">matthieu.monrocq@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><br><div class="gmail_quote"><div class="im">On Sat, Jun 16, 2012 at 3:19 PM, Lyu Mitnick <span dir="ltr"><<a href="mailto:mitnick.lyu@gmail.com" target="_blank">mitnick.lyu@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello Douglas,<br>
<br>
I have read all posted carefully. According to the discussion, what we<br>
can do better than<br>
original distcc are as follows:<br>
<br>
1) The intermediate files passed over the network would be serialized AST<br>
2) The intermediate files passed over the network would be LLVM IR<br>
3) Centralized admin daemon<br>
4) Use PCH<br>
<br>
To improve the issues above. We can extend the original distcc.<br>
However Chris Lattner<br>
mentioned the first mile-stone of clang distributed build project is<br>
re-implementing a new<br>
distcc.<br>
<br>
<a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-April/001357.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-April/001357.html</a><br>
<br>
I am wondering to know why and what is the desired design of clang<br>
distributed build<br>
project for cfe community.<br>
<br>
Mitnick<br>
<br>
><br>
> No, this project has not been accomplished. I don't think there was any real progress on it since that discussion.<br>
><br>
>        - Doug<br>
<br></blockquote></div><div><br>We have been using distcc (on top of gcc) for a while at work, and it does work, somewhat, but it has a big issue: preprocessing is a huge part of compilation, not being able to get rid of it creates a bottleneck that inhibits true scalability. Given that we are using 24 cores servers, we could push to about 40/60 parallel compilations (interesting when an error occurs in a header and the local machine has to compile those 40/60 files locally to display the errors); any further and we would not observe any significant progress in compilation time: the local machine became the bottleneck.<br>

<br>We experimented for a time with a solution where we streamed the raw unprocessed files and had a filtering in place to only push "local" files and have replica on the distcc hosts for the 3rd party headers. It worked quite well, not much gain but slightly faster... as long as the distcc host had the up-to-date collection of 3rd party headers & the local directory hierarchy was similar; had a few issues with it (maintenance) so we fell back to the traditional distcc.<br>

<br>Honestly, we got much more performance boost from ccache than from distcc.<br><br>I am unsure how to work around the local preprocessing issue, and I am afraid that no significant progress will be made as long as it stands in the way. I would be glad to hear some folks have ideas to get around it, these days I put more hope in a "persistent" process that would cache various stages of the compilation pipeline (maybe using the daemon Chandler was talking about ?).</div>
</div></blockquote><div><br></div><div>clangd is not about speeding up distributed compilations - I'm not sure I understand what the problems were you ran into with your distributed build that pushed the "raw" files, but with enough caching you can save considerable time and processing power that way [1]. Hopefully modules will pave the way for an even better distributed C++ build. Well, and better linkers...</div>
<div><br></div><div>[1] <a href="http://google-engtools.blogspot.de/2011/09/build-in-cloud-distributing-build-steps.html">http://google-engtools.blogspot.de/2011/09/build-in-cloud-distributing-build-steps.html</a></div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div><span class="HOEnZb"><font color="#888888"><br>
<br>-- Matthieu<br></font></span></div></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></font></div>