Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions config/ompi_setup_prrte.m4
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#

AC_DEFUN([OMPI_SETUP_PRRTE],[
OPAL_VAR_SCOPE_PUSH([opal_prrte_save_CPPFLAGS opal_prrte_save_CFLAGS opal_prrte_save_LDFLAGS opal_prrte_save_LIBS opal_prrte_args opal_prrte_save_enable_dlopen opal_prrte_save_enable_mca_dso opal_prrte_save_enable_mca_static])
OPAL_VAR_SCOPE_PUSH([opal_prrte_save_CPPFLAGS opal_prrte_save_CFLAGS opal_prrte_save_LDFLAGS opal_prrte_save_LIBS opal_prrte_args opal_prrte_save_enable_dlopen opal_prrte_save_enable_mca_dso opal_prrte_save_enable_mca_static opal_prrte_extra_libs opal_prrte_extra_ltlibs opal_prrte_extra_ldflags])

opal_prrte_save_CFLAGS=$CFLAGS
opal_prrte_save_CPPFLAGS=$CPPFLAGS
Expand Down Expand Up @@ -59,29 +59,29 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
if test "$enable_internal_rte" != "no"; then
AC_MSG_RESULT([yes])
ompi_want_prrte=yes
if test -z $with_libevent || test "$with_libevent" = "internal" || test "$with_libevent" = "yes"; then
opal_prrte_libevent_arg="--with-libevent-header=$OMPI_TOP_SRCDIR/opal/mca/event/event.h"
elif test "$with_libevent" = "external"; then
opal_prrte_libevent_arg=""
else
opal_prrte_libevent_arg="--with-libevent=$with_libevent"
opal_prrte_extra_libs=$OMPI_TOP_BUILDDIR/opal/libopen-pal.la
opal_prrte_extra_ltlibs=$OMPI_TOP_BUILDDIR/opal/libopen-pal.la

if test "$opal_event_external_support" = "yes"; then
opal_prrte_extra_libs="$opal_prrte_extra_libs $opal_event_external_LIBS"
opal_prrte_extra_ltlibs="$opal_prrte_extra_ltlibs $opal_event_external_LIBS"
fi
# specifying --with-libevent-header causes prrte to ignore the with_libevent and with_libevent_libdir options
opal_prrte_libevent_arg="--with-libevent-header=$OMPI_TOP_SRCDIR/opal/mca/event/event.h"

if test -z $with_hwloc || test "$with_hwloc" = "internal" || test "$with_hwloc" = "yes"; then
opal_prrte_hwloc_arg="--with-hwloc-header=$OMPI_TOP_SRCDIR/opal/mca/hwloc/hwloc-internal.h"
elif test "$with_hwloc" = "external"; then
opal_prrte_hwloc_arg=""
else
opal_prrte_hwloc_arg="--with-hwloc=$with_hwloc"
if test "$opal_hwloc_external_support" = "yes"; then
opal_prrte_extra_libs="$opal_prrte_extra_libs $opal_hwloc_external_LIBS"
opal_prrte_extra_ltlibs="$opal_prrte_extra_ltlibs $opal_hwloc_external_LIBS"
fi
# specifying --with-hwloc-header causes prrte to ignore the with_hwloc and with_hwloc_libdir options
opal_prrte_hwloc_arg="--with-hwloc-header=$OMPI_TOP_SRCDIR/opal/mca/hwloc/hwloc-internal.h"

if test -z $with_pmix || test "$with_pmix" = "internal" || test "$with_pmix" = "yes"; then
opal_prrte_pmix_arg="--with-pmix-header=$OMPI_TOP_SRCDIR/opal/mca/pmix/pmix-internal.h"
elif test "$with_pmix" = "external"; then
opal_prrte_pmix_arg=""
else
opal_prrte_pmix_arg="--with-pmix=$with_pmix"
if test "$opal_external_pmix_happy" = "yes"; then
opal_prrte_extra_libs="$opal_prrte_extra_libs $opal_pmix_external_LIBS"
opal_prrte_extra_ltlibs="$opal_prrte_extra_ltlibs $opal_pmix_external_LIBS"
fi
# specifying --with-pmix-header causes prrte to ignore the with_pmix and with_pmix_libdir options
opal_prrte_pmix_arg="--with-pmix-header=$OMPI_TOP_SRCDIR/opal/mca/pmix/pmix-internal.h"

if test -z $enable_prte_prefix_by_default || test "$enable_prte_prefix_by_default" = "yes" ||
test "$enable_orterun_prefix_given" = "yes"; then
Expand All @@ -102,7 +102,7 @@ AC_DEFUN([OMPI_SETUP_PRRTE],[
opal_prrte_args="$opal_prrte_args --with-platform=$with_prrte_platform"
fi
# add the extra libs
opal_prrte_args="$opal_prrte_args --with-prrte-extra-lib=$OMPI_TOP_BUILDDIR/opal/libopen-pal.la --with-prrte-extra-ltlib=$OMPI_TOP_BUILDDIR/opal/libopen-pal.la"
opal_prrte_args="$opal_prrte_args --with-prrte-extra-lib=\"$opal_prrte_extra_libs\" --with-prrte-extra-ltlib=\"$opal_prrte_extra_ltlibs\""

AC_MSG_CHECKING([final prrte configure args])
AC_MSG_RESULT([$opal_prrte_args])
Expand Down
76 changes: 49 additions & 27 deletions opal/mca/pmix/base/pmix_base_fns.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,48 +110,70 @@ int opal_pmix_convert_jobid(pmix_nspace_t nspace, opal_jobid_t jobid)
/* zero out the nspace */
PMIX_LOAD_NSPACE(nspace, NULL);

if (opal_process_info.nativelaunch) {
opal_snprintf_jobid(nspace, PMIX_MAX_NSLEN, jobid);
return OPAL_SUCCESS;
} else {
/* cycle across our list of known jobids */
OPAL_LIST_FOREACH(nptr, &localnspaces, opal_nptr_t) {
if (jobid == nptr->jobid) {
PMIX_LOAD_NSPACE(nspace, nptr->nspace);
return OPAL_SUCCESS;
}
/* cycle across our list of known jobids */
OPAL_LIST_FOREACH(nptr, &localnspaces, opal_nptr_t) {
if (jobid == nptr->jobid) {
PMIX_LOAD_NSPACE(nspace, nptr->nspace);
return OPAL_SUCCESS;
}
}

return OPAL_ERR_NOT_FOUND;
}

int opal_pmix_convert_nspace(opal_jobid_t *jobid, pmix_nspace_t nspace)
{
opal_nptr_t *nptr;
opal_jobid_t jid;
uint16_t jobfam;
uint32_t hash32, localjob = 0;
char *p = NULL;

/* set a default */
*jobid = OPAL_JOBID_INVALID;

if (opal_process_info.nativelaunch) {
return opal_convert_string_to_jobid(jobid, nspace);
} else {
/* cycle across our list of known jobids */
OPAL_LIST_FOREACH(nptr, &localnspaces, opal_nptr_t) {
if (PMIX_CHECK_NSPACE(nspace, nptr->nspace)) {
*jobid = nptr->jobid;
return OPAL_SUCCESS;
}
/* if the nspace is empty, there is nothing more to do */
if (0 == strlen(nspace)) {
return OPAL_SUCCESS;
}
if (NULL != strstr(nspace, "JOBID_WILDCARD")) {
*jobid = OPAL_JOBID_WILDCARD;
return OPAL_SUCCESS;
}
if (NULL != strstr(nspace, "JOBID_INVALID")) {
*jobid = OPAL_JOBID_INVALID;
return OPAL_SUCCESS;
}

/* cycle across our list of known jobids */
OPAL_LIST_FOREACH(nptr, &localnspaces, opal_nptr_t) {
if (PMIX_CHECK_NSPACE(nspace, nptr->nspace)) {
*jobid = nptr->jobid;
return OPAL_SUCCESS;
}
/* if we get here, we don't know this nspace */
OPAL_HASH_STR(nspace, jid);
jid &= ~(0x8000);
*jobid = jid;
nptr = OBJ_NEW(opal_nptr_t);
nptr->jobid = jid;
PMIX_LOAD_NSPACE(nptr->nspace, nspace);
opal_list_append(&localnspaces, &nptr->super);
}
/* if we get here, we don't know this nspace */
/* find the "." at the end that indicates the child job */
if (NULL != (p = strrchr(nspace, '.'))) {
*p = '\0';
}
OPAL_HASH_STR(nspace, hash32);
if (NULL != p) {
*p = '.';
++p;
localjob = strtoul(p, NULL, 10);
}

/* now compress to 16-bits */
jobfam = (uint16_t)(((0x0000ffff & (0xffff0000 & hash32) >> 16)) ^ (0x0000ffff & hash32));
jid = (0xffff0000 & ((uint32_t)jobfam << 16)) | (0x0000ffff & localjob);
*jobid = jid;
/* save this jobid/nspace pair */
nptr = OBJ_NEW(opal_nptr_t);
nptr->jobid = jid;
PMIX_LOAD_NSPACE(nptr->nspace, nspace);
opal_list_append(&localnspaces, &nptr->super);

return OPAL_SUCCESS;
}

Expand Down
6 changes: 6 additions & 0 deletions opal/mca/pmix/pmix-internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -595,9 +595,11 @@ OPAL_DECLSPEC int opal_pmix_convert_nspace(opal_jobid_t *jobid, pmix_nspace_t ns
OPAL_DECLSPEC void opal_pmix_setup_nspace_tracker(void);
OPAL_DECLSPEC void opal_pmix_finalize_nspace_tracker(void);

/* convert jobid to nspace */
#define OPAL_PMIX_CONVERT_JOBID(n, j) \
opal_pmix_convert_jobid((n), (j))

/* convert vpid to rank */
#define OPAL_PMIX_CONVERT_VPID(r, v) \
do { \
if (OPAL_VPID_WILDCARD == (v)) { \
Expand All @@ -607,16 +609,19 @@ OPAL_DECLSPEC void opal_pmix_finalize_nspace_tracker(void);
} \
} while(0)

/* convert opal_process_name_t to pmix_proc_t */
#define OPAL_PMIX_CONVERT_NAME(p, n) \
do { \
OPAL_PMIX_CONVERT_JOBID((p)->nspace, (n)->jobid); \
OPAL_PMIX_CONVERT_VPID((p)->rank, (n)->vpid); \
} while(0)


/* convert nspace to jobid */
#define OPAL_PMIX_CONVERT_NSPACE(r, j, n) \
(r) = opal_pmix_convert_nspace((j), (n))

/* convert pmix rank to opal vpid */
#define OPAL_PMIX_CONVERT_RANK(v, r) \
do { \
if (PMIX_RANK_WILDCARD == (r)) { \
Expand All @@ -628,6 +633,7 @@ OPAL_DECLSPEC void opal_pmix_finalize_nspace_tracker(void);
} \
} while(0)

/* convert pmix_proc_t to opal_process_name_t */
#define OPAL_PMIX_CONVERT_PROCT(r, n, p) \
do { \
OPAL_PMIX_CONVERT_NSPACE((r), &(n)->jobid, (p)->nspace); \
Expand Down
2 changes: 1 addition & 1 deletion prrte
Submodule prrte updated 38 files
+7 −3 src/mca/base/prrte_mca_base_close.c
+8 −2 src/mca/base/prrte_mca_base_component_repository.c
+23 −18 src/mca/base/prrte_mca_base_open.c
+1 −1 src/mca/ess/base/ess_base_std_prted.c
+2 −6 src/mca/ess/hnp/ess_hnp_module.c
+1 −5 src/mca/oob/base/oob_base_stubs.c
+43 −27 src/mca/plm/base/plm_base_jobid.c
+19 −7 src/mca/plm/base/plm_base_launch_support.c
+20 −19 src/mca/plm/base/plm_base_receive.c
+1 −0 src/mca/plm/rsh/plm_rsh_module.c
+10 −0 src/mca/rmaps/base/rmaps_base_frame.c
+37 −31 src/mca/rmaps/rank_file/rmaps_rank_file.c
+2 −2 src/mca/rml/oob/rml_oob_send.c
+11 −0 src/mca/schizo/base/help-schizo-base.txt
+78 −35 src/mca/schizo/base/schizo_base_frame.c
+16 −12 src/mca/schizo/base/schizo_base_stubs.c
+453 −143 src/mca/schizo/ompi/schizo_ompi.c
+11 −1 src/mca/schizo/pmix/schizo_pmix.c
+11 −1 src/mca/schizo/prrte/schizo_prrte.c
+8 −0 src/mca/state/base/state_base_fns.c
+15 −0 src/mca/state/dvm/state_dvm.c
+6 −0 src/pmix/pmix-internal.h
+19 −3 src/pmix/pmix.c
+1 −1 src/prted/pmix/pmix_server_dyn.c
+22 −1 src/prted/pmix/pmix_server_gen.c
+7 −5 src/runtime/prrte_finalize.c
+5 −2 src/runtime/prrte_init.c
+2 −1 src/runtime/prrte_quit.c
+2 −2 src/runtime/runtime.h
+15 −15 src/threads/mutex_unix.h
+1 −1 src/tools/pcc/pcc.c
+58 −38 src/tools/prte/prte.c
+2 −2 src/tools/prte_info/prte_info.c
+36 −16 src/tools/prted/prted.c
+21 −19 src/tools/prun/prun.c
+1 −1 src/tools/pterm/pterm.c
+10 −46 src/util/name_fns.c
+9 −9 src/util/show_help.c