Development Blog

Where we pretend to know how to code.


VMPI - Part 2

Published: 2011-06-20

Author: Santamon

So basically, I did a little more playing about with VMPI today on my local LAN. In theory, I had a 2.3 GHz Quad and a 2.7 GHz I5 Quad processor at my disposal to compile the map - it didn’t quite work out that way.

So it all started okay, the BasePortalVis flew past, much much faster the normal, so it looked promising. Now the crunching for the actual visibility calculations began, in total I had 8 threads all processing the map, but take a look at the below:

What’s the issue here you may ask? Basically, the grey blocks are unallocated work, the green blocks are completed work, the red blocks allocated but not completed (Notice nothing allocated?) And the blue blocks are each thread. A quad core processor would give me 4 blue blocks, and two quad cores should give me 8!.. Notice that there is only 2 blue blocks on it, not 8! It seems that VMPI doesn’t allocate more work to anyone, until all allocated work is complete, so I had 6 threads sit there and do bugger all for the better part of an hour. Why did those two blocks take longer than the others? Basically, because the further down a block is, the bigger the work load is for that block - or it certainly seems that way. This pretty much means that VMPI is damn near useless for what I need it for unless you have about 15 odd computers all crunching data, in which case, you’re in luck. I think we might be scrapping the usage of VMPI for future compiles - ahh well, back to the drawing board!

So what have we learnt about VMPI from the past few days?

  • It doesn’t very efficiently allocate work and waits for all work to be completed before allocating more.
  • Requires quite a considerably amount of bandwidth.
  • Uses each CPU very inefficiently due to networking constraints and work allocation methods - this means you need more CPU’s.
  • It is possible to get computers all over the world to compile maps so in principle, it works, but not in practice.
  • It is possible to run it from any computer as no verification is done by VVis that you’re on a steam account, you don’t even need steam running. As long as you emulate the required file structure (and copy a few files), it works.

Historical Posts