Single Threaded vs Mulithreaded constraint solvers.

   1603   1   1
User Avatar
Member
20 posts
Joined: Feb. 2015
Offline
Hello,

Recently I had been having a issue of taking a file I was working on at home..built on a old first gen i7 cpu to at work current 10 core xeon chip. The constraints were not acting the same way. I also had done the file in 16.07 at home vs 16.5 at work. Then I got a new I9 10 core for at home and was having the same issue. Constraints just ripping them selves apart and not holding like they should. Bullet packed prims… I thought this was due to the cpu chips being different maybe they had different floating point math instructions etc.

Then I found out that in 16.5 they removed the single threaded constraint solver option. Now everything is running in parallel, solves are happening faster. But not acting the same way. Even in the help doc they mention that the solvers act different.. like friction and so on. What are you doing workflow wise to ensure files work the same? Thanks Jeremy
User Avatar
Staff
727 posts
Joined: Oct. 2012
Offline
The “Parallel Gauss-Seidel (Islands)” solver in 16.5 is essentially the same as the old single-threaded constraint solver, but if there are independent sets of interacting objects (islands) it will solve them in parallel. If you have a single big stack of objects, it will be single-threaded. You shouldn't see any significant change in behaviour, unless you were using the old parallel constraint solver.

Just a guess, but you may be affected by this fix in 16.5:
In 16.5.144:

Fixed a couple issues with how the Bullet solver reports the applied force / torque for a constraint. A bug in the Bullet engine caused the applied impulse to only be reported for one axis, and the values could change dramatically when adjusting the number of substeps on the solver. To update existing setups, force thresholds should likely be multiplied by at least the number of solver substeps.

For constraints that can affect position or rotation (e.g. pin and spring), the solver now uses significantly less memory and is about 20% faster solving constraints when the constraint type is set to “all”

The Bullet solver now always outputs the ‘force’, ‘torque’, ‘distance’, and ‘angle’ attributes regardless of constraint type.
  • Quick Links