Re: [mpiwg-languages] static datatypes lifetimes
I think the API you want then is basically UCC. Prescribe everything for every operation. Jeff On Sun, Apr 27, 2025 at 6:10 PM Skjellum, Anthony <[email protected]> wrote:
Another issue: Info arguments are missing on non-blocking and blocking collectives.
Anthony Skjellum, PhD Professor of Computer Science Director, Advanced Scalable Computing, Extreme Networks & Data (ASCEND) Center Tennessee Technological University email: [email protected] cell: +1-205-807-4968
------------------------------ *From:* mpiwg-languages <[email protected]> on behalf of Jeff Hammond via mpiwg-languages < [email protected]> *Sent:* Saturday, April 26, 2025 11:53 PM *To:* [email protected] < [email protected]> *Cc:* Jeff Hammond <[email protected]>; [email protected] <[email protected]> *Subject:* Re: [mpiwg-languages] static datatypes lifetimes
*External Email Warning*
*This email originated from outside the university. Please use caution when opening attachments, clicking links, or responding to requests.* ------------------------------ Attributes on ops, datatypes and files is critical for multiple use cases. It’s ridiculous we don’t have them. The standard is inconsistent without. Jeff Sent from my iPhone On 27. Apr 2025, at 5. 51, Joseph Schuchart via mpiwg-languages <mpiwg-languages@ lists. mpi-forum. org> ZjQcmQRYFpfptBannerStart This Message Is From an External Sender This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd Attributes on ops, datatypes and files is critical for multiple use cases. It’s ridiculous we don’t have them. The standard is inconsistent without.
Jeff
Sent from my iPhone
On 27. Apr 2025, at 5.51, Joseph Schuchart via mpiwg-languages < [email protected]> wrote:
Unfortunately, there is a catch: MPI_COMM_SELF is only relevant/available/valid in the World Process Model (WPM), i. e. , if using `MPI_Init`/`MPI_Finalize`. In the Sessions process model, predefined communicators are not available. The life-time ZjQcmQRYFpfptBannerStart This Message Is From an External Sender This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Unfortunately, there is a catch: MPI_COMM_SELF is only relevant/available/valid in the World Process Model (WPM), i.e., if using `MPI_Init`/`MPI_Finalize`. In the Sessions process model, predefined communicators are not available.
The life-time of datatypes is a known quirk and I think it was discovered after Sessions became part of the standard. They are not bound to any other MPI object and can survive complete shutdown of all sessions / the WPM. IIRC in Open MPI (but have to check), datatypes retain a reference on the internal MPI instance and it is the application's responsibility to free all MPI objects before shutdown. Once the last datatype/session/wpm is gone we release the instance.
I don't like the state of things there and it is problematic. For starters, it prevents complete session isolation (and the benefits that come with it, such as different threading levels). It's not clear to me how that can be rectified and I think the Forum is not clear on that either, which is why we ended up with this weird zombie state. If someone wants to open a ticket to start a discussion on this I'm happy to participate.
For the problem at hand though (as I understand it), maybe it's sufficient to add attributes to datatypes? I don't see why that would be a problem and if it helps with language adoption we have a good argument for it.
Cheers Joseph
On 4/25/25 17:24, Alfredo Correa via mpiwg-languages wrote:
Hi Sayan, On Fri, Apr 25, 2025 at 2: 03 PM Ghosh, Sayan <sayan. ghosh@ pnnl. gov> wrote: Consider finalize-delete-callback (this is what Alfredo is alluding to perhaps w. r. t datatype-attached-to-environment) – that seems to rely on MPI_COMM_SELF ZjQcmQRYFpfptBannerStart This Message Is From an External Sender This message came from outside your organization. ZjQcmQRYFpfptBannerEnd Hi Sayan,
On Fri, Apr 25, 2025 at 2:03 PM Ghosh, Sayan <[email protected]> wrote:
* Consider finalize-delete-callback (this is what Alfredo is alluding to perhaps w.r.t datatype-attached-to-environment) – that seems to rely on MPI_COMM_SELF callback (freeing comm-self triggers callback)
That is a good point. At first glance, attaching things to MPI_COMM_WORLD or MPI_COMM_SELF would have a similar effect to attaching stuff to the environment. I didn't think about this because I was reluctant to modify (in any way) either of these special communicators, in particular MPI_COMM_WORLD. But MPI_COMM_SELF might still be a good candidate; others can point out if there is a catch.
Thanks, Alfredo _ _
-- mpiwg-languages mailing list [email protected] https://urldefense.us/v3/__https://lists.mpi-forum.org/mailman/listinfo/mpiw... <https://urldefense.us/v3/__https://lists.mpi-forum.org/mailman/listinfo/mpiwg-languages__;!!G_uCfscf7eWS!ZuNmK6mbS8qplL9AjJRWQ3PTAbAGMusqRU86UgvAro-oRcRR3IP5L-WaNZYOuqTljFttBrcvO2SBSSC6N1BMLIOoHQbouh28UsDH$>
-- Jeff Hammond [email protected] https://urldefense.us/v3/__http://jeffhammond.github.io/__;!!G_uCfscf7eWS!d7...
participants (1)
-
Jeff Hammond