[mpich2-commits] r7512 - in mpich2/trunk/src/pm/hydra: . include pm/pmiserv tools tools/bootstrap/external tools/bootstrap/include tools/bootstrap/persist tools/bootstrap/src tools/bootstrap/utils tools/rmk tools/rmk/include tools/rmk/none tools/rmk/pbs tools/rmk/src tools/rmk/utils ui/mpich ui/utils utils/alloc
balaji at mcs.anl.gov
balaji at mcs.anl.gov
Mon Nov 29 02:03:20 CST 2010
Author: balaji
Date: 2010-11-29 02:03:19 -0600 (Mon, 29 Nov 2010)
New Revision: 7512
Added:
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c
Removed:
mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/rmk/include/rmki.h.in
mpich2/trunk/src/pm/hydra/tools/rmk/none/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none.h
mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none_init.c
mpich2/trunk/src/pm/hydra/tools/rmk/pbs/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs.h
mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_init.c
mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/rmk/src/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_init.c.in
mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/rmk/utils/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku.h
mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_node_list.c
Modified:
mpich2/trunk/src/pm/hydra/configure.in
mpich2/trunk/src/pm/hydra/include/hydra.h
mpich2/trunk/src/pm/hydra/include/hydra_base.h
mpich2/trunk/src/pm/hydra/include/hydra_utils.h
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c
mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c
mpich2/trunk/src/pm/hydra/tools/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/Makefile.mk
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/include/bsci.h.in
mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_cleanup.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h
mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c
mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c
mpich2/trunk/src/pm/hydra/ui/mpich/utils.c
mpich2/trunk/src/pm/hydra/ui/utils/uiu.c
mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c
Log:
Merger of the bootstrap server and the RMK. The bootstrap device now
can provide launch, RMK or both capabilities. The separation of
launcher and RMK capabilities was always a bad idea, and has resulted
in a number of hacks, which are cleaned up through this commit.
Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/configure.in 2010-11-29 08:03:19 UTC (rev 7512)
@@ -143,143 +143,124 @@
#########################################################################
# Check what bootstrap server we should use
#########################################################################
-AC_ARG_WITH(hydra-bss, [ --with-hydra-bss=name - Boot-strap Server (ssh,rsh,fork,slurm,ll,lsf,sge,persist)],
- [ hydra_bss=$withval ],
- [ hydra_bss="ssh,rsh,fork,slurm,ll,lsf,sge,persist" ])
-AC_MSG_CHECKING(boot-strap server)
+AC_ARG_WITH(hydra-bss,
+ [AC_HELP_STRING([--with-hydra-bss=name],
+ [Bootstrap Server (none,ssh,rsh,fork,slurm,ll,lsf,sge,persist,pbs)])],
+ [ hydra_bss=$withval ],
+ [ hydra_bss="none,ssh,rsh,fork,slurm,ll,lsf,sge,persist,pbs" ])
+AC_MSG_CHECKING(bootstrap server)
AC_MSG_RESULT($hydra_bss)
hydra_bss_names="`echo $hydra_bss | sed -e 's/:/ /g' -e 's/,/ /g'`"
hydra_bss_external=false
hydra_bss_persist=false
+hydra_bss_pbs=false
+hydra_bss_none=false
for hydra_bss_name in ${hydra_bss_names}; do
case "$hydra_bss_name" in
ssh)
hydra_bss_external=true
available_bss=`echo $available_bss ssh`
+ available_launchers=`echo $available_launchers ssh`
;;
rsh)
hydra_bss_external=true
available_bss=`echo $available_bss rsh`
+ available_launchers=`echo $available_launchers rsh`
;;
fork)
hydra_bss_external=true
available_bss=`echo $available_bss fork`
+ available_launchers=`echo $available_launchers fork`
;;
slurm)
hydra_bss_external=true
available_bss=`echo $available_bss slurm`
+ available_launchers=`echo $available_launchers slurm`
+ available_rmks=`echo $available_rmks slurm`
;;
ll)
hydra_bss_external=true
available_bss=`echo $available_bss ll`
+ available_launchers=`echo $available_launchers ll`
+ available_rmks=`echo $available_rmks ll`
;;
lsf)
hydra_bss_external=true
available_bss=`echo $available_bss lsf`
+ available_launchers=`echo $available_launchers lsf`
+ available_rmks=`echo $available_rmks lsf`
;;
sge)
hydra_bss_external=true
available_bss=`echo $available_bss sge`
+ available_launchers=`echo $available_launchers sge`
+ available_rmks=`echo $available_rmks sge`
;;
persist)
hydra_bss_persist=true
available_bss=`echo $available_bss persist`
+ available_launchers=`echo $available_launchers persist`
;;
+ pbs)
+ hydra_bss_pbs=true
+ available_bss=`echo $available_bss pbs`
+ available_rmks=`echo $available_rmks pbs`
+ ;;
+ none|no)
+ hydra_bss_none=true
+ available_bss=`echo $available_bss none`
+ available_rmks=`echo $available_rmks none`
+ ;;
*)
;;
esac
done
-hydra_bss_names=$available_bss
-
-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_init_decl="${hydra_bss_init_decl}
-HYD_status HYDT_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} HYDT_bsci_${hydra_bss_name}_init, "
-done
-
-hydra_bss_name_array="${hydra_bss_name_array} NULL"
-hydra_bss_init_array="${hydra_bss_init_array} NULL"
-if test "$hydra_default_bss" != "" ; then
- AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_BSS,"$hydra_default_bss",[Default bootstrap server])
-else
- AC_DEFINE(HYDRA_DEFAULT_BSS,NULL,[Default bootstrap server])
-fi
-AM_SUBST_NOTMAKE(hydra_bss_init_decl)
-AM_SUBST_NOTMAKE(hydra_bss_name_array)
-AM_SUBST_NOTMAKE(hydra_bss_init_array)
-AC_SUBST(hydra_bss_init_decl)
-AC_SUBST(hydra_bss_name_array)
-AC_SUBST(hydra_bss_init_array)
+## Bootstrap servers
AM_CONDITIONAL([hydra_bss_external], [$hydra_bss_external])
AM_CONDITIONAL([hydra_bss_persist], [$hydra_bss_persist])
+AM_CONDITIONAL([hydra_bss_pbs], [$hydra_bss_pbs])
+AM_CONDITIONAL([hydra_bss_none], [$hydra_bss_none])
-AC_DEFINE_UNQUOTED(HYDRA_BSS_NAMES,"$hydra_bss_names",[Definition of enabled bootstrap servers])
-AM_SUBST_NOTMAKE(hydra_bss_names)
-AC_SUBST(hydra_bss_names)
-
-
-#########################################################################
-# Check what resource management kernel we should use
-#########################################################################
-AC_ARG_WITH(hydra-rmk, [ --with-hydra-rmk=name - Resource Management Kernel (pbs)],
- [ hydra_rmk=$withval ],
- [ hydra_rmk="none,pbs" ])
-AC_MSG_CHECKING(resource management kernel)
-AC_MSG_RESULT($hydra_rmk)
-hydra_rmk_names="`echo $hydra_rmk | sed -e 's/:/ /g' -e 's/,/ /g'`"
-
-for hydra_rmk_name in ${hydra_rmk_names}; do
- case "$hydra_rmk_name" in
- none)
- hydra_rmk_done=true
- available_rmk=`echo $available_rmk none`
- ;;
- pbs)
- hydra_rmk_pbs=true
- available_rmk=`echo $available_rmk pbs`
- ;;
- *)
- ;;
- esac
+## Launchers
+for hydra_launcher in ${available_launchers} ; do
+ hydra_launcher_array="${hydra_launcher_array} \"${hydra_launcher}\", "
+ if test -z "${hydra_default_launcher}" ; then
+ hydra_default_launcher=$hydra_launcher
+ AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_LAUNCHER,"$hydra_default_launcher",[Default launcher])
+ fi
+ hydra_launcher_init_decl="${hydra_launcher_init_decl}
+HYD_status HYDT_bsci_launcher_${hydra_launcher}_init(void);"
+ hydra_launcher_init_array="${hydra_launcher_init_array} HYDT_bsci_launcher_${hydra_launcher}_init, "
done
+hydra_launcher_array="${hydra_launcher_array} NULL"
+hydra_launcher_init_array="${hydra_launcher_init_array} NULL"
+AM_SUBST_NOTMAKE(hydra_launcher_init_decl)
+AC_SUBST(hydra_launcher_array)
+AC_SUBST(hydra_launcher_init_array)
+AC_SUBST(hydra_launcher_init_decl)
+AC_DEFINE_UNQUOTED(HYDRA_AVAILABLE_LAUNCHERS,"$available_launchers",
+ [Definition of enabled launchers])
-hydra_rmk_names=$available_rmk
-
-for hydra_rmk_name in ${hydra_rmk_names}; do
+## RMK
+for hydra_rmk in ${available_rmks} ; do
+ hydra_rmk_array="${hydra_rmk_array} \"${hydra_rmk}\", "
if test -z "${hydra_default_rmk}" ; then
- hydra_default_rmk=$hydra_rmk_name
+ hydra_default_rmk=$hydra_rmk
+ AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_RMK,"$hydra_default_rmk",[Default RMK])
fi
hydra_rmk_init_decl="${hydra_rmk_init_decl}
-HYD_status HYDT_rmki_${hydra_rmk_name}_init(void);"
- hydra_rmk_name_array="${hydra_rmk_name_array} \"${hydra_rmk_name}\", "
- hydra_rmk_init_array="${hydra_rmk_init_array} HYDT_rmki_${hydra_rmk_name}_init, "
+HYD_status HYDT_bsci_rmk_${hydra_rmk}_init(void);"
+ hydra_rmk_init_array="${hydra_rmk_init_array} HYDT_bsci_rmk_${hydra_rmk}_init, "
done
-
-AC_DEFINE_UNQUOTED(HYDRA_RMK_NAMES,"$hydra_rmk_names",[Enabled resource management kernels])
-AM_SUBST_NOTMAKE(hydra_rmk_names)
-AC_SUBST(hydra_rmk_names)
-
-hydra_rmk_name_array="${hydra_rmk_name_array} NULL"
+hydra_rmk_array="${hydra_rmk_array} NULL"
hydra_rmk_init_array="${hydra_rmk_init_array} NULL"
-if test "$hydra_default_rmk" != "" ; then
- AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_RMK,"$hydra_default_rmk",[Default resource management kernel])
-else
- AC_DEFINE(HYDRA_DEFAULT_RMK,NULL,[Default resource management kernel])
-fi
AM_SUBST_NOTMAKE(hydra_rmk_init_decl)
-AM_SUBST_NOTMAKE(hydra_rmk_name_array)
-AM_SUBST_NOTMAKE(hydra_rmk_init_array)
-AC_SUBST(hydra_rmk_init_decl)
-AC_SUBST(hydra_rmk_name_array)
+AC_SUBST(hydra_rmk_array)
AC_SUBST(hydra_rmk_init_array)
-AM_CONDITIONAL([hydra_rmk_none], [$hydra_rmk_none])
-AM_CONDITIONAL([hydra_rmk_pbs], [$hydra_rmk_pbs])
+AC_SUBST(hydra_rmk_init_decl)
+AC_DEFINE_UNQUOTED(HYDRA_AVAILABLE_RMKS,"$available_rmks",[Definition of enabled RMKS])
#########################################################################
@@ -339,17 +320,17 @@
# Process Binding
#########################################################################
AC_ARG_WITH(hydra-bindlib, [ --with-hydra-bindlib=name - Process Binding Library (hwloc, plpa)],
- [ hydra_bindlib=$withval ],
- [ hydra_bindlib=hwloc,plpa ])
+ [ hydra_bindlib_list=$withval ],
+ [ hydra_bindlib_list=hwloc,plpa ])
AC_MSG_CHECKING([desired process binding libraries])
-AC_MSG_RESULT([$hydra_bindlib])
+AC_MSG_RESULT([$hydra_bindlib_list])
-hydra_bindlib_names="`echo $hydra_bindlib | sed -e 's/:/ /g' -e 's/,/ /g'`"
+hydra_bindlibs="`echo $hydra_bindlib_list | sed -e 's/:/ /g' -e 's/,/ /g'`"
have_plpa=no
have_hwloc=no
-for hydra_bindlib_name in ${hydra_bindlib_names}; do
- case "$hydra_bindlib_name" in
+for hydra_bindlib in ${hydra_bindlibs}; do
+ case "$hydra_bindlib" in
plpa)
PAC_CONFIG_SUBDIR(tools/bind/plpa/plpa,plpa_works=yes,plpa_works=no)
if test "$plpa_works" = "no" ; then
@@ -372,7 +353,7 @@
LDFLAGS=$old_LDFLAGS
AC_MSG_RESULT($plpa_works)
if test "$plpa_works" = "yes" ; then
- available_bindlib=`echo $available_bindlib plpa`
+ available_bindlibs=`echo $available_bindlibs plpa`
have_plpa=yes
AC_DEFINE(HAVE_PLPA,1,[Define if plpa is available])
fi
@@ -398,7 +379,7 @@
if test "$have_hwloc" = "yes" ; then
AC_DEFINE(HAVE_HWLOC,1,[Define if hwloc is available])
- available_bindlib=`echo $available_bindlib hwloc`
+ available_bindlibs=`echo $available_bindlibs hwloc`
fi
;;
*)
@@ -406,16 +387,13 @@
esac
done
-hydra_bindlib_names=$available_bindlib
-
-for hydra_bindlib_name in ${hydra_bindlib_names}; do
- if test -z "${hydra_default_bindlib}" ; then
- hydra_default_bindlib=$hydra_bindlib_name
- fi
+for hydra_bindlib in ${available_bindlibs}; do
+ hydra_default_bindlib=${hydra_bindlib}
+ break
done
-AC_DEFINE_UNQUOTED(HYDRA_BINDLIB_NAMES,"$hydra_bindlib_names",
- [Definition of enabled binding libraries])
+AC_DEFINE_UNQUOTED(HYDRA_AVAILABLE_BINDLIBS,"$available_bindlibs",
+ [Definition of enabled binding libraries])
if test "$hydra_default_bindlib" != "" ; then
AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_BINDLIB,"$hydra_default_bindlib",[Default binding library])
else
@@ -425,30 +403,30 @@
AM_CONDITIONAL([hydra_have_hwloc], [test "${have_hwloc}" = "yes"])
AC_MSG_CHECKING([available process binding libraries])
-AC_MSG_RESULT([$hydra_bindlib_names])
+AC_MSG_RESULT([$available_bindlibs])
#########################################################################
# Checkpoint/Restart
#########################################################################
AC_ARG_WITH(hydra-ckpointlib, [ --with-hydra-ckpointlib=name - Checkpointing Library (blcr)],
- [ hydra_ckpointlib=$withval ],
- [ hydra_ckpointlib=none ])
+ [ hydra_ckpointlib_list=$withval ],
+ [ hydra_ckpointlib_list=none ])
AC_MSG_CHECKING(checkpointing library)
-AC_MSG_RESULT($hydra_ckpointlib)
+AC_MSG_RESULT($hydra_ckpointlib_list)
-hydra_ckpointlib_names="`echo $hydra_ckpointlib | sed -e 's/:/ /g' -e 's/,/ /g'`"
+hydra_ckpointlibs="`echo $hydra_ckpointlib_list | sed -e 's/:/ /g' -e 's/,/ /g'`"
have_blcr=no
-for hydra_ckpointlib_name in ${hydra_ckpointlib_names}; do
- case "$hydra_ckpointlib_name" in
+for hydra_ckpointlib in ${hydra_ckpointlibs}; do
+ case "$hydra_ckpointlib" in
blcr)
PAC_SET_HEADER_LIB_PATH(blcr)
PAC_CHECK_HEADER_LIB(blcr, libcr.h, cr, cr_init, have_blcr=yes, have_blcr=no)
# BLCR works
if test "$have_blcr" = "yes" ; then
AC_DEFINE(HAVE_BLCR,1,[Define if blcr is available])
- available_ckpointlib=`echo $available_ckpointlib blcr`
+ available_ckpointlibs=`echo $available_ckpointlibs blcr`
fi
;;
*)
@@ -456,15 +434,12 @@
esac
done
-hydra_ckpointlib_names=$available_ckpointlib
-
-for hydra_ckpointlib_name in ${hydra_ckpointlib_names}; do
- if test -z "${hydra_default_ckpointlib}" ; then
- hydra_default_ckpointlib=$hydra_ckpointlib_name
- fi
+for hydra_ckpointlib in ${available_ckpointlibs}; do
+ hydra_default_ckpointlib=${hydra_ckpointlib}
+ break
done
-AC_DEFINE_UNQUOTED(HYDRA_CKPOINTLIB_NAMES,"$hydra_ckpointlib_names",
+AC_DEFINE_UNQUOTED(HYDRA_AVAILABLE_CKPOINTLIBS,"$available_ckpointlibs",
[Definition of enabled checkpointing libraries])
if test "$hydra_default_ckpointlib" != "" ; then
AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_CKPOINTLIB,"$hydra_default_ckpointlib",
@@ -479,34 +454,34 @@
# Demux engine
#########################################################################
AC_ARG_WITH(hydra-demux, [ --with-hydra-demux=name - Demux engine (poll, select, port)],
- [ hydra_demux=$withval ],
- [ hydra_demux=poll,select,port ])
+ [ hydra_demux_list=$withval ],
+ [ hydra_demux_list=poll,select,port ])
AC_MSG_CHECKING(demux engine)
-AC_MSG_RESULT($hydra_demux)
+AC_MSG_RESULT($hydra_demux_list)
-hydra_demux_names="`echo $hydra_demux | sed -e 's/:/ /g' -e 's/,/ /g'`"
+hydra_demuxes="`echo $hydra_demux_list | sed -e 's/:/ /g' -e 's/,/ /g'`"
have_poll=no
have_select=no
have_port=no
-for hydra_demux_name in ${hydra_demux_names}; do
- case "$hydra_demux_name" in
+for hydra_demux in ${hydra_demuxes}; do
+ case "$hydra_demux" in
poll)
- AC_CHECK_FUNCS(poll,have_poll=yes,have_poll=no)
+ AC_CHECK_FUNCS(poll,[have_poll=yes],[have_poll=no])
if test "$have_poll" = "yes" ; then
- available_demux_names=`echo $available_demux_names poll`
+ available_demuxes=`echo $available_demuxes poll`
fi
;;
select)
- AC_CHECK_FUNCS(select,have_select=yes,have_select=no)
+ AC_CHECK_FUNCS(select,[have_select=yes],[have_select=no])
if test "$have_select" = "yes" ; then
- available_demux_names=`echo $available_demux_names select`
+ available_demuxes=`echo $available_demuxes select`
fi
;;
port)
# FIXME: Need to add a test for completion ports
if test "$have_port" = "yes" ; then
- available_demux_names=`echo $available_demux_names port`
+ available_demuxes=`echo $available_demuxes port`
fi
;;
*)
@@ -514,18 +489,16 @@
esac
done
-hydra_demux_names=$available_demux_names
-
-for hydra_demux_name in ${hydra_demux_names}; do
- if test -z "${hydra_default_demux}" ; then
- hydra_default_demux=$hydra_demux_name
- fi
+for hydra_demux in ${available_demuxes}; do
+ hydra_default_demux=${hydra_demux}
+ break
done
AM_CONDITIONAL([hydra_have_poll], [test "${have_poll}" = "yes"])
AM_CONDITIONAL([hydra_have_select], [test "${have_select}" = "yes"])
AM_CONDITIONAL([hydra_have_port], [test "${have_port}" = "yes"])
-AC_DEFINE_UNQUOTED(HYDRA_DEMUX_NAMES,"$hydra_demux_names",[Definition of enabled demux engines])
+AC_DEFINE_UNQUOTED(HYDRA_AVAILABLE_DEMUXES,"$available_demuxes",
+ [Definition of enabled demux engines])
if test "$hydra_default_demux" != "" ; then
AC_DEFINE_UNQUOTED(HYDRA_DEFAULT_DEMUX,"$hydra_default_demux",[Default demux engine])
else
@@ -677,7 +650,5 @@
AC_OUTPUT(Makefile
tools/bootstrap/src/bsci_init.c
tools/bootstrap/include/bsci.h
- tools/rmk/src/rmki_init.c
- tools/rmk/include/rmki.h
hydra-doxygen.cfg
)
Modified: mpich2/trunk/src/pm/hydra/include/hydra.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/include/hydra.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -24,7 +24,6 @@
char *base_path;
char *css;
- char *rmk;
char *port_range;
Modified: mpich2/trunk/src/pm/hydra/include/hydra_base.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_base.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/include/hydra_base.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -279,10 +279,13 @@
/* Global user parameters */
struct HYD_user_global {
- /* Bootstrap server */
- char *bootstrap;
- char *bootstrap_exec;
+ /* RMK */
+ char *rmk;
+ /* Launcher */
+ char *launcher;
+ char *launcher_exec;
+
/* Process binding */
char *binding;
char *bindlib;
Modified: mpich2/trunk/src/pm/hydra/include/hydra_utils.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_utils.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/include/hydra_utils.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -110,7 +110,9 @@
/* alloc */
void HYDU_init_user_global(struct HYD_user_global *user_global);
+void HYDU_finalize_user_global(struct HYD_user_global *user_global);
void HYDU_init_global_env(struct HYD_env_global *global_env);
+void HYDU_finalize_global_env(struct HYD_env_global *global_env);
HYD_status HYDU_alloc_node(struct HYD_node **node);
void HYDU_free_node_list(struct HYD_node *node_list);
void HYDU_init_pg(struct HYD_pg *pg, int pgid);
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -62,15 +62,11 @@
HYDU_FUNC_ENTER();
+ HYDU_finalize_user_global(&HYD_pmcd_pmip.user_global);
+
if (HYD_pmcd_pmip.upstream.server_name)
HYDU_FREE(HYD_pmcd_pmip.upstream.server_name);
- if (HYD_pmcd_pmip.user_global.bootstrap)
- HYDU_FREE(HYD_pmcd_pmip.user_global.bootstrap);
-
- if (HYD_pmcd_pmip.user_global.bootstrap_exec)
- HYDU_FREE(HYD_pmcd_pmip.user_global.bootstrap_exec);
-
if (HYD_pmcd_pmip.system_global.pmi_fd)
HYDU_FREE(HYD_pmcd_pmip.system_global.pmi_fd);
@@ -80,33 +76,6 @@
if (HYD_pmcd_pmip.system_global.pmi_process_mapping)
HYDU_FREE(HYD_pmcd_pmip.system_global.pmi_process_mapping);
- if (HYD_pmcd_pmip.user_global.binding)
- HYDU_FREE(HYD_pmcd_pmip.user_global.binding);
-
- if (HYD_pmcd_pmip.user_global.bindlib)
- HYDU_FREE(HYD_pmcd_pmip.user_global.bindlib);
-
- if (HYD_pmcd_pmip.user_global.ckpointlib)
- HYDU_FREE(HYD_pmcd_pmip.user_global.ckpointlib);
-
- if (HYD_pmcd_pmip.user_global.ckpoint_prefix)
- HYDU_FREE(HYD_pmcd_pmip.user_global.ckpoint_prefix);
-
- if (HYD_pmcd_pmip.user_global.demux)
- HYDU_FREE(HYD_pmcd_pmip.user_global.demux);
-
- if (HYD_pmcd_pmip.user_global.iface)
- HYDU_FREE(HYD_pmcd_pmip.user_global.iface);
-
- if (HYD_pmcd_pmip.user_global.global_env.system)
- HYDU_env_free_list(HYD_pmcd_pmip.user_global.global_env.system);
-
- if (HYD_pmcd_pmip.user_global.global_env.user)
- HYDU_env_free_list(HYD_pmcd_pmip.user_global.global_env.user);
-
- if (HYD_pmcd_pmip.user_global.global_env.inherited)
- HYDU_env_free_list(HYD_pmcd_pmip.user_global.global_env.inherited);
-
if (HYD_pmcd_pmip.exec_list) {
exec = HYD_pmcd_pmip.exec_list;
while (exec) {
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_pmi_v1.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -299,7 +299,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_query_usize(&usize);
- HYDU_ERR_POP(status, "unable to get bootstrap universe size\n");
+ HYDU_ERR_POP(status, "unable to get launcher universe size\n");
i = 0;
tmp[i++] = HYDU_strdup("cmd=universe_size size=");
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmip_utils.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -68,16 +68,21 @@
return HYDU_set_int(arg, argv, &HYD_pmcd_pmip.user_global.debug, 1);
}
-static HYD_status bootstrap_fn(char *arg, char ***argv)
+static HYD_status rmk_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.bootstrap);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.rmk);
}
-static HYD_status bootstrap_exec_fn(char *arg, char ***argv)
+static HYD_status launcher_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.bootstrap_exec);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.launcher);
}
+static HYD_status launcher_exec_fn(char *arg, char ***argv)
+{
+ return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.launcher_exec);
+}
+
static HYD_status demux_fn(char *arg, char ***argv)
{
return HYDU_set_str_and_incr(arg, argv, &HYD_pmcd_pmip.user_global.demux);
@@ -388,8 +393,9 @@
{"proxy-id", proxy_id_fn, NULL},
{"pgid", pgid_fn, NULL},
{"debug", debug_fn, NULL},
- {"bootstrap", bootstrap_fn, NULL},
- {"bootstrap-exec", bootstrap_exec_fn, NULL},
+ {"rmk", rmk_fn, NULL},
+ {"launcher", launcher_fn, NULL},
+ {"launcher-exec", launcher_exec_fn, NULL},
{"demux", demux_fn, NULL},
{"iface", iface_fn, NULL},
{"prepend-rank", prepend_rank_fn, NULL},
@@ -464,15 +470,17 @@
if (HYD_pmcd_pmip.user_global.prepend_rank == -1)
HYD_pmcd_pmip.user_global.prepend_rank = 0;
- status = HYDT_bsci_init(HYD_pmcd_pmip.user_global.bootstrap, NULL /* no bootstrap exec */ ,
+ status = HYDT_bsci_init(HYD_pmcd_pmip.user_global.rmk,
+ HYD_pmcd_pmip.user_global.launcher,
+ HYD_pmcd_pmip.user_global.launcher_exec,
0 /* disable x */ , HYD_pmcd_pmip.user_global.debug);
- HYDU_ERR_POP(status, "proxy unable to initialize bootstrap\n");
+ HYDU_ERR_POP(status, "proxy unable to initialize bootstrap server\n");
if (HYD_pmcd_pmip.local.id == -1) {
- /* We didn't get a proxy ID during launch; query the bootstrap
- * server for it. */
+ /* We didn't get a proxy ID during launch; query the launcher
+ * for it. */
status = HYDT_bsci_query_proxy_id(&HYD_pmcd_pmip.local.id);
- HYDU_ERR_POP(status, "unable to query bootstrap server for proxy ID\n");
+ HYDU_ERR_POP(status, "unable to query launcher for proxy ID\n");
}
if (HYD_pmcd_pmip.local.id == -1)
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmci.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -127,7 +127,7 @@
status = HYD_pmcd_pmi_alloc_pg_scratch(&HYD_handle.pg_list);
HYDU_ERR_POP(status, "error allocating pg scratch space\n");
- /* Copy the host list to pass to the bootstrap server */
+ /* Copy the host list to pass to the launcher */
node_list = NULL;
node_count = 0;
for (proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next) {
@@ -172,7 +172,7 @@
HYDU_ERR_POP(status, "unable to initializing binding library");
status = HYDT_bsci_launch_procs(proxy_args, node_list, control_fd, enable_stdin);
- HYDU_ERR_POP(status, "bootstrap server cannot launch processes\n");
+ HYDU_ERR_POP(status, "launcher cannot launch processes\n");
for (i = 0, proxy = HYD_handle.pg_list.proxy_list; proxy; proxy = proxy->next, i++)
if (control_fd[i] != HYD_FD_UNSET) {
@@ -226,7 +226,7 @@
/* Either all application processes exited or we have timed
* out. We now wait for all the proxies to terminate. */
status = HYDT_bsci_wait_for_completion(-1);
- HYDU_ERR_POP(status, "bootstrap server returned error waiting for completion\n");
+ HYDU_ERR_POP(status, "launcher returned error waiting for completion\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v1.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -504,7 +504,7 @@
/* Go to the last PG */
for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
- /* Copy the host list to pass to the bootstrap server */
+ /* Copy the host list to pass to the launcher */
node_list = NULL;
for (proxy = pg->proxy_list; proxy; proxy = proxy->next) {
HYDU_alloc_node(&node);
@@ -529,7 +529,7 @@
HYDU_ERR_POP(status, "unable to fill in executable arguments\n");
status = HYDT_bsci_launch_procs(proxy_args, node_list, NULL, 0);
- HYDU_ERR_POP(status, "bootstrap server cannot launch processes\n");
+ HYDU_ERR_POP(status, "launcher cannot launch processes\n");
HYDU_free_node_list(node_list);
{
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_pmi_v2.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -688,7 +688,7 @@
/* Go to the last PG */
for (pg = &HYD_handle.pg_list; pg->next; pg = pg->next);
- /* Copy the host list to pass to the bootstrap server */
+ /* Copy the host list to pass to the launcher */
node_list = NULL;
for (proxy = pg->proxy_list; proxy; proxy = proxy->next) {
HYDU_alloc_node(&node);
@@ -713,7 +713,7 @@
HYDU_ERR_POP(status, "unable to fill in executable arguments\n");
status = HYDT_bsci_launch_procs(proxy_args, node_list, NULL, 0);
- HYDU_ERR_POP(status, "bootstrap server cannot launch processes\n");
+ HYDU_ERR_POP(status, "launcher cannot launch processes\n");
HYDU_free_node_list(node_list);
{
Modified: mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/pm/pmiserv/pmiserv_utils.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -57,16 +57,21 @@
if (HYD_handle.user_global.debug)
proxy_args[arg++] = HYDU_strdup("--debug");
- if (HYD_handle.user_global.bootstrap) {
- proxy_args[arg++] = HYDU_strdup("--bootstrap");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.bootstrap);
+ if (HYD_handle.user_global.rmk) {
+ proxy_args[arg++] = HYDU_strdup("--rmk");
+ proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.rmk);
}
- if (HYD_handle.user_global.bootstrap_exec) {
- proxy_args[arg++] = HYDU_strdup("--bootstrap-exec");
- proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.bootstrap_exec);
+ if (HYD_handle.user_global.launcher) {
+ proxy_args[arg++] = HYDU_strdup("--launcher");
+ proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.launcher);
}
+ if (HYD_handle.user_global.launcher_exec) {
+ proxy_args[arg++] = HYDU_strdup("--launcher-exec");
+ proxy_args[arg++] = HYDU_strdup(HYD_handle.user_global.launcher_exec);
+ }
+
if (HYD_handle.user_global.prepend_rank)
proxy_args[arg++] = HYDU_strdup("--prepend-rank");
Modified: mpich2/trunk/src/pm/hydra/tools/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -10,7 +10,6 @@
include tools/bootstrap/Makefile.mk
include tools/ckpoint/Makefile.mk
include tools/demux/Makefile.mk
-include tools/rmk/Makefile.mk
include tools/debugger/Makefile.mk
include tools/nameserver/Makefile.mk
include tools/ftb/Makefile.mk
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -17,4 +17,5 @@
$(top_srcdir)/tools/bootstrap/external/ll_query_node_list.c \
$(top_srcdir)/tools/bootstrap/external/ll_query_proxy_id.c \
$(top_srcdir)/tools/bootstrap/external/lsf_query_node_list.c \
- $(top_srcdir)/tools/bootstrap/external/sge_query_node_list.c
+ $(top_srcdir)/tools/bootstrap/external/sge_query_node_list.c \
+ $(top_srcdir)/tools/bootstrap/external/pbs_query_node_list.c
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -12,10 +12,11 @@
#include "lsf.h"
#include "ll.h"
#include "sge.h"
+#include "pbs.h"
HYD_status HYDT_bscd_external_launch_procs(char **args, struct HYD_node *node_list,
int *control_fd, int enable_stdin);
-HYD_status HYDT_bscd_external_finalize(void);
+HYD_status HYDT_bscd_external_launcher_finalize(void);
HYD_status HYDT_bscd_external_query_env_inherit(const char *env_name, int *ret);
HYD_status HYDT_bscd_external_query_native_int(int *ret);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_env.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -17,7 +17,7 @@
*ret = 1;
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh")) {
+ if (!strcmp(HYDT_bsci_info.rmk, "ssh")) {
const char *env_list[] = { "DISPLAY", NULL };
for (i = 0; env_list[i]; i++) {
@@ -28,7 +28,7 @@
}
}
- if (!strcmp(HYDT_bsci_info.bootstrap, "lsf")) {
+ if (!strcmp(HYDT_bsci_info.rmk, "lsf")) {
const char *env_list[] = { "DISPLAY", "EGO_SERVERDIR", "LSB_TRAPSIGS",
"LSF_SERVERDIR", "HOSTTYPE", "LSB_HOSTS",
"LSF_BINDIR", "EGO_BINDIR", "PWD", "HOME",
@@ -56,7 +56,7 @@
}
}
- if (!strcmp(HYDT_bsci_info.bootstrap, "sge")) {
+ if (!strcmp(HYDT_bsci_info.rmk, "sge")) {
const char *env_list[] = { "DISPLAY", "SGE_ROOT", "SGE_CELL", "SGE_DEBUG_LEVEL",
"SGE_QMASTER_PORT", "SGE_O_HOME", "SGE_O_HOST",
"SGE_O_LOGNAME", "SGE_O_MAIL", "SGE_O_PATH",
@@ -80,7 +80,7 @@
}
}
- if (!strcmp(HYDT_bsci_info.bootstrap, "slurm")) {
+ if (!strcmp(HYDT_bsci_info.rmk, "slurm")) {
const char *env_list[] = { "SLURM_ACCOUNT", "SLURM_CPU_BIND",
"SLURM_CPUS_PER_TASK", "SLURM_CONN_TYPE",
"SLURM_CORE_FORMAT", "SLURM_DEBUG", "SLURMD_DEBUG",
@@ -110,7 +110,7 @@
}
}
- if (!strcmp(HYDT_bsci_info.bootstrap, "ll")) {
+ if (!strcmp(HYDT_bsci_info.rmk, "ll")) {
const char *env_list[] = { "LOADL_STEP_CLASS", "LOADL_STEP_ARGS",
"LOADL_STEP_ID", "LOADL_STARTD_PORT",
"LOADL_STEP_NICE", "LOADL_STEP_IN", "LOADL_STEP_ERR",
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_finalize.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -8,14 +8,14 @@
#include "bsci.h"
#include "external.h"
-HYD_status HYDT_bscd_external_finalize(void)
+HYD_status HYDT_bscd_external_launcher_finalize(void)
{
struct HYDT_bscd_ssh_time *e, *tmp;
HYD_status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh")) {
+ if (!strcmp(HYDT_bsci_info.launcher, "ssh")) {
for (e = HYDT_bscd_ssh_time; e;) {
HYDU_FREE(e->hostname);
tmp = e->next;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_init.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -8,84 +8,126 @@
#include "bsci.h"
#include "external.h"
-static HYD_status external_init(void)
+static HYD_status external_rmk_init(void)
{
HYD_status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh"))
- HYDT_bsci_fns.launch_procs = HYDT_bscd_external_launch_procs;
+ if (!strcmp(HYDT_bsci_info.rmk, "slurm"))
+ HYDT_bsci_fns.query_node_list = HYDT_bscd_slurm_query_node_list;
- if (!strcmp(HYDT_bsci_info.bootstrap, "lsf"))
+ if (!strcmp(HYDT_bsci_info.rmk, "ll"))
+ HYDT_bsci_fns.query_node_list = HYDT_bscd_ll_query_node_list;
+
+ if (!strcmp(HYDT_bsci_info.rmk, "lsf"))
HYDT_bsci_fns.query_node_list = HYDT_bscd_lsf_query_node_list;
- if (!strcmp(HYDT_bsci_info.bootstrap, "sge"))
+ if (!strcmp(HYDT_bsci_info.rmk, "sge"))
HYDT_bsci_fns.query_node_list = HYDT_bscd_sge_query_node_list;
- /* rsh, fork use the default values */
+ if (!strcmp(HYDT_bsci_info.rmk, "pbs"))
+ HYDT_bsci_fns.query_node_list = HYDT_bscd_pbs_query_node_list;
- if (!strcmp(HYDT_bsci_info.bootstrap, "slurm")) {
+ /* for everything else, set default values */
+ if (HYDT_bsci_fns.query_native_int == NULL)
+ HYDT_bsci_fns.query_native_int = HYDT_bscd_external_query_native_int;
+
+ HYDU_FUNC_EXIT();
+
+ return status;
+}
+
+static HYD_status external_launcher_init(void)
+{
+ HYD_status status = HYD_SUCCESS;
+
+ HYDU_FUNC_ENTER();
+
+ if (!strcmp(HYDT_bsci_info.launcher, "slurm")) {
HYDT_bsci_fns.launch_procs = HYDT_bscd_slurm_launch_procs;
HYDT_bsci_fns.query_proxy_id = HYDT_bscd_slurm_query_proxy_id;
- HYDT_bsci_fns.query_node_list = HYDT_bscd_slurm_query_node_list;
}
- if (!strcmp(HYDT_bsci_info.bootstrap, "ll")) {
+ if (!strcmp(HYDT_bsci_info.launcher, "ll"))
HYDT_bsci_fns.launch_procs = HYDT_bscd_ll_launch_procs;
- HYDT_bsci_fns.query_proxy_id = HYDT_bscd_ll_query_proxy_id;
- HYDT_bsci_fns.query_node_list = HYDT_bscd_ll_query_node_list;
- }
- /* set default values */
+ /* for everything else, set default values */
if (HYDT_bsci_fns.launch_procs == NULL)
HYDT_bsci_fns.launch_procs = HYDT_bscd_external_launch_procs;
- if (HYDT_bsci_fns.finalize == NULL)
- HYDT_bsci_fns.finalize = HYDT_bscd_external_finalize;
+ if (HYDT_bsci_fns.launcher_finalize == NULL)
+ HYDT_bsci_fns.launcher_finalize = HYDT_bscd_external_launcher_finalize;
if (HYDT_bsci_fns.query_env_inherit == NULL)
HYDT_bsci_fns.query_env_inherit = HYDT_bscd_external_query_env_inherit;
- if (HYDT_bsci_fns.query_native_int == NULL)
- HYDT_bsci_fns.query_native_int = HYDT_bscd_external_query_native_int;
-
HYDU_FUNC_EXIT();
return status;
}
-HYD_status HYDT_bsci_ssh_init(void)
+HYD_status HYDT_bsci_launcher_ssh_init(void)
{
- return external_init();
+ return external_launcher_init();
}
-HYD_status HYDT_bsci_rsh_init(void)
+HYD_status HYDT_bsci_launcher_rsh_init(void)
{
- return external_init();
+ return external_launcher_init();
}
-HYD_status HYDT_bsci_fork_init(void)
+HYD_status HYDT_bsci_launcher_fork_init(void)
{
- return external_init();
+ return external_launcher_init();
}
-HYD_status HYDT_bsci_lsf_init(void)
+HYD_status HYDT_bsci_launcher_lsf_init(void)
{
- return external_init();
+ return external_launcher_init();
}
-HYD_status HYDT_bsci_sge_init(void)
+HYD_status HYDT_bsci_launcher_sge_init(void)
{
- return external_init();
+ return external_launcher_init();
}
-HYD_status HYDT_bsci_slurm_init(void)
+HYD_status HYDT_bsci_launcher_slurm_init(void)
{
- return external_init();
+ return external_launcher_init();
}
-HYD_status HYDT_bsci_ll_init(void)
+HYD_status HYDT_bsci_launcher_ll_init(void)
{
- return external_init();
+ return external_launcher_init();
}
+
+HYD_status HYDT_bsci_rmk_lsf_init(void)
+{
+ return external_rmk_init();
+}
+
+HYD_status HYDT_bsci_rmk_sge_init(void)
+{
+ return external_rmk_init();
+}
+
+HYD_status HYDT_bsci_rmk_slurm_init(void)
+{
+ return external_rmk_init();
+}
+
+HYD_status HYDT_bsci_rmk_ll_init(void)
+{
+ return external_rmk_init();
+}
+
+HYD_status HYDT_bsci_rmk_pbs_init(void)
+{
+ return external_rmk_init();
+}
+
+HYD_status HYDT_bsci_rmk_none_init(void)
+{
+ return external_rmk_init();
+}
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_launch.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -88,21 +88,21 @@
/* We use the following priority order for the executable path:
* (1) user-specified; (2) search in path; (3) Hard-coded
* location */
- if (HYDT_bsci_info.bootstrap_exec)
- path = HYDU_strdup(HYDT_bsci_info.bootstrap_exec);
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh")) {
+ if (HYDT_bsci_info.launcher_exec)
+ path = HYDU_strdup(HYDT_bsci_info.launcher_exec);
+ if (!strcmp(HYDT_bsci_info.launcher, "ssh")) {
if (!path)
path = HYDU_find_full_path("ssh");
if (!path)
path = HYDU_strdup("/usr/bin/ssh");
}
- else if (!strcmp(HYDT_bsci_info.bootstrap, "rsh")) {
+ else if (!strcmp(HYDT_bsci_info.launcher, "rsh")) {
if (!path)
path = HYDU_find_full_path("rsh");
if (!path)
path = HYDU_strdup("/usr/bin/rsh");
}
- else if (!strcmp(HYDT_bsci_info.bootstrap, "lsf")) {
+ else if (!strcmp(HYDT_bsci_info.launcher, "lsf")) {
char *bin_dir = NULL;
int length;
@@ -117,7 +117,7 @@
if (!path)
path = HYDU_strdup("/usr/bin/blaunch");
}
- else if (!strcmp(HYDT_bsci_info.bootstrap, "sge")) {
+ else if (!strcmp(HYDT_bsci_info.launcher, "sge")) {
char *sge_root = NULL, *arc = NULL;
int length;
@@ -149,7 +149,7 @@
}
/* Allow X forwarding only if explicitly requested */
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh")) {
+ if (!strcmp(HYDT_bsci_info.launcher, "ssh")) {
if (HYDT_bsci_info.enablex == 1)
targs[idx++] = HYDU_strdup("-X");
else if (HYDT_bsci_info.enablex == 0)
@@ -157,10 +157,10 @@
else /* default mode is disable X */
targs[idx++] = HYDU_strdup("-x");
}
- else if (!strcmp(HYDT_bsci_info.bootstrap, "lsf")) {
+ else if (!strcmp(HYDT_bsci_info.launcher, "lsf")) {
targs[idx++] = HYDU_strdup("-n");
}
- else if (!strcmp(HYDT_bsci_info.bootstrap, "sge")) {
+ else if (!strcmp(HYDT_bsci_info.launcher, "sge")) {
targs[idx++] = HYDU_strdup("-inherit");
targs[idx++] = HYDU_strdup("-V");
}
@@ -212,7 +212,7 @@
* quickly. If this happens, the ssh daemons disables ssh
* connections causing the job to fail. This is basically a
* hack to slow down ssh connections to the same node. */
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh")) {
+ if (!strcmp(HYDT_bsci_info.launcher, "ssh")) {
status = HYDT_bscd_ssh_store_launch_time(node->hostname);
HYDU_ERR_POP(status, "error storing launch time\n");
}
@@ -220,9 +220,9 @@
status = is_local_host(node->hostname, &lh);
HYDU_ERR_POP(status, "error checking if node is localhost\n");
- /* If bootstrap server is 'fork', or this is the localhost,
- * use fork to launch the process */
- if (!strcmp(HYDT_bsci_info.bootstrap, "fork") || lh) {
+ /* If launcher is 'fork', or this is the localhost, use fork
+ * to launch the process */
+ if (!strcmp(HYDT_bsci_info.launcher, "fork") || lh) {
offset = exec_idx;
if (control_fd) {
@@ -249,13 +249,13 @@
else {
offset = 0;
- /* dummy is NULL only for bootstrap servers that can
- * handle a closed stdin socket. Older versions of ssh and
- * SGE seem to have problems when stdin is closed before
- * they are launched. */
- if (!strcmp(HYDT_bsci_info.bootstrap, "ssh") ||
- !strcmp(HYDT_bsci_info.bootstrap, "rsh") ||
- !strcmp(HYDT_bsci_info.bootstrap, "sge"))
+ /* dummy is NULL only for launchers that can handle a
+ * closed stdin socket. Older versions of ssh and SGE seem
+ * to have problems when stdin is closed before they are
+ * launched. */
+ if (!strcmp(HYDT_bsci_info.launcher, "ssh") ||
+ !strcmp(HYDT_bsci_info.launcher, "rsh") ||
+ !strcmp(HYDT_bsci_info.launcher, "sge"))
dummy = &fd;
else
dummy = NULL;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/external_query_native_int.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -27,7 +27,7 @@
*ret = 0;
- while (!strcmp(HYDT_bsci_info.bootstrap, "lsf")) {
+ while (!strcmp(HYDT_bsci_info.rmk, "lsf")) {
if (!env_is_avail("LSF_BINDIR"))
break;
if (!env_is_avail("LSB_MCPU_HOSTS"))
@@ -37,7 +37,7 @@
goto fn_exit;
}
- while (!strcmp(HYDT_bsci_info.bootstrap, "sge")) {
+ while (!strcmp(HYDT_bsci_info.rmk, "sge")) {
if (!env_is_avail("SGE_ROOT"))
break;
if (!env_is_avail("ARC"))
@@ -49,7 +49,7 @@
goto fn_exit;
}
- while (!strcmp(HYDT_bsci_info.bootstrap, "slurm")) {
+ while (!strcmp(HYDT_bsci_info.rmk, "slurm")) {
if (!env_is_avail("SLURM_NODELIST"))
break;
if (!env_is_avail("SLURM_JOB_CPUS_PER_NODE"))
@@ -61,7 +61,7 @@
goto fn_exit;
}
- while (!strcmp(HYDT_bsci_info.bootstrap, "ll")) {
+ while (!strcmp(HYDT_bsci_info.rmk, "ll")) {
if (!env_is_avail("LOADL_HOSTFILE"))
break;
if (!env_is_avail("MP_CHILD"))
@@ -71,6 +71,14 @@
goto fn_exit;
}
+ while (!strcmp(HYDT_bsci_info.rmk, "pbs")) {
+ if (!env_is_avail("PBS_NODEFILE"))
+ break;
+
+ *ret = 1;
+ goto fn_exit;
+ }
+
fn_exit:
HYDU_FUNC_EXIT();
return status;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_launch.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -28,8 +28,8 @@
/* We use the following priority order for the executable path:
* (1) user-specified; (2) search in path; (3) Hard-coded
* location */
- if (HYDT_bsci_info.bootstrap_exec)
- path = HYDU_strdup(HYDT_bsci_info.bootstrap_exec);
+ if (HYDT_bsci_info.launcher_exec)
+ path = HYDU_strdup(HYDT_bsci_info.launcher_exec);
if (!path)
path = HYDU_find_full_path("poe");
if (!path)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/ll_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -60,7 +60,7 @@
}
*node_list = global_node_list;
- /* node list is provided by the bootstrap server */
+ /* node list is provided by the RMK */
HYDT_bscd_ll_user_node_list = 0;
fn_exit:
Added: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -0,0 +1,16 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2008 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#ifndef PBS_H_INCLUDED
+#define PBS_H_INCLUDED
+
+#include "hydra_base.h"
+
+HYD_status HYDT_bscd_pbs_query_node_list(struct HYD_node **node_list);
+
+extern int HYDT_bscd_pbs_user_node_list;
+
+#endif /* PBS_H_INCLUDED */
Copied: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c (from rev 7511, mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_node_list.c)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/pbs_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -0,0 +1,65 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2008 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_utils.h"
+#include "bsci.h"
+#include "pbs.h"
+
+static struct HYD_node *global_node_list = NULL;
+
+static HYD_status process_mfile_token(char *token, int newline)
+{
+ int num_procs;
+ char *hostname, *procs;
+ HYD_status status = HYD_SUCCESS;
+
+ if (newline) { /* The first entry gives the hostname and processes */
+ hostname = strtok(token, ":");
+ procs = strtok(NULL, ":");
+ num_procs = procs ? atoi(procs) : 1;
+
+ status = HYDU_add_to_node_list(hostname, num_procs, &global_node_list);
+ HYDU_ERR_POP(status, "unable to initialize proxy\n");
+ }
+ else { /* Not a new line */
+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
+ "token %s not supported at this time\n", token);
+ }
+
+ fn_exit:
+ return status;
+
+ fn_fail:
+ goto fn_exit;
+}
+
+HYD_status HYDT_bscd_pbs_query_node_list(struct HYD_node **node_list)
+{
+ char *hostfile;
+ HYD_status status = HYD_SUCCESS;
+
+ HYDU_FUNC_ENTER();
+
+ if (MPL_env2str("PBS_NODEFILE", (const char **) &hostfile) == 0)
+ hostfile = NULL;
+
+ if (hostfile == NULL) {
+ *node_list = NULL;
+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "No PBS nodefile found\n");
+ }
+ else {
+ status = HYDU_parse_hostfile(hostfile, process_mfile_token);
+ HYDU_ERR_POP(status, "error parsing hostfile\n");
+ }
+ *node_list = global_node_list;
+
+ fn_exit:
+ HYDU_FUNC_EXIT();
+ return status;
+
+ fn_fail:
+ goto fn_exit;
+}
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_launch.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -75,8 +75,8 @@
/* We use the following priority order for the executable path:
* (1) user-specified; (2) search in path; (3) Hard-coded
* location */
- if (HYDT_bsci_info.bootstrap_exec)
- path = HYDU_strdup(HYDT_bsci_info.bootstrap_exec);
+ if (HYDT_bsci_info.launcher_exec)
+ path = HYDU_strdup(HYDT_bsci_info.launcher_exec);
if (!path)
path = HYDU_find_full_path("srun");
if (!path)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -201,7 +201,7 @@
}
}
- /* node list is provided by the bootstrap server */
+ /* node list is provided by the RMK */
HYDT_bscd_slurm_user_node_list = 0;
if (tstr)
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/include/bsci.h.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/include/bsci.h.in 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/include/bsci.h.in 2010-11-29 08:03:19 UTC (rev 7512)
@@ -17,12 +17,15 @@
* \brief BSCI internal structure to maintain persistent information.
*/
struct HYDT_bsci_info {
- /** \brief Boostrap server to use */
- const char *bootstrap;
+ /** \brief RMK to use */
+ const char *rmk;
- /** \brief Boostrap executable to use */
- const char *bootstrap_exec;
+ /** \brief Launcher to use */
+ const char *launcher;
+ /** \brief Launcher executable to use */
+ const char *launcher_exec;
+
/** \brief Enable/disable X-forwarding */
int enablex;
@@ -35,22 +38,31 @@
* different BSCI functions.
*/
struct HYDT_bsci_fns {
+ /* RMK functions */
+ /** \brief Query if the RMK integrates natively with the RM */
+ HYD_status(*query_native_int) (int *ret);
+
+ /** \brief Query for node list information */
+ HYD_status(*query_node_list) (struct HYD_node **node_list);
+
+ /** \brief Finalize the RMK */
+ HYD_status(*rmk_finalize) (void);
+
+
+ /* Launcher functions */
/** \brief Launch processes */
HYD_status(*launch_procs) (
char **args, struct HYD_node *node_list, int *control_fd, int enable_stdin);
/** \brief Finalize the bootstrap control device */
- HYD_status(*finalize) (void);
+ HYD_status(*launcher_finalize) (void);
- /** \brief Wait for bootstrap launched processes to complete */
+ /** \brief Wait for launched processes to complete */
HYD_status(*wait_for_completion) (int timeout);
/** \brief Cleanup processes */
HYD_status(*cleanup_procs) (void);
- /** \brief Query for node list information */
- HYD_status(*query_node_list) (struct HYD_node **node_list);
-
/** \brief Query for the universe size */
HYD_status(*query_usize) (int *size);
@@ -59,10 +71,6 @@
/** \brief Query if an environment variable should be inherited */
HYD_status(*query_env_inherit) (const char *env_name, int *ret);
-
- /** \brief Query if the bootstrap server integrates natively with
- * the RM */
- HYD_status(*query_native_int) (int *ret);
};
/** \cond */
@@ -73,8 +81,9 @@
/**
* \brief HYDT_bsci_init - Initialize the bootstrap control device
*
- * \param[in] bootstrap Bootstrap device to use
- * \param[in] bootstrap_exec Bootstrap helper executable to use (optional)
+ * \param[in] rmk Resource management kernel to use
+ * \param[in] launcher Launcher to use
+ * \param[in] launcher_exec Launcher executable to use (optional)
* \param[in] enablex Enable/disable X-forwarding (hint only)
* \param[in] debug Enable/disable debugging
*
@@ -83,7 +92,8 @@
* expected to set any bootstrap implementation specific function
* pointers in this function to be used by later BSCI calls.
*/
-HYD_status HYDT_bsci_init(const char *bootstrap, const char *bootstrap_exec, int enablex,
+HYD_status HYDT_bsci_init(const char *rmk, const char *launcher,
+ const char *launcher_exec, int enablex,
int debug);
@@ -102,12 +112,11 @@
* launch. Upper layers will need to account for this automatic
* addition of the proxy ID.
*
- * Bootstrap servers that perform sequential launches (one process at
- * a time), should set the proxy ID string in sequential
- * order. Bootstrap servers that perform parallel launches should set
- * the proxy ID string to "-1", but allow proxies to query their ID
- * information on each node using the HYDT_bsci_query_proxy_id
- * function.
+ * Launchers that perform sequential launches (one process at a time),
+ * should set the proxy ID string in sequential order. Launchers that
+ * perform parallel launches should set the proxy ID string to "-1",
+ * but allow proxies to query their ID information on each node using
+ * the HYDT_bsci_query_proxy_id function.
*/
HYD_status HYDT_bsci_launch_procs(
char **args, struct HYD_node *node_list, int *control_fd, int enable_stdin);
@@ -123,15 +132,15 @@
/**
- * \brief HYDT_bsci_wait_for_completion - Wait for bootstrap launched processes to complete
+ * \brief HYDT_bsci_wait_for_completion - Wait for launched processes to complete
*
* \param[in] timeout Time to wait for
*
* \param[ret] status HYD_TIMED_OUT if the timer expired
*
* This function waits for all processes it launched to finish. The
- * bootstrap control device should keep track of the processes it is
- * launching and wait for their completion.
+ * launcher should keep track of the processes it is launching and
+ * wait for their completion.
*/
HYD_status HYDT_bsci_wait_for_completion(int timeout);
@@ -152,8 +161,8 @@
*
* This function allows the upper layers to query the available
* nodes. It is important to note that if the upper layer queries the
- * bootstrap server with this function, the bootstrap layer is free to
- * assume that the same node list will be used for proxy launching.
+ * RMK with this function, the bootstrap device is free to assume that
+ * the same node list will be used for proxy launching.
*/
HYD_status HYDT_bsci_query_node_list(struct HYD_node **node_list);
@@ -164,9 +173,9 @@
* \param[out] size Maximum number of processes that can be launched
*
* If the underlying system allows for multitasking many processes on
- * a single processing element, the bootstrap server should return
- * "-1" (representing infinite). If not, it should specify the number
- * of processes that can be spawned.
+ * a single processing element, the launcher should return "-1"
+ * (representing infinite). If not, it should specify the number of
+ * processes that can be spawned.
*/
HYD_status HYDT_bsci_query_usize(int *size);
@@ -195,8 +204,8 @@
HYD_status HYDT_bsci_query_env_inherit(const char *env_name, int *ret);
/**
- * \brief HYDT_bsci_query_native_int - Query if the bootstrap
- * server integrates natively with the RM
+ * \brief HYDT_bsci_query_native_int - Query if the RMK integrates
+ * natively with the RM
*
* \param[out] ret Boolean for true (1) or false (0)
*
@@ -204,11 +213,12 @@
* from the user's environment is safe to be propagated to the remote
* processes.
*/
-HYD_status HYDT_bsci_query_native_int (int *ret);
+HYD_status HYDT_bsci_query_native_int(int *ret);
/*! @} */
-/* Each bootstrap server has to expose an initialization function */
- at hydra_bss_init_decl@
+/* Each launcher has to expose an initialization function */
+ at hydra_launcher_init_decl@
+ at hydra_rmk_init_decl@
#endif /* BSCI_H_INCLUDED */
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/persist/persist_init.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -8,7 +8,7 @@
#include "bsci.h"
#include "persist_client.h"
-HYD_status HYDT_bsci_persist_init(void)
+HYD_status HYDT_bsci_launcher_persist_init(void)
{
HYD_status status = HYD_SUCCESS;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_cleanup.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_cleanup.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_cleanup.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.cleanup_procs();
- HYDU_ERR_POP(status, "bootstrap device returned error cleaning up processes\n");
+ HYDU_ERR_POP(status, "launcher returned error cleaning up processes\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_env.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.query_env_inherit(env_name, ret);
- HYDU_ERR_POP(status, "bootstrap device returned error querying env propagation\n");
+ HYDU_ERR_POP(status, "launcher returned error querying env propagation\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_finalize.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -14,15 +14,21 @@
HYDU_FUNC_ENTER();
- status = HYDT_bsci_fns.finalize();
- HYDU_ERR_POP(status, "bootstrap device returned error while finalizing\n");
+ status = HYDT_bsci_fns.rmk_finalize();
+ HYDU_ERR_POP(status, "RMK returned error while finalizing\n");
- if (HYDT_bsci_info.bootstrap)
- HYDU_FREE(HYDT_bsci_info.bootstrap);
+ status = HYDT_bsci_fns.launcher_finalize();
+ HYDU_ERR_POP(status, "RMK returned error while finalizing\n");
- if (HYDT_bsci_info.bootstrap_exec)
- HYDU_FREE(HYDT_bsci_info.bootstrap_exec);
+ if (HYDT_bsci_info.rmk)
+ HYDU_FREE(HYDT_bsci_info.rmk);
+ if (HYDT_bsci_info.launcher)
+ HYDU_FREE(HYDT_bsci_info.launcher);
+
+ if (HYDT_bsci_info.launcher_exec)
+ HYDU_FREE(HYDT_bsci_info.launcher_exec);
+
fn_exit:
HYDU_FUNC_EXIT();
return status;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_init.c.in 2010-11-29 08:03:19 UTC (rev 7512)
@@ -9,137 +9,193 @@
#include "bscu.h"
struct HYDT_bsci_fns HYDT_bsci_fns = { 0 };
-static const char *bss_name_array[] = { @hydra_bss_name_array@ };
-static HYD_status(*bss_init_array[])(void) = { @hydra_bss_init_array@ };
struct HYDT_bsci_info HYDT_bsci_info = { 0 };
-static void init_bsci_fns(void)
+static const char *launcher_array[] = { @hydra_launcher_array@ };
+static const char *rmk_array[] = { @hydra_rmk_array@ };
+static HYD_status(*launcher_init_array[])(void) = { @hydra_launcher_init_array@ };
+static HYD_status(*rmk_init_array[])(void) = { @hydra_rmk_init_array@ };
+
+static void init_rmk_fns(void)
{
+ HYDT_bsci_fns.query_native_int = NULL;
+ HYDT_bsci_fns.query_node_list = NULL;
+ HYDT_bsci_fns.rmk_finalize = NULL;
+}
+
+static void init_launcher_fns(void)
+{
HYDT_bsci_fns.launch_procs = NULL;
- HYDT_bsci_fns.finalize = NULL;
+ HYDT_bsci_fns.launcher_finalize = NULL;
HYDT_bsci_fns.wait_for_completion = NULL;
HYDT_bsci_fns.cleanup_procs = NULL;
- HYDT_bsci_fns.query_node_list = NULL;
HYDT_bsci_fns.query_usize = NULL;
HYDT_bsci_fns.query_proxy_id = NULL;
HYDT_bsci_fns.query_env_inherit = NULL;
- HYDT_bsci_fns.query_native_int = NULL;
}
-static HYD_status set_bsci_defaults(void)
+static void set_rmk_defaults(void)
{
- HYD_status status = HYD_SUCCESS;
+ if (HYDT_bsci_fns.query_native_int == NULL)
+ HYDT_bsci_fns.query_native_int = HYDT_bscu_query_native_int;
+ if (HYDT_bsci_fns.query_node_list == NULL)
+ HYDT_bsci_fns.query_node_list = HYDT_bscu_query_node_list;
+ if (HYDT_bsci_fns.rmk_finalize == NULL)
+ HYDT_bsci_fns.rmk_finalize = HYDT_bscu_rmk_finalize;
+}
- HYDU_FUNC_ENTER();
-
- /* This function is mandatory */
- if (HYDT_bsci_fns.launch_procs == NULL)
- HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
- "mandatory bootstrap launch function undefined\n");
-
- if (HYDT_bsci_fns.finalize == NULL)
- HYDT_bsci_fns.finalize = HYDT_bscu_finalize;
+static void set_launcher_defaults(void)
+{
+ if (HYDT_bsci_fns.launcher_finalize == NULL)
+ HYDT_bsci_fns.launcher_finalize = HYDT_bscu_launcher_finalize;
if (HYDT_bsci_fns.wait_for_completion == NULL)
HYDT_bsci_fns.wait_for_completion = HYDT_bscu_wait_for_completion;
if (HYDT_bsci_fns.cleanup_procs == NULL)
HYDT_bsci_fns.cleanup_procs = HYDT_bscu_cleanup_procs;
- if (HYDT_bsci_fns.query_node_list == NULL)
- HYDT_bsci_fns.query_node_list = HYDT_bscu_query_node_list;
if (HYDT_bsci_fns.query_usize == NULL)
HYDT_bsci_fns.query_usize = HYDT_bscu_query_usize;
if (HYDT_bsci_fns.query_proxy_id == NULL)
HYDT_bsci_fns.query_proxy_id = HYDT_bscu_query_proxy_id;
if (HYDT_bsci_fns.query_env_inherit == NULL)
HYDT_bsci_fns.query_env_inherit = HYDT_bscu_query_env_inherit;
- if (HYDT_bsci_fns.query_native_int == NULL)
- HYDT_bsci_fns.query_native_int = HYDT_bscu_query_native_int;
+}
+static const char *detect_rmk(int debug)
+{
+ int i, ret;
+ HYD_status status = HYD_SUCCESS;
+
+ for (i = 0; rmk_array[i]; i++) {
+ init_rmk_fns();
+
+ HYDT_bsci_info.rmk = HYDU_strdup(rmk_array[i]);
+ HYDT_bsci_info.debug = debug;
+
+ status = (*rmk_init_array[i])();
+ HYDU_ERR_POP(status, "bootstrap device returned error initializing\n");
+
+ /* Set default values for the RMK functions */
+ set_rmk_defaults();
+
+ status = HYDT_bsci_fns.query_native_int(&ret);
+ HYDU_ERR_POP(status, "unable to query native environment\n");
+
+ status = HYDT_bsci_fns.rmk_finalize();
+ HYDU_ERR_POP(status, "unable to finalize bootstrap server\n");
+
+ HYDU_FREE(HYDT_bsci_info.rmk);
+ init_rmk_fns();
+
+ if (ret)
+ break;
+ }
+
fn_exit:
- HYDU_FUNC_EXIT();
- return status;
+ if (ret)
+ return ((const char *) HYDU_strdup(rmk_array[i]));
+ else
+ return NULL;
fn_fail:
goto fn_exit;
}
-HYD_status HYDT_bsci_init(const char *user_bootstrap, const char *user_bootstrap_exec,
- int enablex, int debug)
+HYD_status HYDT_bsci_init(const char *user_rmk, const char *user_launcher,
+ const char *user_launcher_exec, int enablex, int debug)
{
- int i, ret;
+ int i;
HYD_status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
- /* Initialize bootstrap functions */
- init_bsci_fns();
+ /* Initialize the RMK and launcher functions */
+ init_rmk_fns();
+ init_launcher_fns();
- /* Store the bootstrap value as multiple bootstrap servers might
- * set the same internal function pointers */
- if (user_bootstrap)
- HYDT_bsci_info.bootstrap = HYDU_strdup(user_bootstrap);
- else {
- MPL_env2str("HYDRA_BOOTSTRAP", (const char **) &HYDT_bsci_info.bootstrap);
- if (HYDT_bsci_info.bootstrap == NULL) {
- /* user didn't specify anything; try to find a bootstrap
- * that will work correctly */
- for (i = 0; bss_name_array[i]; i++) {
- HYDT_bsci_info.bootstrap = HYDU_strdup(bss_name_array[i]);
- HYDT_bsci_info.enablex = enablex;
- HYDT_bsci_info.debug = debug;
- status = (*bss_init_array[i])();
- HYDU_ERR_POP(status, "bootstrap device returned error initializing\n");
+ /* See if the user specified an RMK */
+ if (user_rmk)
+ HYDT_bsci_info.rmk = HYDU_strdup(user_rmk);
+ if (HYDT_bsci_info.rmk == NULL)
+ MPL_env2str("HYDRA_RMK", (const char **) &HYDT_bsci_info.rmk);
- /* Set default values for the bootstrap functions */
- status = set_bsci_defaults();
- HYDU_ERR_POP(status, "error setting BSCI defaults\n");
+ /* User didn't specify an RMK; try to detect one */
+ if (HYDT_bsci_info.rmk == NULL)
+ HYDT_bsci_info.rmk = detect_rmk(debug);
- status = HYDT_bsci_fns.query_native_int(&ret);
- HYDU_ERR_POP(status, "unable to query native environment\n");
+ if (HYDT_bsci_info.rmk == NULL)
+ HYDT_bsci_info.rmk = HYDU_strdup(HYDRA_DEFAULT_RMK);
- status = HYDT_bsci_fns.finalize();
- HYDU_ERR_POP(status, "unable to finalize bootstrap server\n");
+ /* Make sure the RMK we found is valid */
+ for (i = 0; rmk_array[i]; i++) {
+ if (!strcmp(HYDT_bsci_info.rmk, rmk_array[i])) {
+ status = (*rmk_init_array[i])();
+ HYDU_ERR_POP(status, "RMK init returned error\n");
+ break;
+ }
+ }
+ if (rmk_array[i] == NULL)
+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
+ "unrecognized RMK: %s\n", HYDT_bsci_info.rmk);
- if (ret)
- break;
+ /* Set default values for the remaining functions */
+ set_rmk_defaults();
- HYDU_FREE(HYDT_bsci_info.bootstrap);
- HYDT_bsci_info.bootstrap = NULL;
- /* Reinitialize the bootstrap functions */
- init_bsci_fns();
- }
- }
+ /* See if the user specified a launcher */
+ if (user_launcher)
+ HYDT_bsci_info.launcher = HYDU_strdup(user_launcher);
+ if (HYDT_bsci_info.launcher == NULL)
+ MPL_env2str("HYDRA_LAUNCHER", (const char **) &HYDT_bsci_info.launcher);
+ if (HYDT_bsci_info.launcher == NULL)
+ MPL_env2str("HYDRA_BOOTSTRAP", (const char **) &HYDT_bsci_info.launcher);
- if (HYDT_bsci_info.bootstrap == NULL)
- HYDT_bsci_info.bootstrap = HYDU_strdup(HYDRA_DEFAULT_BSS);
+ /* User didn't specify a launcher; try to see if the RMK also
+ * provides launcher capabilities */
+ if (HYDT_bsci_info.launcher == NULL) {
+ for (i = 0; launcher_array[i]; i++)
+ if (!strcmp(HYDT_bsci_info.rmk, launcher_array[i]))
+ break;
+ if (launcher_array[i])
+ HYDT_bsci_info.launcher = HYDU_strdup(launcher_array[i]);
}
- if (user_bootstrap_exec)
- HYDT_bsci_info.bootstrap_exec = HYDU_strdup(user_bootstrap_exec);
- else
- HYD_GET_ENV_STR_VAL(HYDT_bsci_info.bootstrap_exec, "HYDRA_BOOTSTRAP_EXEC", NULL);
+ if (HYDT_bsci_info.launcher == NULL)
+ HYDT_bsci_info.launcher = HYDU_strdup(HYDRA_DEFAULT_LAUNCHER);
- for (i = 0; bss_name_array[i]; i++) {
- if (!strcmp(HYDT_bsci_info.bootstrap, bss_name_array[i])) {
- status = (*bss_init_array[i])();
- HYDU_ERR_POP(status, "bootstrap device returned error initializing\n");
+ if (HYDT_bsci_info.launcher == NULL)
+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no appropriate launcher found\n");
+
+ HYDT_bsci_info.debug = debug;
+ HYDT_bsci_info.enablex = enablex;
+
+ if (user_launcher_exec)
+ HYDT_bsci_info.launcher_exec = HYDU_strdup(user_launcher_exec);
+ if (HYDT_bsci_info.launcher_exec == NULL)
+ HYD_GET_ENV_STR_VAL(HYDT_bsci_info.launcher_exec, "HYDRA_LAUNCHER_EXEC", NULL);
+ if (HYDT_bsci_info.launcher_exec == NULL)
+ HYD_GET_ENV_STR_VAL(HYDT_bsci_info.launcher_exec, "HYDRA_BOOTSTRAP_EXEC", NULL);
+
+ /* Make sure the launcher we found is valid */
+ for (i = 0; launcher_array[i]; i++) {
+ if (!strcmp(HYDT_bsci_info.launcher, launcher_array[i])) {
+ status = (*launcher_init_array[i])();
+ HYDU_ERR_POP(status, "launcher init returned error\n");
break;
}
}
+ if (launcher_array[i] == NULL)
+ HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
+ "unrecognized launcher: %s\n", HYDT_bsci_info.launcher);
- /* Set the appropriate info */
- HYDT_bsci_info.enablex = enablex;
- HYDT_bsci_info.debug = debug;
+ /* Set default values for the remaining functions */
+ set_launcher_defaults();
- if (bss_name_array[i] == NULL)
+ /* This function is mandatory */
+ if (HYDT_bsci_fns.launch_procs == NULL)
HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
- "unrecognized bootstrap server: %s\n", HYDT_bsci_info.bootstrap);
+ "mandatory launch function undefined\n");
- /* Set default values for the bootstrap functions */
- status = set_bsci_defaults();
- HYDU_ERR_POP(status, "error setting BSCI defaults\n");
-
fn_exit:
HYDU_FUNC_EXIT();
return status;
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_launch.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.launch_procs(args, node_list, control_fd, enable_stdin);
- HYDU_ERR_POP(status, "bootstrap device returned error while launching processes\n");
+ HYDU_ERR_POP(status, "launcher returned error while launching processes\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_native_int.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.query_native_int(ret);
- HYDU_ERR_POP(status, "bootstrap device returned error querying native integration\n");
+ HYDU_ERR_POP(status, "RMK returned error querying native integration\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.query_node_list(node_list);
- HYDU_ERR_POP(status, "bootstrap device returned error while querying node list\n");
+ HYDU_ERR_POP(status, "RMK returned error while querying node list\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_query_proxy_id.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.query_proxy_id(proxy_id);
- HYDU_ERR_POP(status, "bootstrap device returned error while querying proxy ID\n");
+ HYDU_ERR_POP(status, "launcher returned error while querying proxy ID\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_usize.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.query_usize(size);
- HYDU_ERR_POP(status, "bootstrap device returned error querying usize\n");
+ HYDU_ERR_POP(status, "launcher returned error querying usize\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/src/bsci_wait.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,7 @@
HYDU_FUNC_ENTER();
status = HYDT_bsci_fns.wait_for_completion(timeout);
- HYDU_ERR_POP(status, "bootstrap device returned error waiting for completion\n");
+ HYDU_ERR_POP(status, "launcher returned error waiting for completion\n");
fn_exit:
HYDU_FUNC_EXIT();
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -15,7 +15,8 @@
extern int *HYD_bscu_pid_list;
extern int HYD_bscu_pid_count;
-HYD_status HYDT_bscu_finalize(void);
+HYD_status HYDT_bscu_rmk_finalize(void);
+HYD_status HYDT_bscu_launcher_finalize(void);
HYD_status HYDT_bscu_query_node_list(struct HYD_node **node_list);
HYD_status HYDT_bscu_query_usize(int *size);
HYD_status HYDT_bscu_query_proxy_id(int *proxy_id);
Modified: mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/bootstrap/utils/bscu_finalize.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -8,7 +8,7 @@
#include "hydra_utils.h"
#include "bscu.h"
-HYD_status HYDT_bscu_finalize(void)
+HYD_status HYDT_bscu_rmk_finalize(void)
{
HYD_status status = HYD_SUCCESS;
@@ -18,3 +18,14 @@
return status;
}
+
+HYD_status HYDT_bscu_launcher_finalize(void)
+{
+ HYD_status status = HYD_SUCCESS;
+
+ HYDU_FUNC_ENTER();
+
+ HYDU_FUNC_EXIT();
+
+ return status;
+}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,18 +0,0 @@
-# -*- Mode: Makefile; -*-
-#
-# (C) 2008 by Argonne National Laboratory.
-# See COPYRIGHT in top-level directory.
-#
-
-AM_CPPFLAGS += -I$(top_srcdir)/tools/rmk/include -I$(top_builddir)/tools/rmk/include
-
-include tools/rmk/src/Makefile.mk
-include tools/rmk/utils/Makefile.mk
-
-if hydra_rmk_none
-include tools/rmk/none/Makefile.mk
-endif
-
-if hydra_rmk_pbs
-include tools/rmk/pbs/Makefile.mk
-endif
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/include/rmki.h.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/include/rmki.h.in 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/include/rmki.h.in 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,65 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-
-#ifndef RMKI_H_INCLUDED
-#define RMKI_H_INCLUDED
-
-/** @file rmki.h.in */
-
-#include "hydra_utils.h"
-
-/*! \addtogroup rmki Resource Management Kernel Interface
- * @{
- */
-
-/**
- * \brief Function pointers for device specific implementations of
- * different RMK functions
- */
-struct HYDT_rmki_fns {
- /** \brief Query node list information */
- HYD_status(*query_node_list) (struct HYD_node **node_list);
-
- /** \brief Query native integration in the environment */
- HYD_status(*query_native_int) (int *ret);
-};
-
-/** \cond */
-extern struct HYDT_rmki_fns HYDT_rmki_fns;
-/** \endcond */
-
-/**
- * \brief HYDT_rmki_init - Initialize the resource management kernel
- *
- * \param[in] rmk Resource management kernel to use
- *
- * Initializes the resource management kernel
- */
-HYD_status HYDT_rmki_init(char *rmk);
-
-/**
- * \brief HYDT_rmki_query_node_list - Query node list information
- *
- * \param[out] node_list List of nodes available
- */
-HYD_status HYDT_rmki_query_node_list(struct HYD_node **node_list);
-
-/**
- * \brief HYDT_rmki_query_native_int - Query native integration into
- * the environment
- *
- * \param[out] ret Return bool: true (1) or false (0)
- */
-HYD_status HYDT_rmki_query_native_int(int *ret);
-
-/*!
- * @}
- */
-
-/* Each resource management kernel has to expose an initialization function */
- at hydra_rmk_init_decl@
-
-#endif /* RMKI_H_INCLUDED */
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/none/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/none/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/none/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,7 +0,0 @@
-# -*- Mode: Makefile; -*-
-#
-# (C) 2008 by Argonne National Laboratory.
-# See COPYRIGHT in top-level directory.
-#
-
-libhydra_la_SOURCES += $(top_srcdir)/tools/rmk/none/rmk_none_init.c
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,12 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-
-#ifndef RMK_NONE_H_INCLUDED
-#define RMK_NONE_H_INCLUDED
-
-#include "hydra_base.h"
-
-#endif /* RMK_NONE_H_INCLUDED */
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none_init.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/none/rmk_none_init.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,20 +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 "rmki.h"
-#include "rmk_none.h"
-
-HYD_status HYDT_rmki_none_init(void)
-{
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- HYDU_FUNC_EXIT();
-
- return status;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/pbs/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/pbs/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/pbs/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,9 +0,0 @@
-# -*- Mode: Makefile; -*-
-#
-# (C) 2008 by Argonne National Laboratory.
-# See COPYRIGHT in top-level directory.
-#
-
-libhydra_la_SOURCES += $(top_srcdir)/tools/rmk/pbs/rmk_pbs_init.c \
- $(top_srcdir)/tools/rmk/pbs/rmk_pbs_query_node_list.c \
- $(top_srcdir)/tools/rmk/pbs/rmk_pbs_query_native_int.c
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,15 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-
-#ifndef RMK_PBS_H_INCLUDED
-#define RMK_PBS_H_INCLUDED
-
-#include "hydra_base.h"
-
-HYD_status HYDT_rmkd_pbs_query_node_list(struct HYD_node **node_list);
-HYD_status HYDT_rmkd_pbs_query_native_int(int *ret);
-
-#endif /* RMK_PBS_H_INCLUDED */
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_init.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_init.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_init.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,23 +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 "rmki.h"
-#include "rmk_pbs.h"
-
-HYD_status HYDT_rmki_pbs_init(void)
-{
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- HYDT_rmki_fns.query_node_list = HYDT_rmkd_pbs_query_node_list;
- HYDT_rmki_fns.query_native_int = HYDT_rmkd_pbs_query_native_int;
-
- HYDU_FUNC_EXIT();
-
- return status;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_native_int.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_native_int.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,30 +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 "rmki.h"
-#include "rmk_pbs.h"
-
-HYD_status HYDT_rmkd_pbs_query_native_int(int *ret)
-{
- const char *dummy = NULL;
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- MPL_env2str("PBS_NODEFILE", &dummy);
- if (!dummy)
- *ret = 0;
- else
- *ret = 1;
-
- fn_exit:
- HYDU_FUNC_EXIT();
- return status;
-
- fn_fail:
- goto fn_exit;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_node_list.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/pbs/rmk_pbs_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,65 +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 "rmki.h"
-#include "rmk_pbs.h"
-
-static struct HYD_node *global_node_list = NULL;
-
-static HYD_status process_mfile_token(char *token, int newline)
-{
- int num_procs;
- char *hostname, *procs;
- HYD_status status = HYD_SUCCESS;
-
- if (newline) { /* The first entry gives the hostname and processes */
- hostname = strtok(token, ":");
- procs = strtok(NULL, ":");
- num_procs = procs ? atoi(procs) : 1;
-
- status = HYDU_add_to_node_list(hostname, num_procs, &global_node_list);
- HYDU_ERR_POP(status, "unable to initialize proxy\n");
- }
- else { /* Not a new line */
- HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
- "token %s not supported at this time\n", token);
- }
-
- fn_exit:
- return status;
-
- fn_fail:
- goto fn_exit;
-}
-
-HYD_status HYDT_rmkd_pbs_query_node_list(struct HYD_node **node_list)
-{
- char *hostfile;
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- if (MPL_env2str("PBS_NODEFILE", (const char **) &hostfile) == 0)
- hostfile = NULL;
-
- if (hostfile == NULL) {
- *node_list = NULL;
- HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "No PBS nodefile found\n");
- }
- else {
- status = HYDU_parse_hostfile(hostfile, process_mfile_token);
- HYDU_ERR_POP(status, "error parsing hostfile\n");
- }
- *node_list = global_node_list;
-
- fn_exit:
- HYDU_FUNC_EXIT();
- return status;
-
- fn_fail:
- goto fn_exit;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/src/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/src/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/src/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,9 +0,0 @@
-# -*- Mode: Makefile; -*-
-#
-# (C) 2008 by Argonne National Laboratory.
-# See COPYRIGHT in top-level directory.
-#
-
-libhydra_la_SOURCES += $(top_builddir)/tools/rmk/src/rmki_init.c \
- $(top_srcdir)/tools/rmk/src/rmki_query_node_list.c \
- $(top_srcdir)/tools/rmk/src/rmki_query_native_int.c
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_init.c.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_init.c.in 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_init.c.in 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,89 +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 "rmki.h"
-#include "rmku.h"
-
-/* initialize to avoid common symbols */
-struct HYDT_rmki_fns HYDT_rmki_fns = { 0 };
-
-static const char *rmk_name_array[] = { @hydra_rmk_name_array@ };
-static HYD_status(*rmk_init_array[])(void) = { @hydra_rmk_init_array@ };
-
-static void init_rmki_fns(void)
-{
- HYDT_rmki_fns.query_node_list = NULL;
- HYDT_rmki_fns.query_native_int = NULL;
-}
-
-static void set_rmki_defaults(void)
-{
- if (HYDT_rmki_fns.query_node_list == NULL)
- HYDT_rmki_fns.query_node_list = HYD_rmku_query_node_list;
- if (HYDT_rmki_fns.query_native_int == NULL)
- HYDT_rmki_fns.query_native_int = HYD_rmku_query_native_int;
-}
-
-HYD_status HYDT_rmki_init(char *user_rmk)
-{
- int i, ret;
- char *rmk = NULL;
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- /* Initialize RMK functions */
- init_rmki_fns();
-
- if (user_rmk)
- rmk = HYDU_strdup(user_rmk);
- else {
- for (i = 0; rmk_name_array[i]; i++) {
- status = (*rmk_init_array[i])();
- HYDU_ERR_POP(status, "RMK device returned error initializing\n");
-
- set_rmki_defaults();
-
- status = HYDT_rmki_fns.query_native_int(&ret);
- HYDU_ERR_POP(status, "unable to query native environment\n");
-
- if (ret)
- break;
-
- /* Reinitialize the RMK functions */
- init_rmki_fns();
- }
-
- if (rmk == NULL) {
- if (HYDRA_DEFAULT_RMK)
- rmk = HYDU_strdup(HYDRA_DEFAULT_RMK);
- else
- goto fn_exit;
- }
- }
-
- for (i = 0; rmk_name_array[i]; i++) {
- if (!strcmp(rmk, rmk_name_array[i])) {
- status = (*rmk_init_array[i])();
- HYDU_ERR_POP(status, "RMK device returned error initializing\n");
- break;
- }
- }
-
- if (rmk_name_array[i] == NULL)
- HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,
- "unrecognized resource management kernel: %s\n", rmk);
-
- fn_exit:
- set_rmki_defaults();
- HYDU_FREE(rmk);
- HYDU_FUNC_EXIT();
- return status;
-
- fn_fail:
- goto fn_exit;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_native_int.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_native_int.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,25 +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 "rmki.h"
-
-HYD_status HYDT_rmki_query_native_int(int *ret)
-{
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- status = HYDT_rmki_fns.query_native_int(ret);
- HYDU_ERR_POP(status, "RMK device returned error while querying native integration\n");
-
- fn_exit:
- HYDU_FUNC_EXIT();
- return status;
-
- fn_fail:
- goto fn_exit;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_node_list.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/src/rmki_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,25 +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 "rmki.h"
-
-HYD_status HYDT_rmki_query_node_list(struct HYD_node **node_list)
-{
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- status = HYDT_rmki_fns.query_node_list(node_list);
- HYDU_ERR_POP(status, "RMK device returned error while querying node list\n");
-
- fn_exit:
- HYDU_FUNC_EXIT();
- return status;
-
- fn_fail:
- goto fn_exit;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/utils/Makefile.mk
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/utils/Makefile.mk 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/utils/Makefile.mk 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,10 +0,0 @@
-# -*- Mode: Makefile; -*-
-#
-# (C) 2008 by Argonne National Laboratory.
-# See COPYRIGHT in top-level directory.
-#
-
-AM_CPPFLAGS += -I$(top_srcdir)/tools/rmk/utils
-
-libhydra_la_SOURCES += $(top_srcdir)/tools/rmk/utils/rmku_query_node_list.c \
- $(top_srcdir)/tools/rmk/utils/rmku_query_native_int.c
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku.h 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku.h 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,15 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; -*- */
-/*
- * (C) 2008 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-
-#ifndef RMKU_H_INCLUDED
-#define RMKU_H_INCLUDED
-
-#include "hydra_base.h"
-
-HYD_status HYD_rmku_query_node_list(struct HYD_node **node_list);
-HYD_status HYD_rmku_query_native_int(int *ret);
-
-#endif /* RMKU_H_INCLUDED */
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_native_int.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_native_int.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_native_int.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,21 +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 "hydra_utils.h"
-#include "rmku.h"
-
-HYD_status HYD_rmku_query_native_int(int *ret)
-{
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- *ret = 0;
-
- HYDU_FUNC_EXIT();
- return status;
-}
Deleted: mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_node_list.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_node_list.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/tools/rmk/utils/rmku_query_node_list.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -1,22 +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 "hydra_utils.h"
-#include "rmku.h"
-
-HYD_status HYD_rmku_query_node_list(struct HYD_node **node_list)
-{
- HYD_status status = HYD_SUCCESS;
-
- HYDU_FUNC_ENTER();
-
- /* We don't know anything about nodes or resources */
- *node_list = NULL;
-
- HYDU_FUNC_EXIT();
- return status;
-}
Modified: mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/mpiexec.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -7,7 +7,6 @@
#include "hydra.h"
#include "hydra_utils.h"
#include "mpiexec.h"
-#include "rmki.h"
#include "pmci.h"
#include "bsci.h"
#include "hydt_ftb.h"
@@ -63,16 +62,16 @@
printf("Hydra specific options (treated as global):\n");
printf("\n");
- printf(" Bootstrap options:\n");
- printf(" -bootstrap bootstrap server to use (%s)\n",
- HYDRA_BSS_NAMES);
- printf(" -bootstrap-exec executable to use to bootstrap processes\n");
+ printf(" Launch options:\n");
+ printf(" -launcher launcher to use (%s)\n",
+ HYDRA_AVAILABLE_LAUNCHERS);
+ printf(" -launcher-exec executable to use to launch processes\n");
printf(" -enable-x/-disable-x enable or disable X forwarding\n");
printf("\n");
printf(" Resource management kernel options:\n");
printf(" -rmk resource management kernel to use (%s)\n",
- HYDRA_RMK_NAMES);
+ HYDRA_AVAILABLE_RMKS);
printf("\n");
printf(" Hybrid programming options:\n");
@@ -82,7 +81,7 @@
printf(" Process-core binding options:\n");
printf(" -binding process-to-core binding mode\n");
printf(" -bindlib process-to-core binding library (%s)\n",
- HYDRA_BINDLIB_NAMES);
+ HYDRA_AVAILABLE_BINDLIBS);
printf("\n");
printf(" Checkpoint/Restart options:\n");
@@ -90,11 +89,12 @@
printf(" -ckpoint-prefix checkpoint file prefix\n");
printf(" -ckpoint-num checkpoint number to restart\n");
printf(" -ckpointlib checkpointing library (%s)\n",
- !strcmp(HYDRA_CKPOINTLIB_NAMES, "") ? "none" : HYDRA_CKPOINTLIB_NAMES);
+ !strcmp(HYDRA_AVAILABLE_CKPOINTLIBS, "") ? "none" : HYDRA_AVAILABLE_CKPOINTLIBS);
printf("\n");
printf(" Demux engine options:\n");
- printf(" -demux demux engine (%s)\n", HYDRA_DEMUX_NAMES);
+ printf(" -demux demux engine (%s)\n",
+ HYDRA_AVAILABLE_DEMUXES);
printf("\n");
printf(" Other Hydra options:\n");
@@ -195,28 +195,19 @@
status = HYDT_dmx_init(&HYD_handle.user_global.demux);
HYDU_ERR_POP(status, "unable to initialize the demux engine\n");
- status = HYDT_rmki_init(HYD_handle.rmk);
- HYDU_ERR_POP(status, "unable to initialize RMK\n");
-
- status = HYDT_bsci_init(HYD_handle.user_global.bootstrap,
- HYD_handle.user_global.bootstrap_exec,
+ status = HYDT_bsci_init(HYD_handle.user_global.rmk, HYD_handle.user_global.launcher,
+ HYD_handle.user_global.launcher_exec,
HYD_handle.user_global.enablex, HYD_handle.user_global.debug);
HYDU_ERR_POP(status, "unable to initialize the bootstrap server\n");
if (HYD_handle.node_list == NULL) {
/* Node list is not created yet. The user might not have
* provided the host file. Query the RMK. */
- status = HYDT_rmki_query_node_list(&HYD_handle.node_list);
+ status = HYDT_bsci_query_node_list(&HYD_handle.node_list);
HYDU_ERR_POP(status, "unable to query the RMK for a node list\n");
if (HYD_handle.node_list == NULL) {
- /* didn't get anything from the RMK; try the bootstrap server */
- status = HYDT_bsci_query_node_list(&HYD_handle.node_list);
- HYDU_ERR_POP(status, "bootstrap returned error while querying node list\n");
- }
-
- if (HYD_handle.node_list == NULL) {
- /* The RMK and bootstrap didn't give us anything back; use localhost */
+ /* The RMK didn't give us anything back; use localhost */
status = HYDU_add_to_node_list("localhost", 1, &HYD_handle.node_list);
HYDU_ERR_POP(status, "unable to add to node list\n");
}
Modified: mpich2/trunk/src/pm/hydra/ui/mpich/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/mpich/utils.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/ui/mpich/utils.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -596,30 +596,30 @@
goto fn_exit;
}
-static void bootstrap_help_fn(void)
+static void launcher_help_fn(void)
{
printf("\n");
- printf("-bootstrap: Bootstrap server to use\n\n");
+ printf("-launcher: Launcher to use\n\n");
printf("Notes:\n");
printf(" * Use the -info option to see what all are compiled in\n\n");
}
-static HYD_status bootstrap_fn(char *arg, char ***argv)
+static HYD_status launcher_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.bootstrap);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.launcher);
}
-static void bootstrap_exec_help_fn(void)
+static void launcher_exec_help_fn(void)
{
printf("\n");
- printf("-bootstrap-exec: Bootstrap executable to use\n\n");
+ printf("-launcher-exec: Launcher executable to use\n\n");
printf("Notes:\n");
printf(" * This is needed only if Hydra cannot automatically find it\n\n");
}
-static HYD_status bootstrap_exec_fn(char *arg, char ***argv)
+static HYD_status launcher_exec_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.bootstrap_exec);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.launcher_exec);
}
static void enablex_help_fn(void)
@@ -644,7 +644,7 @@
static HYD_status rmk_fn(char *arg, char ***argv)
{
- return HYDU_set_str_and_incr(arg, argv, &HYD_handle.rmk);
+ return HYDU_set_str_and_incr(arg, argv, &HYD_handle.user_global.rmk);
}
static void ranks_per_proc_help_fn(void)
@@ -787,26 +787,29 @@
HYDU_dump_noprefix(stdout,
" Release Date: %s\n",
HYDRA_RELEASE_DATE);
- HYDU_dump_noprefix(stdout, " CC: %s\n", HYDRA_CC);
- HYDU_dump_noprefix(stdout, " CXX: %s\n", HYDRA_CXX);
- HYDU_dump_noprefix(stdout, " F77: %s\n", HYDRA_F77);
- HYDU_dump_noprefix(stdout, " F90: %s\n", HYDRA_F90);
+ HYDU_dump_noprefix(stdout, " CC: %s\n", HYDRA_CC);
+ HYDU_dump_noprefix(stdout, " CXX: %s\n", HYDRA_CXX);
+ HYDU_dump_noprefix(stdout, " F77: %s\n", HYDRA_F77);
+ HYDU_dump_noprefix(stdout, " F90: %s\n", HYDRA_F90);
HYDU_dump_noprefix(stdout,
" Configure options: %s\n",
HYDRA_CONFIGURE_ARGS_CLEAN);
HYDU_dump_noprefix(stdout, " Process Manager: pmi\n");
HYDU_dump_noprefix(stdout,
- " Bootstrap servers available: %s\n", HYDRA_BSS_NAMES);
+ " Launchers available: %s\n",
+ HYDRA_AVAILABLE_LAUNCHERS);
HYDU_dump_noprefix(stdout,
" Binding libraries available: %s\n",
- HYDRA_BINDLIB_NAMES);
+ HYDRA_AVAILABLE_BINDLIBS);
HYDU_dump_noprefix(stdout,
- " Resource management kernels available: %s\n", HYDRA_RMK_NAMES);
+ " Resource management kernels available: %s\n",
+ HYDRA_AVAILABLE_RMKS);
HYDU_dump_noprefix(stdout,
" Checkpointing libraries available: %s\n",
- HYDRA_CKPOINTLIB_NAMES);
+ HYDRA_AVAILABLE_CKPOINTLIBS);
HYDU_dump_noprefix(stdout,
- " Demux engines available: %s\n", HYDRA_DEMUX_NAMES);
+ " Demux engines available: %s\n",
+ HYDRA_AVAILABLE_DEMUXES);
HYDU_ERR_SETANDJUMP(status, HYD_GRACEFUL_ABORT, "");
@@ -910,9 +913,11 @@
/* Hydra specific options */
- /* Bootstrap options */
- {"bootstrap", bootstrap_fn, bootstrap_help_fn},
- {"bootstrap-exec", bootstrap_exec_fn, bootstrap_exec_help_fn},
+ /* Launcher options */
+ {"launcher", launcher_fn, launcher_help_fn},
+ {"launcher-exec", launcher_exec_fn, launcher_exec_help_fn},
+ {"bootstrap", launcher_fn, launcher_help_fn},
+ {"bootstrap-exec", launcher_exec_fn, launcher_exec_help_fn},
{"enable-x", enablex_fn, enablex_help_fn},
{"disable-x", enablex_fn, enablex_help_fn},
Modified: mpich2/trunk/src/pm/hydra/ui/utils/uiu.c
===================================================================
--- mpich2/trunk/src/pm/hydra/ui/utils/uiu.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/ui/utils/uiu.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -16,8 +16,6 @@
HYD_handle.base_path = NULL;
- HYD_handle.rmk = NULL;
-
HYD_handle.port_range = NULL;
HYD_handle.interface_env_name = NULL;
@@ -49,54 +47,17 @@
void HYD_uiu_free_params(void)
{
+ HYDU_finalize_user_global(&HYD_handle.user_global);
+
if (HYD_handle.base_path)
HYDU_FREE(HYD_handle.base_path);
- if (HYD_handle.rmk)
- HYDU_FREE(HYD_handle.rmk);
-
if (HYD_handle.port_range)
HYDU_FREE(HYD_handle.port_range);
if (HYD_handle.interface_env_name)
HYDU_FREE(HYD_handle.interface_env_name);
- if (HYD_handle.user_global.binding)
- HYDU_FREE(HYD_handle.user_global.binding);
-
- if (HYD_handle.user_global.bindlib)
- HYDU_FREE(HYD_handle.user_global.bindlib);
-
- if (HYD_handle.user_global.ckpointlib)
- HYDU_FREE(HYD_handle.user_global.ckpointlib);
-
- if (HYD_handle.user_global.ckpoint_prefix)
- HYDU_FREE(HYD_handle.user_global.ckpoint_prefix);
-
- if (HYD_handle.user_global.bootstrap)
- HYDU_FREE(HYD_handle.user_global.bootstrap);
-
- if (HYD_handle.user_global.demux)
- HYDU_FREE(HYD_handle.user_global.demux);
-
- if (HYD_handle.user_global.iface)
- HYDU_FREE(HYD_handle.user_global.iface);
-
- if (HYD_handle.user_global.bootstrap_exec)
- HYDU_FREE(HYD_handle.user_global.bootstrap_exec);
-
- if (HYD_handle.user_global.global_env.inherited)
- HYDU_env_free_list(HYD_handle.user_global.global_env.inherited);
-
- if (HYD_handle.user_global.global_env.system)
- HYDU_env_free_list(HYD_handle.user_global.global_env.system);
-
- if (HYD_handle.user_global.global_env.user)
- HYDU_env_free_list(HYD_handle.user_global.global_env.user);
-
- if (HYD_handle.user_global.global_env.prop)
- HYDU_FREE(HYD_handle.user_global.global_env.prop);
-
if (HYD_handle.node_list)
HYDU_free_node_list(HYD_handle.node_list);
@@ -126,7 +87,7 @@
HYDU_dump_noprefix(stdout, "mpiexec options:\n");
HYDU_dump_noprefix(stdout, "----------------\n");
HYDU_dump_noprefix(stdout, " Base path: %s\n", HYD_handle.base_path);
- HYDU_dump_noprefix(stdout, " Bootstrap server: %s\n", HYD_handle.user_global.bootstrap);
+ HYDU_dump_noprefix(stdout, " Launcher: %s\n", HYD_handle.user_global.launcher);
HYDU_dump_noprefix(stdout, " Debug level: %d\n", HYD_handle.user_global.debug);
HYDU_dump_noprefix(stdout, " Enable X: %d\n", HYD_handle.user_global.enablex);
Modified: mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c 2010-11-26 13:10:36 UTC (rev 7511)
+++ mpich2/trunk/src/pm/hydra/utils/alloc/alloc.c 2010-11-29 08:03:19 UTC (rev 7512)
@@ -8,8 +8,9 @@
void HYDU_init_user_global(struct HYD_user_global *user_global)
{
- user_global->bootstrap = NULL;
- user_global->bootstrap_exec = NULL;
+ user_global->rmk = NULL;
+ user_global->launcher = NULL;
+ user_global->launcher_exec = NULL;
user_global->binding = NULL;
user_global->bindlib = NULL;
@@ -30,6 +31,38 @@
HYDU_init_global_env(&user_global->global_env);
}
+void HYDU_finalize_user_global(struct HYD_user_global *user_global)
+{
+ if (user_global->rmk)
+ HYDU_FREE(user_global->rmk);
+
+ if (user_global->launcher)
+ HYDU_FREE(user_global->launcher);
+
+ if (user_global->launcher_exec)
+ HYDU_FREE(user_global->launcher_exec);
+
+ if (user_global->binding)
+ HYDU_FREE(user_global->binding);
+
+ if (user_global->bindlib)
+ HYDU_FREE(user_global->bindlib);
+
+ if (user_global->ckpointlib)
+ HYDU_FREE(user_global->ckpointlib);
+
+ if (user_global->ckpoint_prefix)
+ HYDU_FREE(user_global->ckpoint_prefix);
+
+ if (user_global->demux)
+ HYDU_FREE(user_global->demux);
+
+ if (user_global->iface)
+ HYDU_FREE(user_global->iface);
+
+ HYDU_finalize_global_env(&user_global->global_env);
+}
+
void HYDU_init_global_env(struct HYD_env_global *global_env)
{
global_env->system = NULL;
@@ -38,6 +71,21 @@
global_env->prop = NULL;
}
+void HYDU_finalize_global_env(struct HYD_env_global *global_env)
+{
+ if (global_env->system)
+ HYDU_env_free_list(global_env->system);
+
+ if (global_env->user)
+ HYDU_env_free_list(global_env->user);
+
+ if (global_env->inherited)
+ HYDU_env_free_list(global_env->inherited);
+
+ if (global_env->prop)
+ HYDU_FREE(global_env->prop);
+}
+
static void init_node(struct HYD_node *node)
{
node->hostname = NULL;
More information about the mpich2-commits
mailing list