[mpich2-commits] r7860 - in mpich2/trunk/src/pm/hydra: . tools/bootstrap/external tools/bootstrap/src

balaji at mcs.anl.gov balaji at mcs.anl.gov
Fri Jan 28 23:40:16 CST 2011


Author: balaji
Date: 2011-01-28 23:40:16 -0600 (Fri, 28 Jan 2011)
New Revision: 7860

Modified:
   mpich2/trunk/src/pm/hydra/configure.in
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
   mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
Log:
Added a new "none" launcher. Fixes ticket #1068.

Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in	2011-01-29 01:15:17 UTC (rev 7859)
+++ mpich2/trunk/src/pm/hydra/configure.in	2011-01-29 05:40:16 UTC (rev 7860)
@@ -145,9 +145,9 @@
 #########################################################################
 AC_ARG_WITH(hydra-bss,
 	[AC_HELP_STRING([--with-hydra-bss=name],
-		[Bootstrap Server (none,ssh,rsh,fork,slurm,ll,lsf,sge,persist,pbs)])],
+		[Bootstrap Server (ssh,none,rsh,fork,slurm,ll,lsf,sge,persist,pbs)])],
 	[ hydra_bss=$withval ],
-	[ hydra_bss="none,ssh,rsh,fork,slurm,ll,lsf,sge,persist,pbs" ])
+	[ hydra_bss="ssh,none,rsh,fork,slurm,ll,lsf,sge,persist,pbs" ])
 AC_MSG_CHECKING(bootstrap server)
 AC_MSG_RESULT($hydra_bss)
 hydra_bss_names="`echo $hydra_bss | sed -e 's/:/ /g' -e 's/,/ /g'`"
@@ -210,6 +210,7 @@
 	none|no)
 		hydra_bss_none=true
 		available_bss=`echo $available_bss none`
+		available_launchers=`echo $available_launchers none`
 		available_rmks=`echo $available_rmks none`
 		;;
 	*)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c	2011-01-29 01:15:17 UTC (rev 7859)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c	2011-01-29 05:40:16 UTC (rev 7860)
@@ -105,6 +105,11 @@
     return external_launcher_init();
 }
 
+HYD_status HYDT_bsci_launcher_none_init(void)
+{
+    return external_launcher_init();
+}
+
 HYD_status HYDT_bsci_rmk_lsf_init(void)
 {
     return external_rmk_init();

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c	2011-01-29 01:15:17 UTC (rev 7859)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c	2011-01-29 05:40:16 UTC (rev 7860)
@@ -172,7 +172,8 @@
 
         /* If launcher is 'fork', or this is the localhost, use fork
          * to launch the process */
-        if (!strcmp(HYDT_bsci_info.launcher, "fork") || lh) {
+        if (!strcmp(HYDT_bsci_info.launcher, "fork") ||
+            !strcmp(HYDT_bsci_info.launcher, "none") || lh) {
             offset = exec_idx;
 
             if (control_fd) {
@@ -220,6 +221,12 @@
             HYDU_print_strlist(targs + offset);
         }
 
+        if (!strcmp(HYDT_bsci_info.launcher, "none")) {
+            HYDU_dump_noprefix(stdout, "HYDRA_LAUNCH: ");
+            HYDU_print_strlist(targs + offset);
+            continue;
+        }
+
         /* The stdin pointer is a dummy value. We don't just pass it
          * NULL, as older versions of ssh seem to freak out when no
          * stdin socket is provided. */
@@ -250,6 +257,9 @@
         HYDU_ERR_POP(status, "demux returned error registering fd\n");
     }
 
+    if (!strcmp(HYDT_bsci_info.launcher, "none"))
+        HYDU_dump_noprefix(stdout, "HYDRA_LAUNCH_END\n");
+
   fn_exit:
     HYDU_free_strlist(targs);
     if (path)

Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in	2011-01-29 01:15:17 UTC (rev 7859)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in	2011-01-29 05:40:16 UTC (rev 7860)
@@ -112,7 +112,7 @@
 HYD_status HYDT_bsci_init(const char *user_rmk, const char *user_launcher,
                           const char *user_launcher_exec, int enablex, int debug)
 {
-    int i;
+    int i, detected_rmk;
     HYD_status status = HYD_SUCCESS;
 
     HYDU_FUNC_ENTER();
@@ -130,28 +130,14 @@
         MPL_env2str("HYDRA_RMK", (const char **) &HYDT_bsci_info.rmk);
 
     /* User didn't specify an RMK; try to detect one */
-    if (HYDT_bsci_info.rmk == NULL)
+    if (HYDT_bsci_info.rmk == NULL) {
+        detected_rmk = 0;
         HYDT_bsci_info.rmk = detect_rmk(debug);
-
-    if (HYDT_bsci_info.rmk == NULL)
-        HYDT_bsci_info.rmk = HYDU_strdup(HYDRA_DEFAULT_RMK);
-
-    /* Make sure the RMK we found is valid */
-    for (i = 0; rmk_array[i]; i++) {
-        if (!strcmp(HYDT_bsci_info.rmk, rmk_array[i])) {
-            status = (*rmk_init_array[i])();
-            HYDU_ERR_POP(status, "RMK init returned error\n");
-            break;
-        }
+        if (HYDT_bsci_info.rmk)
+            detected_rmk = 1;
     }
-    if (rmk_array[i] == NULL)
-        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
-                            "unrecognized RMK: %s\n", HYDT_bsci_info.rmk);
 
-    /* Set default values for the remaining functions */
-    set_rmk_defaults();
 
-
     /* See if the user specified a launcher */
     if (user_launcher)
         HYDT_bsci_info.launcher = HYDU_strdup(user_launcher);
@@ -162,7 +148,7 @@
 
     /* User didn't specify a launcher; try to see if the RMK also
      * provides launcher capabilities */
-    if (HYDT_bsci_info.launcher == NULL) {
+    if (detected_rmk && HYDT_bsci_info.launcher == NULL) {
         for (i = 0; launcher_array[i]; i++)
             if (!strcmp(HYDT_bsci_info.rmk, launcher_array[i]))
                 break;
@@ -170,6 +156,25 @@
             HYDT_bsci_info.launcher = HYDU_strdup(launcher_array[i]);
     }
 
+
+    /* If no RMK is provided or detected, use the default RMK */
+    if (HYDT_bsci_info.rmk == NULL)
+        HYDT_bsci_info.rmk = HYDU_strdup(HYDRA_DEFAULT_RMK);
+
+    /* Initialize the RMK */
+    for (i = 0; rmk_array[i]; i++) {
+        if (!strcmp(HYDT_bsci_info.rmk, rmk_array[i])) {
+            status = (*rmk_init_array[i])();
+            HYDU_ERR_POP(status, "RMK init returned error\n");
+            break;
+        }
+    }
+    if (rmk_array[i] == NULL)
+        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
+                            "unrecognized RMK: %s\n", HYDT_bsci_info.rmk);
+
+
+    /* If no launcher is provided or detected, use the default launcher */
     if (HYDT_bsci_info.launcher == NULL)
         HYDT_bsci_info.launcher = HYDU_strdup(HYDRA_DEFAULT_LAUNCHER);
 
@@ -198,7 +203,9 @@
         HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
                             "unrecognized launcher: %s\n", HYDT_bsci_info.launcher);
 
+
     /* Set default values for the remaining functions */
+    set_rmk_defaults();
     set_launcher_defaults();
 
     /* This function is mandatory */



More information about the mpich2-commits mailing list