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). Bill William Gropp Director, Parallel Computing Institute Deputy Director for Research Institute for Advanced Computing Applications and Technologies Thomas M. Siebel Chair in Computer Science University of Illinois Urbana-Champaign On Aug 17, 2013, at 1:12 PM, Pavan Balaji wrote:
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.
-- Pavan
On 08/17/2013 10:14 AM, William Gropp wrote:
I believe that the answer is yes, but note that in many/most/all cases, the session can record the value of the underlying MPI implementation variable at start time and then compute the difference. It does mean that the access in a session may not be as simple as a memory reference, though a high-quality implementation could optimize for a single session.
Bill
William Gropp Director, Parallel Computing Institute Deputy Director for Research Institute for Advanced Computing Applications and Technologies Thomas M. Siebel Chair in Computer Science University of Illinois Urbana-Champaign
On Aug 17, 2013, at 10:08 AM, Pavan Balaji wrote:
Folks,
If an application has multiple sessions and does a PVAR_START on all sessions, is the intention that the MPI implementation will keep track of each pvar on each of the sessions? Since when the pvar_start is called for each session is different, the values of these variables can be different. So is the MPI implementation expected to replicate these variables per session? Is this true for the read-only ones as well, since the start time can be different for each session?
-- Pavan
-- Pavan Balaji http://www.mcs.anl.gov/~balaji _______________________________________________ Mpi3-tools mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools
_______________________________________________ Mpi3-tools mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools
-- Pavan Balaji http://www.mcs.anl.gov/~balaji