Steps towards Multi-GPU support / significant performance improvement
Aiming at best case 12x speedup for 8 GPU cluster
- [ ] Run GPUSPH on target hardware and find out what is the performance of this software in comparison with Sibernetic -- compare running of 100K particles
- [ ] Devise a strategy to take the key components that enable the multi-GPU support in GPUSPH.
- [ ] CUDA based?
- [ ] OpenCL based?
Also examine if significant performance improvement can be had via other routes:
- [ ] Scale & timestep-based?
Initial investigations into modifying scale and timestep seem to be demonstrating it is possible to improve performance significantly. Next step on this is to adjust viscosity, elasticity, and surface tension to enable a scaled up worm to retain low-Reynolds number behavior. We are noting that we also need to keep an eye on integration error as we do this.
On the GPUSPH side, initial results were that for a 13K particle simulation, performance actually degrades when put across multiple nodes. We are suggesting to try much larger simulations of 100K-200K particles to compare.
@skhayrulin is pursuing an algorithm for synchronizing across multiple computing devices in sibernetic via openCL
@skhayrulin has finished with an abstract algorithm for distribution for particles across 2 devices but still needs to test across more devices.
@a-palyanov Is continuing to experiment with combinations of physical parameters that allow the time step to be increased and maintain physical consistency. He has achieved 1 second of simulation time for 20 minutes of compute time (!!). We are working to get this version out ASAP.
After some success seeing linearly scaling performance on the multi-CPU set up, We are still having a look at https://github.com/DualSPHysics/DualSPHysics to see if they will implement Multi GPU support.
I have access to 2 pcs with 2 different graphic cards. One Ati and one Gforce. I'm not sure if it is possible to merge both of them using CUDA, but I can try it.
On Feb 9, 2018 7:11 PM, "Stephen Larson" [email protected] wrote:
We are still having a look at https://github.com/DualSPHysics/DualSPHysics to see if they will implement Multi GPU support.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/openworm/sibernetic/issues/135#issuecomment-364469383, or mute the thread https://github.com/notifications/unsubscribe-auth/AGWMgO4e4Ea3QcVNE0j0ulbdYsb3kfAIks5tTGcigaJpZM4RHD9u .
@skhayrulin Any luck building DualSPHysics?
@slarson I've finally compiled DualSPHysics on my machine with one NVIDIA GPU and run it unfortunately it finished with segmentation fault error but anyway It compiled and run at least. I can continue to dig further.