2
$\begingroup$

I have a smoke animation in blender.

I wonder if it is possible to split the baking process of Physics / Smoke Simulation on several machines.

Can I run part of the simulation like Frame 1 to 100 on one machine and Frame 100 to 200 on another machine while combining both caches to one simulation from 1 to 200 later on? If yes how can I do that?

If no, do you know another option to speedup baking a simulation with the help of multiple machines?

Thanks,

Danny

$\endgroup$

2 Answers 2

7
$\begingroup$

As far as I know this is fundamentally impossible.

Physics simulations are temporally dependent data, in the sense that each frame status depends heavily on the previous one.

To calculate what happens at any given moment you need to know what happened immediately before, so you must have exact geometric and kinetic information about every intervening element in the simulation to know where they were and calculate where they will be next.

Without that you can't have just pull out of thin air how a simulation looks at an advanced arbitrary point in time without knowing exactly how it was an instant before.

This makes it impossible for a computer to calculate "frame 100" from scratch without having frame 099, or 099 without 098, and so on till the beginning of the simulation from a known "rest position".

The only methods I've read about for distributed simulation calculations are systems where the simulation is divided up into spacial chunks and each node calculates one of the chunks, which can effectively spread across several workers.

This however requires that all intervenients talk to each other frequently, and maintain a certain level of synchronicity, since all nodes need to finish a certain frame for so they can move forward.

$\endgroup$
2
  • $\begingroup$ Yes with the Blender fluid. I believe that Mantaflow and molecular add-on can calculate from an allotted frame number. $\endgroup$ Commented Jan 16, 2020 at 0:38
  • $\begingroup$ I thought the same, but was wondering if that could be an option to speed up baking. $\endgroup$
    – wizardofOz
    Commented Jan 19, 2020 at 13:20
2
$\begingroup$

Sorry, but I'm afraid not with Blender, either in the old Smoke sim or in Mantaflow. Here's what happens if you attempt to split the frame range-

https://youtu.be/GME_JfkQ9UY

Fluid sims (in my limited understanding) are based around vector fields, as you can see when you bake they seem to get slower as they progress (and the vector fields become larger and more complex), and are effectively built up sequentially. So as you can see in the above video, if you start simulating from frame 25 rather than frame 1, the simulation has no clue what happened from frame 1 to 25- because it has not been simulated.

The only way I know of to use multiple machines to do fluid/smoke sims is to get you wallet out and use Houdini. https://www.sidefx.com/docs/houdini/dyno/distribute.html

We may get GPU accelerated baking in the future, but that would be up to the Developers of Mantaflow itself, and then the Blender implementation of Mantaflow supporting it.

$\endgroup$
1
  • $\begingroup$ How would Houdini solve the sequential issue? $\endgroup$ Commented Feb 7 at 12:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .