markstock
Joined 2 years ago
Joined 2 years ago
I have no problem using the word "fractal" to communicate these shapes, but I'd like folks to realize that fractals are not a force, not a goal of nature, and do not answer "how."
The second advantage is removing the conditional in the inner loop.
1) the attraction-repulsion pair is typical of "boids" simulations, and also features in the Lennard-Jones forces acting in atoms (albeit with different powers on the decay rate);
2) making the force drop to zero for particle-particle distances approaching zero is effectively treating each particle as a "cloud" and not a singular point, it's called "regularization" in vortex particle methods and "Plummer softening" in gravitational methods; it's primary benefit is with SIMD and parallelization by removing the need for a (i != j) conditional; and
3) slow contraction (multiplying each particles' position by (1-epsilon)) is a technique used by generative digital artists to ensure that visual activity does not stray too far from a directed point.
The unique component of this simulation is the (computationally-efficient) dependence of a very small number (N=2 here) of neighbor particles. The typical O(N^2) that limits real-time simulations to 10k-50k particles becomes O(N).
https://www.benbray.com/apmoc.php
Another set of works (a video simulation and a physical installation) show the slow turnover of warm and cold water:
https://www.benbray.com/1000_years.php
The AMOC is the most important climate phenomenon that most people haven't heard of yet.
The common method for evaluating MPI performance on a supercomputer is with the OSU microbenchmarks, and with the -z option will print tail latencies. These are far more useful values to predict real-world performance on the big machines.
Second, while means DO say something useful, they are the top part of a profiling hierarchy. Deeper levels are sampling experiments (with minor effects on performance) to tracing (potentially larger effects on the code being measured). Seeing parallel timeline traces of a complex app has helped me and my team debug many performance problems. Look at HPCToolkit, Score-P, rocprof, and other tools.
Lastly, the reason I do computer artwork in the first place was because of a bug in an old fortran77 code which simulated turbulent mixing in 3d. I couldn't find our code mistake at first, but then I visualized the computational elements with a raytracer I had been playing with, and the result was not only shockingly beautiful, but pointed me to the line of code with the bug.
My 5070Ti can realize about 20 TF/s while a 12-core Zen5 can do 2.