Hi all,

Here is the next version of the look up by name function for discussion on tomorrow's call:

MPI_T_CVAR_GET_INDEX(name, name_len, cvar_index)

IN name
IN name_len
OUT cvar_index

MPI_T_CVAR_GET_INDEX is a convenience function for retrieving the index of a control variable given a known variable name. The name and name_len parameters are provided by the caller, and cvar_index is returned by the MPI implementation. The name parameter is a C style NULL terminated string. The name_len parameter is the length of name plus one for the NULL termination character.

This routine returns MPI_SUCCESS on success and returns MPI_T_ERR_INVALID_NAME if name does not match the name of any control variable provided by the implementation at the time of the call.

Rationale:
This routine is provided to enable fast retrieval of control variables by a tool, assuming it knows the name of the variable it is looking for. The number of variables exposed by the implementation can change over time, so it is not possible for the tool to simply iterate over the list of variables once at initialization. Although using MPI implementation specific variable names is not portable across MPI implementations, tool developers may choose to take this route for lower overhead at runtime because the tool won't have to loop over the entire set of variables to find a specific one. 

MPI_T_PVAR_GET_INDEX
similar


Kathryn


On May 2, 2013, at 10:16 AM, Kathryn Mohror <kathryn@llnl.gov> wrote:

Hi Bronis, all,

We discussed this on the WG call today. I put the notes from the discussion on the wiki page. The gist of the conversation was that yes, it is a convenience function, but it may be worth having. The reason is that a tool can't simply iterate over the variables once and be done with it. The number of variables can increase at runtime, so a tool may have to iterate more than once. 

We settled on moving forward with a version of the routine that doesn't duplicate "get_info" but returns only the index and seeing how it plays out. 

Kathryn

On May 2, 2013, at 6:19 AM, Bronis R. de Supinski <bronis@llnl.gov> wrote:


I agree with Jeff that this request is a convenience function.
Not only do I think he is right about it not needing to be
performant and that an application could clearly do it
itself but any more efficient implementation could be replicated
at the application layer. For example, the tree-based approach
could be done with one pass over the list that builds the tree.

On Thu, 2 May 2013, Jeff Squyres (jsquyres) wrote:

On May 1, 2013, at 1:06 AM, "Schulz, Martin" <schulzm@llnl.gov> wrote:

Is this just a convenience function?

An implementation could store all variables in a tree (or some other more efficient structure) eliminating the need for a loop in favor of a lower complexity lookup algorithm. How severe this problem is, is a different question.

I don't think that efficiency is the issue here -- even for an MPI implementation with thousands of cvars, a loop over them would take microseconds, at most.  More specifically: I was not under the impression that cvar access needed to be performant.

I guess my point is that: regardless of mechanism, this functionality can definitely be implemented in the user application with the current MPIT APIs.  Moving this functionality to *inside* MPIT is a convenience.

I'm not saying this is a good or bad idea -- I'm just making sure we all understand what is being asked.  :-)

If we want to go for such a function, I wonder, though, if we should return all the arguments from GET_INFO or just the index (that you can then use get the rest of the information). This would could both keep the document (we are mentioning the GET_INFO functions a lot) and the implementations (only one pair of routines with such complex prototypes) simpler.

Martin




On Apr 30, 2013, at 2:39 PM, Kathryn Mohror <kathryn@llnl.gov> wrote:

Hi all,

I've started to work on 3.1 items. The first one is to allow the  look up of variables by name instead of having to iterate through all variables until you find the one you want (assuming you know the name in advance). What do people think of this for supporting that functionality:

MPI_T_CVAR_GET_INFO_NAMED
IN     name
OUT     cvar_index
OUT     verbosity
  OUT     datatype
    OUT      enumtype
OUT     desc
    INOUT  desc_len
    OUT     bind
    OUT     scope

MPI_T_CVAR_GET_INFO_NAMED behaves similarly to MPI_T_CVAR_GET_INFO except that the lookup is done by control variable name instead of its index. All restrictions and requirements for MPI_T_CVAR_GET_INFO are the same for MPI_GET_CVAR_INFO_NAMED except that the cvar_index is now returned from the function, and name is an input.


Then define MPI_T_PVAR_GET_INFO_NAMED in a similar fashion.

Thoughts? Objections?

Kathryn


______________________________________________________________
Kathryn Mohror, kathryn@llnl.gov, http://people.llnl.gov/mohror1
CASC @ Lawrence Livermore National Laboratory, Livermore, CA, USA




_______________________________________________
Mpi3-tools mailing list
Mpi3-tools@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools


--
Jeff Squyres
jsquyres@cisco.com
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/


_______________________________________________
Mpi3-tools mailing list
Mpi3-tools@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools

________________________________________________________________________
Martin Schulz, schulzm@llnl.gov, http://people.llnl.gov/schulzm
CASC @ Lawrence Livermore National Laboratory, Livermore, USA




_______________________________________________
Mpi3-tools mailing list
Mpi3-tools@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools


--
Jeff Squyres
jsquyres@cisco.com
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/


_______________________________________________
Mpi3-tools mailing list
Mpi3-tools@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools

_______________________________________________
Mpi3-tools mailing list
Mpi3-tools@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-tools

______________________________________________________________
Kathryn Mohror, kathryn@llnl.govhttp://people.llnl.gov/mohror1
CASC @ Lawrence Livermore National Laboratory, Livermore, CA, USA





______________________________________________________________
Kathryn Mohror, kathryn@llnl.govhttp://people.llnl.gov/mohror1
CASC @ Lawrence Livermore National Laboratory, Livermore, CA, USA