A few changes to the FT-related configure options:
1. fix a bug that caused an infinite loop in configure when specifying want-ft but not want-ft-thread by removing a stale reference to the opal-progress-thread option 2. add want-ft=orcm so we can build the orcm errmgr component 3. cleanup the use of "ompi_want_ft_xxx" and replace it with "opal_want_ft_xxx" so that naming conventions are preserved This commit was SVN r22885.
Этот коммит содержится в:
родитель
3179daa5e0
Коммит
522a23d6a3
@ -19,7 +19,7 @@
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([MCA_crcp_bkmrk_CONFIG],[
|
||||
# If we don't want FT, don't compile this component
|
||||
AS_IF([test "$ompi_want_ft_cr" = "1"],
|
||||
AS_IF([test "$opal_want_ft_cr" = "1"],
|
||||
[$1],
|
||||
[$2])
|
||||
])dnl
|
||||
|
@ -19,7 +19,7 @@
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([MCA_pml_crcpw_CONFIG],[
|
||||
# If we don't want FT, don't compile this component
|
||||
AS_IF([test "$ompi_want_ft_cr" = "1"],
|
||||
AS_IF([test "$opal_want_ft_cr" = "1"],
|
||||
[$1],
|
||||
[$2])
|
||||
])dnl
|
||||
|
@ -228,44 +228,43 @@ AC_MSG_RESULT([$enable_opal_multi_threads])
|
||||
AC_MSG_CHECKING([if want fault tolerance thread])
|
||||
AC_ARG_ENABLE([ft_thread],
|
||||
[AC_HELP_STRING([--disable-ft-thread],
|
||||
[Disable fault tolerance thread running inside all processes. Requires progress and/or MPI threads (default: enabled)])],
|
||||
[Disable fault tolerance thread running inside all processes. Requires OPAL thread support (default: enabled)])],
|
||||
[enable_ft_thread="$enableval"],
|
||||
[enable_ft_thread="undef"])
|
||||
|
||||
# if they do not want FT support, then they do not want this thread either
|
||||
if test "$ompi_want_ft" = "0"; then
|
||||
ompi_want_ft_thread=0
|
||||
if test "$opal_want_ft" = "0"; then
|
||||
opal_want_ft_thread=0
|
||||
AC_MSG_RESULT([Disabled (fault tolerance disabled --without-ft)])
|
||||
# if --disable-ft-thread
|
||||
elif test "$enable_ft_thread" = "no"; then
|
||||
ompi_want_ft_thread=0
|
||||
opal_want_ft_thread=0
|
||||
AC_MSG_RESULT([Disabled])
|
||||
# if default, and no progress or MPI threads
|
||||
elif test "$enable_ft_thread" = "undef" -a "$enable_opal_progress_threads" = "no" -a "$enable_opal_multi_threads" = "no" ; then
|
||||
ompi_want_ft_thread=0
|
||||
elif test "$enable_ft_thread" = "undef" -a "$enable_opal_multi_threads" = "no" ; then
|
||||
opal_want_ft_thread=0
|
||||
AC_MSG_RESULT([Disabled (OPAL Thread Support Disabled)])
|
||||
# if default, and MPI threads enabled
|
||||
else
|
||||
# Default: Enable
|
||||
# Make sure we have OPAL Threads enabled
|
||||
if "$enable_opal_multi_threads" = "no"; then
|
||||
AC_MSG_RESULT([Must enable OPALbasic thread support to use this option])
|
||||
AC_MSG_RESULT([Must enable OPAL basic thread support to use this option])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
ompi_want_ft_thread=1
|
||||
opal_want_ft_thread=1
|
||||
AC_MSG_WARN([**************************************************])
|
||||
AC_MSG_WARN([*** Fault Tolerance with a thread in Open MPI *])
|
||||
AC_MSG_WARN([*** is an experimental, research quality option. *])
|
||||
AC_MSG_WARN([*** It requires OPAL thread support or progress *])
|
||||
AC_MSG_WARN([*** and care should be used when enabling these *])
|
||||
AC_MSG_WARN([*** options. *])
|
||||
AC_MSG_WARN([*** It requires OPAL thread support and care *])
|
||||
AC_MSG_WARN([*** should be used when enabling these options. *])
|
||||
AC_MSG_WARN([**************************************************])
|
||||
fi
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT_THREAD], [$ompi_want_ft_thread],
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT_THREAD], [$opal_want_ft_thread],
|
||||
[Enable fault tolerance thread in Open PAL])
|
||||
AM_CONDITIONAL(WANT_FT_THREAD, test "$ompi_want_ft_thread" = "1")
|
||||
AM_CONDITIONAL(WANT_FT_THREAD, test "$opal_want_ft_thread" = "1")
|
||||
|
||||
])dnl
|
||||
|
||||
|
@ -346,6 +346,7 @@ fi
|
||||
# TYPE:
|
||||
# - LAM (synonym for 'cr' currently)
|
||||
# - cr
|
||||
# - orcm
|
||||
# /* General FT sections */
|
||||
# #if OPAL_ENABLE_FT == 0 /* FT Disabled globaly */
|
||||
# #if OPAL_ENABLE_FT == 1 /* FT Enabled globaly */
|
||||
@ -356,17 +357,17 @@ fi
|
||||
AC_MSG_CHECKING([if want fault tolerance])
|
||||
AC_ARG_WITH(ft,
|
||||
[AC_HELP_STRING([--with-ft=TYPE],
|
||||
[Specify the type of fault tolerance to enable. Options: LAM (LAM/MPI-like), cr (Checkpoint/Restart) (default: disabled)])],
|
||||
[ompi_want_ft=1],
|
||||
[ompi_want_ft=0])
|
||||
if test "$with_ft" = "no" -o "$ompi_want_ft" = "0"; then
|
||||
ompi_want_ft=0
|
||||
ompi_want_ft_cr=0
|
||||
[Specify the type of fault tolerance to enable. Options: LAM (LAM/MPI-like), cr (Checkpoint/Restart), orcm (OpenRCM) (default: disabled)])],
|
||||
[opal_want_ft=1],
|
||||
[opal_want_ft=0])
|
||||
if test "$with_ft" = "no" -o "$opal_want_ft" = "0"; then
|
||||
opal_want_ft=0
|
||||
opal_want_ft_cr=0
|
||||
AC_MSG_RESULT([Disabled fault tolerance])
|
||||
else
|
||||
ompi_want_ft=1
|
||||
ompi_want_ft_cr=0
|
||||
ompi_want_ft_type=none
|
||||
opal_want_ft=1
|
||||
opal_want_ft_cr=0
|
||||
opal_want_ft_type=none
|
||||
|
||||
as_save_IFS=$IFS
|
||||
IFS=","
|
||||
@ -375,36 +376,42 @@ else
|
||||
|
||||
# Default value
|
||||
if test "$opt" = "" -o "$opt" = "yes"; then
|
||||
ompi_want_ft_cr=1
|
||||
opal_want_ft_cr=1
|
||||
elif test "$opt" = "LAM"; then
|
||||
ompi_want_ft_cr=1
|
||||
opal_want_ft_cr=1
|
||||
elif test "$opt" = "lam"; then
|
||||
ompi_want_ft_cr=1
|
||||
opal_want_ft_cr=1
|
||||
elif test "$opt" = "CR"; then
|
||||
ompi_want_ft_cr=1
|
||||
opal_want_ft_cr=1
|
||||
elif test "$opt" = "cr"; then
|
||||
ompi_want_ft_cr=1
|
||||
opal_want_ft_cr=1
|
||||
elif test "$opt" = "orcm"; then
|
||||
opal_want_ft_orcm=1
|
||||
elif test "$opt" = "ORCM"; then
|
||||
opal_want_ft_orcm=1
|
||||
else
|
||||
AC_MSG_RESULT([Unrecognized FT TYPE: $opt])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
done
|
||||
if test "$ompi_want_ft_cr" = 1; then
|
||||
ompi_want_ft_type="cr"
|
||||
if test "$opal_want_ft_cr" = 1; then
|
||||
opal_want_ft_type="cr"
|
||||
elif test "$opal_want_ft_orcm" = 1; then
|
||||
opal_want_ft_type="orcm"
|
||||
fi
|
||||
|
||||
AC_MSG_RESULT([Enabled $ompi_want_ft_type (Specified $with_ft)])
|
||||
AC_MSG_RESULT([Enabled $opal_want_ft_type (Specified $with_ft)])
|
||||
AC_MSG_WARN([**************************************************])
|
||||
AC_MSG_WARN([*** Fault Tolerance Integration into Open MPI is *])
|
||||
AC_MSG_WARN([*** a research quality implementation, and care *])
|
||||
AC_MSG_WARN([*** should be used when choosing to enable it. *])
|
||||
AC_MSG_WARN([**************************************************])
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT], [$ompi_want_ft],
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT], [$opal_want_ft],
|
||||
[Enable fault tolerance general components and logic])
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT_CR], [$ompi_want_ft_cr],
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT_CR], [$opal_want_ft_cr],
|
||||
[Enable fault tolerance checkpoint/restart components and logic])
|
||||
AM_CONDITIONAL(WANT_FT, test "$ompi_want_ft" = "1")
|
||||
AM_CONDITIONAL(WANT_FT, test "$opal_want_ft" = "1")
|
||||
|
||||
#
|
||||
# Do we want to install binaries?
|
||||
|
@ -12,8 +12,8 @@
|
||||
# MCA_errmgr_orcm_CONFIG([action-if-found], [action-if-not-found])
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([MCA_errmgr_orcm_CONFIG],[
|
||||
# If we don't want FT, don't compile this component
|
||||
AS_IF([test "$ompi_want_ft" = "1"],
|
||||
# If we don't want orcm FT, don't compile this component
|
||||
AS_IF([test "$opal_want_ft_orcm" = "1"],
|
||||
[$1],
|
||||
[$2])
|
||||
])dnl
|
||||
|
@ -75,24 +75,11 @@ static int errmgr_orcm_close(void)
|
||||
|
||||
static int errmgr_orcm_component_query(mca_base_module_t **module, int *priority)
|
||||
{
|
||||
/*
|
||||
* This component is selected only when requested - and if so, then
|
||||
* it MUST be used exclusively
|
||||
/* if we built, then we should probably be the
|
||||
* default module
|
||||
*/
|
||||
bool is_required = false;
|
||||
|
||||
mca_base_is_component_required(&orte_errmgr_base_components_available,
|
||||
&mca_errmgr_orcm_component.base_version,
|
||||
true,
|
||||
&is_required);
|
||||
|
||||
if( !is_required ) {
|
||||
*priority = 0;
|
||||
*module = NULL;
|
||||
return ORTE_ERROR;
|
||||
}
|
||||
|
||||
*priority = 1000;
|
||||
*priority = 100;
|
||||
*module = (mca_base_module_t *)&orte_errmgr_orcm_module;
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user