Fog Creek Software
Discussion Board




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 ...

Thanks.

P.S. Sorry for my bad english.

Giorgio
Wednesday, November 19, 2003

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.

Maybe whatever tools you're using have some similar feature.

Chris Hanson
Wednesday, November 19, 2003

That's the only option if you don't consider VMWare GSX/ESX Server.

When you are trying to share processing power and memory, have to use a model like that.

I don't know if it's ESX or GSX servers that can dynamically allocate memory/processing power to the most hungry vms. But anyway assuming they can and you can set up remote logins for all developers that might be one way to solve the problem.

Li-fan Chen
Wednesday, November 19, 2003

if you're a linux shop, check out openmosix. 

It was mentioned in this thread a while back:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=73349&ixReplies=9

Steve H
Wednesday, November 19, 2003

Build farms can be built without terminal services or vmware though.

Li-fan Chen
Wednesday, November 19, 2003

Nothing like OpenMosix that works both on Linux and Windows ?

Giorgio
Wednesday, November 19, 2003

There's Incredibuild, which is supposed to farm out compiles across a group of PC's fairly automatically.

I've never used it, but I've heard good things about it.

Chris Tavares
Wednesday, November 19, 2003

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.

Then you could shh/x/termserv/download the build/etc to the machine in question, and test away.

Rhys Keepence
Wednesday, November 19, 2003

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 ....

Giorgio
Wednesday, November 19, 2003

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.




But running a job on a very

Li-fan Chen
Wednesday, November 19, 2003

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.

So your best bet is to buy a very powerful multiprocessor machine, and pray for the best. Most software at the moment should try to use more than a single processor in such a single machine arrangement. That way stock application like photoshop knows what to do.

Li-fan Chen
Wednesday, November 19, 2003

IncrediBuild for Windows, XCode for Mac, and gcc's distributed builds for Linux/*BSD.

just fyi, the PVM and mosix stuff AFAIK is more for parallel algorithms & computation.  Although a make -j could probably get split up with mosix, gcc's distributed builds already does the work for you.

H. Lally Singh
Thursday, November 20, 2003

If you develop with gcc, there is a very simple and powerful solution available for free. Check out:

http://distcc.samba.org/

and by the way, be sure to read about the sister project too:

http://ccache.samba.org/

Some Linux distributions, such as Gentoo (which builds from source when installing), comes with these features.

Jonas B.
Tuesday, November 25, 2003

*  Recent Topics

*  Fog Creek Home