<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">MPI, where it implements the performance variables, doesn't need to store more than one - only in the session structure would there be copies.  That's a big difference, because the performance variables may be on critical paths, and keeping their access simple and fast is vital.  I view (without having participated) the design of the session as a place to put all of the overhead out of the critical path, including potential thread safety overheads.  My comment about a high quality implementation is that it is possible, with good and careful design, to avoid most of the extra costs in the case of a single active session (probably one indirection and a branch).<div><br></div><div>Bill</div><div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="font-size: 12px; ">William Gropp</div><div style="font-size: 12px; ">Director, Parallel Computing Institute</div><div style="font-size: 12px; ">Deputy Director for Research</div><div style="font-size: 12px; ">Institute for Advanced Computing Applications and Technologies</div></div></div></span><span class="Apple-style-span" style="font-size: 12px; ">Thomas M. Siebel Chair in Computer Science</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="font-size: 12px; ">University of Illinois Urbana-Champaign</div></div><div><br></div></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br><div><div>On Aug 17, 2013, at 1:12 PM, Pavan Balaji wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>Sure.  That was my first thought as well, but that doesn't reduce the number of variables being stored in most cases.  And will probably get messy in the THREAD_MULTIPLE case when we need to support reset of a variable on one session and read of the same value on another session.<br><br> -- Pavan<br><br>On 08/17/2013 10:14 AM, William Gropp wrote:<br><blockquote type="cite">I believe that the answer is yes, but note that in many/most/all cases,<br></blockquote><blockquote type="cite">the session can record the value of the underlying MPI implementation<br></blockquote><blockquote type="cite">variable at start time and then compute the difference.  It does mean<br></blockquote><blockquote type="cite">that the access in a session may not be as simple as a memory reference,<br></blockquote><blockquote type="cite">though a high-quality implementation could optimize for a single session.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Bill<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">William Gropp<br></blockquote><blockquote type="cite">Director, Parallel Computing Institute<br></blockquote><blockquote type="cite">Deputy Director for Research<br></blockquote><blockquote type="cite">Institute for Advanced Computing Applications and Technologies<br></blockquote><blockquote type="cite">Thomas M. Siebel Chair in Computer Science<br></blockquote><blockquote type="cite">University of Illinois Urbana-Champaign<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Aug 17, 2013, at 10:08 AM, Pavan Balaji wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Folks,<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">If an application has multiple sessions and does a PVAR_START on all<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">sessions, is the intention that the MPI implementation will keep track<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">of each pvar on each of the sessions?  Since when the pvar_start is<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">called for each session is different, the values of these variables<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">can be different.  So is the MPI implementation expected to replicate<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">these variables per session?  Is this true for the read-only ones as<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">well, since the start time can be different for each session?<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">-- Pavan<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">--<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Pavan Balaji<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="http://www.mcs.anl.gov/~balaji">http://www.mcs.anl.gov/~balaji</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">_______________________________________________<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Mpi3-tools mailing list<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="mailto:Mpi3-tools@lists.mpi-forum.org">Mpi3-tools@lists.mpi-forum.org</a><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools</a><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Mpi3-tools mailing list<br></blockquote><blockquote type="cite"><a href="mailto:Mpi3-tools@lists.mpi-forum.org">Mpi3-tools@lists.mpi-forum.org</a><br></blockquote><blockquote type="cite"><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools</a><br></blockquote><blockquote type="cite"><br></blockquote><br>-- <br>Pavan Balaji<br><a href="http://www.mcs.anl.gov/~balaji">http://www.mcs.anl.gov/~balaji</a><br></div></blockquote></div><br></div></body></html>