Hi all, I agree with this interpretation – I always thought that was the original intent; non-local work should be able to be push off to the first communicator creation. The question about it being an operation and/or a local call is interesting, though – I tend to also see it the same as Dan, but is there a scenario in implementations that may require some kind of progress in other MPI processes (e.g., to internally synchronize on process sets)? If so, would we have to classify at least some calls (perhaps only the query of the process sets) as (local) operations so we can mandate progress? Or maybe “have to” is to harsh, but it would implementations to be more efficient? Martin -- Prof. Dr. Martin Schulz, Chair of Computer Architecture and Parallel Systems Department of Informatics, TU-Munich, Boltzmannstraße 3, D-85748 Garching Member of the Board of Directors at the Leibniz Supercomputing Centre (LRZ) Email: [email protected] From: mpiwg-sessions <[email protected]> on behalf of "Pritchard Jr., Howard via mpiwg-sessions" <[email protected]> Reply to: MPI Sessions working group <[email protected]> Date: Wednesday, 4. January 2023 at 09:30 To: "Holmes, Daniel John" <[email protected]>, MPI Sessions working group <[email protected]> Cc: "Pritchard Jr., Howard" <[email protected]> Subject: Re: [mpiwg-sessions] [EXTERNAL] RE: MPI_Session_init semantics question/poll HI Dan, Yes that was my interpretation as well. We can discuss at our next meeting 1/9/23 if there’s time. Howard From: "Holmes, Daniel John" <[email protected]> Date: Wednesday, January 4, 2023 at 12:05 PM To: MPI Sessions working group <[email protected]> Cc: "Pritchard Jr., Howard" <[email protected]> Subject: [EXTERNAL] RE: MPI_Session_init semantics question/poll Hi Howard, It was always intended that MPI_Session_init was a local procedure. In fact, “initialise a session” is not even an MPI operation, so it doesn’t make sense for it to be expressed via a nonlocal procedure. Further, it was intended that the nonlocal portion of the work done by MPI_Init that is eventually needed in the pure sessions pattern would be done during the first nonlocal procedure call in that pattern, as follows: MPI_Session_init // local – PMIx fence prohibited MPI_Group_from_pset // local – PMIx fence prohibited MPI_Comm_create_from_group // nonlocal – PMIx fence permitted, if needed The nonlocal work should be unnecessary until the first nonlocal procedure call, so this should all work out fine (modulo some refactoring/debugging). Best wishes, Dan. From: mpiwg-sessions <[email protected]> On Behalf Of Pritchard Jr., Howard via mpiwg-sessions Sent: 04 January 2023 18:32 To: MPI Sessions working group <[email protected]> Cc: Pritchard Jr., Howard <[email protected]> Subject: [mpiwg-sessions] MPI_Session_init semantics question/poll Hi All, First, Happy New Year! I’ve got a question about the semantics of MPI_Session_init. In particular, I’d be interested in knowing people’s opinion on whether this function is nonlocal or local. We don’t have any text in the current version of the standard that states whether or not MPI_Session_init is a nonlocal operation. I’m considering options for handling this issue: https://github.com/open-mpi/ompi/issues/11166 . It turns out that the way to properly resolve this issue depends on whether or not MPI_Session_init has local or nonlocal semantics. I had been working under the assumption that we had intended session initialization to be a local function, but considering how to resolve issue 11166 made me begin to question this assumption. Thanks for any ideas, Howard — Howard PritchardResearch ScientistHPC-ENV Los Alamos National [email protected]