Re: [OMPI devel] Recv from MTL module hanging on pml_cm_recv.c:mca_pml_cm_recv()

2008-05-08 Thread George Bosilca

Caciano,

It's a little bit more complex than that. In fact you should never set  
the req_complete flag to true yourself. Instead you should use  
ompi_request_complete (defined in ompi/request/request.h) which will  
set the flag and trigger a condition broadcast or signal for you. This  
will allow the upper level to be released from the requests condition,  
and therefore discover that the request is completed.


  george.


On May 8, 2008, at 8:27 PM, Caciano Machado wrote:


Hi,

I'm finishing the implementation of a MTL module but something went  
wrong. This module is using PML/cm and the Recv operations are  
hanging in the ompi_request_wait_completion() call in  
pml_cm_recv.c:mca_pml_cm_recv(). I think that I must set the  
variable recvreq->req_base.req_ompi.req_complete somewhere but I  
don't know exactly where is the right place. When I comment out the  
ompi_request_wait_completion() call the application messages are  
delivered correctly with my backend.


Regards,
Caciano
___
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel




smime.p7s
Description: S/MIME cryptographic signature


Re: [OMPI devel] [RFC] mca_base_select()

2008-05-08 Thread Pak Lui

Thanks very much Josh! Will try it out soon.

Josh Hursey wrote:
Sorry about that. I didn't test that type of option. It should be 
working in r18418. Let me know if you see any more issues.


-- Josh

On May 8, 2008, at 6:04 PM, Pak Lui wrote:


I think I have a problem but I am not sure. I used to be able to use the
circumflex (^) to switch between the gridengine launcher and the ssh
launchers by doing something like this, e.g. -mca plm ^gridengine, to
exclude some of the components plm (and also in ras). It doesn't seem
like the 'negate' is in mca_base_component anymore. I guess I just have
  to spell out which component I want explicitly...

Josh Hursey wrote:

This has been committed in r18381

Please let me know if you have any problems with this commit.

Cheers,
Josh

On May 5, 2008, at 10:41 AM, Josh Hursey wrote:


Awesome.

The branch is updated to the latest trunk head. I encourage folks to
check out this repository and make sure that it builds on their
system. A normal build of the branch should be enough to find out if
there are any cut-n-paste problems (though I tried to be careful,
mistakes do happen).

I haven't heard any problems so this is looking like it will come in
tomorrow after the teleconf. I'll ask again there to see if there are
any voices of concern.

Cheers,
Josh

On May 5, 2008, at 9:58 AM, Jeff Squyres wrote:


This all sounds good to me!

On Apr 29, 2008, at 6:35 PM, Josh Hursey wrote:


What:  Add mca_base_select() and adjust frameworks & components to
use
it.
Why:   Consolidation of code for general goodness.
Where: https://svn.open-mpi.org/svn/ompi/tmp-public/jjh-mca-play
When:  Code ready now. Documentation ready soon.
Timeout: May 6, 2008 (After teleconf) [1 week]

Discussion:
---
For a number of years a few developers have been talking about
creating a MCA base component selection function. For various
reasons
this was never implemented. Recently I decided to give it a try.

A base select function will allow Open MPI to provide completely
consistent selection behavior for many of its frameworks (18 of 31
to
be exact at the moment). The primary goal of this work is to
improving
code maintainability through code reuse. Other benefits also result
such as a slightly smaller memory footprint.

The mca_base_select() function represented the most commonly used
logic for component selection: Select the one component with the
highest priority and close all of the not selected components. This
function can be found at the path below in the branch:
opal/mca/base/mca_base_components_select.c

To support this I had to formalize a query() function in the
mca_base_component_t of the form:
int mca_base_query_component_fn(mca_base_module_t **module, int
*priority);

This function is specified after the open and close component
functions in this structure as to allow compatibility with
frameworks
that do not use the base selection logic. Frameworks that do *not*
use
this function are *not* effected by this commit. However, every
component in the frameworks that use the mca_base_select function
must
adjust their component query function to fit that specified above.

18 frameworks in Open MPI have been changed. I have updated all of
the
components in the 18 frameworks available in the trunk on my branch.
The effected frameworks are:
- OPAL Carto
- OPAL crs
- OPAL maffinity
- OPAL memchecker
- OPAL paffinity
- ORTE errmgr
- ORTE ess
- ORTE Filem
- ORTE grpcomm
- ORTE odls
- ORTE pml
- ORTE ras
- ORTE rmaps
- ORTE routed
- ORTE snapc
- OMPI crcp
- OMPI dpm
- OMPI pubsub

There was a question of the memory footprint change as a result of
this commit. I used 'pmap' to determine process memory footprint
of a
hello world MPI program. Static and Shared build numbers are below
along with variations on launching locally and to a single node
allocated by SLURM. All of this was on Indiana University's Odin
machine. We compare against the trunk (r18276) representing the last
SVN sync point of the branch.

 Process(shared)| Trunk| Branch  | Diff (Improvement)
 ---+--+-+---
 mpirun (orted) |   39976K |  36828K | 3148K
 hello (0)  |  229288K | 229268K |   20K
 hello (1)  |  229288K | 229268K |   20K
 ---+--+-+---
 mpirun |   40032K |  37924K | 2108K
 orted  |   34720K |  34660K |   60K
 hello (0)  |  228404K | 228384K |   20K
 hello (1)  |  228404K | 228384K |   20K

 Process(static)| Trunk| Branch  | Diff (Improvement)
 ---+--+-+---
 mpirun (orted) |   21384K |  21372K |  12K
 hello (0)  |  194000K | 193980K |  20K
 hello (1)  |  194000K | 193980K |  20K
 ---+--+-+---
 mpirun |   21384K |  21372K |  12K
 orted  |   21208K |  21196K |  12K
 hello (0)  |  193116K | 193096K |  20K
 hello (1)  |  193116K | 193096K |  20K

As you can see there are some small memory footprint improvements on
my branch th

[OMPI devel] Recv from MTL module hanging on pml_cm_recv.c:mca_pml_cm_recv()

2008-05-08 Thread Caciano Machado
Hi,

I'm finishing the implementation of a MTL module but something went wrong.
This module is using PML/cm and the Recv operations are hanging in the
ompi_request_wait_completion() call in pml_cm_recv.c:mca_pml_cm_recv(). I
think that I must set the variable recvreq->req_base.req_ompi.req_complete
somewhere but I don't know exactly where is the right place. When I comment
out the ompi_request_wait_completion() call the application messages are
delivered correctly with my backend.

Regards,
Caciano


Re: [OMPI devel] [RFC] mca_base_select()

2008-05-08 Thread Josh Hursey
Sorry about that. I didn't test that type of option. It should be  
working in r18418. Let me know if you see any more issues.


-- Josh

On May 8, 2008, at 6:04 PM, Pak Lui wrote:

I think I have a problem but I am not sure. I used to be able to  
use the

circumflex (^) to switch between the gridengine launcher and the ssh
launchers by doing something like this, e.g. -mca plm ^gridengine, to
exclude some of the components plm (and also in ras). It doesn't seem
like the 'negate' is in mca_base_component anymore. I guess I just  
have

  to spell out which component I want explicitly...

Josh Hursey wrote:

This has been committed in r18381

Please let me know if you have any problems with this commit.

Cheers,
Josh

On May 5, 2008, at 10:41 AM, Josh Hursey wrote:


Awesome.

The branch is updated to the latest trunk head. I encourage folks to
check out this repository and make sure that it builds on their
system. A normal build of the branch should be enough to find out if
there are any cut-n-paste problems (though I tried to be careful,
mistakes do happen).

I haven't heard any problems so this is looking like it will come in
tomorrow after the teleconf. I'll ask again there to see if there  
are

any voices of concern.

Cheers,
Josh

On May 5, 2008, at 9:58 AM, Jeff Squyres wrote:


This all sounds good to me!

On Apr 29, 2008, at 6:35 PM, Josh Hursey wrote:


What:  Add mca_base_select() and adjust frameworks & components to
use
it.
Why:   Consolidation of code for general goodness.
Where: https://svn.open-mpi.org/svn/ompi/tmp-public/jjh-mca-play
When:  Code ready now. Documentation ready soon.
Timeout: May 6, 2008 (After teleconf) [1 week]

Discussion:
---
For a number of years a few developers have been talking about
creating a MCA base component selection function. For various
reasons
this was never implemented. Recently I decided to give it a try.

A base select function will allow Open MPI to provide completely
consistent selection behavior for many of its frameworks (18 of 31
to
be exact at the moment). The primary goal of this work is to
improving
code maintainability through code reuse. Other benefits also  
result

such as a slightly smaller memory footprint.

The mca_base_select() function represented the most commonly used
logic for component selection: Select the one component with the
highest priority and close all of the not selected components.  
This

function can be found at the path below in the branch:
opal/mca/base/mca_base_components_select.c

To support this I had to formalize a query() function in the
mca_base_component_t of the form:
int mca_base_query_component_fn(mca_base_module_t **module, int
*priority);

This function is specified after the open and close component
functions in this structure as to allow compatibility with
frameworks
that do not use the base selection logic. Frameworks that do *not*
use
this function are *not* effected by this commit. However, every
component in the frameworks that use the mca_base_select function
must
adjust their component query function to fit that specified above.

18 frameworks in Open MPI have been changed. I have updated all of
the
components in the 18 frameworks available in the trunk on my  
branch.

The effected frameworks are:
- OPAL Carto
- OPAL crs
- OPAL maffinity
- OPAL memchecker
- OPAL paffinity
- ORTE errmgr
- ORTE ess
- ORTE Filem
- ORTE grpcomm
- ORTE odls
- ORTE pml
- ORTE ras
- ORTE rmaps
- ORTE routed
- ORTE snapc
- OMPI crcp
- OMPI dpm
- OMPI pubsub

There was a question of the memory footprint change as a result of
this commit. I used 'pmap' to determine process memory footprint
of a
hello world MPI program. Static and Shared build numbers are below
along with variations on launching locally and to a single node
allocated by SLURM. All of this was on Indiana University's Odin
machine. We compare against the trunk (r18276) representing the  
last

SVN sync point of the branch.

 Process(shared)| Trunk| Branch  | Diff (Improvement)
 ---+--+-+---
 mpirun (orted) |   39976K |  36828K | 3148K
 hello (0)  |  229288K | 229268K |   20K
 hello (1)  |  229288K | 229268K |   20K
 ---+--+-+---
 mpirun |   40032K |  37924K | 2108K
 orted  |   34720K |  34660K |   60K
 hello (0)  |  228404K | 228384K |   20K
 hello (1)  |  228404K | 228384K |   20K

 Process(static)| Trunk| Branch  | Diff (Improvement)
 ---+--+-+---
 mpirun (orted) |   21384K |  21372K |  12K
 hello (0)  |  194000K | 193980K |  20K
 hello (1)  |  194000K | 193980K |  20K
 ---+--+-+---
 mpirun |   21384K |  21372K |  12K
 orted  |   21208K |  21196K |  12K
 hello (0)  |  193116K | 193096K |  20K
 hello (1)  |  193116K | 193096K |  20K

As you can see there are some small memory footprint  
improvements on

my branch that result from this work. The size of the 

Re: [OMPI devel] "__printf__" attribute

2008-05-08 Thread Jeff Squyres

Cool; I've updated the wiki.

Thanks!


On May 8, 2008, at 6:29 PM, Aurélien Bouteiller wrote:


They refer to the parameters of the function. In the example linked, 2
means the fmt is the second argument of the function and 3 is the
first variadic arg related to the fmt string.

Aurelien

Le 8 mai 08 à 18:24, Jeff Squyres a écrit :


Rainer --

What do the numeric arguments refer to in the attribute format stuff?
The wiki page has only one example, and it doesn't explain what these
numbers are:

   https://svn.open-mpi.org/trac/ompi/wiki/CompilerAttributes

Thanks!

--
Jeff Squyres
Cisco Systems

___
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel



___
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel



--
Jeff Squyres
Cisco Systems




Re: [OMPI devel] "__printf__" attribute

2008-05-08 Thread Aurélien Bouteiller
They refer to the parameters of the function. In the example linked, 2  
means the fmt is the second argument of the function and 3 is the  
first variadic arg related to the fmt string.


Aurelien

Le 8 mai 08 à 18:24, Jeff Squyres a écrit :


Rainer --

What do the numeric arguments refer to in the attribute format stuff?
The wiki page has only one example, and it doesn't explain what these
numbers are:

https://svn.open-mpi.org/trac/ompi/wiki/CompilerAttributes

Thanks!

--
Jeff Squyres
Cisco Systems

___
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel





[OMPI devel] "__printf__" attribute

2008-05-08 Thread Jeff Squyres

Rainer --

What do the numeric arguments refer to in the attribute format stuff?   
The wiki page has only one example, and it doesn't explain what these  
numbers are:


https://svn.open-mpi.org/trac/ompi/wiki/CompilerAttributes

Thanks!

--
Jeff Squyres
Cisco Systems



Re: [OMPI devel] [RFC] mca_base_select()

2008-05-08 Thread Pak Lui
I think I have a problem but I am not sure. I used to be able to use the 
circumflex (^) to switch between the gridengine launcher and the ssh 
launchers by doing something like this, e.g. -mca plm ^gridengine, to 
exclude some of the components plm (and also in ras). It doesn't seem 
like the 'negate' is in mca_base_component anymore. I guess I just have 
 to spell out which component I want explicitly...


Josh Hursey wrote:

This has been committed in r18381

Please let me know if you have any problems with this commit.

Cheers,
Josh

On May 5, 2008, at 10:41 AM, Josh Hursey wrote:


Awesome.

The branch is updated to the latest trunk head. I encourage folks to
check out this repository and make sure that it builds on their
system. A normal build of the branch should be enough to find out if
there are any cut-n-paste problems (though I tried to be careful,
mistakes do happen).

I haven't heard any problems so this is looking like it will come in
tomorrow after the teleconf. I'll ask again there to see if there are
any voices of concern.

Cheers,
Josh

On May 5, 2008, at 9:58 AM, Jeff Squyres wrote:


This all sounds good to me!

On Apr 29, 2008, at 6:35 PM, Josh Hursey wrote:


What:  Add mca_base_select() and adjust frameworks & components to
use
it.
Why:   Consolidation of code for general goodness.
Where: https://svn.open-mpi.org/svn/ompi/tmp-public/jjh-mca-play
When:  Code ready now. Documentation ready soon.
Timeout: May 6, 2008 (After teleconf) [1 week]

Discussion:
---
For a number of years a few developers have been talking about
creating a MCA base component selection function. For various  
reasons

this was never implemented. Recently I decided to give it a try.

A base select function will allow Open MPI to provide completely
consistent selection behavior for many of its frameworks (18 of 31  
to

be exact at the moment). The primary goal of this work is to
improving
code maintainability through code reuse. Other benefits also result
such as a slightly smaller memory footprint.

The mca_base_select() function represented the most commonly used
logic for component selection: Select the one component with the
highest priority and close all of the not selected components. This
function can be found at the path below in the branch:
opal/mca/base/mca_base_components_select.c

To support this I had to formalize a query() function in the
mca_base_component_t of the form:
int mca_base_query_component_fn(mca_base_module_t **module, int
*priority);

This function is specified after the open and close component
functions in this structure as to allow compatibility with  
frameworks

that do not use the base selection logic. Frameworks that do *not*
use
this function are *not* effected by this commit. However, every
component in the frameworks that use the mca_base_select function
must
adjust their component query function to fit that specified above.

18 frameworks in Open MPI have been changed. I have updated all of
the
components in the 18 frameworks available in the trunk on my branch.
The effected frameworks are:
- OPAL Carto
- OPAL crs
- OPAL maffinity
- OPAL memchecker
- OPAL paffinity
- ORTE errmgr
- ORTE ess
- ORTE Filem
- ORTE grpcomm
- ORTE odls
- ORTE pml
- ORTE ras
- ORTE rmaps
- ORTE routed
- ORTE snapc
- OMPI crcp
- OMPI dpm
- OMPI pubsub

There was a question of the memory footprint change as a result of
this commit. I used 'pmap' to determine process memory footprint  
of a

hello world MPI program. Static and Shared build numbers are below
along with variations on launching locally and to a single node
allocated by SLURM. All of this was on Indiana University's Odin
machine. We compare against the trunk (r18276) representing the last
SVN sync point of the branch.

 Process(shared)| Trunk| Branch  | Diff (Improvement)
 ---+--+-+---
 mpirun (orted) |   39976K |  36828K | 3148K
 hello (0)  |  229288K | 229268K |   20K
 hello (1)  |  229288K | 229268K |   20K
 ---+--+-+---
 mpirun |   40032K |  37924K | 2108K
 orted  |   34720K |  34660K |   60K
 hello (0)  |  228404K | 228384K |   20K
 hello (1)  |  228404K | 228384K |   20K

 Process(static)| Trunk| Branch  | Diff (Improvement)
 ---+--+-+---
 mpirun (orted) |   21384K |  21372K |  12K
 hello (0)  |  194000K | 193980K |  20K
 hello (1)  |  194000K | 193980K |  20K
 ---+--+-+---
 mpirun |   21384K |  21372K |  12K
 orted  |   21208K |  21196K |  12K
 hello (0)  |  193116K | 193096K |  20K
 hello (1)  |  193116K | 193096K |  20K

As you can see there are some small memory footprint improvements on
my branch that result from this work. The size of the Open MPI
project
shrinks a bit as well. This commit cuts between 3,500 and 2,000  
lines

of code (depending on how you count) so about a ~1% code shrink.

The branch is stable in all of th

Re: [OMPI devel] [OMPI users] OpenMPI Internals & Static-Analysis.

2008-05-08 Thread Mukesh K Srivastava
Hi.

The OMPI community should think to come with OpenMPI Internals document.
Probably having an Internal document will certainly help developers of
OpenMPI.

What one has to do - if one is thinking to come with OMPI Internals document
to start with? Is there any link or project repository within OMPI to start
working on OMPI Internals document.

BR


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



Re: [OMPI devel] [OMPI users] OpenMPI Internals & Static-Analysis.

2008-05-08 Thread Jeff Squyres

On May 8, 2008, at 5:06 AM, Mukesh K Srivastava wrote:


Hi.


Greetings!  There probably isn't much need to CC both lists; this  
question is probably more suited for the devel list.  I'm following up  
to both lists so that the answer is archived on the web properly, but  
if there's any followups to this, let's just use the devel list.   
Thanks!



Out of curiosity, was looking to know -

Query#1: Does OpenMPI has any document related with OpenMPI Internals?


Unfortunately not.  :-(

Query#2: Does any slides talks of OpenMPI internals, If yes, any  
links for the same?


We have a few papers that talk about the generalities of our  
internals, but nothing down to the code level details.  FWIW, various  
parts of OMPI are more documented than others in code comments (e.g.,  
OPAL is fairly well documented in header files, etc.).  Most framework  
header files (e.g., /mca//.h) describe the  
interfaces for their modules and components at least reasonably well.


The devel list is probably your best bet for asking questions, etc.

Query#3: Do any Static-Analysis open-source tools are available for  
analyzing OpenMPI?
   Probably, Coverity "Prevent" does provide static- 
analysis but  does it work for OpenMPI too?


Yes, Coverity is actually an Open MPI project partner.  They analyze  
the OMPI nightly tarballs (starting with the upcoming v1.3 series --  
we didn't use Coverity for the v1.2 series).


--
Jeff Squyres
Cisco Systems



[OMPI devel] OpenMPI Internals & Static-Analysis.

2008-05-08 Thread Mukesh K Srivastava
Hi.

Out of curiosity, was looking to know -

Query#1: Does OpenMPI has any document related with OpenMPI Internals?

Query#2: Does any slides talks of OpenMPI internals, If yes, any links for
the same?

Query#3: Do any Static-Analysis open-source tools are available for
analyzing OpenMPI?
   Probably, Coverity "Prevent" does provide static-analysis
but  does it work for OpenMPI too?

Any links or reference is appreciated.

BR