[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