[mpich2-commits] r4075 - in mpich2/trunk/src/pm/hydra: . bootstrap bootstrap/fork bootstrap/include bootstrap/src bootstrap/ssh bootstrap/utils launcher/mpiexec pm/central pm/utils

balaji at mcs.anl.gov balaji at mcs.anl.gov
Sat Mar 14 22:35:41 CDT 2009


Author: balaji
Date: 2009-03-14 22:35:41 -0500 (Sat, 14 Mar 2009)
New Revision: 4075

Added:
   mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h
   mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_init.c
   mpich2/trunk/src/pm/hydra/bootstrap/src/
   mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_finalize.c
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_usize.c
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_wait.c
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_init.c
   mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_finalize.c
   mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_usize.c
Removed:
   mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_finalize.c
   mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_usize.c
   mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_wait.c
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_usize.c
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_wait.c
Modified:
   mpich2/trunk/src/pm/hydra/bootstrap/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c
   mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c
   mpich2/trunk/src/pm/hydra/bootstrap/utils/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu.h
   mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c
   mpich2/trunk/src/pm/hydra/configure.in
   mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
   mpich2/trunk/src/pm/hydra/pm/central/central_finalize.c
   mpich2/trunk/src/pm/hydra/pm/central/central_launch.c
   mpich2/trunk/src/pm/hydra/pm/utils/pmi.c
Log:
First cut of the runtime selection of bootstrap server (ticket #456).

Modified: mpich2/trunk/src/pm/hydra/bootstrap/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/Makefile.sm	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/Makefile.sm	2009-03-15 03:35:41 UTC (rev 4075)
@@ -5,4 +5,4 @@
 #
 
 SUBDIRS_hydra_bss_names = ssh fork
-SUBDIRS = utils @hydra_bss_names@ .
+SUBDIRS = utils src @hydra_bss_names@ .

Modified: mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm	2009-03-15 03:35:41 UTC (rev 4075)
@@ -7,7 +7,7 @@
 HYDRA_LIB_PATH = ../../lib
 
 libhydra_a_DIR = ${HYDRA_LIB_PATH}
-libhydra_a_SOURCES = fork_launch.c fork_wait.c fork_finalize.c fork_usize.c
+libhydra_a_SOURCES = fork_init.c fork_launch.c
 INCLUDES = -I${abs_srcdir}/../../include \
 	-I${abs_srcdir}/../../../../include \
 	-I../../include \

Added: mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/fork.h	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,14 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef FORK_H_INCLUDED
+#define FORK_H_INCLUDED
+
+#include "hydra_base.h"
+
+HYD_Status HYD_BSCD_fork_launch_procs(void);
+
+#endif /* FORK_H_INCLUDED */

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_finalize.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_finalize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -1,20 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#include "hydra.h"
-#include "hydra_utils.h"
-#include "bsci.h"
-#include "bscu.h"
-
-HYD_Status HYD_BSCI_Finalize(void)
-{
-    HYD_Status status = HYD_SUCCESS;
-
-    HYDU_FUNC_ENTER();
-
-    HYDU_FUNC_EXIT();
-    return status;
-}

Added: mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_init.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_init.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,27 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bsci.h"
+#include "fork.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_fork_init(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYD_BSCI_fns.launch_procs = HYD_BSCD_fork_launch_procs;
+
+  fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+  fn_fail:
+    goto fn_exit;
+}

Modified: mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_launch.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -11,7 +11,7 @@
 
 HYD_Handle handle;
 
-HYD_Status HYD_BSCI_Launch_procs(void)
+HYD_Status HYD_BSCD_fork_launch_procs(void)
 {
     struct HYD_Proc_params *proc_params;
     struct HYD_Partition_list *partition;

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_usize.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_usize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -1,23 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#include "hydra.h"
-#include "bsci.h"
-
-
-/* FIXME: This should probably be added as a default function allowing
- * the bootstrap server to override if needed. */
-HYD_Status HYD_BSCI_Get_universe_size(int *size)
-{
-    HYD_Status status = HYD_SUCCESS;
-
-    HYDU_FUNC_ENTER();
-
-    *size = -1;
-
-    HYDU_FUNC_EXIT();
-    return status;
-}

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_wait.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/fork_wait.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -1,27 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#include "hydra.h"
-#include "bsci.h"
-#include "bscu.h"
-
-/*
- * HYD_BSCI_Wait_for_completion: We first wait for communication
- * events from the available processes till all connections have
- * closed. In the meanwhile, the SIGCHLD handler keeps track of all
- * the terminated processes.
- */
-HYD_Status HYD_BSCI_Wait_for_completion(void)
-{
-    HYD_Status status = HYD_SUCCESS;
-
-    HYDU_FUNC_ENTER();
-
-    status = HYD_BSCU_Wait_for_completion();
-
-    HYDU_FUNC_EXIT();
-    return status;
-}

Modified: mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h	2009-03-15 03:35:41 UTC (rev 4075)
@@ -9,9 +9,22 @@
 
 #include "hydra.h"
 
-HYD_Status HYD_BSCI_Launch_procs(void);
-HYD_Status HYD_BSCI_Get_universe_size(int *size);
-HYD_Status HYD_BSCI_Wait_for_completion(void);
-HYD_Status HYD_BSCI_Finalize(void);
+struct HYD_BSCI_fns {
+    HYD_Status(*launch_procs) (void);
+    HYD_Status(*get_usize) (int *);
+    HYD_Status(*wait_for_completion) (void);
+    HYD_Status(*finalize) (void);
+};
 
+extern struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_init(char * bootstrap);
+HYD_Status HYD_BSCI_finalize(void);
+HYD_Status HYD_BSCI_get_usize(int *size);
+HYD_Status HYD_BSCI_wait_for_completion(void);
+
+/* Each bootstrap server has to expose an initialization function */
+HYD_Status HYD_BSCI_ssh_init(void);
+HYD_Status HYD_BSCI_fork_init(void);
+
 #endif /* BSCI_H_INCLUDED */


Property changes on: mpich2/trunk/src/pm/hydra/bootstrap/src
___________________________________________________________________
Name: svn:ignore
   + Makefile
Makefile.in


Added: mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,19 @@
+# -*- Mode: Makefile; -*-
+#
+# (C) 2008 by Argonne National Laboratory.
+#     See COPYRIGHT in top-level directory.
+#
+
+HYDRA_LIB_PATH = ../../lib
+
+libhydra_a_DIR = ${HYDRA_LIB_PATH}
+libhydra_a_SOURCES = bsci_init.c bsci_finalize.c bsci_usize.c bsci_wait.c bsci_launch.c
+INCLUDES = -I${abs_srcdir}/../../include \
+	-I${abs_srcdir}/../../../../include \
+	-I../../include \
+	-I../../../../include \
+	-I${abs_srcdir}/../../launcher/utils \
+	-I${abs_srcdir}/../../pm/utils \
+	-I${abs_srcdir}/../include \
+	-I${abs_srcdir}/../utils \
+	-I${abs_srcdir}/../../demux

Added: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_finalize.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_finalize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,24 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bsci.h"
+#include "bscu.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_finalize(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    status = HYD_BSCI_fns.finalize();
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}


Property changes on: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_finalize.c
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,53 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bsci.h"
+#include "bscu.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_init(char * bootstrap)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYD_BSCI_fns.launch_procs = NULL;
+    HYD_BSCI_fns.get_usize = NULL;
+    HYD_BSCI_fns.wait_for_completion = NULL;
+    HYD_BSCI_fns.finalize = NULL;
+
+    if (!strcmp(bootstrap, "ssh"))
+        HYD_BSCI_ssh_init();
+    else if (!strcmp(bootstrap, "fork"))
+        HYD_BSCI_fork_init();
+    else {
+        HYDU_Error_printf("unrecognized bootstrap server: %s\n", bootstrap);
+        status = HYD_INTERNAL_ERROR;
+        goto fn_fail;
+    }
+
+    if (HYD_BSCI_fns.launch_procs == NULL) {
+        /* This function is mandatory */
+        HYDU_Error_printf("Mandatory bootstrap launch function undefined\n");
+        status = HYD_INTERNAL_ERROR;
+        goto fn_fail;
+    }
+    if (HYD_BSCI_fns.get_usize == NULL)
+        HYD_BSCI_fns.get_usize = HYD_BSCU_get_usize;
+    if (HYD_BSCI_fns.wait_for_completion == NULL)
+        HYD_BSCI_fns.wait_for_completion = HYD_BSCU_wait_for_completion;
+    if (HYD_BSCI_fns.finalize == NULL)
+        HYD_BSCI_fns.finalize = HYD_BSCU_finalize;
+
+fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+fn_fail:
+    goto fn_exit;
+}


Property changes on: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,26 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bsci.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_launch_procs(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    status = HYD_BSCI_fns.launch_procs();
+
+  fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+  fn_fail:
+    goto fn_exit;
+}


Property changes on: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_launch.c
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_usize.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_usize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,24 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bsci.h"
+#include "bscu.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_get_usize(int *size)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    status = HYD_BSCI_fns.get_usize(size);
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}


Property changes on: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_usize.c
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_wait.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_wait.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,24 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bsci.h"
+#include "bscu.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_wait_for_completion(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    status = HYD_BSCI_fns.wait_for_completion();
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}


Property changes on: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_wait.c
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm	2009-03-15 03:35:41 UTC (rev 4075)
@@ -7,7 +7,7 @@
 HYDRA_LIB_PATH = ../../lib
 
 libhydra_a_DIR = ${HYDRA_LIB_PATH}
-libhydra_a_SOURCES = ssh_launch.c ssh_wait.c ssh_finalize.c ssh_usize.c
+libhydra_a_SOURCES = ssh_launch.c ssh_init.c
 INCLUDES = -I${abs_srcdir}/../../include \
 	-I${abs_srcdir}/../../../../include \
 	-I../../include \

Added: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh.h	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,14 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef SSH_H_INCLUDED
+#define SSH_H_INCLUDED
+
+#include "hydra_base.h"
+
+HYD_Status HYD_BSCD_ssh_launch_procs(void);
+
+#endif /* SSH_H_INCLUDED */

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -1,20 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#include "hydra.h"
-#include "hydra_utils.h"
-#include "bsci.h"
-#include "bscu.h"
-
-HYD_Status HYD_BSCI_Finalize(void)
-{
-    HYD_Status status = HYD_SUCCESS;
-
-    HYDU_FUNC_ENTER();
-
-    HYDU_FUNC_EXIT();
-    return status;
-}

Added: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_init.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_init.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,28 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra.h"
+#include "hydra_utils.h"
+#include "bsci.h"
+#include "ssh.h"
+
+struct HYD_BSCI_fns HYD_BSCI_fns;
+
+HYD_Status HYD_BSCI_ssh_init(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYD_BSCI_fns.launch_procs = HYD_BSCD_ssh_launch_procs;
+
+  fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+  fn_fail:
+    goto fn_exit;
+}

Modified: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -12,12 +12,12 @@
 HYD_Handle handle;
 
 /*
- * HYD_BSCI_Launch_procs: For each process, we create an executable
- * which reads like "ssh exec args" and the list of environment
- * variables. We fork a worker process that sets the environment and
- * execvp's this executable.
+ * HYD_BSCD_ssh_launch_procs: For each process, we create an
+ * executable which reads like "ssh exec args" and the list of
+ * environment variables. We fork a worker process that sets the
+ * environment and execvp's this executable.
  */
-HYD_Status HYD_BSCI_Launch_procs(void)
+HYD_Status HYD_BSCD_ssh_launch_procs(void)
 {
     struct HYD_Proc_params *proc_params;
     struct HYD_Partition_list *partition;

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_usize.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_usize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -1,23 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#include "hydra.h"
-#include "bsci.h"
-
-
-/* FIXME: This should probably be added as a default function allowing
- * the bootstrap server to override if needed. */
-HYD_Status HYD_BSCI_Get_universe_size(int *size)
-{
-    HYD_Status status = HYD_SUCCESS;
-
-    HYDU_FUNC_ENTER();
-
-    *size = -1;
-
-    HYDU_FUNC_EXIT();
-    return status;
-}

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_wait.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_wait.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -1,27 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#include "hydra.h"
-#include "bsci.h"
-#include "bscu.h"
-
-/*
- * HYD_BSCI_Wait_for_completion: We first wait for communication
- * events from the available processes till all connections have
- * closed. In the meanwhile, the SIGCHLD handler keeps track of all
- * the terminated processes.
- */
-HYD_Status HYD_BSCI_Wait_for_completion(void)
-{
-    HYD_Status status = HYD_SUCCESS;
-
-    HYDU_FUNC_ENTER();
-
-    status = HYD_BSCU_Wait_for_completion();
-
-    HYDU_FUNC_EXIT();
-    return status;
-}

Modified: mpich2/trunk/src/pm/hydra/bootstrap/utils/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/Makefile.sm	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/Makefile.sm	2009-03-15 03:35:41 UTC (rev 4075)
@@ -7,7 +7,7 @@
 HYDRA_LIB_PATH = ../../lib
 
 libhydra_a_DIR = ${HYDRA_LIB_PATH}
-libhydra_a_SOURCES = bscu_wait.c
+libhydra_a_SOURCES = bscu_wait.c bscu_usize.c bscu_finalize.c
 INCLUDES = -I${abs_srcdir}/../../include \
 	-I${abs_srcdir}/../../../../include \
 	-I../../include \

Modified: mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu.h	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu.h	2009-03-15 03:35:41 UTC (rev 4075)
@@ -7,10 +7,10 @@
 #ifndef BSCU_H_INCLUDED
 #define BSCU_H_INCLUDED
 
-#include "hydra.h"
-#include "hydra_utils.h"
-#include "bsci.h"
+#include "hydra_base.h"
 
-HYD_Status HYD_BSCU_Wait_for_completion(void);
+HYD_Status HYD_BSCU_finalize(void);
+HYD_Status HYD_BSCU_get_usize(int *size);
+HYD_Status HYD_BSCU_wait_for_completion(void);
 
-#endif /* BSCI_H_INCLUDED */
+#endif /* BSCU_H_INCLUDED */

Added: mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_finalize.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_finalize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,19 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bscu.h"
+
+HYD_Status HYD_BSCU_finalize(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}

Added: mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_usize.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_usize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -0,0 +1,21 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "bscu.h"
+
+HYD_Status HYD_BSCU_get_usize(int *size)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    *size = -1;
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}

Modified: mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -6,18 +6,17 @@
 
 #include "hydra.h"
 #include "hydra_utils.h"
-#include "bsci.h"
 #include "bscu.h"
 
 HYD_Handle handle;
 
 /*
- * HYD_BSCU_Wait_for_completion: We first wait for communication
+ * HYD_BSCU_wait_for_completion: We first wait for communication
  * events from the available processes till all connections have
  * closed. In the meanwhile, the SIGCHLD handler keeps track of all
  * the terminated processes.
  */
-HYD_Status HYD_BSCU_Wait_for_completion(void)
+HYD_Status HYD_BSCU_wait_for_completion(void)
 {
     int pid, ret_status, not_completed;
     struct HYD_Proc_params *proc_params;

Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/configure.in	2009-03-15 03:35:41 UTC (rev 4075)
@@ -65,7 +65,7 @@
 dnl Check what boot-strap server we should use
 AC_ARG_WITH(hydra-bss, [  --with-hydra-bss           Boot-strap Server],
 		    [ hydra_bss=$withval ],
-		    [ hydra_bss=ssh ])
+		    [ hydra_bss="ssh,fork" ])
 AC_MSG_CHECKING(boot-strap server)
 AC_MSG_RESULT($hydra_bss)
 hydra_bss_names="`echo $hydra_bss | sed -e 's/:/ /g' -e 's/,/ /g'`"
@@ -266,8 +266,12 @@
 PAC_SUBCONFIG_FINALIZE()
 
 for hydra_bss_name in ${hydra_bss_names}; do
+    if test -z "${hydra_default_bss}" ; then
+       hydra_default_bss=$hydra_bss_name
+    fi
     hydra_bss_makefiles="$hydra_bss_makefiles bootstrap/${hydra_bss_name}/Makefile"
 done
+AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_BSS,"$hydra_default_bss",[Default bootstrap server])
 
 dnl Final output
 AC_OUTPUT(Makefile \
@@ -292,5 +296,6 @@
 	demux/Makefile \
 	bootstrap/Makefile \
 	bootstrap/utils/Makefile \
+	bootstrap/src/Makefile \
 	${hydra_bss_makefiles}
 )

Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -164,6 +164,22 @@
             goto fn_fail;
         }
 
+        /* Bootstrap server */
+        if (!strcmp(*argv, "--bootstrap")) {
+            CHECK_LOCAL_PARAM_START(local_params_started, status);
+            CHECK_NEXT_ARG_VALID(status);
+
+            if (handle.bootstrap != NULL) {
+                HYDU_Error_printf("Duplicate bootstrap setting; previously set to %s\n",
+                                  handle.bootstrap);
+                status = HYD_INTERNAL_ERROR;
+                goto fn_fail;
+            }
+
+            handle.bootstrap = MPIU_Strdup(*argv);
+            continue;
+        }
+
         /* Check if X forwarding is explicitly set */
         if (!strcmp(*argv, "--enable-x") || !strcmp(*argv, "--disable-x")) {
             CHECK_LOCAL_PARAM_START(local_params_started, status);
@@ -419,6 +435,9 @@
         }
     }
 
+    if (handle.bootstrap == NULL)
+        handle.bootstrap = MPIU_Strdup(HYDRA_DEFAULT_BSS);
+
     /*
      * We use the following priority order to specify the host file:
      *    1. Specified to mpiexec using -f

Modified: mpich2/trunk/src/pm/hydra/pm/central/central_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/central_finalize.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/pm/central/central_finalize.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -36,7 +36,7 @@
         goto fn_fail;
     }
 
-    status = HYD_BSCI_Finalize();
+    status = HYD_BSCI_finalize();
     if (status != HYD_SUCCESS) {
         HYDU_Error_printf("unable to finalize the bootstrap server\n");
         goto fn_fail;

Modified: mpich2/trunk/src/pm/hydra/pm/central/central_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/central_launch.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/pm/central/central_launch.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -219,8 +219,14 @@
 
     /* Initialize the bootstrap server and ask it to launch the
      * processes. */
-    status = HYD_BSCI_Launch_procs();
+    status = HYD_BSCI_init(handle.bootstrap);
     if (status != HYD_SUCCESS) {
+        HYDU_Error_printf("bootstrap server initialization failed\n");
+        goto fn_fail;
+    }
+
+    status = HYD_BSCI_launch_procs();
+    if (status != HYD_SUCCESS) {
         HYDU_Error_printf("bootstrap server returned error launching processes\n");
         goto fn_fail;
     }
@@ -240,7 +246,7 @@
 
     HYDU_FUNC_ENTER();
 
-    status = HYD_BSCI_Wait_for_completion();
+    status = HYD_BSCI_wait_for_completion();
     if (status != HYD_SUCCESS) {
         status = HYD_PMCD_Central_cleanup();
         if (status != HYD_SUCCESS) {

Modified: mpich2/trunk/src/pm/hydra/pm/utils/pmi.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/utils/pmi.c	2009-03-15 00:53:23 UTC (rev 4074)
+++ mpich2/trunk/src/pm/hydra/pm/utils/pmi.c	2009-03-15 03:35:41 UTC (rev 4075)
@@ -670,7 +670,7 @@
 
     HYDU_FUNC_ENTER();
 
-    status = HYD_BSCI_Get_universe_size(&usize);
+    status = HYD_BSCI_get_usize(&usize);
     if (status != HYD_SUCCESS) {
         HYDU_Error_printf("Unable to get universe size from the bootstrap server\n");
         goto fn_fail;



More information about the mpich2-commits mailing list