number of dynamic and non dynamic particles per core

Asked by Pablo Cid on 2020-01-21

Hello everyone,

As I have read on other questions, I know the optimum number of particles is about 10.000 per working core, but I don't know if that numbec includes non dynamic particles (set that way with the setParticleNonDynamic() comand to emulate friction with walls).

Either way, I would like to know a rougth aproximation about how non dynamic particles load the CPU or any related information about it.

Kind regards
Pablo Cid

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
Dion Weatherley
Solved:
2020-01-22
Last query:
2020-01-22
Last reply:
2020-01-21
Best Dion Weatherley (d-weatherley) said : #1

Hi Pablo,

Non-dynamic particles will certainly provide less load to each worker's CPU than dynamic particles. However, their presence in a given subdomain will still contribute to the computation time for that worker.

Ordinary dynamic particles contribute load via neighbour search, force calculations and position/velocity update calculations. Non-dynamic particles contribute via both neighbour search and force calculations, but do not have their position/velocity updated. For more complex particle-pair interactions, one would expect that the force calculations are more onerous than position updates, although in most cases, they are probably fairly comparable in terms of number of floating point operations per timestep.

My recommendation would be to treat non-dynamic particles as comparable with dynamic particles with respect to computational load. Consequently it is still advisable to ensure there are approximately 10000 particles/worker. This number is not critical so it can be increased up to around 20000 particles/worker without significant loss in computational speed; particularly if some of those particles are non-dynamic.

I hope this helps.

Cheers,

Dion

Pablo Cid (marmolin) said : #2

Thanks Dion Weatherley, that solved my question.