Parallel and Distributed Systems

CSCI-7551 Parallel and Distributed Systems.

Parameterization and Control in Particle-based Fluid Dynamics
In this work we introduce and construct a framework of parallel algorithms that facilitate the parameterization and simulation of particle-based fluids. This parallel simulation framework is composed of three components: (1) the parameterization of the initial states of the simulated particles derived from Fourier analysis, (2) a set of discrete and continuous collision detection algorithms for particle and convex object interactions based on a newly introduced cluster-based event system, and (3) an impulse-based collision response algorithm for rigid-particle interaction. In the implementation of this framework we utilized both grouped SIMD facilitated through the Compute Unified Device Architecture (CUDA) and MIMD techniques through OpenMP to provide parallel implementations of efficient algorithms for each of these components. The collected results are demonstrated through the parameterization of waveforms to drive particle visualizations and the interactive simulation of particle-based fluid animation. Through the parallel implementations of our algorithms, we have been able to reduce our overall simulation time by approximately 80% demonstrating a 5.37x increase in performance compared to the sequential implementation.

The following video provides a visual demonstration of the parallel particle simulation for the approximation of a non-viscus fluid. This demonstration does not include the generation of the fluid surface (that can be obtained through the Marching Cubes algorithm). The included implementation was designed extremely fast and does not provide a full-proof solution (the code is NOT perfect).


Literature Report

Team Reviews

Architecture Reviews/Interpretations



  • Parameterization and Control in Particle-based Fluid Dynamics: Research (PowerPoint) (PDF)
  • Parameterization and Control in Particle-based Fluid Dynamics: Project (PowerPoint) (PDF)

Fluid Simulation Source Code (Includes all code for the following fluid simulations – only dependencies are Qt and Glut):
Google Code Project


Note: Coded from scratch very quickly, it is NOT perfect.