Closed mahermanns closed 11 months ago
@mahermanns I'm a bit confused by the statement "Implementors do not need to provide a unique identifier for each variable" (emphasis added by me). Why wouldn't we require unique IDs?
@jsquyres Yes. As we discussed in the last meeting, the interface would be of more use, if the unique IDs were required for every implementor-provided variable. I changed the text accordingly.
Per https://github.com/mpi-forum/mpi-issues/issues/113#issuecomment-442610133, we'll talk about this further. Some data points and links for further reading:
Fun facts:
Per discussion on the Tools WG call today, the tentative plan is:
MPIX_
-prefixed symbols.I was charged with finding 3 things:
@jsquyres Are you certain on the citations for CIDs? I don't read IEEE specs ever so I could be missing something but the titles don't give me confidence that they are related to CID: https://standards.ieee.org/standard/1212-1991.html https://standards.ieee.org/standard/896_2-1991.html
The OUI one looks legit: https://standards.ieee.org/standard/802-2001.html
Those are the ones cited in https://standards.ieee.org/products-services/regauth/cid/index.html.
The 'company_id' relevant standards as defined in IEEE 1212™-1991 Control and Status Register (CSR) Architecture referenced by IEEE 896.2™-1991 Futurebus+Physical Layers and Profiles include: ...
Works for me. Thanks for confirming!
Closing the ticket in favor of the MPI Forum ticket at https://github.com/mpi-forum/mpi-issues/issues/113
Any further discussion will be held on that ticket.
Problem
MPI_T defines the interface to query available performance and config variables. However, the user needs to consult the manual to understand the semantics of a specific variable. Tools can query and store a variable description, but will be unable to compare its semantics to previous versions of this variable or variables of the same name.
Proposal
Using IEEE company identifiers (CID) as a 24-bit prefix in a larger integer-based variable, an MPI vendor can assign unique IDs to every variable, that a tool can query at runtime. A unique identifier for a variable guarantees that the semantics of this variable does not change in the future. Tool implementors can use the ID to decide on how to process a variable.
Changes to the Text
The changes will be integrated to the MPI_T section of the Tool Support chapter.
Impact on Implementations
Implementors providing their own variables will have to register a CID at IEEE (many network vendors already have viable CID values, because IEEE OUI values can also be used as CID values) for $685 USD (as of April 2017). Implementors are free to use the remaining bits of the identifiers (following their own CID) as they see fit to identify a variable uniquely. Implementors are allowed to use the unique identifiers outside of their own prefix for a variable, if that variable follows the same semantics as specified by the owner of the ID.
Impact on Users
Tool implementors will be able to identify variables that are portable across multiple MPI implementations. For example, a vendor-provided MPI implementation derived from an open source MPI implementation may chose to provide some of the variables of its origin potentially under a different name. If the implementation chooses to change the semantics in a future version, they can keep the same name, but only have to change the unique ID and a tool can easily detect the semantic change (and issue a warning or proceed otherwise).
References