Ducks and GPU Performance – Part 2 of 2

Ducks and GPU Performance – Part 2 of 2

As announced in the last post, here you can understand the connection between sorting the ducks and the GPU performance.


When using the Fast Multipole Method, the goal is to obtain a certain physical quantity e.g. a force. It needs to be obtained at a particular point in a particular box (target box) of the considered system. To do so, all the little boxes in the system need to be rotated and shifted to the target box. Here, only the rotation is considered. The implementation can be described with following steps:

  1. Build a pyramid that contains the rotation coefficients which are based on the fancy math .
  2. Build a triangle containing the multipole to be rotated
  3. Build another triangle to store the rotated multipole
  4. Multiply the pyramid entries with the corresponding entries of the multipole that needs to be rotated as shown in the image below
Data structures used for the rotation. To obtain the box in red of the rotated multipole (on the left), red boxes in the pyramid and the input triangle on the right need to be multiplied.

After spending some time playing with these and similar blocks, and sorting out in their minds how it all works, students have shown unusual behavior patterns while carrying out basic everyday routines. An instance of this behavior occured after a long day of coding on the student’s attempt (let’s call the person Student X) to brush his teeth before sleeping. Namely, all the lights were off and the Student X spent three full minutes switching the bathroom light on and off, contemplating about the possibility of the light bulb being burned out already, only to realize that the bathroom door was closed. Only a basic behavioral analysis was enough to diagnose that these building blocks remain trapped inside the student’s mind even after the working hours. At a late hour of the night, these blocks transform into little rubber ducks and other shapes, and start rotating around and multiplying, making the student act silly. The Student X happens to be myself.

Therefore, the goal is to sort the ducks out to improve the GPU performance. Whether or not it is accomplished, will be visible in the next blog post where you can expect some performance graphs!

Let me know in the comment section below if a certain part should be further clarified and thank you for reading!

Tagged with: , , , , , ,
3 comments on “Ducks and GPU Performance – Part 2 of 2
  1. Ivana says:

    Dear Josip,

    how important is a strong mathematical background in order to understand and solve problems like this one?

    Thank you,

  2. IVAN BOBINAC says:

    Što pripada pojmu “maštovita matematika”

  3. Johanna says:

    Thank you for your funny 2nd part and the revealing of the ducks and GPU performance. May the ducks be with you, but not take over you.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.