In order to simplify the development of high-performance plasma physics codes for hybrid supercomputers, a template implementation of the Particlein-Cell (PIC) method was created. The template parameters are the problemspecific implementations of "particle" and "cell" (as C++ classes).
Thus, it is possible to develop a PIC code for the supercollider physics problem without studying GPU programming by the beam physicist. Instead, the new physical features are just included into the existing code as new implementations of the "simulation domain" class.
Since the template implementation of the PIC method was created on the basis of the relativistic plasma physics code, the transition to the beam physics is quite simple. Just the two things were changed: initial particle distribution and boundary condition computation. Both changes were performed by means of virtual functions of the "simulation domain" class.
The result is that one single Tesla M2090, GPU computes with approximately the same speed as 24 Intel Xeon cores.