Yes, but look at orte/mca/plm/rsh/plm_rsh_module.c:

    /* ensure that only the ssh plm is selected on the remote daemon */
    var = mca_base_param_environ_variable("plm", NULL, NULL);
    opal_setenv(var, "rsh", true, &env);
    free(var);

This is done in "ssh_child", right before we fork_exec the ssh command to
launch the remote daemon. This is why slave spawn works, for example.

I agree that tree_spawn doesn't seem to work right now, but it is not due to
the plm not being selected. There are other factors involved.

Ralph



On Mon, Jun 22, 2009 at 9:58 AM, Iain Bason <iain.ba...@sun.com> wrote:

> Ralph Castain wrote:
>
>> I'm sorry, but this change is incorrect.
>>
>> If you look in orte/mca/ess/base/ess_base_std_orted.c, you will see that
>> -all- orteds, regardless of how they are launched, open and select the PLM.
>>
>
> I believe you are mistaken.  Look in plm_base_launch_support.c:
>
>           /* The daemon will attempt to open the PLM on the remote
>            * end. Only a few environments allow this, so the daemon
>            * only opens the PLM -if- it is specifically told to do
>            * so by giving it a specific PLM module. To ensure we avoid
>            * confusion, do not include any directives here
>            */
>           if (0 == strcmp(orted_cmd_line[i+1], "plm")) {
>               continue;
>           }
>
> That code strips out anything like "-mca plm rsh" from the command
> line passed to a remote daemon.
>
> Meanwhile, over in ess_base_std_orted.c:
>
>   /* some environments allow remote launches - e.g., ssh - so
>    * open the PLM and select something -only- if we are given
>    * a specific module to use
>    */
>   mca_base_param_reg_string_name("plm", NULL,
>                                  "Which plm component to use (empty =
> none)",
>                                  false, false,
>                                  NULL, &plm_to_use);
>     if (NULL == plm_to_use) {
>       plm_in_use = false;
>   } else {
>       plm_in_use = true;
>             if (ORTE_SUCCESS != (ret = orte_plm_base_open())) {
>           ORTE_ERROR_LOG(ret);
>           error = "orte_plm_base_open";
>           goto error;
>       }
>             if (ORTE_SUCCESS != (ret = orte_plm_base_select())) {
>           ORTE_ERROR_LOG(ret);
>           error = "orte_plm_base_select";
>           goto error;
>       }
>   }
>
> So a PLM is loaded only if specified with "-mca plm foo", but that -mca
> flag is stripped out when launching the remote daemon.
>
> I also ran into this issue with tree spawning.  (I didn't putback a fix
> because
> I couldn't get tree spawning actually to improve performance.  My fix was
> not to strip out the "-mca plm foo" parameters if tree spawning had been
> requested.)
>
> Iain
>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>

Reply via email to