Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] using hnp_always_use_plm
From: Damien Guinier (damien.guinier_at_[hidden])
Date: 2009-12-18 09:43:07


Hi Ralph

On Openmpi, I working on a new little feature: hnp_always_use_plm.
- To create final application , mpirun use on remote "orted via plm:
Process lifecycle managment module" or localy "fork()". So the first
compute node haven't the same methode than other compute node. Some
debug tools(padb ...) and management tools (squeus -s ...) are impacted
by this difference.
To simplify this cluster tools usage, I propose to add the possibility
to use "orted via plm" on remote and localy.

I make a patch to add the parameter "OMPI_MCA_ess_hnp_always_use_plm",
to use the "plm" module everywhere. On my patch , by default nothing is
changed ( no impact).

Can you say to me , if this feature( and the patch) is good ?

thank you

Damien

diff orte/mca/ess/hnp/ess_hnp.h
--- a/orte/mca/ess/hnp/ess_hnp.h Tue Dec 15 15:31:24 2009 +0100
+++ b/orte/mca/ess/hnp/ess_hnp.h Tue Dec 15 18:19:18 2009 +0100
@@ -27,7 +27,7 @@
 int orte_ess_hnp_component_open(void);
 int orte_ess_hnp_component_close(void);
 int orte_ess_hnp_component_query(mca_base_module_t **module, int
*priority);
-
+extern int mca_ess_hnp_always_use_plm;

 ORTE_MODULE_DECLSPEC extern orte_ess_base_component_t
mca_ess_hnp_component;

diff orte/mca/ess/hnp/ess_hnp_component.c
--- a/orte/mca/ess/hnp/ess_hnp_component.c Tue Dec 15 15:31:24 2009
+0100
+++ b/orte/mca/ess/hnp/ess_hnp_component.c Tue Dec 15 18:19:18 2009
+0100
@@ -33,6 +33,7 @@
 #include "orte/mca/ess/hnp/ess_hnp.h"

 extern orte_ess_base_module_t orte_ess_hnp_module;
+int mca_ess_hnp_always_use_plm = 0;

 /*
  * Instantiate the public struct with all of our public information
@@ -63,6 +64,10 @@
 int
 orte_ess_hnp_component_open(void)
 {
+ mca_base_param_reg_int(&mca_ess_hnp_component.base_version,
+ "always_use_plm",
+ "Used to force plm on all machine",
+ false,false, mca_ess_hnp_always_use_plm
,&mca_ess_hnp_always_use_plm);
     return ORTE_SUCCESS;
 }

diff orte/mca/ess/hnp/ess_hnp_module.c
--- a/orte/mca/ess/hnp/ess_hnp_module.c Tue Dec 15 15:31:24 2009 +0100
+++ b/orte/mca/ess/hnp/ess_hnp_module.c Tue Dec 15 18:19:18 2009 +0100
@@ -442,9 +442,12 @@
      * node object
      */
     OBJ_RETAIN(proc); /* keep accounting straight */
+ if(mca_ess_hnp_always_use_plm==0)
+ {
     node->daemon = proc;
     node->daemon_launched = true;
     node->state = ORTE_NODE_STATE_UP;
+ }

     /* record that the daemon job is running */
     jdata->num_procs = 1;