Hi Robert,
Congrats for finding the bug and thanks for fixing.

On 02/13/2018 11:55 PM, Robert Caulk wrote:
the issue was compiler related. GCC 5.4 on ubuntu 16.04 initialized factorizeOnly to false by default, while GCC 7.2 on ubuntu 18.04 did not do this.

That's a good example of "undefined" behavior when using non-initialized variables... Definitely a nasty bug.

Therefore, the only necessary change ended up being the explicit initialization of factorizeOnly=false.
Indeed. :)

In addition to the bug fix, I edited the solvers so flow.useSolvers=3 and 4 can now be used with the default CPU build. I can confirm that flow.useSolver=4 enables multicore CPU factorization, while flow.useSolver=3 sticks to 1 core factorization :-).

Excellent. FYI multicore CPU factorization was faster than single core in my benchmarks, but multicore solve phase (using the factorized form) was not, it was even a bit slower than single core. Hence the distinct attributesĀ  numFactorizeThreads and numSolveThreads.


Mailing list: https://launchpad.net/~yade-dev
Post to     : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to