Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Esirkepov: reorder code order #2121

Conversation

psychocoderHPC
Copy link
Member

@psychocoderHPC psychocoderHPC commented Jul 6, 2017

This PR adds intermediate results to the core routines to reduce the computation. The optimizations are copied from the EmZ Esirkepov solver. Currently it is not possible to use a shared version of the Esirkepov core deposition algorithm to both solvers to reduce the code duplication's.

  • use the EmZ Esirkepov implementation as base to reorder the Esirkepov code
  • use helper variables to avoid multiple calculations of the some value
  • add S1() helper method

This pull request increase the speed of PIConGPU in the KHI example with positron/ electrons 3D by a factor of 1.05.

Tests

I cherry picked this PR for the tests to the branch for the emz paper ( picongpu_0.3.0+#2112), because there I have already all results to validate the solver changes.

  • KHI 3D/2D electrons/positrons X-direction flow (all shapes)
  • KHI 3D/2D electrons/positrons Z-direction flow (all shapes)

- use the EmZ Esirkepov implementation as base to reorder the Esirkepov code
- use helper variables to avoid multiple calculations of the some value
- add `S1()` helper method
@psychocoderHPC psychocoderHPC added component: core in PIConGPU (core application) refactoring code change to improve performance or to unify a concept but does not change public API labels Jul 6, 2017
@psychocoderHPC psychocoderHPC added this to the 0.4.0 / 1.0.0: Next Stable milestone Jul 6, 2017
@psychocoderHPC psychocoderHPC requested a review from ax3l July 6, 2017 15:13
@psychocoderHPC
Copy link
Member Author

psychocoderHPC commented Jul 6, 2017

TSC X-direction flow

heating 3D

esi_reorder_heat

charge conservation

esi_reorder_charge

@psychocoderHPC
Copy link
Member Author

psychocoderHPC commented Jul 6, 2017

PCS Z-direction flow

heating 3D

esi_reorder_heat_pcs

charge conservation

esi_reorder_charge_pcs

@ax3l
Copy link
Member

ax3l commented Jul 7, 2017

memo to ourselves: the KHI test could cover more aspects if we set up non-cubic cells.

@psychocoderHPC
Copy link
Member Author

memo to ourselves: the KHI test could cover more aspects if we set up non-cubic cells.

Would it be in this case also useful to propagate the particles over the diagonals?

@ax3l
Copy link
Member

ax3l commented Jul 10, 2017

yes, as long as they are a lot of sub-relativistic particles as in this test case and enough turbulence, enough will leave and enter cells in any way possible.

@ax3l ax3l merged commit 06f8217 into ComputationalRadiationPhysics:dev Jul 10, 2017
@psychocoderHPC psychocoderHPC deleted the topic-esirkepovCodeReordering branch July 10, 2017 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: core in PIConGPU (core application) refactoring code change to improve performance or to unify a concept but does not change public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants