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

Espresso test issues regarding time spent on mesh tuning #154

Open
1 task
satishskamath opened this issue Jun 14, 2024 · 2 comments
Open
1 task

Espresso test issues regarding time spent on mesh tuning #154

satishskamath opened this issue Jun 14, 2024 · 2 comments
Assignees

Comments

@satishskamath
Copy link
Collaborator

Description

Mesh tuning currently takes way too long especially on large number of nodes (>= 2 nodes). We can bypass this if a prediction can be made based on a linear interpolation of mesh sizes used in low rank cases on a particular architecture.

TODO

  • Predict mesh sizes on a given architecture using 3 points on a dependent reframe test of 1, 2 and 4 MPI ranks and output a linear interpolation.
@satishskamath satishskamath self-assigned this Jun 14, 2024
@jngrad
Copy link

jngrad commented Jun 28, 2024

Further benchmarks revealed that the linear trend is only observable in dense ionic liquids. For ionic crystals, the ideal mesh size no longer depends on the number of MPI ranks in a linear manner. We opted to instead pin the mesh size and charge assignment order (cao) to values that are suitable for multiple MPI world sizes. This allows to bypass the bisection algorithm during tuning.

@jngrad
Copy link

jngrad commented Dec 11, 2024

espressomd/espresso#5017 introduces a new mechanism to restrict the range of mesh values that are sampled during tuning. This will be part of the next release of ESPResSo. This change could allow us to introduce some flexibility during tuning by timing mesh size values around the ones we currently pin, if this is desirable (run times from simulations with different mesh sizes or cao are not directly comparable since they have different MPI buffer sizes). In addition, it will simplify the determination of optimal mesh sizes in the CUDA benchmarks, where the tuning algorithm is known to be greedy and spends a lot of time sampling very large mesh sizes that are eventually discarded; here the idea would be to add an upper limit to the mesh size that is more reasonable than the one hardcoded in ESPResSo in the initial benchmark run that is used to determine the optimal P3M parameters that will be used in the testsuite.

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

No branches or pull requests

2 participants