Giter Site home page Giter Site logo

MPI_Intercomm_create functionality about mpl HOT 6 CLOSED

rabauke avatar rabauke commented on May 29, 2024
MPI_Intercomm_create functionality

from mpl.

Comments (6)

rabauke avatar rabauke commented on May 29, 2024

@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.

a-jp avatar a-jp commented on May 29, 2024

@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,

[1]

from mpl.

rabauke avatar rabauke commented on May 29, 2024

@a-jp Thanks for further details. I will consider inter-communicators as a future feature of MPL.

from mpl.

a-jp avatar a-jp commented on May 29, 2024

ok thanks

from mpl.

VictorEijkhout avatar VictorEijkhout commented on May 29, 2024

from mpl.

rabauke avatar rabauke commented on May 29, 2024

This should stay open until milestone has been reached.

from mpl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.