mpiwg-sessions / sessions-issues

3 stars 1 forks source link

feedback from 9/18/19 virtual forum #18

Closed hppritcha closed 4 years ago

hppritcha commented 4 years ago

Start with MPI_INFO_ENV info object:

Discuss https://github.com/mpiwg-sessions/mpi-standard/pull/36. Dan remove the comment referencing mpi-forum/mpi-standard#126 during the call. May add an advice to users, etc. if PR 126 gets in to standard.

Discussion of PR mpiwg-sessions/mpi-standard#37. Ryan asks about being able to reuse indices if a process set name becomes invalid. Dan mentions a possible pruning function in some future iteration on sessions. No objections were raised to the description Dan has in #37. We will focus on word-smithing prior to next virtual forum.

Martin didn't attend but subsequently provided additional feedback:

First a detail that I came across when trying to build
- dynamic-2.tex, line 964: Misses an \ before the _ in MPI_Comm to build

Regarding PSETs:
- Text at MPI_SESSION_GET_NUM_PSETS
I think this works
- Text at MPI_SESSION_GET_NTH_PSETLEN
This may raise concerns (I would have to agree), as this is the old style of returning strings and we just decided to fix the info string text with a new way to return text. Also, if we do want to make names mutable at some point, then this would not be thread safe. Using the INOUT option for length argument would be better.
- Text at MPI_SESSION_GET_NTH_PSET
I think we need a similar text here as in the MP_T chapter:

After a successful call to MPI_T_CVAR_GET_INFO for a particular variable, subsequent calls to this routine that query information about the same variable must return the same information. An MPI implementation is not allowed to alter any of the returned values.

Only this ensures that process sets are not “replaced” by the implementation and a user can cache data.

Set versioning:

One other concern that I have, but I am not sure how to properly address it, so I want to just throw it out: I think we will have to have some option for versioning sets - only this will prevent a blow up in sets that we have to remember once we go to dynamic sets. In this case, an MPI implementation would only have to report data for the latest set and hence could replace sets. I know we don’t want to deal with this now and we are also not sure, if this is the right answer, but it would be nice to add something that allow us to do this later. Adding a real version argument is probably too vague at the moment, but what about adding a - currently unused - info object in the PSET query function? Another option would be to reserve a character in the URI that right now can’t be used, but later can be used as a delimiter. 

In general, shouldn’t we specify the URI format more? In this case, the “:” would already be such a delimiter.

Other comments:
- What is the default thread level when no info object is specified?
- MPI_Session_finalize, "it must locally complete all MPI operations that it initiated” needs to be restricted to all communication associated with the session, other sessions should be unaffected
- 10.3.2: A process set caches key/value tuples which -> that

One other thing that I noticed:
- Section 10.10.2 - I think this text needs to be updated as well to include the use of Sessions