Multithreaded populator?

Started by PorcupineFloyd, October 11, 2008, 02:37:48 PM

Previous topic - Next topic

PorcupineFloyd

Will it be possible in the future to make populator use more than one core?
Or a simple workaround to have multiple populators working at once (on different cores)?

Mohawk20

Just how big is your population??

It really should not be necessary to need multicore support, only for the populator!
Howgh!

PorcupineFloyd

I have something like 30.000 x 30.000 with distances between models set to "5" and it takes lots of time to populate such an area. I was wondering if it would be possible to simply cut the area into 4 parts and populate each one on separate core.

Mohawk20

I have currently 5 populations on a 10.000 x 10.000 space, with a spacing of 20, and it really is full. But the instances load in a few seconds.

Maybe it's not so much the amount of cores, but the speed of a single core?

In cases like yours it would come in handy, but those cases are so rare it would not be cause for multicore populating I fear.
Howgh!

PorcupineFloyd

Yes, instances load in few seconds but they generate in even up to few minutes.

Oshyan

Sometimes populating does take quite a long time (I have one scene where it can take upwards of 10 minutes). Multithreading the populators will probably be useful and is something we will look at in the future.

- Oshyan

PorcupineFloyd

I'm asking because I've found also in other 3D software that sometimes only main rendering is coded to make use of multiple cores. For example in Vue, populating ecosystems and even calculating radiosity is done on one core. I was wondering if it's because of minor speed increase or complexity of code - that's why not everything has multiple core support.

Oshyan

Well, it's always more complicated to code multithreaded systems. I think generally speaking why an app like Vue wouldn't be more fully multithreaded is just that it is still relevantly recently that multithreading has been useful in the mainstream, and Vue was not really a professional-level application until Vue 6 a few years ago, at which point multithreading became more important. Still that being said it may just be that they don't see a big enough performance gain being possible for certain functions. I do think it would be useful in TG2's case though.

- Oshyan