Re: SCons for distributed builds?

Russel Winder <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <[email protected]>
On Thu, 2018-04-05 at 16:18 +0000, Akins, Christopher (GE Aviation, Non-GE,
US) wrote:
> 
[…]
> I'm trying to modernize the process, and SCons has come favorably to my
> attention. Due to the lengthy and memory-intensive simulations, though, it
> would be useful if we could use the same build system to assign tasks to
> different nodes in a cluster. I'm willing to sink some time into making
> the necessary mods myself - for fault-tolerance, retries, etc - but I
> thought I'd ask if this had come up in the past. If it hasn't, would there
> be interest in having a distributed feature, or would it be more of a
> private fork?

Off the top of my head:

I would keep the decision making all on a single master node. SCons is
controlled by an acyclic directed graph and whilst there is Hazelcast etc.
Python is a single-threaded, single CPU progrmming language at its heart:
keeping data structures in a single PVM is the best way forward.

Distributing discrete, self-contained tasks which are essentially pure
functions makes a great deal of sense for seriously big builds. I did some
Python and SCons training for a company in 2007 who had a not dissimilar
problem to the one I think is being described here, and it worked very well.
Though I suspect Parts would have helped a lot and saved a lot of hand
crafting.

For distribution, 0MQ and a dedicated application level communications
protocol may well help.

Traditionally, Python has not been the best language for handling
asynchronous activity, Go or Java (or Scala, Kotlin, Groovy, etc) were the
"go to" languages since they have threadpools and tasks so as to avoid
messing around with single threaded event loops and callbacks.  I haven't
plaued with the async/await in Python 3.5+ nor asyncio, but it is a single
threaded event loop, and I am a blocked task in a thread pool sort of person
as "callback hell" is not where I want to go. Now that SCons is a Python 3
system, this stuff should be tried.

I wouldn't start anything new in this area until after a conversation with
Jason about Parts. 

-- 
Russel.
=========================================
Dr Russel Winder     t:+44 20 7585 2200
41 Buckmaster Road   m:+44 7770 465 077
London SW11 1EN, UK  w: www.russel.org.uk

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEETwDs1X+Beyaiaer41L3V0s7Np7gFAlrGYcgACgkQ1L3V0s7N
p7hTpQ/+I7oIugjhVzbZe1wCb+edIdMHfV8gQ83WiQjZbEh6i87TK//Rhe3F39fe
kYcPDHGUpCb27q7YdkD56iI5Zw0CEDf7QFyMgQSujRRISVRjrEuPsUIpaY6TFmIG
5LBaQY9Z/G9Qv3PhW2n/B2xnkHBuBoBCxGy7b5of9iDoVbG+Q4D87io6tv5gtJmT
+bf4tgGOLOrdx29x5zh3qhygSLsMyHkXSO2xY3+HG2a1abtU+66k2ZFImtup7lML
FqVhHsQm1TQ72ILtfy4JRZBcTw6EKm0qoK8M9BBCHNNmAPpwbl5z4BQKbTz9uPW7
rHNjR8lgQJaWkVipleZsl90rlhoXzlGKkxTl/+ZlkQKKdQrDUDYsqHcaQj//9wVs
pfB1Xrr91g+GlHnKNOYDs9tSiQzUV7+aPqtSnxZqon4llpgEaSYgKkqmwV+mJrC+
tjBNwjrT/zYe/a5ojFZJjzFBqXeAcwqVF0mfbMCRSwK5IVRvs5ALephuti72i2pc
6faz2BTd5Q/DlxiUAr/ZP4/peUwznRHcM3NyR4ldkDt44LlEwVbVAlUyb2bIsCSa
no11mtlHs78qEnsUAZhgfYod+EGEVyIsJiZSZC6nrRpIaeVxHh01E17uDFnWh2sK
mWQNaYJQPmRq0tgsKzCvkyhxLW6JxMayZlI7zXwyRDEdanEMqZE=
=1464
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.