0
$\begingroup$

Consider this basic scheme for particle in cell simulations ( with just short-range interactions ):

  1. assign particles to disjunct cells
  2. for cell $A$ go over neighboring cells $B$
    • for each particle $a_i$ in $A$ interact with all $b_i$ in $B$
  3. move all particles

For GPU is very important memory locality. Therefore it make sense to assign each cell-cell interaction $(A,B)$ to one work-group, which can share __local buffer of $a_i$s. But it may very well happen that some cells are empty and other are filled with very varying numbers of particles $n$. => each work group would have to process very different number of interaction $N = n_A . n_B$ between particle pairs $(a_i,b_i)$. They will have problem to synchronize.

I guess this is some commonplace problem in PIC, GPGPU and parallel computing. But I have seen just introductory tutorials and codes, without much care of optimizations. I would be happy for reference to good and concise learning resources.

$\endgroup$
5
  • $\begingroup$ I guess you can have a look at a library like cs.sandia.gov/zoltan/Zoltan_phil.html $\endgroup$
    – Vikram
    Commented Mar 27, 2017 at 8:29
  • $\begingroup$ perhaps for production, but I would like something for learning the essential strategies ... this Zoltan does not seem to be even opensource $\endgroup$ Commented Mar 27, 2017 at 8:38
  • $\begingroup$ It'll depend a bit on your personal definition of open source, but if you look at the download page, Zoltan is available under three fairly standard licences (GPL, LGPL and BSD). $\endgroup$
    – origimbo
    Commented Mar 27, 2017 at 10:21
  • 2
    $\begingroup$ Zoltan IS open source, and not only can you look at the source, you can look at their publications as well cs.sandia.gov/zoltan/Zoltan_pubs.html $\endgroup$
    – Vikram
    Commented Mar 28, 2017 at 8:33
  • $\begingroup$ OK, thanks that's useful. But still I would like some more introductory learning resources than these state-of-the art library and papers. $\endgroup$ Commented Mar 28, 2017 at 10:02

1 Answer 1

1
$\begingroup$

You ought to be interested in this preprint in which we discuss exactly the sort of questions you seem to be having: https://arxiv.org/abs/1612.03369

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.