Re: [OMPI devel] [RFC] mca_base_open() NULL

2008-05-08 Thread Josh Hursey

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

2008-05-08 Thread Jeff Squyres

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

2008-05-08 Thread Josh Hursey


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

2008-05-08 Thread Jeff Squyres

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

2008-05-08 Thread Josh Hursey


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

2008-05-08 Thread Jeff Squyres

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