(26-01-2022, 01:58 PM)locque Wrote: I'm investing into a second machine to run my project on, and I'm not sure what CPU to get.
Does Obi Fluid scale well with a huge amount of cores/threads, or is single-core performance more important? I'd prefer to use an AMD CPU unless there is some reason to go with Intel. How much would I benefit from going with 24 cores over 12 cores of similar speed for example?
It's very difficult to answer this accurately in a general case, as it depends a lot on the scene being simulated and the parameters used.
Obi makes
heavy use of multithreading. However, in order to avoid thread synchronization issues (threads writing the same memory location at the same time), it uses graph coloring to
partition constraints into batches. This is explained here:
http://obi.virtualmethodstudio.com/manua...aints.html
Constraints that do not affect the same particles are grouped together in a batch. All constraints within each batch are processed in parallel, and all batches are processed sequentially. In a typical scene you have around 5-15 constraint batches, each one is basically a "parallel for" over all constraints in it.
In the case of fluid, each particle constitutes a density constraint with all neighboring particles. The size of this neighborhood is determined by the fluid blueprint's "
smoothing radius". Larger smoothing radius --> more particles in each density constraint. Then, particles could be clumped together (--> more constraints) or sparsely distributed (--> less constraints).
Bigger constraints (larger smoothing radius, or clumped particles) would benefit from raw CPU clock speed. More constraints would benefit from more cores. So it really depends on what scene you're simulating. Hope this makes sense!
let me know if I can be of further help.