Cabana icon indicating copy to clipboard operation
Cabana copied to clipboard

Construct halos from imports

Open JStewart28 opened this issue 8 months ago • 1 comments

Moved Collector implementation into a Halo that is constructed by specifying ids and ranks to import data from. (See PR #817. This PR closes PR #817)

An import-based Halo is used when you know who you are receiving from but not who you are sending to.

Additions:

  1. Added Cabana::Export and Cabana::Import type tags.
  2. A Cabana::Halo is now typed on MemorySpace and BuildType, where BuildType is either Cabana::Export or Cabana::Import. (Default Cabana::Export for backwards compatibility)
  3. createFromXXX functions in Cabana_CommunicationPlan.hpp are renamed and typed on Cabana::Export or Cabana::Import to support overriding.
  4. Updated Halo test to test halos built from imports.
  5. Added ImportHaloExchange example. Renamed HaloExchange example to ExportHaloExchange.
  6. From PR #817: Added Cabana_INSTALL_TEST_EXECUTABLE CMake flag that is set to OFF by default.

I'd like to get your opinion on my design of addition 3. A Halo needs four different constructors based on the combination of import/export, topo/no topo, and overriding the createFromXXX functions in CommunicationPlan let me use less hard coding of function names in those constructors.

JStewart28 avatar Jun 20 '25 20:06 JStewart28

Looks close - can you remove the namespace commits (will make the update once we merge that much easier)? Will be easier to review

Yes. Just reverted them.

JStewart28 avatar Jun 26 '25 20:06 JStewart28

@streeve all checks have passed. Do you have any more comments or suggestions?

JStewart28 avatar Jul 08 '25 22:07 JStewart28