mesh blueprint mpi distribute
cyrush opened this issue · comments
Refactor existing code from ascent that ships domains around into conduit for wider use.
This is a send/recv any-to-any case, where the payload is always valid mesh blueprint domains.
Extend current code to include domain replication.
This is a much simpler case than mpi partition, which actually cuts and merges domains. This only moves entire domains.
Implement generic interface that accepts domain to dest task map.
I expect these maps to be similar in spirit to results from generate_domain_to_rank_map` - however with replication they may be multi-valued, a rank can be on multiple mpi tasks.
From this, there are specific cases that we can implement via the general machinery:
- split comm (current ascent case, used for multi program mpi execution) input param: rank of split.
- simple replication (n domains, distributed to m tasks) input param: desired final number of tasks or # of times each domain is replicated? Need to check the desired use case.
Resolved in #1069