Does RadixSort is used in DualSPHysics?
hi DualsPHysics,
I've been studying the source code for better understanding sph algorithm in the software.
in paper "GPUs, a New Tool of Acceleration in CFD: Efficiency and Reliability on Smoothed Particle Hydrodynamics Methods" stated that "Reordering the particles according to the cells they belong is computed using the optimised radixsort algorithm provided by CUDA". But, in the source code and doxygen documentation i cannot find the JradixSort::Sort/Jradixsort::SortData/jpartsload4::sortparticles is being called by other classes. where does radixsort is used in code exactly?
I've been studying the source code for better understanding sph algorithm in the software.
in paper "GPUs, a New Tool of Acceleration in CFD: Efficiency and Reliability on Smoothed Particle Hydrodynamics Methods" stated that "Reordering the particles according to the cells they belong is computed using the optimised radixsort algorithm provided by CUDA". But, in the source code and doxygen documentation i cannot find the JradixSort::Sort/Jradixsort::SortData/jpartsload4::sortparticles is being called by other classes. where does radixsort is used in code exactly?
Comments
In the file JCellDivGpu_ker.cu, the function Sort() executes Radixsort of the library Thrust.
The code lines are:
if(stable)thrust::stable_sort_by_key(dev_keysg,dev_keysg+size,dev_valuesg);
else thrust::sort_by_key(dev_keysg,dev_keysg+size,dev_valuesg);
Regards