Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] ompi_info
From: Nathan Hjelm (hjelmn_at_[hidden])
Date: 2013-07-18 12:05:54


On Thu, Jul 18, 2013 at 05:50:40PM +0200, George Bosilca wrote:
> On Jul 18, 2013, at 17:07 , Nathan Hjelm <hjelmn_at_[hidden]> wrote:
>
> > This was discussed in depth before the MCA rewrite came into the trunk. There are only two cases where we load and register all the available components: ompi_info, and MPI_T_init_thread(). The normal MPI case does not have this behavior and instead loads only the requested components.
>
> How is this part of the code validated? It might capitalize on some type of "trust". Unfortunately ? I have no such notion.

The fact that ompi_mpi_init never call ompi_info_register_params() which is the only path that sets the MCA_BASE_REGISTER_ALL when registering framework pameters. The register all behavior has to be explicitly asked for.

> I would rather take the path of the "least astonishment", a __consistent__ behavior where we always abide to the configuration files (user level as well as system level). If you want to see every single parameter possibly available to you (based on your rights of course), temporary remove the configuration file. Or we can provide a specific ompi_info option to ignore the configuration files, but not make this the default.

In some ways this was the default behavior (if no file values were set). The current behavior was chosen to be consistent and reflect what I thought was the original intent. The old behavior would ignore component selection variables set in the environment (ompi_info actually unset them). So, if you set one of these variables in the environment (or the ompi_info command line) you would 1) still get all components in the framework, and 2) not see the variable as set even though it is in an actual run.

So, if I did:

export OMPI_MCA_btl=self,sm

or added --mca btl self,sm to the ompi_info command line

I would still see all the btls + this:

                 MCA btl: parameter "btl" (current value: "", data source: default, level: 2 user/detail, type: string)
                          Default selection set of components for the btl framework (<none> means use all components that can be found)

instead of:

                 MCA btl: parameter "btl" (current value: "self,sm", data source: environment, level: 2 user/detail, type: string)
                          Default selection set of components for the btl framework (<none> means use all components that can be found)

Very annoying!

That said. The register all behavior is easy to control. If there is a consensus that we need another ompi_info option I am more than happy to add it. But then again, --all should mean all components, all frameworks, all levels.

-Nathan