summaryrefslogtreecommitdiff
path: root/doc/web/results.html
blob: 80890d2f3bda0c33a7c2b3cde03dc14efd147643 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
<html>
<head><title>distcc testimonials</title>
    <meta name="author" content="Martin Pool">
    <meta name="keywords" content="distributed, make, build, gcc,
               parallel, network, networked, faster, free, fast, paralel, cc, c,
               C++, Objective C, ObjC, compile, compiler, compilation,
               simple, GPL, GNU, Linux, BSD, Unix, software, development,
               developer, TeamBuilder, quick, dmake, pvmake,
               transparent, easy, workstations, Solaris, IncrediBuild,
               productivity, speed, time, tool, performance, hardware,
               agents, nfs, libraries, source, headers, workload,
               buildfarm, farm, server, cluster, clustered, clustering, MOSIX, OpenMOSIX">
    <meta name="description" content="distcc is a fast, free distributed C and C++ compiler.">
    <link rel="SHORTCUT ICON" href="favicon.ico">
    <link type="text/css" rel="stylesheet" href="distcc-green.css">
    <link type="text/html" rel="top" href="index.html">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
   <body vlink="#003300" text="#000000" link="#003300" bgcolor="#ffffff" alink="#336633"><p><table width="100%"><tr><td valign="top"><div class="navbar"><ul>
          <li><a href="index.html">distcc</a></li>
          <li><a href="http://code.google.com/p/distcc/source/browse/trunk">source</a>
          <li><a href="http://code.google.com/p/distcc/downloads/list">binaries</a></li>
          <li><a href="http://distcc.googlecode.com/svn/trunk/NEWS">news</a></li>
          <li><a href="scenarios.html">scenarios</a></li>
	  <li><a href="results.html"><b>testimonials</b></a></li>
	  <li><a href="benchmark.html">benchmarks</a></li>
	  <li><a href="security.html">security</a></li>
	  <li><a href="distcc-lca-2004.html">whitepaper</a></li>
	  <li><a href="http://distcc.googlecode.com/svn/trunk/doc/web/man/">Man pages</a></li>
	  <li><a href="faq.html">FAQ</a></li>

	  <p>
	  <li><a href="http://code.google.com/p/distcc/issues/list">report a bug</a></li>
	  <li><a href="https://lists.samba.org/mailman/listinfo/distcc">mailing list</a>
           <ul><li><a href="mailto:distcc@lists.samba.org">post</a></li>
            <li><a href="http://lists.samba.org/archive/distcc/">archive</a></li>
            <li><a href="news://news.gmane.org/gmane.comp.compilers.distcc">newsgroup</a></li></ul>
	  </li>
          <li><a href="http://freshmeat.net/projects/distcc">Freshmeat</a>
            <ul><li><a href="http://freshmeat.net/subscribe/28140">be notified</a></li></ul>
	  </li>

	  <p>
	  <li>related:</li>
	  <ul>
	      <li><a title="How to use distcc and Gentoo" href="http://www.gentoo.org/doc/en/distcc.xml">Gentoo</a></li>
	      <li><a title="Script to ease building cross-compilers and toolchains" href="http://kegel.com/crosstool/">crosstool</a></li>
	      <li><a title="Cache compiler results" href="http://ccache.samba.org/">ccache</a></li>
	      <li><a title="Centralized control over distcc and ccache" href="http://ccontrol.ozlabs.org/">ccontrol</a></li>
	      <li><a title="Smart job scheduler" href="http://dmucs.sourceforge.net/">dmucs</a></li>
	  </ul>
       <p><p></td>                                      
       <td valign="top">
       <div class="body">
       <h1 class="title">distcc testimonials</h1>

<p align=right>
<em>C lets you shoot yourself in the foot, and distcc gives
       you a chaingun.</em>

<p>
For speeding up our builds we use and
      recommend distcc to allow us to distribute compilation across
      two or more machines (i.e. a laptop and a desktop). distcc can
      be set up in no time and if like us you're continuously and
      repeatedly building lots of code it'll save you hours if not
      days of waiting around for compiles to finish. Also check out
      <a href="http://ccache.samba.org/">ccache</a>.
        &mdash; The 
<a href=http://www.rosegardenmusic.com/resources/links/>Rosegarden</a>
music software developers.
	 
<hr>

<p>
Paul Daniels:
<p>
I'd just like to extend my thanks to the creators (and maintainers ;-)
of distcc and associated projects.  My projects here are getting
rather large in size (relative) such that I have to wait too long
between the process of tweak-build-test-*groan* (repeat).  5 mins of
distcc across a few unused boxes in this office and everything was
much better ... only trouble now is that I no longer have an excuse to
walk the hallways and make coffee *curse*.
<p>
Seriously though, great project, simple to use, generates real results
&mdash; hallmarks of a indispensable utility. 

<hr>

<p>
Jens Mayer:
    distcc rocks. Thank you very much for your excellent work!






<hr>
<p>
Alex Landa:
<p>

It's a scorcher!

<p>
I originally also had a rather low-memory (24MB) Pentium S-90 in the chain.
I removed this because it was swapping and its old hard drive was making
a total racket.  I'm not sure if it slowed the whole cluster, but it seemed
to.  Learning which order to put the machines in was something that I got
the hang of rather quickly.  The Xbox did most of the hard work.


<hr>


<p>
Richard Bown:

<p>
Previously building on desktop or laptop - times around 25-30mins for
complete build.  Really getting me down, decided I needed to upgrade my
hardware.  Then after consideration thought why should I be spending
more money on hardware when I've already got so much lying around?
Quick search failed to find distcc but instead found old (defunct)
project called "doozer" - tried, talked to the author, he recommended
distcc.  Downloaded yesterday, up and running in no time.  First
attempts:

<p>
With main desktop and laptop:              15mins (make -j 4)
<br>With main desktop, laptop and desktop 2:   18mins (make -j 8)
<br>Jiggled build order and with main desktop,
laptop and desktop 2:                      13mins (make -j 4)

<p>
Excellent results after some prodding about.

<p>
6. Any other observations:

<p>
Significant improvements with just the two machines (as noted in the
distcc web pages) and good enough to stop me from buying anything else
for a while.  Will continue to play around with configuration settings.
Considering putting another (older) machine into the cluster but wonder
whether it'll make enough of a difference.  Current hard limit to
improving times much further is the link stage which can take almost
two mins just by itself.

<p>
Great piece of software.  Many thanks,
<br>Richard Bown
<br>--
<br>Rosegarden.  Music Software For Linux

<hr>

<p>
Thank you very much for this great tool. Our only regret is not to have used it before.
&mdash;
Guillaume LAURENT, 
<a   href=http://www.telegraph-road.org/>telegraph-road.org</a>

<hr>

<p>
   Stephane Eranian, hp (linux ia64 maintainer):

<p>
Yes, distcc is really nice. I have been using it for a month or so
for my kernel compiles using a cluster of Itanium 2 machines. What
I like is that it is really easy to setup. The danger with the
approach is that you can easily overload your local (master) host.
As for kernel compiles for 2.5, there are a lot of ld steps
which are still all done on the master node.  Besides that you
can really feel the speed difference. I need to take a look at ccache
now that you mention it.

<hr>
<p>
   Grant Grundler, hp:

<p>
(Endorsement): Stephane and I played around with just distcc for
2.4 ia64 kernels on a smaller cluster of rx2600 (dual CPU).
The "master" runs out of CPU around -j16 (8 hosts).
But that resulted in 66 second kernel builds.
And distcc really is trivial to setup.


<hr>


<p>
Hey Martin-

<p>
I've only been using distcc for a little while, on and off, and have
only been on this mailing list for a month or so... but I've gotta say,
you're doing one hell of a nice job.  It seems extremeley rare to see
one-man projects with devs so open about what they're doing, why they're
doing it, and what potential problems might be these days...
<p>

You're doing a bang up job and distcc totally rocks.  Keep up the good
work!

<p>
Rob



<hr>
<p>
distcc just rocks for doing regression tests!


<hr>

<p>
J.T. Conklin:

<p>
I'm in the midst of converting the build infrastructure at work from
using recursive gmake to Scons, and
thought it might be useful to share my experiences.

<p>
The gmake build scheme we have been using is much like many others I
have encountered over the years.  A list of subdirectories are built
sequentially by iterating over the list and spawning a new make for
each.  One problem with this approach is that the end of each module/
subdirectory becomes a synchronization point.  For example, when there
are fewer files to compile (in a given module) than you have processes
in your pool, you're not taking full advantage of your build farm.

<p>
This deficiency can be addressed by rewriting your makefiles to avoid
recursion (Cf Peter Miller's paper
"<a
href="http://www.tip.net.au/~millerp/rmch/recu-make-cons-harm.html">Recursive
Make Considered Harmful</a>"
or by using another tool (like scons, jam, etc.) that constructs a full
dependency graph before building.

<p>
Here's a real-world example that demonstrates the advantages.  Our
source code is about 600,000 lines of C++, with a small amount of C
and assembly thrown in.  There are sixteen libraries, a dozen or so
executables (including four very large ones), etc.
<p>

On a AMD Athlon 2000+, using our old recursive gmake with -j4 (mainly
to hide i/o latency):
<br>        real:   21m26.052s
<br>        user:   19m44.063s
<br>        sys:    1m28.127s

<p>
On a distcc build farm including the above AMD machine, plus 2 1.0GHz
PIII machines and 2 Dual 1.0GHz PIII machines with gmake -j20:
<br>        real:   10m33.496s
<br>        user:   5m34.436s
<br>        sys:    1m0.731s

<p>
Our scons build on the single AMD machine with -j4:
<br>        real:   13m52.052s
<br>        user:   12m54.470s
<br>        sys:    0m43.463s

<p>
And finally, scons -j20 on the distcc build farm:
<br>        real:   3m47.938s
<br>        user:   3m16.116s
<br>        sys:    0m35.347s

<p>
While distcc alone more than doubled the performance, distcc plus a
build scheme that takes full advantage of build parallelism really
lets it shine by speeding up the build more than 5 times.

<hr>

<p>
distcc was too easy to setup. You should add some obscure dependency so
its a bit more difficult to get running. Nice job on a great util!!

<p>
Only downside is that I am tempted to buy more boxes now ;)
&mdash; Justin Kirby, openaether.org:


<hr>


<p>
   distcc is awesome: easy install, no maintenance, works right.  It's
saved us a lot of time, and the price sure beats that of Trolltech's
Teambuilder!

<hr>

<p>
I have a Sunblade 100 on my desktop and it
takes 4 minutes to compile one project of mine.  Using 3 public Sunblade
1000's it now only takes 1 minute. Thank You, Thank You, Thank You.

<p>
       -- Shane McDaniel, MIT
</tr></table>
    <div class="thanks">Copyright &copy; 2002&ndash;2004, 2006 Martin Pool.
     <p>Send comments to <tt>distcc(at)lists.samba.org</tt>
</html>