Jeff Squyres wrote:
On Aug 16, 2007, at 11:48 AM, Tim Prins wrote:

+#define ORTE_RML_TAG_UDAPL                  25
+#define ORTE_RML_TAG_OPENIB                 26
+#define ORTE_RML_TAG_MVAPI                  27

I think that UDAPL, OPENIB, MVAPI should not appear anywhere in the
ORTE layer ...
I tend to agree with you. However, the precedent has been set long ago
to put all these constants in this file (i.e. there is
ORTE_RML_TAG_WIREUP and ORTE_RML_TAG_SM_BACK_FILE_CREATED which are only used in OMPI), and it makes sense to have all tags defined in one place.

I think George's point is that the names UDAPL, OPENIB, MVAPI are all specific to the OMPI layer and refer to specific components. The generic action WIREUP was probably somewhat forgivable, but SM_BACK_FILE_CREATED is probably the same kind of abstraction break as UDAPL/OPENIB/MVAPI, which is your point.

So you're both right. :-) But Tim's falling back on an older (and unfortunately bad) precedent. It would be nice to not extend that bad precedent, IMHO...

I really don't care where the constants are defined, but they do need to be unique. I think it is easiest if all the constants are stored in one file, but if someone else wants to chop them up, that's fine with me. We would just have to be more careful when adding new constants to check both files.


If we end up doing the runtime services layer, all the ompi tags would
be defined in the RSL, and this will become moot.

True. We will need a robust tag reservation system, though, to guarantee that every process gets the same tag values (e.g., if udapl is available on some nodes but not others, will that cause openib to have different values on different nodes? And so on).
Not really. All that is needed is a list of constants (similar to the one in rml_types.h). If a rsl component doesn't like the particular constant tag values, they can do whatever they want in their implementation, as long as a messages sent on a tag is received on the same tag.

Tim

Reply via email to