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

balaji at mcs.anl.gov balaji at mcs.anl.gov
Sun Mar 15 22:32:00 CDT 2009


Author: balaji
Date: 2009-03-15 22:32:00 -0500 (Sun, 15 Mar 2009)
New Revision: 4084

Added:
   mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in
Removed:
   mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c
Modified:
   mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm
   mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm
   mpich2/trunk/src/pm/hydra/configure.in
   mpich2/trunk/src/pm/hydra/pm/central/Makefile.sm
   mpich2/trunk/src/pm/hydra/pm/utils/Makefile.sm
Log:
This commit will allow us to pick which bootstrap servers we want to
compile in. Once compiled in, we can pick the one we want to use at
runtime.


Modified: mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/bootstrap/fork/Makefile.sm	2009-03-16 03:32:00 UTC (rev 4084)
@@ -15,5 +15,6 @@
 	-I${abs_srcdir}/../../launcher/utils \
 	-I${abs_srcdir}/../../pm/utils \
 	-I${abs_srcdir}/../include \
+	-I../include \
 	-I${abs_srcdir}/../utils \
 	-I${abs_srcdir}/../../demux

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h	2009-03-16 03:32:00 UTC (rev 4084)
@@ -1,31 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- *  (C) 2008 by Argonne National Laboratory.
- *      See COPYRIGHT in top-level directory.
- */
-
-#ifndef BSCI_H_INCLUDED
-#define BSCI_H_INCLUDED
-
-#include "hydra.h"
-
-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_launch_procs(void);
-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 */

Added: mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/include/bsci.h.in	2009-03-16 03:32:00 UTC (rev 4084)
@@ -0,0 +1,30 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef BSCI_H_INCLUDED
+#define BSCI_H_INCLUDED
+
+#include "hydra.h"
+
+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_launch_procs(void);
+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 */
+ at hydra_bss_init_decl@
+
+#endif /* BSCI_H_INCLUDED */

Modified: mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/Makefile.sm	2009-03-16 03:32:00 UTC (rev 4084)
@@ -15,5 +15,6 @@
 	-I${abs_srcdir}/../../launcher/utils \
 	-I${abs_srcdir}/../../pm/utils \
 	-I${abs_srcdir}/../include \
+	-I../include \
 	-I${abs_srcdir}/../utils \
 	-I${abs_srcdir}/../../demux

Deleted: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c	2009-03-16 03:32:00 UTC (rev 4084)
@@ -1,53 +0,0 @@
-/* -*- 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"))
-        status = HYD_BSCI_ssh_init();
-    else if (!strcmp(bootstrap, "fork"))
-        status = 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;
-}

Copied: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in (from rev 4083, mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c)
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in	2009-03-16 03:32:00 UTC (rev 4084)
@@ -0,0 +1,61 @@
+/* -*- 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;
+
+char *HYD_BSCI_comp_array[] = { @hydra_bss_name_array@ };
+HYD_Status(*HYD_BSCI_comp_init[])(void) = { @hydra_bss_init_array@ };
+
+HYD_Status HYD_BSCI_init(char *bootstrap)
+{
+    int i;
+    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;
+
+    i = 0;
+    for (i = 0; HYD_BSCI_comp_array[i]; i++) {
+        if (!strcmp(bootstrap, HYD_BSCI_comp_array[i])) {
+            status = (*HYD_BSCI_comp_init[i])();
+            break;
+        }
+    }
+
+    if (HYD_BSCI_comp_array[i] == NULL) {
+        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;
+}

Modified: mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/Makefile.sm	2009-03-16 03:32:00 UTC (rev 4084)
@@ -15,5 +15,6 @@
 	-I${abs_srcdir}/../../launcher/utils \
 	-I${abs_srcdir}/../../pm/utils \
 	-I${abs_srcdir}/../include \
+	-I../include \
 	-I${abs_srcdir}/../utils \
 	-I${abs_srcdir}/../../demux

Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/configure.in	2009-03-16 03:32:00 UTC (rev 4084)
@@ -72,6 +72,24 @@
 AC_DEFINE_UNQUOTED(HYDRA_BSS_NAMES,"$hydra_bss_names",[Definition of enabled bootstrap servers])
 AC_SUBST(hydra_bss_names)
 
+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"
+    hydra_bss_init_decl="${hydra_bss_init_decl}
+HYD_Status HYD_BSCI_${hydra_bss_name}_init(void);"
+    hydra_bss_name_array="${hydra_bss_name_array} \"${hydra_bss_name}\", "
+    hydra_bss_init_array="${hydra_bss_init_array} HYD_BSCI_${hydra_bss_name}_init, "
+done
+hydra_bss_name_array="${hydra_bss_name_array} NULL"
+hydra_bss_init_array="${hydra_bss_init_array} NULL"
+AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_BSS,"$hydra_default_bss",[Default bootstrap server])
+AC_SUBST(hydra_bss_init_decl)
+AC_SUBST(hydra_bss_name_array)
+AC_SUBST(hydra_bss_init_array)
+
+
 dnl Check what process manager we should use
 AC_ARG_WITH(hydra-pm, [  --with-hydra-pm               Process Manager (central or distributed)],
 		[ hydra_pm=$withval ],
@@ -265,14 +283,6 @@
 dnl Place holder macro for finalization
 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 \
 	utils/Makefile \
@@ -297,5 +307,7 @@
 	bootstrap/Makefile \
 	bootstrap/utils/Makefile \
 	bootstrap/src/Makefile \
+	bootstrap/src/bsci_init.c \
+	bootstrap/include/bsci.h \
 	${hydra_bss_makefiles}
 )

Modified: mpich2/trunk/src/pm/hydra/pm/central/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/Makefile.sm	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/pm/central/Makefile.sm	2009-03-16 03:32:00 UTC (rev 4084)
@@ -14,6 +14,7 @@
 	-I${abs_srcdir}/../include \
 	-I${abs_srcdir}/../utils \
 	-I${abs_srcdir}/../../bootstrap/include \
+	-I../../bootstrap/include \
 	-I${abs_srcdir}/../../demux
 
 hydproxy_SOURCES = proxy.c proxy_utils.c proxy_cb.c

Modified: mpich2/trunk/src/pm/hydra/pm/utils/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/utils/Makefile.sm	2009-03-16 00:32:20 UTC (rev 4083)
+++ mpich2/trunk/src/pm/hydra/pm/utils/Makefile.sm	2009-03-16 03:32:00 UTC (rev 4084)
@@ -15,4 +15,5 @@
 	-I${abs_srcdir}/../../launcher/utils \
 	-I${abs_srcdir}/../include \
 	-I${abs_srcdir}/../../bootstrap/include \
+	-I../../bootstrap/include \
 	-I${abs_srcdir}/../../demux



More information about the mpich2-commits mailing list