Distributed Compilation
BagOBones writes "Tired of waiting for your source to compile? Dreaming of having your own cluster and having something useful to do with it? Well Trolltech might have the answer. Trolltech Teambuilder lets you turn your network into a clustered C/C++ compiler."
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
a.c
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:a.exe
a.obj
I can see it coming ....
"wow! imagine a compiler cluster of those!"
But isn't the point of having subscriptions to avoid advertisements?
That said, I've certainly worked on products that needed at least 3 hours to build an entire tree. These builds were done regularly around 3 in the morning so that the daily drop was available to QA first thing in the morning. It wasn't really necessary to farm out the compilation across machines because it wasn't a big deal to maximize speed.
As for developers' machines, it wasn't like every change was accompanied by a full build. You recompile the files that changed and link the object files together. Any smart build system should be able to handle this type of logic. Such a local build would take about 2 or 3 minutes (if that. This time could be made even shorter by using dlls instead of a single binary). I guess this Trolltech system could reduce this wait even further, but I'm not sure I see the point.
When else are you going to refill your coffee?
I have been pwned because my
Maybe its just me, but $750 for a farm size of 5 seems kinda pricey for a few moments saved here and there. At my job, we have pretty speedy machines, and almost nothing we have built has taken more than 10 min for a complete recompile. And since you rarely recompile everything, its usually a couple seconds to a minute to compile your changes. I can't imagine that this would speed that up enough to justify the price.
Get those negative moderation points ready! The trolls are going to have a field day with this...
What exactly do I mean by this? It's easy to see. Any time there is a story about Microsoft, there are 300 posts crying for the government to step in and break MS into two companies, force them to open their code, etc. Excuse me folks, but having the government interfere with the economy is not capitalism. It's communism. I don't want this great nation to end up like Russia, ok?
Another thing that pisses me off: anytime there is a circle-jerk discussion about Mozilla, people whine and bitch about how Internet Explorer doesn't conform to W3C standards, and how unfair it is. Well guess what? We don't need the W3C (government-wannabe of the Internet) forcing companies to do things. The market has decided - Internet Explorer is the standard. That's how the "Invisible Hand of John Smith" works. If you want to gain market share, follow IE's lead. Otherwise, go back to Cuba or China you commie bastards.
BTW, if this gets modded down, you can bet the Liberals are out in force modding down all group-think. Fuck You!
Visit the new Troll site!
What does this package have that makes it any better than dmake(distributed make)? Convincing anyone that uses linux to go with a $750 product over an open source one seems silly, if they were going to do that they wouldn't be using linux in the first place.
use an interpreter. (Okay, it is not new. I lied.)
BTW, is there "lint"-like utilities for any scripting/interpreted languages that detects "suspicious" stuff before running?
This may help one get the best of both worlds.
I personally prefer interpreted languages. They are usually easier to read IMO because there is less formality in the way.
Interpreted languages attempt to reduce problems by making the view clearer, while compiled languages attempt reduce problems by using a fatter air-bag.
It is sort of like chosing between a fighter plane that is highly menueverable by being light, or one that is heavily armored. They are both different strategies to the same goal. The choice often depends on the pilot and training.
Table-ized A.I.
That way, if someone has already built the file you're about to build, it's just a copy. Even better is if you have a continous build script caching results ahead of time for you.
It has worked pretty well for me so far.
Ryan T. Sammartino
"Ancora imparo"
What about {open}Mosix cluster?
o rge.net/
http://www.mosix.org/
http://openmosix.sourcef
You can do this for free with PVMGmake. I have a HOWTO
check out distcc while you're at it. from Martin Pool.
Program compilation is not an obvious candidate for parallelization because it is an extremely memory intensive process. So to do this right you'd need very fast communication between your CPUs.
However, what Trolltech is probably doing, is farming out the independant bits of your program that you would link together in the end anyway. That might really help on rebuilding the entire project at once. However, if your program is set up well, you usually only need to recompile one file at a time.
So the times when you could see the biggest speed up in compilation, you will need this least.
You can do distributed builds with ClearCase (I remember doing this a few years back on Digital UNIX). Quite easy to do really. Quite expensive for cleacase licenses (oh yeah, and DEC compiler licenses...)
Steve.