Search the Community
Showing results for tags 'deterministic'.
sebastian.vesenmayer posted a topic in RenderingHello, we are starting a particle system on two different computers which have synchronized positions of the emitter with timestamps. How can we make sure that all emitted particles get the same position/orientation/contact points with colliding objects, because we are observing different values for them? Is there a seed which can be set to get the same results on both machines? Thanks, Sebastian
sascha.schneider posted a topic in Physics, Navigation and Path FindingHello, We have played with the ClothSimulation and the PhysicalWind. The following questions came up so far: How to synchronize the wind across multiple computers ? referring to a similar discussion How to achieve a deterministic/synchronized state for the physic-bodies inside the simulation? Is there something similar to setSyncMode takeSyncData applySyncData Thank you in advance, Regards, Sascha
Hi, I'm investigating how to get physics deterministic. Of course I started out at setting physics.setStable(1) and using a fixed timestep (we modified the clock so we control each phyics time step.) Also, I set the budget to 1e6 so each step is not terminated before the budget runs out.. Also this reported bug has to be fixed before any deterministic results can be achieved. Starting two instances of the same sample (for example shapes/sphere_01) yield different outcomes which can be easily checked by visual inspection of the endposition of the individual spheres between the two application instances. I dug into the code and started logging the individual position of each sphere for each physics step into a file. Comparing the two files (from two application instances) show that the initial state is equal, but they diverge at a random moment during execution. Delving deeper, I also started writing to the file when each island was processed by which thread. I noticed that just before the sphere positions between the two instances diverge, they execute islands in a different order. So, it seems a multithreading issue. I ran the samples with physics single threaded many times, and then the results are always equal, so it is definitely a multithreading issue. Delving deeper into the code I did not find any race condition, or any interaction between the islands which might cause threading related read/write issues. My last suspicion is in the cpu context switch. Maybe the FPU/SSE registers are not saved on context switching causing the calculations to diverge? What is your opinion on this hypothesis? Best regards, Jorrit
Are physics simulations deterministic? IE assuming 3 different machines are all maintaing the same physics framerate, and given the same set of objects to work on, are the results compltely deterministic? (And assuming they are deterministic, I assume if one client drops a physics frame (or gets cut off early) the results are unspecified?)