[mpich2-commits] r4224 - in mpich2/trunk/src/pm/hydra: . bootstrap/src css css/include css/none css/src css/utils include launcher/mpiexec launcher/utils

balaji at mcs.anl.gov balaji at mcs.anl.gov
Mon Mar 30 02:00:07 CDT 2009


Author: balaji
Date: 2009-03-30 02:00:07 -0500 (Mon, 30 Mar 2009)
New Revision: 4224

Added:
   mpich2/trunk/src/pm/hydra/css/
   mpich2/trunk/src/pm/hydra/css/Makefile.sm
   mpich2/trunk/src/pm/hydra/css/include/
   mpich2/trunk/src/pm/hydra/css/include/cssi.h.in
   mpich2/trunk/src/pm/hydra/css/none/
   mpich2/trunk/src/pm/hydra/css/none/Makefile.sm
   mpich2/trunk/src/pm/hydra/css/none/none.h
   mpich2/trunk/src/pm/hydra/css/none/none_finalize.c
   mpich2/trunk/src/pm/hydra/css/none/none_init.c
   mpich2/trunk/src/pm/hydra/css/none/none_query_string.c
   mpich2/trunk/src/pm/hydra/css/src/
   mpich2/trunk/src/pm/hydra/css/src/Makefile.sm
   mpich2/trunk/src/pm/hydra/css/src/cssi_finalize.c
   mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in
   mpich2/trunk/src/pm/hydra/css/src/cssi_query_string.c
   mpich2/trunk/src/pm/hydra/css/utils/
   mpich2/trunk/src/pm/hydra/css/utils/Makefile.sm
   mpich2/trunk/src/pm/hydra/css/utils/cssu_tmp.c
Modified:
   mpich2/trunk/src/pm/hydra/Makefile.sm
   mpich2/trunk/src/pm/hydra/README
   mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in
   mpich2/trunk/src/pm/hydra/configure.in
   mpich2/trunk/src/pm/hydra/include/hydra.h
   mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c
   mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
   mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c
Log:
Added some place holder files for the communication
sub-system. There's no code currently.


Modified: mpich2/trunk/src/pm/hydra/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/Makefile.sm	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/Makefile.sm	2009-03-30 07:00:07 UTC (rev 4224)
@@ -4,7 +4,7 @@
 #     See COPYRIGHT in top-level directory.
 #
 
-SUBDIRS = utils control bootstrap demux pm launcher .
+SUBDIRS = utils control bootstrap css demux pm launcher .
 
 all-preamble:
 	@if [ ! -d lib ] ; then mkdir lib ; fi

Modified: mpich2/trunk/src/pm/hydra/README
===================================================================
--- mpich2/trunk/src/pm/hydra/README	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/README	2009-03-30 07:00:07 UTC (rev 4224)
@@ -1,6 +1,5 @@
 General
 -------
-
 Hydra is a process management system for starting parallel jobs. Hydra
 is designed to natively work with multiple daemons such as ssh, pbs,
 slurm and sge. However, in the current release, only ssh and fork are
@@ -13,7 +12,6 @@
 
 Quick Start
 -----------
-
 To use hydra, mpich2 needs to be configured with the configure option
 --with-pm=hydra.
 
@@ -58,7 +56,6 @@
 
 Environment settings
 --------------------
-
 HYDRA_HOST_FILE: This variable points to the default host file to use,
 when the "-f" option is not provided to mpiexec.
 
@@ -69,8 +66,8 @@
     setenv HYDRA_HOST_FILE <path_to_host_file>/hosts
 
 
-MPIEXEC_DEBUG: Setting this to "1" enables debug mode; set it to "0"
-to disable.
+HYDRA_DEBUG: Setting this to "1" enables debug mode; set it to "0" to
+disable.
 
 HYDRA_ENV: Setting this to "all" will pass all the environment to the
 application processes.
@@ -78,7 +75,6 @@
 
 Bootstrap servers
 -----------------
-
 Hydra supports SSH and FORK bootstrap servers to launch processes. You
 can pick these through the mpiexec option --bootstrap:
 
@@ -96,7 +92,6 @@
 
 Process-core binding
 --------------------
-
 To configure hydra with process-core binding support, use the
 configure option --enable-hydra-procbind.
 
@@ -192,7 +187,6 @@
 
 X Forwarding
 ------------
-
 X-forwarding is specific to each bootstrap server. Some servers do it
 by default, while some don't. For ssh, this is disabled by default. To
 enable it, you should use the option --enable-x to mpiexec.
@@ -202,20 +196,36 @@
 
 Persistent-mode Proxies
 -----------------------
-
 Hydra also supports proxies to be launched in persistent mode on the
 system (e.g., by a system administrator). To launch in persistent
 mode, use:
 
- $ mpiexec --boot-proxies
+ $ mpiexec --boot-proxies -f hosts
 
- $ mpiexec --use-persistent -n 4 ./app1
+ $ mpiexec --use-persistent -f hosts -n 4 ./app1
 
- $ mpiexec --use-persistent -n 4 ./app2
+ $ mpiexec --use-persistent -f hosts -n 4 ./app2
 
- $ mpiexec --use-persistent -n 4 ./app3
+ $ mpiexec --use-persistent -f hosts -n 4 ./app3
 
- $ mpiexec --shutdown-proxies
+ $ mpiexec --shutdown-proxies -f hosts
 
 Persistent mode can also be picked using the environment setting
 HYDRA_LAUNCH_MODE=persistent.
+
+
+Communication sub-systems
+-------------------------
+Hydra supports different communication sub-systems to connect proxies
+in the persistent mode. The default is "none", which means that the
+proxies are not connected. You can pick these through the mpiexec
+option --css:
+
+ $ mpiexec --css ib -f hosts -n 4 ./app
+
+ (or)
+
+ $ mpiexec --css mx -f hosts -n 4 ./app
+
+This can also be controlled by using the HYDRA_CSS environment
+variable.

Modified: mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/bootstrap/src/bsci_init.c.in	2009-03-30 07:00:07 UTC (rev 4224)
@@ -25,7 +25,6 @@
     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])();

Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/configure.in	2009-03-30 07:00:07 UTC (rev 4224)
@@ -90,6 +90,34 @@
 AC_SUBST(hydra_bss_init_array)
 
 
+dnl Check what communication sub-system we should use
+AC_ARG_WITH(hydra-css, [  --with-hydra-css           Communication Sub-system],
+		    [ hydra_css=$withval ],
+		    [ hydra_css="none" ])
+AC_MSG_CHECKING(communication subsystem)
+AC_MSG_RESULT($hydra_css)
+hydra_css_names="`echo $hydra_css | sed -e 's/:/ /g' -e 's/,/ /g'`"
+AC_DEFINE_UNQUOTED(HYDRA_CSS_NAMES,"$hydra_css_names",[Definition of enabled communication systems])
+AC_SUBST(hydra_css_names)
+
+for hydra_css_name in ${hydra_css_names}; do
+    if test -z "${hydra_default_css}" ; then
+       hydra_default_css=$hydra_css_name
+    fi
+    hydra_css_makefiles="$hydra_css_makefiles css/${hydra_css_name}/Makefile"
+    hydra_css_init_decl="${hydra_css_init_decl}
+HYD_Status HYD_CSSI_${hydra_css_name}_init(void);"
+    hydra_css_name_array="${hydra_css_name_array} \"${hydra_css_name}\", "
+    hydra_css_init_array="${hydra_css_init_array} HYD_CSSI_${hydra_css_name}_init, "
+done
+hydra_css_name_array="${hydra_css_name_array} NULL"
+hydra_css_init_array="${hydra_css_init_array} NULL"
+AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_CSS,"$hydra_default_css",[Default communication sub-system])
+AC_SUBST(hydra_css_init_decl)
+AC_SUBST(hydra_css_name_array)
+AC_SUBST(hydra_css_init_array)
+
+
 dnl Check what process manager we should use
 AC_ARG_WITH(hydra-pm, [  --with-hydra-pm               Process Manager],
 		[ hydra_pm=$withval ],
@@ -323,5 +351,11 @@
 	bootstrap/src/Makefile \
 	bootstrap/src/bsci_init.c \
 	bootstrap/include/bsci.h \
-	${hydra_bss_makefiles}
+	${hydra_bss_makefiles} \
+	css/Makefile \
+	css/utils/Makefile \
+	css/src/Makefile \
+	css/src/cssi_init.c \
+	css/include/cssi.h \
+	${hydra_css_makefiles}
 )


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


Added: mpich2/trunk/src/pm/hydra/css/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/css/Makefile.sm	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/Makefile.sm	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,8 @@
+# -*- Mode: Makefile; -*-
+#
+# (C) 2008 by Argonne National Laboratory.
+#     See COPYRIGHT in top-level directory.
+#
+
+SUBDIRS_hydra_css_names = none
+SUBDIRS = utils src @hydra_css_names@ .

Added: mpich2/trunk/src/pm/hydra/css/include/cssi.h.in
===================================================================
--- mpich2/trunk/src/pm/hydra/css/include/cssi.h.in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/include/cssi.h.in	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,25 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef CSSI_H_INCLUDED
+#define CSSI_H_INCLUDED
+
+struct HYD_CSSI_fns {
+    HYD_Status(*init) (void);
+    HYD_Status(*query_string) (char *str);
+    HYD_Status(*finalize) (void);
+};
+
+extern struct HYD_CSSI_fns HYD_CSSI_fns;
+
+HYD_Status HYD_CSSI_init(char *css);
+HYD_Status HYD_CSSI_query_string(char *str);
+HYD_Status HYD_CSSI_finalize(void);
+
+/* Each communication sub-system has to expose an initialization function */
+ at hydra_css_init_decl@
+
+#endif /* CSSI_H_INCLUDED */


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


Added: mpich2/trunk/src/pm/hydra/css/none/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/css/none/Makefile.sm	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/none/Makefile.sm	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,18 @@
+# -*- 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 = none_init.c none_query_string.c none_finalize.c
+INCLUDES = -I${abs_srcdir}/../../include \
+	-I${abs_srcdir}/../../../../include \
+	-I../../include \
+	-I../../../../include \
+	-I${abs_srcdir}/../include \
+	-I../include \
+	-I${abs_srcdir}/../utils \
+	-I${abs_srcdir}/../../demux

Added: mpich2/trunk/src/pm/hydra/css/none/none.h
===================================================================
--- mpich2/trunk/src/pm/hydra/css/none/none.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/none/none.h	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,15 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#ifndef NONE_H_INCLUDED
+#define NONE_H_INCLUDED
+
+#include "hydra_base.h"
+
+HYD_Status HYD_CSSD_none_query_string(char *str);
+HYD_Status HYD_CSSD_none_finalize(void);
+
+#endif /* NONE_H_INCLUDED */

Added: mpich2/trunk/src/pm/hydra/css/none/none_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/css/none/none_finalize.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/none/none_finalize.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,22 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"
+#include "none.h"
+
+struct HYD_CSSI_fns HYD_CSSI_fns;
+
+HYD_Status HYD_CSSD_none_finalize(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}

Added: mpich2/trunk/src/pm/hydra/css/none/none_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/css/none/none_init.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/none/none_init.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,25 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"
+#include "none.h"
+
+struct HYD_CSSI_fns HYD_CSSI_fns;
+
+HYD_Status HYD_CSSI_none_init(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYD_CSSI_fns.query_string = HYD_CSSD_none_query_string;
+    HYD_CSSI_fns.finalize = HYD_CSSD_none_finalize;
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}

Added: mpich2/trunk/src/pm/hydra/css/none/none_query_string.c
===================================================================
--- mpich2/trunk/src/pm/hydra/css/none/none_query_string.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/none/none_query_string.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,22 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"
+#include "none.h"
+
+struct HYD_CSSI_fns HYD_CSSI_fns;
+
+HYD_Status HYD_CSSD_none_query_string(char *str)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}


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


Added: mpich2/trunk/src/pm/hydra/css/src/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/css/src/Makefile.sm	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/src/Makefile.sm	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,18 @@
+# -*- 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 = cssi_init.c cssi_finalize.c cssi_query_string.c
+INCLUDES = -I${abs_srcdir}/../../include \
+	-I${abs_srcdir}/../../../../include \
+	-I../../include \
+	-I../../../../include \
+	-I${abs_srcdir}/../include \
+	-I../include \
+	-I${abs_srcdir}/../utils \
+	-I${abs_srcdir}/../../demux

Added: mpich2/trunk/src/pm/hydra/css/src/cssi_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/css/src/cssi_finalize.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/src/cssi_finalize.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,23 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"
+
+struct HYD_CSSI_fns HYD_CSSI_fns;
+
+HYD_Status HYD_CSSI_finalize(void)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    status = HYD_CSSI_fns.finalize();
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}

Added: mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/src/cssi_init.c.in	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,50 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"
+
+struct HYD_CSSI_fns HYD_CSSI_fns;
+
+char *HYD_CSSI_comp_array[] = { @hydra_css_name_array@ };
+HYD_Status(*HYD_CSSI_comp_init[])(void) = { @hydra_css_init_array@ };
+
+HYD_Status HYD_CSSI_init(char *css)
+{
+    int i;
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    HYD_CSSI_fns.query_string = NULL;
+    HYD_CSSI_fns.finalize = NULL;
+
+    for (i = 0; HYD_CSSI_comp_array[i]; i++) {
+        if (!strcmp(css, HYD_CSSI_comp_array[i])) {
+            status = (*HYD_CSSI_comp_init[i])();
+            break;
+        }
+    }
+
+    if (HYD_CSSI_comp_array[i] == NULL)
+        HYDU_ERR_SETANDJUMP1(status, HYD_INTERNAL_ERROR,
+                             "unrecognized communication sub-system: %s\n", css);
+
+    /* These functions are mandatory */
+    if (HYD_CSSI_fns.query_string == NULL)
+        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
+                            "mandatory communication sub-system function undefined\n");
+    if (HYD_CSSI_fns.finalize == NULL)
+        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
+                            "mandatory communication sub-system function undefined\n");
+
+  fn_exit:
+    HYDU_FUNC_EXIT();
+    return status;
+
+  fn_fail:
+    goto fn_exit;
+}

Added: mpich2/trunk/src/pm/hydra/css/src/cssi_query_string.c
===================================================================
--- mpich2/trunk/src/pm/hydra/css/src/cssi_query_string.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/src/cssi_query_string.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,23 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"
+
+struct HYD_CSSI_fns HYD_CSSI_fns;
+
+HYD_Status HYD_CSSI_query_string(char *str)
+{
+    HYD_Status status = HYD_SUCCESS;
+
+    HYDU_FUNC_ENTER();
+
+    status = HYD_CSSI_fns.query_string(str);
+
+    HYDU_FUNC_EXIT();
+
+    return status;
+}


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


Added: mpich2/trunk/src/pm/hydra/css/utils/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/css/utils/Makefile.sm	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/utils/Makefile.sm	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,17 @@
+# -*- 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 = cssu_tmp.c
+INCLUDES = -I${abs_srcdir}/../../include \
+	-I${abs_srcdir}/../../../../include \
+	-I../../include \
+	-I../../../../include \
+	-I${abs_srcdir}/../include \
+	-I../include \
+	-I${abs_srcdir}/../../demux

Added: mpich2/trunk/src/pm/hydra/css/utils/cssu_tmp.c
===================================================================
--- mpich2/trunk/src/pm/hydra/css/utils/cssu_tmp.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/css/utils/cssu_tmp.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -0,0 +1,8 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ *  (C) 2008 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_base.h"
+#include "cssi.h"

Modified: mpich2/trunk/src/pm/hydra/include/hydra.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra.h	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/include/hydra.h	2009-03-30 07:00:07 UTC (rev 4224)
@@ -17,6 +17,7 @@
     HYD_Launch_mode_t launch_mode;
 
     char *bootstrap;
+    char *css;
     HYD_Binding binding;
     char *user_bind_map;
 

Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -44,6 +44,7 @@
     printf("\t--enable-x/--disable-x           [Enable or disable X forwarding]\n");
     printf("\t--proxy-port                     [Port on which proxies can listen]\n");
     printf("\t--bootstrap                      [Bootstrap server to use]\n");
+    printf("\t--css                            [Communication sub-system to use]\n");
     printf("\t--binding                        [Process binding]");
     printf("\t--boot-proxies                   [Boot proxies to run in persistent mode]\n");
     printf("\t--shutdown-proxies               [Shutdown persistent mode proxies]\n");

Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -222,6 +222,17 @@
             continue;
         }
 
+        if (!strcmp(str[0], "--css")) {
+            if (!str[1]) {
+                INCREMENT_ARGV(status);
+                str[1] = *argv;
+            }
+            HYDU_ERR_CHKANDJUMP(status, handle.css, HYD_INTERNAL_ERROR,
+                                "duplicate communication sub-system\n");
+            handle.css = HYDU_strdup(str[1]);
+            continue;
+        }
+
         if (!strcmp(str[0], "--binding")) {
             if (!str[1]) {
                 INCREMENT_ARGV(status);
@@ -292,7 +303,7 @@
     }
 
     /* First set all the variables that do not depend on the launch mode */
-    tmp = getenv("MPIEXEC_DEBUG");
+    tmp = getenv("HYDRA_DEBUG");
     if (handle.debug == -1 && tmp)
         handle.debug = atoi(tmp) ? 1 : 0;
     if (handle.debug == -1)
@@ -304,6 +315,12 @@
     if (handle.bootstrap == NULL)
         handle.bootstrap = HYDU_strdup(HYDRA_DEFAULT_BSS);
 
+    tmp = getenv("HYDRA_CSS");
+    if (handle.css == NULL && tmp)
+        handle.css = HYDU_strdup(tmp);
+    if (handle.css == NULL)
+        handle.css = HYDU_strdup(HYDRA_DEFAULT_CSS);
+
     tmp = getenv("HYDRA_HOST_FILE");
     if (handle.host_file == NULL && tmp)
         handle.host_file = HYDU_strdup(tmp);

Modified: mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c	2009-03-30 04:43:50 UTC (rev 4223)
+++ mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c	2009-03-30 07:00:07 UTC (rev 4224)
@@ -17,6 +17,7 @@
     handle.launch_mode = HYD_LAUNCH_UNSET;
 
     handle.bootstrap = NULL;
+    handle.css = NULL;
     handle.binding = HYD_BIND_UNSET;
     handle.user_bind_map = NULL;
 
@@ -50,54 +51,41 @@
 
 void HYD_LCHU_free_params(void)
 {
-    if (handle.base_path) {
+    if (handle.base_path)
         HYDU_FREE(handle.base_path);
-        handle.base_path = NULL;
-    }
 
-    if (handle.bootstrap) {
+    if (handle.bootstrap)
         HYDU_FREE(handle.bootstrap);
-        handle.bootstrap = NULL;
-    }
 
-    if (handle.wdir) {
+    if (handle.css)
+        HYDU_FREE(handle.css);
+
+    if (handle.wdir)
         HYDU_FREE(handle.wdir);
-        handle.wdir = NULL;
-    }
-    if (handle.host_file) {
+
+    if (handle.host_file)
         HYDU_FREE(handle.host_file);
-        handle.host_file = NULL;
-    }
 
-    if (handle.global_env) {
+    if (handle.global_env)
         HYDU_env_free_list(handle.global_env);
-        handle.global_env = NULL;
-    }
 
-    if (handle.system_env) {
+    if (handle.system_env)
         HYDU_env_free_list(handle.system_env);
-        handle.system_env = NULL;
-    }
 
-    if (handle.user_env) {
+    if (handle.user_env)
         HYDU_env_free_list(handle.user_env);
-        handle.user_env = NULL;
-    }
 
-    if (handle.prop_env) {
+    if (handle.prop_env)
         HYDU_env_free_list(handle.prop_env);
-        handle.prop_env = NULL;
-    }
 
-    if (handle.exec_info_list) {
+    if (handle.exec_info_list)
         HYDU_free_exec_info_list(handle.exec_info_list);
-        handle.exec_info_list = NULL;
-    }
 
-    if (handle.partition_list) {
+    if (handle.partition_list)
         HYDU_free_partition_list(handle.partition_list);
-        handle.partition_list = NULL;
-    }
+
+    /* Re-initialize everything to default values */
+    HYD_LCHU_init_params();
 }
 
 



More information about the mpich2-commits mailing list