Comments (6)
@a-jp: MPI inter-communicators are currently not supported. However, this is certainly a feature worth considering.
Although MPI handles all communicators via the same kind of handle, MPL should model inter-communicators by a specific dedicated class, not via mpl::communicator. Thus, this will not be implemented just via a minimal modification of the mpl::communicator class.
One reason, why inter-communicators are not supported by MPL is just that I never had an actual use-case for this. I know the examples from the MPL standard, which are, however, rather academic. Can you please explain your use-case?
from mpl.
@rabauke many thanks for the comments. The use-case here is multiple program, multiple data (MPMD) style launch using: mpirun -np X prog_1 : -np Y prog_2
.
In this case comm_world is of size X+Y. Within comm_world two communicators are created:
mpl::communicator group0(mpl::communicator::split, comm_world, 0);
Here 0 is the application number, for prog_1, and group0 is of size X. A second communicator is created as:
mpl::communicator group1(mpl::communicator::split, comm_world, 1);
Here 1 is the application number, for prog_2, and group1 is of size Y.
The use-case is coupling two codes together that can be used to solve a complex multi-domain problem, that is otherwise not solvable via either individual code. The coupling between the codes is achieved via MPI. In this use-case it is essential to be able to communicate between group0 and group1, hence the need for MPI_Intercomm_create
.
An older paper, as this is a well established approach, and very relevant reference for this use-case is below [1]
. This represents a real use-case and is representative of the type of problem that interests me; namely coupling two codes via MPI.
I hope you consider this for inclusion into your library, for present I will write a simple wrapper class around MPI_Intercomm_create
type functions as I go.
Many thanks,
from mpl.
@a-jp Thanks for further details. I will consider inter-communicators as a future feature of MPL.
from mpl.
ok thanks
from mpl.
from mpl.
This should stay open until milestone has been reached.
from mpl.
Related Issues (20)
- Composing derived datatype HOT 1
- spelling of "weigth"
- Apply MPI Runtime Correctness Analysis HOT 1
- Support std::span
- Can API changes be more clearly marked? HOT 1
- Obtain raw MPI_Comm from mpl::communicator HOT 4
- Obtain raw MPI_Comm from mpl::communicator - Version 2 HOT 4
- Support for C++20 ranges HOT 2
- Including mpl/mpl.hpp throwing errors HOT 2
- "on ramp" for legacy code and interop HOT 3
- const problems with native handle HOT 4
- Dead link for eijkhout book HOT 1
- v0.2.0 install fails on sphinx HOT 5
- v0.2.0 doxygen latex fails HOT 1
- Abuout ialltoallv in IntelMPI 2021.5.1 HOT 3
- scatterv problem in comm_group.hpp HOT 1
- formatting error in allreduce 2/4 docs HOT 2
- need advice: split_shared_memory
- Warning under older intel compiler
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mpl.