Re: [OMPI devel] [RFC] mca_base_open() NULL
Sounds good. I can probably try to finish the patch in the next couple weeks, but if someone needs it before I get a chance to look at it let me know. Once the implementation is complete, then the RFC will be updated with a termination date for further input. Cheers, Josh On May 8, 2008, at 11:00 AM, Jeff Squyres wrote: On May 8, 2008, at 9:32 AM, Josh Hursey wrote: I think 'all' would be a nice symmetric addition to complement 'none' and then this would allow users to specify the "select best from all available" option on the command line. Ok, if you accept "all" and "none" as friendly ammendments to your RFC, I think I'm done with input there. :-) Any other comments on the RFC? Disallowing the NULL default string I think would have some repercussions throughout the code requiring a change in the way we use MCA parameters. For example, many component selection logics use the NULL value as the current 'select best from all' indicator. Other MCA parameters take the NULL value to indicate that the user did not set any value for this string parameter and thus it can be ignored. Maybe we can try to add a deprecation warning message when this happens to gauge it's frequency. There's no burning need to do this ASAP; let's add this to the list of items to talk about in the tech meeting. Perhaps one of us could do a little prep before the meeting to figure out: - how often NULL is given as a default OMPI MCA string param (probably quite often) -- easy enough to find out by putting a counter/ opal_output in the string registration function - how often NULL is *required* by the logic for one reason or another (probably a little more tricky to count) -- Jeff Squyres Cisco Systems ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel
Re: [OMPI devel] [RFC] mca_base_open() NULL
On May 8, 2008, at 9:32 AM, Josh Hursey wrote: I think 'all' would be a nice symmetric addition to complement 'none' and then this would allow users to specify the "select best from all available" option on the command line. Ok, if you accept "all" and "none" as friendly ammendments to your RFC, I think I'm done with input there. :-) Any other comments on the RFC? Disallowing the NULL default string I think would have some repercussions throughout the code requiring a change in the way we use MCA parameters. For example, many component selection logics use the NULL value as the current 'select best from all' indicator. Other MCA parameters take the NULL value to indicate that the user did not set any value for this string parameter and thus it can be ignored. Maybe we can try to add a deprecation warning message when this happens to gauge it's frequency. There's no burning need to do this ASAP; let's add this to the list of items to talk about in the tech meeting. Perhaps one of us could do a little prep before the meeting to figure out: - how often NULL is given as a default OMPI MCA string param (probably quite often) -- easy enough to find out by putting a counter/ opal_output in the string registration function - how often NULL is *required* by the logic for one reason or another (probably a little more tricky to count) -- Jeff Squyres Cisco Systems
Re: [OMPI devel] [RFC] mca_base_open() NULL
On May 8, 2008, at 8:15 AM, Jeff Squyres wrote: On May 8, 2008, at 8:06 AM, Josh Hursey wrote: --> If not intended to be used by users (i.e., it's an internal mechanism only), is there a reason why we're not using a zero-length string (e.g., mpirun --mca foo "")? I think a zero length string might get confusing with the empty string. The empty string is taken to mean auto-select from all available components, which currently cannot be specified on the command line as an -mca option. The 0 length string is close and nearly indistinguishable in an (A)MCA file from a NULL string. Ah, right. Should we introduce another keyword, "all"? This would then be symmetric to "none" and could be the default value. An empty string would then be an error. Per the larger issue, I wonder if we should simply disallow NULL default string parameter values. This might simplify a lot of things... I think 'all' would be a nice symmetric addition to complement 'none' and then this would allow users to specify the "select best from all available" option on the command line. Disallowing the NULL default string I think would have some repercussions throughout the code requiring a change in the way we use MCA parameters. For example, many component selection logics use the NULL value as the current 'select best from all' indicator. Other MCA parameters take the NULL value to indicate that the user did not set any value for this string parameter and thus it can be ignored. Maybe we can try to add a deprecation warning message when this happens to gauge it's frequency. -- Josh -- Jeff Squyres Cisco Systems ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel
Re: [OMPI devel] [RFC] mca_base_open() NULL
On May 8, 2008, at 8:06 AM, Josh Hursey wrote: --> If not intended to be used by users (i.e., it's an internal mechanism only), is there a reason why we're not using a zero-length string (e.g., mpirun --mca foo "")? I think a zero length string might get confusing with the empty string. The empty string is taken to mean auto-select from all available components, which currently cannot be specified on the command line as an -mca option. The 0 length string is close and nearly indistinguishable in an (A)MCA file from a NULL string. Ah, right. Should we introduce another keyword, "all"? This would then be symmetric to "none" and could be the default value. An empty string would then be an error. Per the larger issue, I wonder if we should simply disallow NULL default string parameter values. This might simplify a lot of things... -- Jeff Squyres Cisco Systems
Re: [OMPI devel] [RFC] mca_base_open() NULL
On May 8, 2008, at 7:50 AM, Jeff Squyres wrote: FWIW: - I think "none" is a slightly better word than "null" for this value; "none" implies that you don't open anything, whereas "null" could be a specific component (as it is/was in some frameworks). Calling it 'none' sounds fine to me. - Whatever word we decide on will need to become a reserved component name (i.e., no components will be able to use that as their name). We should adjust autogen.sh and friends to ensure that no component has this name (not difficult -- just make autogen.sh abort if it finds a component of this name). Good idea. - Is this value supposed to be accessible/usable by users, or is it meant to only be used internally? I would say it should be used internally. But I don't know what use case Ralph was thinking of with this. There is something to be said for being able to add such an option to the .openmpi/mca-params.conf file while testing or to an AMCA file for a particular configuration. So maybe we should expose it. It may able be useful for debugging problems encountered in the wild. --> If intended to be used by users, I marginally prefer a single, lower case, simple word (e.g., "none") vs. a caps word -- it's easier to type and is consistent with our other values. I recognize that we don't want users to use the value by accident, and making it all caps makes it stand out, but I think the consistency issues are more important. Keeping it case-consistent with other components is probably a good thing. --> If not intended to be used by users (i.e., it's an internal mechanism only), is there a reason why we're not using a zero-length string (e.g., mpirun --mca foo "")? I think a zero length string might get confusing with the empty string. The empty string is taken to mean auto-select from all available components, which currently cannot be specified on the command line as an -mca option. The 0 length string is close and nearly indistinguishable in an (A)MCA file from a NULL string. -- Josh On May 6, 2008, at 2:09 PM, Josh Hursey wrote: What: Add a MCA-NULL option to open no components in mca_base_open() Why: Sometimes we do not want to open or select any components of a framework. Where: patch attached for current trunk. When: Needs further discussion. Timeout: Unknown. [May 13, 2008 (After teleconf)?] Short Version: -- This RFC is intended to continue discussion on the thread started here: http://www.open-mpi.org/community/lists/devel/2008/05/3793.php Discussion should occur on list, but maybe try to come to some settlement on this RFC in the next week or two. Longer Version: --- Currently there is no way to express to the MCA system that absolutely no components of a framework are needed and therefore nothing should be opened. The addition of a sentinel value is needed to explicitly express this intention. It was suggested that if a 'MCA-NULL' value is passed as an argument for a framework then this should be taken to indicate such an intention. ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel -- Jeff Squyres Cisco Systems ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel
Re: [OMPI devel] [RFC] mca_base_open() NULL
FWIW: - I think "none" is a slightly better word than "null" for this value; "none" implies that you don't open anything, whereas "null" could be a specific component (as it is/was in some frameworks). - Whatever word we decide on will need to become a reserved component name (i.e., no components will be able to use that as their name). We should adjust autogen.sh and friends to ensure that no component has this name (not difficult -- just make autogen.sh abort if it finds a component of this name). - Is this value supposed to be accessible/usable by users, or is it meant to only be used internally? --> If intended to be used by users, I marginally prefer a single, lower case, simple word (e.g., "none") vs. a caps word -- it's easier to type and is consistent with our other values. I recognize that we don't want users to use the value by accident, and making it all caps makes it stand out, but I think the consistency issues are more important. --> If not intended to be used by users (i.e., it's an internal mechanism only), is there a reason why we're not using a zero-length string (e.g., mpirun --mca foo "")? On May 6, 2008, at 2:09 PM, Josh Hursey wrote: What: Add a MCA-NULL option to open no components in mca_base_open() Why: Sometimes we do not want to open or select any components of a framework. Where: patch attached for current trunk. When: Needs further discussion. Timeout: Unknown. [May 13, 2008 (After teleconf)?] Short Version: -- This RFC is intended to continue discussion on the thread started here: http://www.open-mpi.org/community/lists/devel/2008/05/3793.php Discussion should occur on list, but maybe try to come to some settlement on this RFC in the next week or two. Longer Version: --- Currently there is no way to express to the MCA system that absolutely no components of a framework are needed and therefore nothing should be opened. The addition of a sentinel value is needed to explicitly express this intention. It was suggested that if a 'MCA-NULL' value is passed as an argument for a framework then this should be taken to indicate such an intention. ___ devel mailing list de...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/devel -- Jeff Squyres Cisco Systems