HomerReid / scuff-em

A comprehensive and full-featured computational physics suite for boundary-element analysis of electromagnetic scattering, fluctuation-induced phenomena (Casimir forces and radiative heat transfer), nanophotonics, RF device engineering, electrostatics, and more. Includes a core library with C++ and python APIs as well as many command-line applications.
http://www.homerreid.com/scuff-em
GNU General Public License v2.0
128 stars 51 forks source link

I'm making a GPU version of scuff-em. Thoughts? #164

Closed MyGithubNotYours closed 6 years ago

MyGithubNotYours commented 6 years ago

Hello Homer Reid

Thanks for this Scuff-em suite! I'm about halfway through converting the scuff-em suite to use GPUs instead of the CPU. Before I finish the remaining work, I figured I should ask:

1) Have you already made a GPU version (thus no need for me to do it)? 2) Or is there a technical reason why you haven't made a GPU version?

HomerReid commented 6 years ago

No, I have never tried this, but I'm not aware of a technical reason it shouldn't work. In fact the matrix-assembly step is embarrassingly parallel and should be amenable to GPU speedup. However, the system for caching and re-using the frequency-independent contributions to panel integrals involves global (geometry-wide) hash tables, so for massively parallel execution it might be faster to disable caching and recompute on the fly. Alternatively, if the caching happens in a GPU-local way then there may be no speed penalty.

Feel free to continue the discussion, or close the issue if satisfied.