Share powerful PC CPU ?
OK this is the problem. We are a group of four developers. And everybody has a laptop. We are forced to renew our hardware very often beacuse we use very heavy developping tools. Is there a way to share the computational power of ONE server across the network ? The only solution I know is the terminal server one, but I want to know if there are others ...
Xcode on Mac OS X supports a feature called "Distributed Build" which farms out compilation to other machines on your network. It works really well.
That's the only option if you don't consider VMWare GSX/ESX Server.
if you're a linux shop, check out openmosix.
Build farms can be built without terminal services or vmware though.
Nothing like OpenMosix that works both on Linux and Windows ?
There's Incredibuild, which is supposed to farm out compiles across a group of PC's fairly automatically.
Why not run a thread on the server that polls your source code repository for changes, and runs the appropriate make file on any change.
Compiling the source code it's not the only heavy task. I would like something that enhance the speed of photoshop to for example. Exactly what does openmosix but for windows too ....
In general usage in the Windows world there are no general replacement switch that will tak emultithread/multiprocess apps and allow them to just run on multicomputers (using spare far memory and spare far processing power on the fly) without binary code modification. There are no NUMA-like facility in the current breed of consumer AMD and Intel processors or chipsets. MPI and PVM have been ported, but it is the application programmer's initiative to program in distributed processing (across not only processor, but machines). Perhaps something like this is in the work, but I am not aware of it yet. Perhaps something like this can be hacked into a tool like VMWare/VirtualPC, but you would probably need a really intelligent hot spot optimizer to figure out when it's appropriate to use far memory and far processing power.
In general it takes distributed programming discipline and active participation of the programmer to give the compiler hints as to what should go over the network or not to a separate machine. Be it PVM/MPI/Javaspaces/TSpace you have to think about how your application should map to such a proceessing framework.
IncrediBuild for Windows, XCode for Mac, and gcc's distributed builds for Linux/*BSD.
H. Lally Singh
If you develop with gcc, there is a very simple and powerful solution available for free. Check out:
Fog Creek Home