<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 16, 2016 at 11:30 AM, Jeff Squyres (jsquyres) <span dir="ltr"><<a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="auto">
<div>Forget the use-shared-memory hint; it was just an example. Substitute in any "foo" info key hint name(assuming the implementation understands the "foo" key hint name); the original question remains: what should the value be if the implementation cannot
provide the requested hint?</div>
<div><br></div></div></blockquote><div><br></div><div>If the implementation can _never_ provide that hint, then it should be set to "no" and your question about what happens later is not interesting, because the result there will be "no" whether the implementation remembers that you tried but failed to set it to "yes" or not, because the answer is still "no" and always will be.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div>
</div>
<div>- "yes" because the user asked for it (i.e., that's the hint, regardless of what the implementation dos with it)</div></div></blockquote><div><br></div><div>This answer contradicts the most reasonable interpretation of "hints actually used by the system"</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto">
<div>- "no" because the implementation could not provide it</div>
<div>- no "foo" key at all because the implementation did not use the hint</div></div></blockquote><div><br></div><div>I think these are equivalent from a user perspective. In both cases, the user is not getting the "magical_powers"="yes" they requested.</div><div><br></div><div>However, my reading of MPI 3.1 6.4.4 p250 says that the keys should be defined, but set to "no".</div><div><br></div><div>In any case, we need to improve the standard text unless Bill swoops in to tell us we are all idiots and points out text that makes the interpretation unambiguous :-)</div><div><br></div><div>Jeff</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto">
<div><br>
Sent from my phone. No type good. </div><div><div class="h5">
<div><br>
On Feb 16, 2016, at 2:16 PM, Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Feb 16, 2016 at 6:50 AM, Jeff Squyres (jsquyres)
<span dir="ltr"><<a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Jim --<br>
<br>
Based on your answer, I'm now a bit confused. I now need to back up from my original question and clarify what MPI_COMM_INFO_GET is supposed to return in this scenario:<br>
<span><br>
-----<br>
MPI_Info_set(myinfo, "use_shared_memory", "yes"); <br>
MPI_Comm_set_info(comm, my info);<br>
</span>// MPI implementation recognizes the "use_shared_memory" hint, but is<br>
// unable to use shared memory with this communicator<br>
MPI_Comm_get_info(comm, myinfo_returned); <br>
-----<br>
<br>
What value is in myinfo_returned for use_shared_memory?<br>
<br>
MPI 3.1 6.4.4 p250 says:<br>
<br>
"MPI_COMM_GET_INFO returns a new info object containing the hints of the communicator associated with comm. The current setting of all hints actually used by the system related to this communicator is returned in info_used."<br>
<br>
"...all hints actually used by the system..." is actually a bit ambiguous.<br>
<br>
In this case, "use_shared_memory" is *recognized* by the MPI implementation. But it wasn't able to be *used* (e.g., because no shared memory was available). So is the value in info_used supposed to be:<br>
<br>
</blockquote>
<div><br>
</div>
<div>How does it know how much shared memory is required? I don't see any reason for MPI_Comm_set_info to fail on account of lack of shared memory. If zero bytes of shared memory are available, how does MPI_Comm_set_info know that this is not enough when
the user actually needs?</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
1. The user's requested hint (i.e., "yes"), or<br>
</blockquote>
<div><br>
</div>
<div>I'm changing my answer to this one, in this case. For MPI_Alloc_mem and MPI_Win_allocate(_shared), my answer will be different.</div>
<div><br>
</div>
<div>The only reasonable behavior is for MPI_Comm_set_info to succeed and set "use_shared_memory"="yes". Subsequent operations may behave differently depending on how much shared memory is available. I would expect the user to probe that using MPI_T.</div>
<div><br>
</div>
<div>Jeff</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
2. What MPI is actually using (i.e., "no"), or<br>
3. Since this hint wasn't "used" by the system, then the "use_shared_memory" key shouldn't be returned in info_used<br>
<br>
?<br>
<br>
Indeed, one could make the argument that MPI_COMM_GET_INFO is supposed to return exactly the value(s) that the user requested (if it is *recognized* by the implementation), and MPI_T pvars and/or cvars should be queried to obtain the values indicating what
the implementation chose to do with those hints.<br>
<br>
Thoughts?<br>
<span><br>
<br>
<br>
On February 15, 2016 at 8:25:44 PM, Jim Dinan (<a href="mailto:james.dinan@gmail.com" target="_blank">james.dinan@gmail.com</a>) wrote:<br>
> "Same" should mean that these call sequences produce the same newcomm,<br>
> right?<br>
><br>
> MPI_Comm_get_info(comm, myinfo_returned);<br>
> MPI_Comm_dup_with_info(comm, &newcomm, myinfo_returned);<br>
><br>
> and<br>
><br>
> MPI_Comm_dup(comm, &newcomm);<br>
><br>
> I think this is an argument for "no".<br>
><br>
> I'm not sure if the question is asking whether the MPI implementation can<br>
> change communicator info values dynamically. I'm not sure the spec<br>
> actually addresses that possibility. If this is allowed, newcomm would<br>
> still only get "yes" if the implementation had also toggled the info key on<br>
> the parent communicator.<br>
><br>
> ~Jim.<br>
><br>
</span>
<div>
<div>> On Mon, Feb 15, 2016 at 5:34 PM, Jeff Squyres (jsquyres) > > wrote:<br>
><br>
> > This question has come up in the Open MPI community:<br>
> ><br>
> > -----<br>
> > MPI_Info_set(myinfo, "use_shared_memory", "yes");<br>
> > MPI_Comm_set_info(comm, myinfo);<br>
> > MPI_Comm_get_info(comm, myinfo_returned);<br>
> > // Assume here that there was not enough shared memory available to use<br>
> > shared-memory for<br>
> > // communication on this comm, so MPI_Info_get() tells us that<br>
> > use_shared_memory is "no".<br>
> ><br>
> > // ...time passes, and now assume there is more shared-memory available<br>
> > MPI_Comm_dup_with_info(comm, &newcom);<br>
> > MPI_comm_get_info(newcom, myinfo_returned);<br>
> > -----<br>
> ><br>
> > Should newcom have "use_shared_memory" set to "yes" or "no"?<br>
> ><br>
> > Arguments for "yes":<br>
> > - the user originally asked for "yes"<br>
> > - now there is shared memory available<br>
> ><br>
> > Arguments for "no":<br>
> > - the current value for "used_shared_memory" on the parent communicator is<br>
> > "no"<br>
> ><br>
> > Which should it be?<br>
> ><br>
> > MPI-3.1 6.4.2 p238 says:<br>
> ><br>
> > "...Returns in newcomer a new communicator with the same group or groups,<br>
> > same topology, same info hints, any copied cached information, but a new<br>
> > context (see Section 6.7.1)."<br>
> ><br>
> > So the specific question here is: what exactly does "Same info hints"<br>
> > mean? The user-specific hint, or the current value of the hint?<br>
> ><br>
> > --<br>
> > Jeff Squyres<br>
> > <a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a><br>
> > For corporate legal information go to:<br>
> > <a href="http://www.cisco.com/web/about/doing_business/legal/cri/" rel="noreferrer" target="_blank">
http://www.cisco.com/web/about/doing_business/legal/cri/</a><br>
> > _______________________________________________<br>
> > mpi-forum mailing list<br>
> > <a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a><br>
> > <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" rel="noreferrer" target="_blank">
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a><br>
> _______________________________________________<br>
> mpi-forum mailing list<br>
> <a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a><br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" rel="noreferrer" target="_blank">
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a><br>
<br>
--<br>
Jeff Squyres<br>
<a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a><br>
For corporate legal information go to: <a href="http://www.cisco.com/web/about/doing_business/legal/cri/" rel="noreferrer" target="_blank">
http://www.cisco.com/web/about/doing_business/legal/cri/</a><br>
_______________________________________________<br>
mpi-forum mailing list<br>
<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a></div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>Jeff Hammond<br>
<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
<a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div>
</div>
</div>
</blockquote>
</div></div><blockquote type="cite">
<div><span>Received: from <a href="http://xch-rtp-019.cisco.com" target="_blank">xch-rtp-019.cisco.com</a> (64.101.220.159) by
<a href="http://xch-rcd-019.cisco.com" target="_blank">xch-rcd-019.cisco.com</a></span><br>
<span>(173.37.102.29) with Microsoft SMTP Server (TLS) id 15.0.1104.5 via Mailbox</span><br>
<span>Transport; Tue, 16 Feb 2016 13:16:12 -0600</span><br>
<span>Received: from <a href="http://xch-rtp-004.cisco.com" target="_blank">xch-rtp-004.cisco.com</a> (64.101.220.144) by
<a href="http://xch-rtp-019.cisco.com" target="_blank">XCH-RTP-019.cisco.com</a></span><br>
<span>(64.101.220.159) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 16 Feb</span><br>
<span>2016 14:16:11 -0500</span><br>
<span>Received: from <a href="http://rcdn-iport-1.cisco.com" target="_blank">rcdn-iport-1.cisco.com</a> (173.37.86.72) by
<a href="http://mail.cisco.com" target="_blank">mail.cisco.com</a></span><br>
<span>(64.101.220.144) with Microsoft SMTP Server (TLS) id 15.0.1104.5 via Frontend</span><br>
<span>Transport; Tue, 16 Feb 2016 14:16:11 -0500</span><br>
<span>Received: from <a href="http://rcdn-core-5.cisco.com" target="_blank">rcdn-core-5.cisco.com</a> ([173.37.93.156])</span><br>
<span> by <a href="http://rcdn-iport-1.cisco.com" target="_blank">rcdn-iport-1.cisco.com</a> with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Feb 2016 19:16:09 +0000</span><br>
<span>Received: from <a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a> (<a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a> [173.37.147.235])</span><br>
<span> by <a href="http://rcdn-core-5.cisco.com" target="_blank">rcdn-core-5.cisco.com</a> (8.14.5/8.14.5) with ESMTP id u1GJG9s3016172;</span><br>
<span> Tue, 16 Feb 2016 19:16:10 GMT</span><br>
<span>Received-SPF: None (<a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a>: no sender</span><br>
<span> authenticity information available from domain of</span><br>
<span> <a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a>) identity=mailfrom;</span><br>
<span> client-ip=129.79.39.208; receiver=<a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a>;</span><br>
<span> envelope-from="<a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a>";</span><br>
<span> x-sender="<a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a>";</span><br>
<span> x-conformance=spf_only</span><br>
<span>Received-SPF: None (<a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a>: no sender</span><br>
<span> authenticity information available from domain of</span><br>
<span> <a href="mailto:postmaster@lion.crest.iu.edu" target="_blank">postmaster@lion.crest.iu.edu</a>) identity=helo;</span><br>
<span> client-ip=129.79.39.208; receiver=<a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a>;</span><br>
<span> envelope-from="<a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a>";</span><br>
<span> x-sender="<a href="mailto:postmaster@lion.crest.iu.edu" target="_blank">postmaster@lion.crest.iu.edu</a>";</span><br>
<span> x-conformance=spf_only</span><br>
<span>Authentication-Results: <a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a>; spf=None
<a href="mailto:smtp.mailfrom=mpi-forum-bounces@lists.mpi-forum.org" target="_blank">smtp.mailfrom=mpi-forum-bounces@lists.mpi-forum.org</a>; spf=None
<a href="mailto:smtp.helo=postmaster@lion.crest.iu.edu" target="_blank">smtp.helo=postmaster@lion.crest.iu.edu</a>; dkim=hardfail (body hash did not verify [final])
<a href="mailto:header.i=@gmail.com" target="_blank">header.i=@gmail.com</a>; dkim=hardfail (body hash did not verify [final])
<a href="mailto:header.i=@gmail.com" target="_blank">header.i=@gmail.com</a>; dmarc=fail (p=none dis=none) d=<a href="http://gmail.com" target="_blank">gmail.com</a></span><br>
<span>X-from-outside-Cisco: 129.79.39.208</span><br>
<span>IronPort-PHdr: =?us-ascii?q?9a23=3A3koMHBVMN/yf5qkGiy0ZpEKb+w/V8LGtZVwlr6E/?=</span><br>
<span>=?us-ascii?q?grcLSJyIuqrYYRSBt8tkgFKBZ4jH8fUM07OQ6PC/HzBbqs/Y4TgrS99laVwssY?=</span><br>
<span>=?us-ascii?q?0uhQsuAcqIWwXQDcXBSGgEJvlET0Jv5HqhMEJYS47UblzWpWCuv3ZJQk2sfTR8?=</span><br>
<span>=?us-ascii?q?Kum9IIPOlcP/j7n0oM2MJVkTz2PkMPtbF1afk0b4joEum4xsK6I8mFPig0BjXK?=</span><br>
<span>=?us-ascii?q?Bo/15uPk+ZhB3m5829r9ZJ+iVUvO89pYYbCf2pN4xxd7FTDSwnPmYp/4Wr8ECb?=</span><br>
<span>=?us-ascii?q?FUrcrkYaSXgcxxpUHxCXq1b+X4ztqW3/rus41i6AIMiwSqo7HjGr7qNuQRmvjz?=</span><br>
<span>=?us-ascii?q?8bNjk/6yfchc03ibpa5RymvQF6kLPSe5yfYf93f6fBeoEfXWsEUMFLSikEGI6l?=</span><br>
<span>=?us-ascii?q?coYUE8IFPP1EtM/4v1pLoxykGAzqA/ngnSRVjH371rFvzuI6DAvd1xYhFd9djH?=</span><br>
<span>=?us-ascii?q?OBidz0Mu83acH94q7S0DCLavpX3Tb758DMcws96aWJRbM1f83L1EwHEwLekk7W?=</span><br>
<span>=?us-ascii?q?rJTkej2SzPkI9W+B4Lwzb++3j38brFRUqzmpjuIUq8HngZgIzxjB/CR9wYA6bd?=</span><br>
<span>=?us-ascii?q?m5U1IzNdu8Ed5esDuHMqNyQ9g+WCdtoCd/xLocpJv9ezIFnscJ3RnaPt6KfYbA?=</span><br>
<span>=?us-ascii?q?whvmUeGXLX8shn9rdvSkjBe/90Ot4uL5X8iwll1Nq3wWwZH3qnkR2kmLuYC8Qf?=</span><br>
<span>=?us-ascii?q?xn8xLkgG7X2g=3D=3D?=</span><br>
<span>X-IronPort-Anti-Spam-Filtered: true</span><br>
<span>X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0GWAACSdMNWmdAnT4FeBhMBAQEBDwEBA?=</span><br>
<span>=?us-ascii?q?QEGAQEBAYNSRyYGhDWkGIFJI4UhilQBDYEmGyIbAQmHJD8UAQEBAQEBAQECDgE?=</span><br>
<span>=?us-ascii?q?BAQEBCAsJCSEugi0JATgGBAEBBAEBAQEBAQEBASMBAQEBAQEBAQEBAQEBAQEBA?=</span><br>
<span>=?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQYCDR4PFgEaAQEBAQIBAQEBDxEdAQUKDBIMAgE?=</span><br>
<span>=?us-ascii?q?BAQECBgEBBQULDRUNBAQCAgMBGgMBAQUECAEFARwGEwUPDodiAQMKCA6eJIExP?=</span><br>
<span>=?us-ascii?q?jGLNIFpgleBYINOChknDVGECAEBAQEBAQEDAQEBAQEVAQUKBIUQhSiCN4I6gkG?=</span><br>
<span>=?us-ascii?q?BOgWOHIhCIYENhEaFH3SBc4ImjE1EhjuGBREePwNaDwEBgkEcgWlJAYhbAQEB?=</span><br>
<span>X-IPAS-Result: =?us-ascii?q?A0GWAACSdMNWmdAnT4FeBhMBAQEBDwEBAQEGAQEBAYNSRyY?=</span><br>
<span>=?us-ascii?q?GhDWkGIFJI4UhilQBDYEmGyIbAQmHJD8UAQEBAQEBAQECDgEBAQEBCAsJCSEug?=</span><br>
<span>=?us-ascii?q?i0JATgGBAEBBAEBAQEBAQEBASMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE?=</span><br>
<span>=?us-ascii?q?BAQEBAQEBAQYCDR4PFgEaAQEBAQIBAQEBDxEdAQUKDBIMAgEBAQECBgEBBQULD?=</span><br>
<span>=?us-ascii?q?RUNBAQCAgMBGgMBAQUECAEFARwGEwUPDodiAQMKCA6eJIExPjGLNIFpgleBYIN?=</span><br>
<span>=?us-ascii?q?OChknDVGECAEBAQEBAQEDAQEBAQEVAQUKBIUQhSiCN4I6gkGBOgWOHIhCIYENh?=</span><br>
<span>=?us-ascii?q?EaFH3SBc4ImjE1EhjuGBREePwNaDwEBgkEcgWlJAYhbAQEB?=</span><br>
<span>X-IronPort-AV: E=Sophos;i="5.22,456,1449532800"; </span><br>
<span> d="scan'208,217";a="194686767"</span><br>
<span>X-Amp-Result: Clean</span><br>
<span>X-Amp-File-Uploaded: False</span><br>
<span>X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown</span><br>
<span>Received: from <a href="http://crest.iu.edu" target="_blank">crest.iu.edu</a> (HELO <a href="http://lion.crest.iu.edu" target="_blank">
lion.crest.iu.edu</a>) ([129.79.39.208])</span><br>
<span> by <a href="http://alln-inbound-e.cisco.com" target="_blank">alln-inbound-e.cisco.com</a> with ESMTP; 16 Feb 2016 19:16:08 +0000</span><br>
<span>Received: by <a href="http://lion.crest.iu.edu" target="_blank">lion.crest.iu.edu</a> (Postfix, from userid 493)</span><br>
<span> id 8E3BD260779; Tue, 16 Feb 2016 14:16:08 -0500 (EST)</span><br>
<span>X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on <a href="http://lion.crest.iu.edu" target="_blank">
lion.crest.iu.edu</a></span><br>
<span>X-Spam-Level:</span><br>
<span>X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED,</span><br>
<span> DKIM_SIGNED,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,T_DKIM_INVALID</span><br>
<span> autolearn=unavailable version=3.3.1</span><br>
<span>Received: from <a href="http://crest.iu.edu" target="_blank">crest.iu.edu</a> (localhost [127.0.0.1])</span><br>
<span> by <a href="http://lion.crest.iu.edu" target="_blank">lion.crest.iu.edu</a> (Postfix) with ESMTP id 220D12608A4;</span><br>
<span> Tue, 16 Feb 2016 14:16:06 -0500 (EST)</span><br>
<span>X-Original-To: <a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
<span>Delivered-To: <a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
<span>Received: by <a href="http://lion.crest.iu.edu" target="_blank">lion.crest.iu.edu</a> (Postfix, from userid 493)</span><br>
<span> id C3B4326079D; Tue, 16 Feb 2016 14:16:04 -0500 (EST)</span><br>
<span>Received: from <a href="http://mail-ob0-f177.google.com" target="_blank">mail-ob0-f177.google.com</a> (<a href="http://mail-ob0-f177.google.com" target="_blank">mail-ob0-f177.google.com</a></span><br>
<span> [209.85.214.177])</span><br>
<span> by <a href="http://lion.crest.iu.edu" target="_blank">lion.crest.iu.edu</a> (Postfix) with ESMTP id 0CF2D260779</span><br>
<span> for <<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a>>;</span><br>
<span> Tue, 16 Feb 2016 14:16:04 -0500 (EST)</span><br>
<span>Received: by <a href="http://mail-ob0-f177.google.com" target="_blank">mail-ob0-f177.google.com</a> with SMTP id gc3so172260092obb.3</span><br>
<span> for <<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a>>;</span><br>
<span> Tue, 16 Feb 2016 11:16:04 -0800 (PST)</span><br>
<span>DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=<a href="http://gmail.com" target="_blank">gmail.com</a>; s=20120113;</span><br>
<span> h=mime-version:in-reply-to:references:from:date:message-id:subject:to</span><br>
<span> :cc:content-type;</span><br>
<span> bh=KEQt98rYsl7/LCgT0QeppyTHXsG6OQ4HlXJPO5cSx6g=;</span><br>
<span> b=ZjDP3X63meN3mEnca6KBi6EBk9pci2/5zBnyPW9jXQQoUqv8q6f6xnTqfe6kAJIANL</span><br>
<span> BrdVhlIVnOzqmSuQluiCJ+wif1RFZsh9I1q2Rc3JmktVNu9mlkj8GABpnIV76JsN3+Nh</span><br>
<span> TE4bBFG6d/yEpONEhBmHYb0M9CPNfGwjyHcU/iwIIdp/NJ2aCFQd2DT3iTjubsfcQ9YC</span><br>
<span> NtZrfSHLBJ7W7uXA4xh502P+h5n3Zw4cK5T3jvnX2dS8Ya7q2RgvaB9hZ0O573Z8KPGX</span><br>
<span> NckpbsAI93Z+2WOYKjYD+RahNtTisu/3pg/YUYPp32fT3ClY6+y/lCvz+v3MAbEr5QwM</span><br>
<span> i3hw==</span><br>
<span>X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;</span><br>
<span> d=<a href="http://1e100.net" target="_blank">1e100.net</a>; s=20130820;</span><br>
<span> h=x-gm-message-state:mime-version:in-reply-to:references:from:date</span><br>
<span> :message-id:subject:to:cc:content-type;</span><br>
<span> bh=KEQt98rYsl7/LCgT0QeppyTHXsG6OQ4HlXJPO5cSx6g=;</span><br>
<span> b=f0LWIMla+RNtd30P6me/Due6bIOkINSUFd72cgxq4quY2u5vwQ2vGAidpQmR6GxaVX</span><br>
<span> Va0CxATjTEdQthxE645JcglMkoa3Qr3/NyZSn3NdxXcGBNSt4O21JWy2JMhyrRq/ZOdU</span><br>
<span> ZUUWR3E/0sndIX6N2CVn8TmcDe+V6oK5seuP1/s0DBArBabm7UvX8i4WpZ87Rbro8ZZz</span><br>
<span> bGaz6H5r2BNGfvqTs/dJpFgngDtZmQhfs9bBQqTAZnZF2BT0Hr5mYXslbpVpeeFP10ZB</span><br>
<span> js+ZIBksZ3r0nNfSp2PBSI80LJmHIYwzv1Uo4Dv+qMXMS/r5JI3ZDgdYBaajWn3Ed4Hg</span><br>
<span> Wurw==</span><br>
<span>X-Gm-Message-State: AG10YORIYeBZwr2gNbdXFNnEMipCzyF4XmxjsJ5xCcL1SPpPAt3FYho5f7woQq6eyHH8eU3A5UOCDzVNozyUTg==</span><br>
<span>X-Received: by 10.182.81.227 with SMTP id d3mr8859463oby.78.1455650163481;</span><br>
<span> Tue, 16 Feb 2016 11:16:03 -0800 (PST)</span><br>
<span>Received: by 10.76.160.99 with HTTP; Tue, 16 Feb 2016 11:15:43 -0800 (PST)</span><br>
<span>In-Reply-To: <etPan.56c3373a.c1948d0.7e1e@JSQUYRES-M-H05C></span><br>
<span>References: <etPan.56c25272.501e2675.7e1e@JSQUYRES-M-H05C></span><br>
<span> <<a href="mailto:CAOoEU4Hp-m7RVfAD42ueQLcryUyAP4zY_D-prbHHyPwBdi=6Hg@mail.gmail.com" target="_blank">CAOoEU4Hp-m7RVfAD42ueQLcryUyAP4zY_D-prbHHyPwBdi=6Hg@mail.gmail.com</a>></span><br>
<span> <etPan.56c3373a.c1948d0.7e1e@JSQUYRES-M-H05C></span><br>
<span>From: Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>></span><br>
<span>Date: Tue, 16 Feb 2016 11:15:43 -0800</span><br>
<span>Message-ID: <<a href="mailto:CAGKz=u+pZtXqgiNV+tgCiv+tttMBUREc6CMYG=BVcC7eqYXcpw@mail.gmail.com" target="_blank">CAGKz=u+pZtXqgiNV+tgCiv+tttMBUREc6CMYG=BVcC7eqYXcpw@mail.gmail.com</a>></span><br>
<span>To: Main MPI Forum mailing list <<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a>></span><br>
<span>Subject: Re: [Mpi-forum] Question about MPI_Info set on communicators</span><br>
<span>X-BeenThere: <a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
<span>X-Mailman-Version: 2.1.15</span><br>
<span>Precedence: list</span><br>
<span>Reply-To: Main MPI Forum mailing list <<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a>></span><br>
<span>List-Id: Main MPI Forum mailing list <<a href="http://mpi-forum.lists.mpi-forum.org" target="_blank">mpi-forum.lists.mpi-forum.org</a>></span><br>
<span>List-Unsubscribe: <<a href="http://lists.mpi-forum.org/mailman/options.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/options.cgi/mpi-forum</a>>,</span><br>
<span> <<a href="mailto:mpi-forum-request@lists.mpi-forum.org?subject=unsubscribe" target="_blank">mailto:mpi-forum-request@lists.mpi-forum.org?subject=unsubscribe</a>></span><br>
<span>List-Archive: <<a href="http://lists.mpi-forum.org/MailArchives/mpi-forum/" target="_blank">http://lists.mpi-forum.org/MailArchives/mpi-forum/</a>></span><br>
<span>List-Post: <<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mailto:mpi-forum@lists.mpi-forum.org</a>></span><br>
<span>List-Help: <<a href="mailto:mpi-forum-request@lists.mpi-forum.org?subject=help" target="_blank">mailto:mpi-forum-request@lists.mpi-forum.org?subject=help</a>></span><br>
<span>List-Subscribe: <<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a>>,</span><br>
<span> <<a href="mailto:mpi-forum-request@lists.mpi-forum.org?subject=subscribe" target="_blank">mailto:mpi-forum-request@lists.mpi-forum.org?subject=subscribe</a>></span><br>
<span>Content-Type: multipart/mixed; boundary="===============5365574427901088839=="</span><br>
<span>Errors-To: <a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a></span><br>
<span>Sender: mpi-forum <<a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a>></span><br>
<span>Return-Path: <a href="mailto:mpi-forum-bounces@lists.mpi-forum.org" target="_blank">mpi-forum-bounces@lists.mpi-forum.org</a></span><br>
<span>X-MS-Exchange-Organization-AuthSource: <a href="http://xch-rtp-004.cisco.com" target="_blank">
XCH-RTP-004.cisco.com</a></span><br>
<span>X-MS-Exchange-Organization-AuthAs: Internal</span><br>
<span>X-MS-Exchange-Organization-AuthMechanism: 10</span><br>
<span>X-MS-Exchange-Organization-Network-Message-Id: b0530982-0953-4081-be2c-08d33705a182</span><br>
<span>X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0</span><br>
<span>MIME-Version: 1.0</span><br>
<span></span><br>
<span>--===============5365574427901088839==</span><br>
<span>Content-Type: multipart/alternative; boundary=047d7b2e4058e96442052be7f662</span><br>
<span></span><br>
<span>--047d7b2e4058e96442052be7f662</span><br>
<span>Content-Type: text/plain; charset=UTF-8</span><div><div class="h5"><br>
<span></span><br>
<span>On Tue, Feb 16, 2016 at 6:50 AM, Jeff Squyres (jsquyres) <<a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a></span><br>
<blockquote type="cite"><span>wrote:</span><br>
</blockquote>
<span></span><br>
<blockquote type="cite"><span>Jim --</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>Based on your answer, I'm now a bit confused. I now need to back up from</span><br>
</blockquote>
<blockquote type="cite"><span>my original question and clarify what MPI_COMM_INFO_GET is supposed to</span><br>
</blockquote>
<blockquote type="cite"><span>return in this scenario:</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>-----</span><br>
</blockquote>
<blockquote type="cite"><span>MPI_Info_set(myinfo, "use_shared_memory", "yes");</span><br>
</blockquote>
<blockquote type="cite"><span>MPI_Comm_set_info(comm, my info);</span><br>
</blockquote>
<blockquote type="cite"><span>// MPI implementation recognizes the "use_shared_memory" hint, but is</span><br>
</blockquote>
<blockquote type="cite"><span>// unable to use shared memory with this communicator</span><br>
</blockquote>
<blockquote type="cite"><span>MPI_Comm_get_info(comm, myinfo_returned);</span><br>
</blockquote>
<blockquote type="cite"><span>-----</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>What value is in myinfo_returned for use_shared_memory?</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>MPI 3.1 6.4.4 p250 says:</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>"MPI_COMM_GET_INFO returns a new info object containing the hints of the</span><br>
</blockquote>
<blockquote type="cite"><span>communicator associated with comm. The current setting of all hints</span><br>
</blockquote>
<blockquote type="cite"><span>actually used by the system related to this communicator is returned in</span><br>
</blockquote>
<blockquote type="cite"><span>info_used."</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>"...all hints actually used by the system..." is actually a bit ambiguous.</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>In this case, "use_shared_memory" is *recognized* by the MPI</span><br>
</blockquote>
<blockquote type="cite"><span>implementation. But it wasn't able to be *used* (e.g., because no shared</span><br>
</blockquote>
<blockquote type="cite"><span>memory was available). So is the value in info_used supposed to be:</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<span>How does it know how much shared memory is required? I don't see any</span><br>
<span>reason for MPI_Comm_set_info to fail on account of lack of shared memory.</span><br>
<span>If zero bytes of shared memory are available, how does MPI_Comm_set_info</span><br>
<span>know that this is not enough when the user actually needs?</span><br>
<span></span><br>
<span></span><br>
<blockquote type="cite"><span>1. The user's requested hint (i.e., "yes"), or</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<span></span><br>
<span>I'm changing my answer to this one, in this case. For MPI_Alloc_mem and</span><br>
<span>MPI_Win_allocate(_shared), my answer will be different.</span><br>
<span></span><br>
<span>The only reasonable behavior is for MPI_Comm_set_info to succeed and set</span><br>
<span>"use_shared_memory"="yes". Subsequent operations may behave differently</span><br>
<span>depending on how much shared memory is available. I would expect the user</span><br>
<span>to probe that using MPI_T.</span><br>
<span></span><br>
<span>Jeff</span><br>
<span></span><br>
<span></span><br>
<blockquote type="cite"><span>2. What MPI is actually using (i.e., "no"), or</span><br>
</blockquote>
<blockquote type="cite"><span>3. Since this hint wasn't "used" by the system, then the</span><br>
</blockquote>
<blockquote type="cite"><span>"use_shared_memory" key shouldn't be returned in info_used</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>?</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>Indeed, one could make the argument that MPI_COMM_GET_INFO is supposed to</span><br>
</blockquote>
<blockquote type="cite"><span>return exactly the value(s) that the user requested (if it is *recognized*</span><br>
</blockquote>
<blockquote type="cite"><span>by the implementation), and MPI_T pvars and/or cvars should be queried to</span><br>
</blockquote>
<blockquote type="cite"><span>obtain the values indicating what the implementation chose to do with those</span><br>
</blockquote>
<blockquote type="cite"><span>hints.</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>Thoughts?</span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>On February 15, 2016 at 8:25:44 PM, Jim Dinan (<a href="mailto:james.dinan@gmail.com" target="_blank">james.dinan@gmail.com</a>)</span><br>
</blockquote>
<blockquote type="cite"><span>wrote:</span><br>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>"Same" should mean that these call sequences produce the same newcomm,</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>right?</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Comm_get_info(comm, myinfo_returned);</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Comm_dup_with_info(comm, &newcomm, myinfo_returned);</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>and</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Comm_dup(comm, &newcomm);</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>I think this is an argument for "no".</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>I'm not sure if the question is asking whether the MPI implementation can</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>change communicator info values dynamically. I'm not sure the spec</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>actually addresses that possibility. If this is allowed, newcomm would</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>still only get "yes" if the implementation had also toggled the info key</span><br>
</blockquote>
</blockquote>
<blockquote type="cite"><span>on</span><br>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>the parent communicator.</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>~Jim.</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>On Mon, Feb 15, 2016 at 5:34 PM, Jeff Squyres (jsquyres) > > wrote:</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>This question has come up in the Open MPI community:</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>-----</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Info_set(myinfo, "use_shared_memory", "yes");</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Comm_set_info(comm, myinfo);</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Comm_get_info(comm, myinfo_returned);</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>// Assume here that there was not enough shared memory available to use</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>shared-memory for</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>// communication on this comm, so MPI_Info_get() tells us that</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>use_shared_memory is "no".</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>// ...time passes, and now assume there is more shared-memory available</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>MPI_Comm_dup_with_info(comm, &newcom);</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>MPI_comm_get_info(newcom, myinfo_returned);</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>-----</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>Should newcom have "use_shared_memory" set to "yes" or "no"?</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>Arguments for "yes":</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>- the user originally asked for "yes"</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>- now there is shared memory available</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>Arguments for "no":</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>- the current value for "used_shared_memory" on the parent</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite"><span>communicator is</span><br>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>"no"</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>Which should it be?</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>MPI-3.1 6.4.2 p238 says:</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>"...Returns in newcomer a new communicator with the same group or</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite"><span>groups,</span><br>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>same topology, same info hints, any copied cached information, but a</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite"><span>new</span><br>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>context (see Section 6.7.1)."</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>So the specific question here is: what exactly does "Same info hints"</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>mean? The user-specific hint, or the current value of the hint?</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>--</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>Jeff Squyres</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span><a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>For corporate legal information go to:</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span><a href="http://www.cisco.com/web/about/doing_business/legal/cri/" target="_blank">http://www.cisco.com/web/about/doing_business/legal/cri/</a></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>_______________________________________________</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span>mpi-forum mailing list</span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span><a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"><span><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a></span><br>
</blockquote>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>_______________________________________________</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span>mpi-forum mailing list</span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span><a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
</blockquote>
</blockquote>
<blockquote type="cite">
<blockquote type="cite"><span><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a></span><br>
</blockquote>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<blockquote type="cite"><span>--</span><br>
</blockquote>
<blockquote type="cite"><span>Jeff Squyres</span><br>
</blockquote>
<blockquote type="cite"><span><a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a></span><br>
</blockquote>
<blockquote type="cite"><span>For corporate legal information go to:</span><br>
</blockquote>
<blockquote type="cite"><span><a href="http://www.cisco.com/web/about/doing_business/legal/cri/" target="_blank">http://www.cisco.com/web/about/doing_business/legal/cri/</a></span><br>
</blockquote>
<blockquote type="cite"><span>_______________________________________________</span><br>
</blockquote>
<blockquote type="cite"><span>mpi-forum mailing list</span><br>
</blockquote>
<blockquote type="cite"><span><a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
</blockquote>
<blockquote type="cite"><span><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a></span><br>
</blockquote>
<blockquote type="cite"><span></span><br>
</blockquote>
<span></span><br>
<span></span><br>
<span></span><br>
<span>-- </span><br>
<span>Jeff Hammond</span><br>
<span><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a></span><br>
<span><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></span><br>
<span></span><br>
</div></div><span>--047d7b2e4058e96442052be7f662</span><br>
<span>Content-Type: text/html; charset=UTF-8</span><br>
<span>Content-Transfer-Encoding: quoted-printable</span><br>
<span></span><br>
<span><meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8"><d=</span><br>
<span>iv dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quote=</span><br>
<span>">On Tue, Feb 16, 2016 at 6:50 AM, Jeff Squyres (jsquyres) <span dir=3D"ltr=</span><br>
<span>"><<a href=3D"<a href="mailto:jsquyres@cisco.com" target="_blank">mailto:jsquyres@cisco.com</a>" target=3D"_blank">jsquyres@cisc=</span><br>
<span><a href="http://o.com" target="_blank">o.com</a></a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=</span><br>
<span>argin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204=</span><br>
<span>,204);border-left-style:solid;padding-left:1ex">Jim --<br></span><br>
<span><br></span><br>
<span>Based on your answer, I'm now a bit confused. I now need to back up f=</span><br>
<span>rom my original question and clarify what MPI_COMM_INFO_GET is supposed to =</span><br>
<span>return in this scenario:<br></span><br>
<span><span class=3D""><br></span><br>
<span>-----<br></span><br>
<span>MPI_Info_set(myinfo, "use_shared_memory", "yes"); =</span><br>
<span><br></span><br>
<span>MPI_Comm_set_info(comm, my info);<br></span><br>
<span></span>// MPI implementation recognizes the "use_shared_memory" h=</span><br>
<span>int, but is<br></span><br>
<span>// unable to use shared memory with this communicator<br></span><br>
<span>MPI_Comm_get_info(comm, myinfo_returned); <br></span><br>
<span>-----<br></span><br>
<span><br></span><br>
<span>What value is in myinfo_returned for use_shared_memory?<br></span><br>
<span><br></span><br>
<span>MPI 3.1 6.4.4 p250 says:<br></span><br>
<span><br></span><br>
<span>"MPI_COMM_GET_INFO returns a new info object containing the hints of t=</span><br>
<span>he communicator associated with comm. The current setting of all hints actu=</span><br>
<span>ally used by the system related to this communicator is returned in info_us=</span><br>
<span>ed."<br></span><br>
<span><br></span><br>
<span>"...all hints actually used by the system..." is actually a bit a=</span><br>
<span>mbiguous.<br></span><br>
<span><br></span><br>
<span>In this case, "use_shared_memory" is *recognized* by the MPI impl=</span><br>
<span>ementation. But it wasn't able to be *used* (e.g., because no shared =</span><br>
<span>memory was available). So is the value in info_used supposed to =</span><br>
<span>be:<br></span><br>
<span><br></blockquote><div><br></div><div>How does it know how much shared memor=</span><br>
<span>y is required? I don't see any reason for MPI_Comm_set_info to fail o=</span><br>
<span>n account of lack of shared memory. If zero bytes of shared memory ar=</span><br>
<span>e available, how does MPI_Comm_set_info know that this is not enough when t=</span><br>
<span>he user actually needs?</div><div> </div><blockquote class=3D"gmail_qu=</span><br>
<span>ote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-co=</span><br>
<span>lor:rgb(204,204,204);border-left-style:solid;padding-left:1ex"></span><br>
<span>1. The user's requested hint (i.e., "yes"), or<br></blockquote><d=</span><br>
<span>iv><br></div><div>I'm changing my answer to this one, in this case. F=</span><br>
<span>or MPI_Alloc_mem and MPI_Win_allocate(_shared), my answer will be different=</span><br>
<span>.</div><div><br></div><div>The only reasonable behavior is for MPI_Comm_set=</span><br>
<span>_info to succeed and set "use_shared_memory"=3D"yes".&n=</span><br>
<span>bsp; Subsequent operations may behave differently depending on how much sha=</span><br>
<span>red memory is available. I would expect the user to probe that using =</span><br>
<span>MPI_T.</div><div><br></div><div>Jeff</div><div> </div><blockquote clas=</span><br>
<span>s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;b=</span><br>
<span>order-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"=</span><br>
<blockquote type="cite"><span></span><br>
</blockquote>
<span>2. What MPI is actually using (i.e., "no"), or<br></span><br>
<span>3. Since this hint wasn't "used" by the system, then the "us=</span><br>
<span>e_shared_memory" key shouldn't be returned in info_used<br></span><br>
<span><br></span><br>
<span>?<br></span><br>
<span><br></span><br>
<span>Indeed, one could make the argument that MPI_COMM_GET_INFO is supposed to r=</span><br>
<span>eturn exactly the value(s) that the user requested (if it is *recognized* b=</span><br>
<span>y the implementation), and MPI_T pvars and/or cvars should be queried to ob=</span><br>
<span>tain the values indicating what the implementation chose to do with those h=</span><br>
<span>ints.<br></span><br>
<span><br></span><br>
<span>Thoughts?<br></span><br>
<span><span class=3D"im"><br></span><br>
<span><br></span><br>
<span><br></span><br>
<span>On February 15, 2016 at 8:25:44 PM, Jim Dinan (<a href=3D"mailto:<a href="mailto:james.dina" target="_blank">james.dina</a>=</span><br>
<span><a href="mailto:n@gmail.com" target="_blank">n@gmail.com</a>"><a href="mailto:james.dinan@gmail.com" target="_blank">james.dinan@gmail.com</a></a>) wrote:<br></span><br>
<span>> "Same" should mean that these call sequences produce the sam=</span><br>
<span>e newcomm,<br></span><br>
<span>> right?<br></span><br>
<span>><br></span><br>
<span>> MPI_Comm_get_info(comm, myinfo_returned);<br></span><br>
<span>> MPI_Comm_dup_with_info(comm, &newcomm, myinfo_returned);<br></span><br>
<span>><br></span><br>
<span>> and<br></span><br>
<span>><br></span><br>
<span>> MPI_Comm_dup(comm, &newcomm);<br></span><br>
<span>><br></span><br>
<span>> I think this is an argument for "no".<br></span><br>
<span>><br></span><br>
<span>> I'm not sure if the question is asking whether the MPI implementation =</span><br>
<span>can<br></span><br>
<span>> change communicator info values dynamically. I'm not sure the spec<br></span><br>
<span>> actually addresses that possibility. If this is allowed, newcomm would=</span><br>
<span><br></span><br>
<span>> still only get "yes" if the implementation had also toggled =</span><br>
<span>the info key on<br></span><br>
<span>> the parent communicator.<br></span><br>
<span>><br></span><br>
<span>> ~Jim.<br></span><br>
<span>><br></span><br>
<span></span><div class=3D""><div class=3D"h5">> On Mon, Feb 15, 2016 at 5:34 =</span><br>
<span>PM, Jeff Squyres (jsquyres) > > wrote:<br></span><br>
<span>><br></span><br>
<span>> > This question has come up in the Open MPI community:<br></span><br>
<span>> ><br></span><br>
<span>> > -----<br></span><br>
<span>> > MPI_Info_set(myinfo, "use_shared_memory", "yes&quo=</span><br>
<span>t;);<br></span><br>
<span>> > MPI_Comm_set_info(comm, myinfo);<br></span><br>
<span>> > MPI_Comm_get_info(comm, myinfo_returned);<br></span><br>
<span>> > // Assume here that there was not enough shared memory available =</span><br>
<span>to use<br></span><br>
<span>> > shared-memory for<br></span><br>
<span>> > // communication on this comm, so MPI_Info_get() tells us that<br=</span><br>
<blockquote type="cite"><span></span><br>
</blockquote>
<span>> > use_shared_memory is "no".<br></span><br>
<span>> ><br></span><br>
<span>> > // ...time passes, and now assume there is more shared-memory ava=</span><br>
<span>ilable<br></span><br>
<span>> > MPI_Comm_dup_with_info(comm, &newcom);<br></span><br>
<span>> > MPI_comm_get_info(newcom, myinfo_returned);<br></span><br>
<span>> > -----<br></span><br>
<span>> ><br></span><br>
<span>> > Should newcom have "use_shared_memory" set to "yes=</span><br>
<span>" or "no"?<br></span><br>
<span>> ><br></span><br>
<span>> > Arguments for "yes":<br></span><br>
<span>> > - the user originally asked for "yes"<br></span><br>
<span>> > - now there is shared memory available<br></span><br>
<span>> ><br></span><br>
<span>> > Arguments for "no":<br></span><br>
<span>> > - the current value for "used_shared_memory" on the par=</span><br>
<span>ent communicator is<br></span><br>
<span>> > "no"<br></span><br>
<span>> ><br></span><br>
<span>> > Which should it be?<br></span><br>
<span>> ><br></span><br>
<span>> > MPI-3.1 6.4.2 p238 says:<br></span><br>
<span>> ><br></span><br>
<span>> > "...Returns in newcomer a new communicator with the same gro=</span><br>
<span>up or groups,<br></span><br>
<span>> > same topology, same info hints, any copied cached information, bu=</span><br>
<span>t a new<br></span><br>
<span>> > context (see Section 6.7.1)."<br></span><br>
<span>> ><br></span><br>
<span>> > So the specific question here is: what exactly does "Same in=</span><br>
<span>fo hints"<br></span><br>
<span>> > mean? The user-specific hint, or the current value of the hint?<b=</span><br>
<span>r></span><br>
<span>> ><br></span><br>
<span>> > --<br></span><br>
<span>> > Jeff Squyres<br></span><br>
<span>> > <a href=3D"<a href="mailto:jsquyres@cisco.com" target="_blank">mailto:jsquyres@cisco.com</a>"><a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a></a><br></span><br>
<span>> > For corporate legal information go to:<br></span><br>
<span>> > <a href=3D"<a href="http://www.cisco.com/web/about/doing_business/legal/cr=" target="_blank">http://www.cisco.com/web/about/doing_business/legal/cr=</a></span><br>
<span>i/" rel=3D"noreferrer" target=3D"_blank"><a href="http://www.cisco.com/web/about/doi=" target="_blank">http://www.cisco.com/web/about/doi=</a></span><br>
<span>ng_business/legal/cri/</a><br></span><br>
<span>> > _______________________________________________<br></span><br>
<span>> > mpi-forum mailing list<br></span><br>
<span>> > <a href=3D"<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mailto:mpi-forum@lists.mpi-forum.org</a>">mpi-forum@lists.=</span><br>
<span><a href="http://mpi-forum.org" target="_blank">mpi-forum.org</a></a><br></span><br>
<span>> > <a href=3D"<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-fo=" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-fo=</a></span><br>
<span>rum" rel=3D"noreferrer" target=3D"_blank"><a href="http://lists.mpi-forum.org/mailma=" target="_blank">http://lists.mpi-forum.org/mailma=</a></span><br>
<span>n/listinfo.cgi/mpi-forum</a><br></span><br>
<span>> _______________________________________________<br></span><br>
<span>> mpi-forum mailing list<br></span><br>
<span>> <a href=3D"<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mailto:mpi-forum@lists.mpi-forum.org</a>"><a href="mailto:mpi-forum@lists.mpi" target="_blank">mpi-forum@lists.mpi</a>-f=</span><br>
<span><a href="http://orum.org" target="_blank">orum.org</a></a><br></span><br>
<span>> <a href=3D"<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a>" =</span><br>
<span>rel=3D"noreferrer" target=3D"_blank"><a href="http://lists.mpi-forum.org/mailman/lis=" target="_blank">http://lists.mpi-forum.org/mailman/lis=</a></span><br>
<span>tinfo.cgi/mpi-forum</a><br></span><br>
<span><br></span><br>
<span>--<br></span><br>
<span>Jeff Squyres<br></span><br>
<span><a href=3D"<a href="mailto:jsquyres@cisco.com" target="_blank">mailto:jsquyres@cisco.com</a>"><a href="mailto:jsquyres@cisco.com" target="_blank">jsquyres@cisco.com</a></a><br></span><br>
<span>For corporate legal information go to: <a href=3D"<a href="http://www.cisco.com/web/=" target="_blank">http://www.cisco.com/web/=</a></span><br>
<span>about/doing_business/legal/cri/" rel=3D"noreferrer" target=3D"_blank">http:=</span><br>
<span>//<a href="http://www.cisco.com/web/about/doing_business/legal/cri/" target="_blank">www.cisco.com/web/about/doing_business/legal/cri/</a></a><br></span><br>
<span>_______________________________________________<br></span><br>
<span>mpi-forum mailing list<br></span><br>
<span><a href=3D"<a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mailto:mpi-forum@lists.mpi-forum.org</a>"><a href="mailto:mpi-forum@lists.mpi" target="_blank">mpi-forum@lists.mpi</a>-forum.=</span><br>
<span>org</a><br></span><br>
<span><a href=3D"<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a>" rel=</span><br>
<span>=3D"noreferrer" target=3D"_blank"><a href="http://lists.mpi-forum.org/mailman/listin=" target="_blank">http://lists.mpi-forum.org/mailman/listin=</a></span><br>
<span>fo.cgi/mpi-forum</a></div></div></blockquote></div><br><br clear=3D"all"><d=</span><br>
<span>iv><br></div>-- <br><div class=3D"gmail_signature">Jeff Hammond<br><a href=</span><br>
<span>=3D"<a href="mailto:jeff.science@gmail.com" target="_blank">mailto:jeff.science@gmail.com</a>" target=3D"_blank"><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>=</span><br>
<span></a><br><a href=3D"<a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a>" target=3D"_blank"><a href="http://=" target="_blank">http://=</a></span><br>
<span><a href="http://jeffhammond.github.io/" target="_blank">jeffhammond.github.io/</a></a></div></span><br>
<span></div></div></span><br>
<span></span><br>
<span>--047d7b2e4058e96442052be7f662--</span><br>
<span></span><br>
<span>--===============5365574427901088839==</span><br>
<span>Content-Type: text/plain; charset="us-ascii"</span><br>
<span>Content-Transfer-Encoding: 7bit</span><br>
<span>Content-Disposition: inline</span><span class=""><br>
<span></span><br>
<span>_______________________________________________</span><br>
<span>mpi-forum mailing list</span><br>
<span><a href="mailto:mpi-forum@lists.mpi-forum.org" target="_blank">mpi-forum@lists.mpi-forum.org</a></span><br>
<span><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a></span><br>
</span><span>--===============5365574427901088839==--</span><br>
</div>
</blockquote>
</div>
<br>_______________________________________________<br>
mpi-forum mailing list<br>
<a href="mailto:mpi-forum@lists.mpi-forum.org">mpi-forum@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div></div>