-
Notifications
You must be signed in to change notification settings - Fork 29
Performance of phasicFlow
The benchmark for performance test is the simulation of a drum rotating at 12 rpm. Since particles are moving in this drum and some part of the drum is empty, so this benchmark can resemble most of the typical granular flows. The number of particles varied between 100K and 11M. Around 30-45 vol% of the drum was full of particles in all simulations. The time step for integration was 0.00001 s, so each second of simulation took 100K iteration to complete. In all evaluations, we excluded the time for writing the results to the disk.
The execution time for one second of simulation was measured for various number of particles in the simulation. Both CPU and GPU builds showed almost a linear behavior with respect to number of particles, which is perfect for DEM simulation.
For three different problem sizes, we tested the performance of PhasicFlow with respect to number of CPU cores. A linear relation was found in between the execution time and number of cores in the log-log plot.
It is important for us to know at which problem size we are using the highest computational capacity of the system. The figure bellow shows the execution time per particle (for one second of simulation). For small size problems, this value is high, since each kernel lunch (entering parallel zone) has some overhead and the amount of computations in the parallel zone with respect to this overhead is low for small size problems. But for larger problems, these overheads become more negligible with respect to amount of computations, and we see almost constant execution time per particles for larger problems.
- Features
- How to build
- Tutorials (compatible with v-1.0)
- Performance Test
- About PhasicFlow