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

Add topology constructors with info hints #1

Open
hjelmn opened this issue Mar 5, 2018 · 9 comments
Open

Add topology constructors with info hints #1

hjelmn opened this issue Mar 5, 2018 · 9 comments

Comments

@hjelmn
Copy link

hjelmn commented Mar 5, 2018

I don't know if this is the right working group for this. I can move the issue if there is a better WG to begin this discussion.

Problem

There is not currently a way to specify info hints during the construction of a topology communicator. I am interested in working on changing some aspects of topology communicators. Since these changes will break backwards compatibility I would prefer to have the user opt-in to the changes by specifying info keys at topology construction. This is not currently possible for either cartesian or graph topologies.

Proposal

Add new routines:

int MPI_Cart_create_with_info (MPI_Comm comm_old, int ndims, const int dims[],
const int periods[], int reorder, MPI_Info info, MPI_Comm *comm_cart);

int MPI_Graph_create_with_info (MPI_Comm comm_old, int nnodes, const int index[],
const int edges[], int reorder, MPI_Info info, MPI_Comm *comm_graph);

No changes are needed for MPI_Dist_graph_create() as info is already an argument.

Changes to the Text

Add new variations of the cartesian and graph constructors to chapter 7.

Impact on Implementations

Implementations would be required to provide the new routines. They can trivially do this by ignoring the info parameter and call the original functions.

Impact on Users

None. Users would need to opt-in by using the new routines.

References

Insert any internal (other issues) or external (websites, papers, etc.) references here.

@hjelmn
Copy link
Author

hjelmn commented Mar 5, 2018

Hmm, apparently there is only 1 person in the working group on github. @tonyskjellum, @dholmes-epcc-ed-ac-uk Thoughts on this?

@dholmes-epcc-ed-ac-uk
Copy link

@hjelmn

  1. MPI_GRAPH_CREATE_WITH_INFO
    The "non-dist" graph constructor should be deprecated in favour of the newer (and better) "dist" version(s). Every call to MPI_GRAPH_CREATE can be legally and 'simply' replaced with a call to MPI_DIST_GRAPH_CREATE.

    MPI_GRAPH_CREATE requires that each process passes the full (global) communication graph to the call. This limits the scalability of this constructor. With the distributed graph interface, the communication graph is specified in a fully distributed fashion.

    In the absence of a proposal to deprecate MPI_GRAPH_CREATE (and thereby obviate the need to maintain/improve it), adding an MPI_INFO argument is one of the advisable changes/improvements.

  2. MPI_CART_CREATE_WITH_INFO
    The proposed cartesian topology "with info" constructor seems like a good addition but should probably be part of a more general change to add an MPI_INFO argument to all object constructors that don't already have one. For example, MPI_COMM_SPLIT_WITH_INFO makes a lot of sense too.

@tonyskjellum
Copy link

tonyskjellum commented Mar 6, 2018 via email

@hjelmn
Copy link
Author

hjelmn commented Mar 6, 2018

Opened #2 to track deprecation of MPI_Graph_create().

@tonyskjellum
Copy link

tonyskjellum commented Mar 7, 2018 via email

@hjelmn
Copy link
Author

hjelmn commented Mar 7, 2018

No objection.

@tonyskjellum
Copy link

tonyskjellum commented Mar 7, 2018 via email

@wesbland
Copy link

wesbland commented Mar 7, 2018

Unfortunately you can't move issues. You'll have to copy it over to mpi-forum/mpi-issues manually.

@tonyskjellum
Copy link

tonyskjellum commented Mar 7, 2018 via email

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

No branches or pull requests

4 participants