ComputationalRadiationPhysics / picongpu

Performance-Portable Particle-in-Cell Simulations for the Exascale Era :sparkles:
https://picongpu.readthedocs.io
Other
698 stars 217 forks source link

Plugin: PhaseSpace with Long Edge SuperCell #469

Open ax3l opened 10 years ago

ax3l commented 10 years ago

Implement a more variable phase space binning.

First step:


The phase space plugin does not run it's kernels for a 2D sim with 8x16 or 16x16 tile sizes.

(but works fine for 3D 8x8x4; 2D 8x8) Fixed with #480

ax3l commented 10 years ago

The problem is caused by the available shared memory. each block is called for a super cell with max(TILE_X, TILE_Y, TILE_Z) times 1024 elements in phase space.

with the default setting (max=8) and float that uses 32KB shared (<48KB). Using a super cell with a larger edge or using double usually blows the maximum available shared mem.

One could add a compile-time check now, if the setting will fit the shared memory available.

An extension proposed by @psychocoderHPC and me would be to walk over the particle list N-times and to split the local phase space section into N slices in momentum direction.

ax3l commented 10 years ago

Oh I already transformed the "bug report" in an to-be-implemented feature. So let me open this again :)

psychocoderHPC commented 10 years ago

oh sry for closing I pressed the wrong bottom on my mobile phone

ax3l commented 10 years ago

classic first world hipster problem :smile: