Obi Official Forum
Which type of CPU is ideal? - Printable Version

+- Obi Official Forum (https://obi.virtualmethodstudio.com/forum)
+-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html)
+--- Forum: Obi Fluid (https://obi.virtualmethodstudio.com/forum/forum-3.html)
+--- Thread: Which type of CPU is ideal? (/thread-3293.html)



Which type of CPU is ideal? - locque - 26-01-2022

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 go with AMD unless there is some kind of huge benefit to choosing Intel.

As en example, how much better would 24 cores perform compared to 12 cores of similar speed?


RE: Which type of CPU is ideal? - josemendez - 26-01-2022

(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/manual/6.3/scriptingconstraints.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.