makepanda --slaves option

Does makepanda support distributed builds with --slaves or is that a future feature?


I actually did implement distributed builds using slaves, but it was painfully slow (much slower than a single-processor build). The problem was that in order to use it, you had to put the panda source tree onto a file server, and the file I/O over the network was killing it.

Then, I got a two-core CPU, and I started working on a multiprocessor build system that uses multiple threads. That works great. I can build panda, including everything, from scratch in 10 minutes on my dual-core athlon. I use it all the time.

Since the two-thread build works so well, and since the slave code was such a disaster, I felt that it wasn’t worth my time to put in any more effort on the slave version. Instead, I polished the thread version, and stripped out the slave version.

  • Josh

Yeah, i noticed the build time goes from about an hour and a half to 10 minutes when you throw in a few more threads. Works for me :slight_smile:

That doesn’t make any sense.

On my machine, using two CPUs makes it almost twice as fast. It doesn’t make it ten times faster — why would it?

One thing you might not realize - if you use makepanda to compile panda, then edit a file, then use makepanda to compile panda again, the second time, it doesn’t compile all of panda. It only compiles the files that need to be recompiled.

  • Josh

I was refering to my one single threaded box takes about and hour and a half and my other with hyperthreaded dual cores and dual processors (can run 4+ threads) takes around 10 minutes. I wasnt trying to say threading was magical in any way. It’s just nice that the builder can take advantage of extra horse power…

Sounds likely to be a difference in RAM. The program interrogate, which is invoked often during compilation, uses a lot of RAM ( > 1GB), so if your single-CPU box is light on RAM, it could be going virtual–which will slow the build WAAAY down.

Other things being equal, a 4-CPU box wouldn’t compute things more than 4 times faster than an equivalent 1-CPU box.


Yeah, I noticed interogate eating a ton of ram. Thats probably the difference…