One of the main advantages of Fluidix is its flexibility for highly dynamic, complex simulation processes. Many would consider flexibility to be a detriment to performance. Fluidix is designed to break that barrier and provide highly optimized operations with very loose limits. Every sort, update, memory transfer, and parallel kernel has been meticulously optimized, redesigned, and optimized again so you can have peace of mind that no single design choice is causing a hidden performance bottleneck due to the way things are managed internally. Fluidix provides state of the art performance in benchmarks, demonstrating speedups normally over 50x on current hardware, and generally scales linearly from 1000 to 30 million particles and beyond. Timings of the pair and surface interactions are presented here over a wide range of particle counts, which represent key tasks in a fluid dynamics model with particles and mesh-based surfaces. Benchmarks are run using equivalent algorithms running on a Intel i7 4770K CPU (single-thread) and a GeForce GTX780 (single GPU). Each graph shows the GPU execution time as well as the speedup at various points.
This test demonstrates the linear scaling of a basic fluid interaction with unit density, unit radius particles. Results show that computation time is practical for scientific applications up to 30m particles (1.6 sec/step), and for real-time interactivity up to 250k (under 10 ms/step).
This interaction searches for particles which are inside and within a fixed distance of a 3D mesh surface, and finds the closest face on the mesh to each particle. Both the triangles and particles are sorted into separate binary tree structures. This benchmark demonstrates scaling with number of particles using various resolutions of a spherical triangle mesh.