PDA

View Full Version : Bullet Dynamics not using all CPU cores.



blackmondy
08-31-2017, 07:40 PM
Appalling to see only one core was used for dynamics calculation. Anyway to tweak for better CPU utilization ?

137804

JCG
09-01-2017, 01:45 AM
The way they explained it to me was that if Bullet was made multi threaded, it would stop being deterministic, or something like that. So, every time you ran the simulation, the result would be slightly different. The only way to make the simulation be exactly the same every time you rendered or scrubbed the timeline was to make it single threaded.

blackmondy
09-01-2017, 08:20 AM
I find that reasoning rather lame.

My CPU has 6-cores, so technically it is only using half a core for calculation, wasting the rest of the cores.

squarewulf
09-01-2017, 10:01 AM
I find that reasoning rather lame.

A bit. They should give us an option, sometimes I couldn't care less if the sim was slightly different every time. Other times, like working with a group on a big project, I definitely would need the sim to be consistent. Making an option to use all cores and risk variation would be nice.

jeric_synergy
09-01-2017, 10:42 AM
Do other/all Bullet implementations require single-thread operation?

If not, then that reason was b.s.

You know who can whip up plausible rationalizations at the snap of a finger? Clever people. Like programmers.

DrStrik9
09-01-2017, 12:08 PM
Do other/all Bullet implementations require single-thread operation?

I'm no developer, but I can tell you that Blender's bullet calculations are MANY times faster than LW's. This leads me to suspect that Blender's calculations are multi-threaded. But that's just a guess.

Snosrap
09-01-2017, 08:08 PM
Bullet is not (yet) multithreaded or GPU accelerated. It's slow due to LW's old underlying structure. Bullet was amazingly fast in LW Core.

jeric_synergy
09-02-2017, 11:15 AM
I'm no developer, but I can tell you that Blender's bullet calculations are MANY times faster than LW's. This leads me to suspect that Blender's calculations are multi-threaded. But that's just a guess.

You can just open.... dang... Task Manager, use the CPU tab, and watch the various cores to see if they get utilized.

jwiede
09-02-2017, 12:46 PM
Bullet is not (yet) multithreaded or GPU accelerated. It's slow due to LW's old underlying structure. Bullet was amazingly fast in LW Core.

Well, as of Bullet 2.80 (http://bulletphysics.org/wordpress/?p=340) there's a completely 100% GPU-computed rigid body pipeline preview available (Takiro Harada's work) for both AMD and Nvidia (and this is distinct from the 3.x stuff). See this GitHub issue (https://github.com/bulletphysics/bullet3/issues/126) for status on a preview multithreaded Bullet implementation.

cosbovfx
09-02-2017, 02:01 PM
Houdini has a "use Parallel constraint solver" option which enables Multithreaded solving, sometimes I use it, sometimes not. It can cause the results to be a little wonky as the velocity of the collisions is calculated differently. If I where happy with a solve using single thread calc, and then just wanted to speed up the calculations. I would get a different result after enabling the parallel constraint option.

137816.

Snosrap
09-02-2017, 09:36 PM
Well, as of Bullet 2.80 (http://bulletphysics.org/wordpress/?p=340) there's a completely 100% GPU-computed rigid body pipeline preview available (Takiro Harada's work) for both AMD and Nvidia (and this is distinct from the 3.x stuff). See this GitHub issue (https://github.com/bulletphysics/bullet3/issues/126) for status on a preview multithreaded Bullet implementation.

Sweet. Good to know.

pinkmouse
09-03-2017, 02:52 AM
Sweet. Good to know.

Indeed, but I very much doubt we'll see that in Next. As usual, the Bullet we get will likely be about three years out of date.