Re: DISTCC_POTENTIAL_HOSTS, localhost, and slots

Dave Abrahams <[email protected]> Thu, 15 May 2014 04:37:50 -0700
Newsgroups gmane.comp.compilers.distcc
Message-ID <CAHaNa2Uo_sx9fE1eEVndh+EV2cPCEGABQSGt=WzViRS4gs=-pA@mail.gmail.com>
--===============3727532164136269300==
Content-Type: multipart/alternative; boundary=089e0149542445b83d04f96ebb0d

--089e0149542445b83d04f96ebb0d
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Wow, Jeff, that looks pretty awesome.  It hasn't been touched since 2006,
though; does it work with pump mode?


On Wed, May 14, 2014 at 8:00 AM, Jeff Domogala <[email protected]>wr=
ote:

> Another suggestion if you don=E2=80=99t want to dig into the code=E2=80=
=A6  I ran across
> DMUCS (http://dmucs.sourceforge.net) about 8 years ago when I was
> building up a farm of machines to be used by a couple hundred users.  DMU=
CS
> will manage the compute resources and is able to handle unavailability of
> resources.  I did make a few of my own tweaks to the source code for
> monitoring and other glitches I have run into along the way.  I=E2=80=99m=
 still
> using DMUCS as my frontend for distcc and am very happy.  If there are an=
y
> questions about my setup fire away.
>
>
>
> --Jeff
>
>
>
> *From:* Fergus Henderson [mailto:[email protected]]
> *Sent:* Wednesday, May 14, 2014 8:47 AM
> *To:* Dave Abrahams
> *Cc:* [email protected]
> *Subject:* Re: [distcc] DISTCC_POTENTIAL_HOSTS, localhost, and slots
>
>
>
> On Wed, May 14, 2014 at 6:16 AM, Dave Abrahams <[email protected]> wrote:
>
> DISTCC_POTENTIAL_HOSTS seems like a great idea; as I scale up the build
> farm I=E2=80=99d like to be able to deal with unavailability, but I=E2=80=
=99m having
> trouble getting it to work right.
>
>
>
> First, after much fooling around I surmise two undocumented facts(?)
>
>
>
> 1. it adds ,lzo,cpp to all the hosts implicitly
>
>
>
> Yes, that's done in ExportDISTCC_HOSTS function in the pump script (sourc=
e
> file pump.in).
>
>
>
> 2. it only accepts bare host names, not the usual
> @?hostname/<slots>(,<extension>)* syntax
>
> Is that correct?
>
>
>
> Pretty much, yes.  It just passes the variable's value to lsdistcc, and
> lsdistcc accepts either bare host names, or a printf format string
> containing %d, e.g. "mydistcc%d" or "distcc%d.my.own.org.com", not *host
> specifications* as described the distcc man page.
>
>
>
> If so, it would be good if these things were documented explicitly
> somewhere.
>
>
>
> Agreed.  I would be happy to accept a patch to add such documentation.
>
>
>
> Another possibility would be to change lsdistcc to handle host
> specifications.
>
>
>
> Also, if I want localhost to be one of the hosts, it looks like I need to
> run distccd there.  That doesn=E2=80=99t seem like the most efficient thi=
ng to do,
> since normal local compilation will presumably have fewer layers to work
> through.  Am I mistaken?
>
>
>
> Well, you only need to run distccd for lsdistcc's initial query (lsdistcc
> doesn't have any special casing for localhost).
>
> But any actual compilations done will not go via the distccd on localhost=
;
> distcc itself does have special casing for localhost.
>
>
>
> I'd be happy to accept a patch to src/lsdistcc.c to make it special-case
> "localhost".
>
>
>
> Lastly, I=E2=80=99ve only been able to get it to run the default 6 (?) sl=
ots per
> host using DISTCC_POTENTIAL_HOSTS.  My .distcc/hosts file looks like this=
,
> and has been working pretty well:
>
>
>
> --randomize
>
> localhost/10
>
> bruford/10,lzo,cpp
>
> fripp/10,lzo,cpp
>
>
>
> Is there any way to get an effect like that using DISTCC_POTENTIAL_HOSTS,
> i.e. 10 slots per host, no local distccd?
>
>
>
> Not currently.  I imagine that it would require only very minor changes t=
o
> the ExportDISTCC_HOSTS function in the pump script (source file pump.in),
> though.
>
>
>
> Cheers,
>
>    Fergus.
>
>
>
> --
>
> Fergus Henderson <[email protected]>
>
>
>
> "Defend the user, exclude no one, and create magic." -- Eric Schmidt.
>
>
>



--=20
Dave Abrahams

--089e0149542445b83d04f96ebb0d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Wow, Jeff, that looks pretty awesome. =C2=A0It hasn&#39;t =
been touched since 2006, though; does it work with pump mode?</div><div cla=
ss=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Wed, May 14, 2014 =
at 8:00 AM, Jeff Domogala <span dir=3D"ltr">&lt;<a href=3D"mailto:jeff.domo=
[email protected]" target=3D"_blank">[email protected]</a>&gt;</span> =
wrote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div lang=3D"EN-US" link=3D"blue" vlink=3D"p=
urple"><div><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Another sugge=
stion if you don=E2=80=99t want to dig into the code=E2=80=A6=C2=A0 I ran a=
cross DMUCS (<a href=3D"http://dmucs.sourceforge.net" target=3D"_blank">htt=
p://dmucs.sourceforge.net</a>) about 8 years ago when I was building up a f=
arm of machines to be used by a couple hundred users.=C2=A0 DMUCS will mana=
ge the compute resources and is able to handle unavailability of resources.=
=C2=A0 I did make a few of my own tweaks to the source code for monitoring =
and other glitches I have run into along the way.=C2=A0 I=E2=80=99m still u=
sing DMUCS as my frontend for distcc and am very happy.=C2=A0 If there are =
any questions about my setup fire away.<u></u><u></u></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">--Jeff<u></u><u></u=
></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p><p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family=
:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"=
font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Fe=
rgus Henderson [mailto:<a href=3D"mailto:[email protected]" target=3D"_blan=
k">[email protected]</a>] <br>

<b>Sent:</b> Wednesday, May 14, 2014 8:47 AM<br><b>To:</b> Dave Abrahams<br=
><b>Cc:</b> <a href=3D"mailto:[email protected]" target=3D"_blank">dis=
[email protected]</a><br><b>Subject:</b> Re: [distcc] DISTCC_POTENTIAL_HO=
STS, localhost, and slots<u></u><u></u></span></p>

<div><div class=3D"h5"><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p><div>=
<div><div><p class=3D"MsoNormal">On Wed, May 14, 2014 at 6:16 AM, Dave Abra=
hams &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">dave@boostp=
ro.com</a>&gt; wrote:<u></u><u></u></p>

<div><p class=3D"MsoNormal">DISTCC_POTENTIAL_HOSTS seems like a great idea;=
 as I scale up the build farm I=E2=80=99d like to be able to deal with unav=
ailability, but I=E2=80=99m having trouble getting it to work right.<u></u>=
<u></u></p><div>

<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div><p class=3D"MsoNo=
rmal">First, after much fooling around I surmise two undocumented facts(?)<=
u></u><u></u></p></div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>=
</div><div>
<p class=3D"MsoNormal">
1. it adds ,lzo,cpp to all the hosts implicitly<br clear=3D"all"><u></u><u>=
</u></p></div></div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></d=
iv><div><p class=3D"MsoNormal">Yes, that&#39;s done in=C2=A0ExportDISTCC_HO=
STS function in the pump script (source file <a href=3D"http://pump.in" tar=
get=3D"_blank">pump.in</a>).<u></u><u></u></p>

</div><div><p class=3D"MsoNormal">=C2=A0<u></u><u></u></p></div><blockquote=
 style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6=
.0pt;margin-left:4.8pt;margin-right:0in"><div><div><div><p class=3D"MsoNorm=
al">2. it only accepts bare host names, not the usual @?hostname/&lt;slots&=
gt;(,&lt;extension&gt;)* syntax=C2=A0<u></u><u></u></p>

</div></div></div></blockquote><div><blockquote style=3D"border:none;border=
-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margi=
n-right:0in"><div><p class=3D"MsoNormal">Is that correct?<u></u><u></u></p>

</div></blockquote><div><p class=3D"MsoNormal">=C2=A0<u></u><u></u></p></di=
v></div><div><p class=3D"MsoNormal">Pretty much, yes. =C2=A0It just passes =
the variable&#39;s value to lsdistcc, and lsdistcc accepts either bare host=
 names, or a printf format string containing %d, e.g. &quot;mydistcc%d&quot=
; or &quot;distcc%<a href=3D"http://d.my.own.org.com" target=3D"_blank">d.m=
y.own.org.com</a>&quot;, not <i>host specifications</i> as described the di=
stcc man page.<u></u><u></u></p>

</div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><blockquote=
 style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6=
.0pt;margin-left:4.8pt;margin-right:0in"><div><div><div><p class=3D"MsoNorm=
al">If so, it would be good if these things were documented explicitly some=
where.<u></u><u></u></p>

</div></div></div></blockquote><div><p class=3D"MsoNormal"><u></u>=C2=A0<u>=
</u></p></div><div><p class=3D"MsoNormal">Agreed. =C2=A0I would be happy to=
 accept a patch to add such documentation.<u></u><u></u></p></div><div><p c=
lass=3D"MsoNormal">

<u></u>=C2=A0<u></u></p></div><div><p class=3D"MsoNormal">Another possibili=
ty would be to change lsdistcc to handle host specifications.<u></u><u></u>=
</p></div><div><p class=3D"MsoNormal">=C2=A0<u></u><u></u></p></div><blockq=
uote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0=
in 6.0pt;margin-left:4.8pt;margin-right:0in">

<div><div><div><p class=3D"MsoNormal">Also, if I want localhost to be one o=
f the hosts, it looks like I need to run distccd there. =C2=A0That doesn=E2=
=80=99t seem like the most efficient thing to do, since normal local compil=
ation will presumably have fewer layers to work through. =C2=A0Am I mistake=
n?<u></u><u></u></p>

</div></div></div></blockquote><div><p class=3D"MsoNormal"><u></u>=C2=A0<u>=
</u></p></div><div><p class=3D"MsoNormal">Well, you only need to run distcc=
d for lsdistcc&#39;s initial query (lsdistcc doesn&#39;t have any special c=
asing for localhost).<u></u><u></u></p>

</div><div><p class=3D"MsoNormal">But any actual compilations done will not=
 go via the distccd on localhost; distcc itself does have special casing fo=
r localhost.=C2=A0<u></u><u></u></p></div><div><p class=3D"MsoNormal"><u></=
u>=C2=A0<u></u></p>

</div><div><p class=3D"MsoNormal">I&#39;d be happy to accept a patch to src=
/lsdistcc.c to make it special-case &quot;localhost&quot;.<u></u><u></u></p=
></div><div><p class=3D"MsoNormal">=C2=A0<u></u><u></u></p></div><blockquot=
e style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in =
6.0pt;margin-left:4.8pt;margin-right:0in">

<div><div><div><p class=3D"MsoNormal">Lastly, I=E2=80=99ve only been able t=
o get it to run the default 6 (?) slots per host using DISTCC_POTENTIAL_HOS=
TS. =C2=A0My .distcc/hosts file looks like this, and has been working prett=
y well:<u></u><u></u></p>

</div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div></div><bloc=
kquote style=3D"margin-left:30.0pt;margin-right:0in"><div><div><p class=3D"=
MsoNormal">--randomize<u></u><u></u></p></div></div><div><div><p class=3D"M=
soNormal">

localhost/10<u></u><u></u></p></div></div><div><div><p class=3D"MsoNormal">=
bruford/10,lzo,cpp<u></u><u></u></p></div></div><div><div><p class=3D"MsoNo=
rmal">fripp/10,lzo,cpp<u></u><u></u></p></div></div></blockquote><div><div>

<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p></div><div><p class=3D"MsoNo=
rmal">Is there any way to get an effect like that using DISTCC_POTENTIAL_HO=
STS, i.e. 10 slots per host, no local distccd? =C2=A0<u></u><u></u></p></di=
v></div></div>

</blockquote><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div><div=
><p class=3D"MsoNormal">Not currently. =C2=A0I imagine that it would requir=
e only very minor changes to the ExportDISTCC_HOSTS function in the pump sc=
ript (source file <a href=3D"http://pump.in" target=3D"_blank">pump.in</a>)=
, though.<u></u><u></u></p>

</div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div></div><p cl=
ass=3D"MsoNormal">Cheers,<u></u><u></u></p></div><div><p class=3D"MsoNormal=
">=C2=A0 =C2=A0Fergus.<br clear=3D"all"><u></u><u></u></p><div><p class=3D"=
MsoNormal"><u></u>=C2=A0<u></u></p>

</div><p class=3D"MsoNormal">-- <u></u><u></u></p><div><p class=3D"MsoNorma=
l">Fergus Henderson &lt;<a href=3D"mailto:[email protected]" target=3D"_bla=
nk">[email protected]</a>&gt;<u></u><u></u></p></div><div><p class=3D"MsoNo=
rmal">

<u></u>=C2=A0<u></u></p></div><div><div><p class=3D"MsoNormal"><span style=
=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">=
&quot;Defend the user, exclude no one, and create magic.&quot; -- Eric Schm=
idt.</span><u></u><u></u></p>

</div></div><div><p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p></div></div=
></div></div></div></div></div></blockquote></div><br><br clear=3D"all"><di=
v><br></div>-- <br><div dir=3D"ltr">Dave Abrahams<br><br></div>
</div>

--089e0149542445b83d04f96ebb0d--

--===============3727532164136269300==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

__
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/distcc
--===============3727532164136269300==--