Skip to content

Commit af67f16

Browse files
author
Ralph Castain
committed
Update configury to support multiple PMIx versions, rename pmix2x component to pmix3x for support of PMIx master
Update support for external v1.1.x and v2.x libraries. Minor corrections to the v3.x component
1 parent 277c319 commit af67f16

File tree

322 files changed

+6684
-1241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

322 files changed

+6684
-1241
lines changed

.gitignore

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,11 +307,11 @@ opal/mca/pmix/pmix*/pmix/src/include/private/autogen/config.h.in
307307
opal/mca/pmix/pmix*/pmix/src/include/private/autogen/config.h
308308
opal/mca/hwloc/base/static-components.h.new.extern
309309
opal/mca/hwloc/base/static-components.h.new.struct
310-
opal/mca/pmix/pmix2x/pmix/src/include/frameworks.h
311-
opal/mca/pmix/pmix2x/pmix/src/mca/pinstalldirs/config/pinstall_dirs.h
312-
opal/mca/pmix/pmix2x/pmix/config/autogen_found_items.m4
313-
opal/mca/pmix/pmix2x/pmix/src/include/pmix_config.h
314-
opal/mca/pmix/pmix2x/pmix/src/include/pmix_config.h.in
310+
opal/mca/pmix/pmix3x/pmix/src/include/frameworks.h
311+
opal/mca/pmix/pmix3x/pmix/src/mca/pinstalldirs/config/pinstall_dirs.h
312+
opal/mca/pmix/pmix3x/pmix/config/autogen_found_items.m4
313+
opal/mca/pmix/pmix3x/pmix/src/include/pmix_config.h
314+
opal/mca/pmix/pmix3x/pmix/src/include/pmix_config.h.in
315315

316316
opal/tools/opal-checkpoint/opal-checkpoint
317317
opal/tools/opal-checkpoint/opal-checkpoint.1

config/opal_check_pmi.m4

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,13 +259,63 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
259259
opal_external_pmix_save_LDFLAGS=$LDFLAGS
260260
opal_external_pmix_save_LIBS=$LIBS
261261
262-
LDFLAGS="-L$pmix_ext_install_dir/lib $LDFLAGS"
263-
AC_SEARCH_LIBS([PMIx_Register_event_handler], [pmix],
264-
[opal_external_pmix_version=2],
265-
[opal_external_pmix_version=1])
266-
262+
# if the pmix_version.h file does not exist, then
263+
# this must be from a pre-1.1.5 version
267264
AC_MSG_CHECKING([PMIx version])
268-
AC_MSG_RESULT([$opal_external_pmix_version])
265+
CPPFLAGS="-I$pmix_ext_install_dir/include $CPPFLAGS"
266+
AS_IF([test "x`ls $pmix_ext_install_dir/include/pmix_version.h 2> /dev/null`" = "x"],
267+
[AC_MSG_RESULT([version file not found - assuming v1.1.4])
268+
opal_external_pmix_version_found=1
269+
opal_external_pmix_version=114],
270+
[AC_MSG_RESULT([version file found])
271+
opal_external_pmix_version_found=0])
272+
273+
# if it does exist, then we need to parse it to find
274+
# the actual release series
275+
AS_IF([test "$opal_external_pmix_version_found" = "0"],
276+
[AC_MSG_CHECKING([version 3x])
277+
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
278+
#include <pmix_version.h>
279+
#if (PMIX_VERSION_MAJOR != 3L)
280+
#error "not version 3"
281+
#endif
282+
], [])],
283+
[AC_MSG_RESULT([found])
284+
opal_external_pmix_version=3X
285+
opal_external_pmix_version_found=1],
286+
[AC_MSG_RESULT([not found])])])
287+
288+
AS_IF([test "$opal_external_pmix_version_found" = "0"],
289+
[AC_MSG_CHECKING([version 2x])
290+
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
291+
#include <pmix_version.h>
292+
#if (PMIX_VERSION_MAJOR != 2L)
293+
#error "not version 2"
294+
#endif
295+
], [])],
296+
[AC_MSG_RESULT([found])
297+
opal_external_pmix_version=2X
298+
opal_external_pmix_version_found=1],
299+
[AC_MSG_RESULT([not found])])])
300+
301+
AS_IF([test "$opal_external_pmix_version_found" = "0"],
302+
[AC_MSG_CHECKING([version 1x])
303+
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
304+
#include <pmix_version.h>
305+
#if (PMIX_VERSION_MAJOR != 1L)
306+
#error "not version 1"
307+
#endif
308+
], [])],
309+
[AC_MSG_RESULT([found])
310+
opal_external_pmix_version=1X
311+
opal_external_pmix_version_found=1],
312+
[AC_MSG_RESULT([not found])])])
313+
314+
AS_IF([test "x$opal_external_pmix_version" = "x"],
315+
[AC_MSG_WARN([External PMIx support requested, but version])
316+
AC_MSG_WARN([information of the external lib could not])
317+
AC_MSG_WARN([be detected])
318+
AC_MSG_ERROR([cannot continue])])
269319
270320
CPPFLAGS=$opal_external_pmix_save_CPPFLAGS
271321
LDFLAGS=$opal_external_pmix_save_LDFLAGS

configure.ac

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ m4_ifdef([project_oshmem],
250250
OPAL_CONFIGURE_OPTIONS
251251
OPAL_CHECK_OS_FLAVORS
252252
OPAL_CHECK_CUDA
253+
OPAL_CHECK_PMIX
253254
m4_ifdef([project_orte], [ORTE_CONFIGURE_OPTIONS])
254255
m4_ifdef([project_ompi], [OMPI_CONFIGURE_OPTIONS])
255256
m4_ifdef([project_oshmem], [OSHMEM_CONFIGURE_OPTIONS])

opal/mca/pmix/ext114/Makefile.am renamed to opal/mca/pmix/ext11/Makefile.am

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,25 @@ sources = \
2222
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
2323
# (for static builds).
2424

25-
if MCA_BUILD_opal_pmix_ext114_DSO
25+
if MCA_BUILD_opal_pmix_ext11_DSO
2626
component_noinst =
27-
component_install = mca_pmix_ext114.la
27+
component_install = mca_pmix_ext11.la
2828
else
29-
component_noinst = libmca_pmix_ext114.la
29+
component_noinst = libmca_pmix_ext11.la
3030
component_install =
3131
endif
3232

3333
mcacomponentdir = $(opallibdir)
3434
mcacomponent_LTLIBRARIES = $(component_install)
35-
mca_pmix_ext114_la_SOURCES = $(sources)
36-
mca_pmix_ext114_la_CFLAGS =
37-
mca_pmix_ext114_la_CPPFLAGS = $(opal_pmix_ext114_CPPFLAGS)
38-
mca_pmix_ext114_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext114_LDFLAGS)
39-
mca_pmix_ext114_la_LIBADD = $(opal_pmix_ext114_LIBS)
35+
mca_pmix_ext11_la_SOURCES = $(sources)
36+
mca_pmix_ext11_la_CFLAGS =
37+
mca_pmix_ext11_la_CPPFLAGS = $(opal_pmix_ext11_CPPFLAGS)
38+
mca_pmix_ext11_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext11_LDFLAGS)
39+
mca_pmix_ext11_la_LIBADD = $(opal_pmix_ext11_LIBS)
4040

4141
noinst_LTLIBRARIES = $(component_noinst)
42-
libmca_pmix_ext114_la_SOURCES =$(sources)
43-
libmca_pmix_ext114_la_CFLAGS =
44-
libmca_pmix_ext114_la_CPPFLAGS = $(opal_pmix_ext114_CPPFLAGS)
45-
libmca_pmix_ext114_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext114_LDFLAGS)
46-
libmca_pmix_ext114_la_LIBADD = $(opal_pmix_ext114_LIBS)
42+
libmca_pmix_ext11_la_SOURCES =$(sources)
43+
libmca_pmix_ext11_la_CFLAGS =
44+
libmca_pmix_ext11_la_CPPFLAGS = $(opal_pmix_ext11_CPPFLAGS)
45+
libmca_pmix_ext11_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext11_LDFLAGS)
46+
libmca_pmix_ext11_la_LIBADD = $(opal_pmix_ext11_LIBS)

opal/mca/pmix/ext114/configure.m4 renamed to opal/mca/pmix/ext11/configure.m4

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@
2525
# $HEADER$
2626
#
2727

28-
# MCA_pmix_ext114_CONFIG([action-if-found], [action-if-not-found])
28+
# MCA_pmix_ext11_CONFIG([action-if-found], [action-if-not-found])
2929
# -----------------------------------------------------------
30-
AC_DEFUN([MCA_opal_pmix_ext114_CONFIG],[
31-
AC_CONFIG_FILES([opal/mca/pmix/ext114/Makefile])
32-
33-
AC_REQUIRE([OPAL_CHECK_PMIX])
30+
AC_DEFUN([MCA_opal_pmix_ext11_CONFIG],[
31+
AC_CONFIG_FILES([opal/mca/pmix/ext11/Makefile])
3432

3533
AS_IF([test "$opal_external_pmix_happy" = "yes"],
3634
[AS_IF([test "$opal_event_external_support" != "yes"],
@@ -45,27 +43,28 @@ AC_DEFUN([MCA_opal_pmix_ext114_CONFIG],[
4543
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
4644

4745
# check for the 1.1.4 version
48-
AC_MSG_CHECKING([if external component is version 1.x])
49-
AS_IF([test "$opal_external_pmix_version" = "1"],
46+
AC_MSG_CHECKING([if external component is version 1.1.4])
47+
AS_IF([test "$opal_external_pmix_version" = "11" ||
48+
test "$opal_external_pmix_version" = "1X"],
5049
[AC_MSG_RESULT([yes])
51-
opal_pmix_external_114_happy=yes],
50+
opal_pmix_external_11_happy=yes],
5251
[AC_MSG_RESULT([no])
53-
opal_pmix_external_114_happy=no])
52+
opal_pmix_external_11_happy=no])
5453

55-
AS_IF([test "$opal_pmix_external_114_happy" = "yes"],
54+
AS_IF([test "$opal_pmix_external_11_happy" = "yes"],
5655
[$1
5756
# need to set the wrapper flags for static builds
58-
pmix_ext114_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS
59-
pmix_ext114_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS],
57+
pmix_ext11_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS
58+
pmix_ext11_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS],
6059
[$2])],
6160
[$2])
6261

63-
opal_pmix_ext114_CPPFLAGS=$opal_external_pmix_CPPFLAGS
64-
opal_pmix_ext114_LDFLAGS=$opal_external_pmix_LDFLAGS
65-
opal_pmix_ext114_LIBS=$opal_external_pmix_LIBS
62+
opal_pmix_ext11_CPPFLAGS=$opal_external_pmix_CPPFLAGS
63+
opal_pmix_ext11_LDFLAGS=$opal_external_pmix_LDFLAGS
64+
opal_pmix_ext11_LIBS=$opal_external_pmix_LIBS
6665

67-
AC_SUBST([opal_pmix_ext114_CPPFLAGS])
68-
AC_SUBST([opal_pmix_ext114_LDFLAGS])
69-
AC_SUBST([opal_pmix_ext114_LIBS])
66+
AC_SUBST([opal_pmix_ext11_CPPFLAGS])
67+
AC_SUBST([opal_pmix_ext11_LDFLAGS])
68+
AC_SUBST([opal_pmix_ext11_LIBS])
7069

7170
])dnl

opal/mca/pmix/ext114/pmix_ext.c renamed to opal/mca/pmix/ext11/pmix_ext.c

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
static const char *pmix1_get_nspace(opal_jobid_t jobid);
5050
static void pmix1_register_jobid(opal_jobid_t jobid, const char *nspace);
5151

52-
const opal_pmix_base_module_t opal_pmix_ext114_module = {
52+
const opal_pmix_base_module_t opal_pmix_ext11_module = {
5353
/* client APIs */
5454
.init = pmix1_client_init,
5555
.finalize = pmix1_client_finalize,
@@ -100,7 +100,7 @@ static const char *pmix1_get_nspace(opal_jobid_t jobid)
100100
{
101101
opal_pmix1_jobid_trkr_t *jptr;
102102

103-
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext114_component.jobids, opal_pmix1_jobid_trkr_t) {
103+
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext11_component.jobids, opal_pmix1_jobid_trkr_t) {
104104
if (jptr->jobid == jobid) {
105105
return jptr->nspace;
106106
}
@@ -113,15 +113,15 @@ static void pmix1_register_jobid(opal_jobid_t jobid, const char *nspace)
113113
opal_pmix1_jobid_trkr_t *jptr;
114114

115115
/* if we don't already have it, add this to our jobid tracker */
116-
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext114_component.jobids, opal_pmix1_jobid_trkr_t) {
116+
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext11_component.jobids, opal_pmix1_jobid_trkr_t) {
117117
if (jptr->jobid == jobid) {
118118
return;
119119
}
120120
}
121121
jptr = OBJ_NEW(opal_pmix1_jobid_trkr_t);
122122
(void)strncpy(jptr->nspace, nspace, PMIX_MAX_NSLEN);
123123
jptr->jobid = jobid;
124-
opal_list_append(&mca_pmix_ext114_component.jobids, &jptr->super);
124+
opal_list_append(&mca_pmix_ext11_component.jobids, &jptr->super);
125125
}
126126

127127
pmix_status_t pmix1_convert_opalrc(int rc)
@@ -287,10 +287,12 @@ pmix_scope_t pmix1_convert_opalscope(opal_pmix_scope_t scope) {
287287
void pmix1_value_load(pmix_value_t *v,
288288
opal_value_t *kv)
289289
{
290+
int ival;
291+
unsigned int ui;
292+
290293
switch(kv->type) {
291294
case OPAL_UNDEF:
292295
v->type = PMIX_UNDEF;
293-
opal_output(0, "TYPE WAS UNDEF");
294296
break;
295297
case OPAL_BOOL:
296298
v->type = PMIX_BOOL;
@@ -317,6 +319,7 @@ void pmix1_value_load(pmix_value_t *v,
317319
memcpy(&(v->data.pid), &kv->data.pid, sizeof(pid_t));
318320
break;
319321
case OPAL_INT:
322+
case OPAL_STATUS:
320323
v->type = PMIX_INT;
321324
memcpy(&(v->data.integer), &kv->data.integer, sizeof(int));
322325
break;
@@ -341,6 +344,7 @@ void pmix1_value_load(pmix_value_t *v,
341344
memcpy(&(v->data.uint), &kv->data.uint, sizeof(int));
342345
break;
343346
case OPAL_UINT8:
347+
case OPAL_PROC_STATE:
344348
v->type = PMIX_UINT8;
345349
memcpy(&(v->data.uint8), &kv->data.uint8, 1);
346350
break;
@@ -349,6 +353,7 @@ void pmix1_value_load(pmix_value_t *v,
349353
memcpy(&(v->data.uint16), &kv->data.uint16, 2);
350354
break;
351355
case OPAL_UINT32:
356+
case OPAL_INFO_DIRECTIVES:
352357
v->type = PMIX_UINT32;
353358
memcpy(&(v->data.uint32), &kv->data.uint32, 4);
354359
break;
@@ -379,13 +384,31 @@ void pmix1_value_load(pmix_value_t *v,
379384
v->data.bo.size = 0;
380385
}
381386
break;
387+
case OPAL_VPID:
388+
v->type = PMIX_UINT32;
389+
memcpy(&(v->data.uint32), &kv->data.name.vpid, 4);
390+
break;
391+
case OPAL_PERSIST:
392+
v->type = PMIX_INT;
393+
/* the value is in the uint8_t field, so convert it first */
394+
ival = (int)kv->data.uint8;
395+
memcpy(&(v->data.integer), &ival, sizeof(int));
396+
break;
397+
case OPAL_SCOPE:
398+
case OPAL_DATA_RANGE:
399+
v->type = PMIX_UINT;
400+
ui = (unsigned int)kv->data.uint8;
401+
memcpy(&(v->data.uint), &ui, sizeof(unsigned int));
402+
break;
382403
default:
383404
/* silence warnings */
405+
v->type = PMIX_UNDEF;
384406
break;
385407
}
386408
}
387409

388410
int pmix1_value_unload(opal_value_t *kv,
411+
const char *key,
389412
const pmix_value_t *v)
390413
{
391414
int rc=OPAL_SUCCESS;

opal/mca/pmix/ext114/pmix_ext.h renamed to opal/mca/pmix/ext11/pmix_ext.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
* $HEADER$
1212
*/
1313

14-
#ifndef MCA_PMIX_EXT114_H
15-
#define MCA_PMIX_EXT114_H
14+
#ifndef MCA_PMIX_EXT11_H
15+
#define MCA_PMIX_EXT11_H
1616

1717
#include "opal_config.h"
1818

@@ -37,11 +37,11 @@ typedef struct {
3737
opal_pmix_base_component_t super;
3838
opal_list_t jobids;
3939
bool native_launch;
40-
} mca_pmix_ext114_component_t;
40+
} mca_pmix_ext11_component_t;
4141

42-
OPAL_DECLSPEC extern mca_pmix_ext114_component_t mca_pmix_ext114_component;
42+
OPAL_DECLSPEC extern mca_pmix_ext11_component_t mca_pmix_ext11_component;
4343

44-
OPAL_DECLSPEC extern const opal_pmix_base_module_t opal_pmix_ext114_module;
44+
OPAL_DECLSPEC extern const opal_pmix_base_module_t opal_pmix_ext11_module;
4545

4646
/**** INTERNAL OBJECTS ****/
4747
typedef struct {
@@ -171,6 +171,7 @@ OPAL_MODULE_DECLSPEC pmix_scope_t pmix1_convert_opalscope(opal_pmix_scope_t scop
171171
OPAL_MODULE_DECLSPEC void pmix1_value_load(pmix_value_t *v,
172172
opal_value_t *kv);
173173
OPAL_MODULE_DECLSPEC int pmix1_value_unload(opal_value_t *kv,
174+
const char *key,
174175
const pmix_value_t *v);
175176

176177
END_C_DECLS

0 commit comments

Comments
 (0)