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: Distributed FMM #107

Draft
wants to merge 63 commits into
base: main
Choose a base branch
from
Draft

WIP: Distributed FMM #107

wants to merge 63 commits into from

Conversation

skailasa
Copy link
Collaborator

@skailasa skailasa commented Sep 17, 2024

Add an experimental distributed FMM and associated traits for the Laplace kernel.

What is achieved in this PR:

  • Significantly clearer trait layout, allowing for maximal code re-use between single and multi-node
  • Multiple parallel sorting algorithms: Bucket sort, Sample sort, hyksort
  • Ghost data exchange based on neighbourhood communicators
  • Builder for multi-node experiments
  • Currently only works with unit charges (for benchmarking)

What's not available in this PR, but is of immediate priority (after thesis):

  • No load balancing, not really required for uniform data structure
  • Currently only contains support for single right hand sides.
  • Partial FMM api, no utility functions for clearing and re-attaching particle data
  • Helmholtz support
  • Python support for distributed stuff

TODO:

  • Building on Archer 2
  • Building on Kathleen Needlessly antagonising
  • check existing Python bindings for single node
  • end-to-end tests
  • Threading control on a real system.

@skailasa skailasa changed the title WIP: Cleaner WIP: Distributed FMM Sep 20, 2024
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.

1 participant