gemsfmm


GPU implementation of the treecode/fast multipole method (Laplace kernel)

GemsFMM — GPU implementation of the treecode/fast multipole method (Laplace kernel)

Summary This is a GPU implementation of the treecode/FMM for the Laplace kernel. It includes a CPU implementation with/without SSE, and two different translation operators for the FMM. See more details on the Wiki.

Description

This code was produced to accompany a chapter contribution to the book GPU Computing Gems, published in 2011. To produce the software, we started with existing code to perform the FMM on GPU that had all the bells and whistles, but was not very friendly to read, and then proceeded to ruthlessly edit it to the minimum expression possible. In the process, variable names were changed and code prettified, to make it more human-readable. Moreover, many techniques which may be considered standard by the expert in FMM algorithms, were removed in the interest of expressing the methods in the simplest possible way. We hope that the result is software which is useful both for applications and pedagogically.

|We distribute this code under the MIT License, giving potential users the greatest freedom possible. We do, however, request fellow scientists that if they use our codes in research, they kindly include us in the acknowledgement of their papers. We do not request gratuitous citations; only cite our publications if you deem it warranted.| |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

Related projects

  • PyFMM: a Python implementation of the FMM for the calculation of the velocity field induced by N vortex particles.
  • PetFMM: Open-source, parallel C++ implementation of the Fast Multipole Method. PetFMM can be obtained directly from its repository or following the links on the group webpage.

Publications

Project Information

Labels:
GPU treecode FMM