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

WIP: RegularSingleCoreDecomposition w/o ghost cells and comms #4563

Open
wants to merge 1 commit into
base: python
Choose a base branch
from

Conversation

RudolfWeeber
Copy link
Contributor

Description of changes:
this is an early sketch for a cell system based on RegularDecomposition, but for simulations on a singel mpi rank. It does not have ghost cells and ghost communication. Cells are directly connected acrsoss the periodic boundary.

Performance implications

  • A system with 1000 particles at sigma=1 and volume fraciotn=0.1 has box size of abou 17**3.
  • For electrostatics with a cutoff of a bit over 2, this would make 83 cells without ghost cells but 103 with ghost cells.
  • 83/103 ~= 0.5
  • Ghost cells, even ona a simulation with a single core, are accessed twice per time step: once to update ghost positions and once for the ghost force reduction. Also, they use up memory and memory bandwidth, so that only a smaller system fits into the cache.

Current status:

  • Really just a sketch. doesn't compile and no Python interface

Technical notes

  • RegularDecomposition uses a ghost_cell_grid wher index 0 and n refer to the ghost layers and the stuff in between (1 to n-1) are the local cells. The singule mpi rank variant will only have a cell_grid with local cells running from 0 to n-1.
  • We'll see if other parts of Es make assumptions about ghost cells being present.

Outlook

This may potentially be useful in conjunction with shared-memory parallelism and an OpenMP enabled fftw for P3M.

@espresso-ci
Copy link

Your pull request does not meet our code documentation rules. The Doxygen documentation generated 1 unique warnings (total: 15, ignored: 12):

src/core/cell_system/RegularSingleCoreDecomposition.hpp:
  line 195: Reached end of file while still inside a ()

You can generate these warnings with make -t; make doxygen; ../maintainer/CI/dox_warnings.sh using the maxset config. This is the same command that I have executed to generate the log above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants