Update master to PMIx v4
Retain ext3x for PMIx 3 compatibility Get the blasted permissions correct on config files Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
родитель
fb67b1703f
Коммит
466cad6cb2
12
.gitignore
поставляемый
12
.gitignore
поставляемый
@ -391,12 +391,12 @@ opal/mca/pmix/pmix*/pmix/examples/pub
|
||||
opal/mca/pmix/pmix*/pmix/examples/server
|
||||
opal/mca/pmix/pmix*/pmix/examples/tool
|
||||
|
||||
opal/mca/pmix/ext3x/ext3x.c
|
||||
opal/mca/pmix/ext3x/ext3x.h
|
||||
opal/mca/pmix/ext3x/ext3x_client.c
|
||||
opal/mca/pmix/ext3x/ext3x_component.c
|
||||
opal/mca/pmix/ext3x/ext3x_server_north.c
|
||||
opal/mca/pmix/ext3x/ext3x_server_south.c
|
||||
opal/mca/pmix/ext4x/ext4x.c
|
||||
opal/mca/pmix/ext4x/ext4x.h
|
||||
opal/mca/pmix/ext4x/ext4x_client.c
|
||||
opal/mca/pmix/ext4x/ext4x_component.c
|
||||
opal/mca/pmix/ext4x/ext4x_server_north.c
|
||||
opal/mca/pmix/ext4x/ext4x_server_south.c
|
||||
|
||||
opal/tools/opal-checkpoint/opal-checkpoint
|
||||
opal/tools/opal-checkpoint/opal-checkpoint.1
|
||||
|
@ -337,12 +337,25 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
|
||||
|
||||
# if it does exist, then we need to parse it to find
|
||||
# the actual release series
|
||||
AS_IF([test "$opal_external_pmix_version_found" = "0"],
|
||||
[AC_MSG_CHECKING([version 4x])
|
||||
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
|
||||
#include <pmix_version.h>
|
||||
#if (PMIX_VERSION_MAJOR < 4L)
|
||||
#error "not version 4 or above"
|
||||
#endif
|
||||
], [])],
|
||||
[AC_MSG_RESULT([found])
|
||||
opal_external_pmix_version=4x
|
||||
opal_external_pmix_version_found=1],
|
||||
[AC_MSG_RESULT([not found])])])
|
||||
|
||||
AS_IF([test "$opal_external_pmix_version_found" = "0"],
|
||||
[AC_MSG_CHECKING([version 3x or above])
|
||||
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
|
||||
#include <pmix_version.h>
|
||||
#if (PMIX_VERSION_MAJOR < 3L)
|
||||
#error "not version 3 or above"
|
||||
#if (PMIX_VERSION_MAJOR != 3L)
|
||||
#error "not version 3"
|
||||
#endif
|
||||
], [])],
|
||||
[AC_MSG_RESULT([found])
|
||||
|
@ -17,7 +17,7 @@
|
||||
* Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
|
||||
* Copyright (c) 2011 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2012-2013 Inria. All rights reserved.
|
||||
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2016-2018 Mellanox Technologies Ltd. All rights reserved.
|
||||
@ -531,7 +531,7 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided,
|
||||
/* we want to go first */
|
||||
OBJ_CONSTRUCT(&info, opal_list_t);
|
||||
kv = OBJ_NEW(opal_value_t);
|
||||
kv->key = strdup(OPAL_PMIX_EVENT_ORDER_PREPEND);
|
||||
kv->key = strdup(OPAL_PMIX_EVENT_HDLR_PREPEND);
|
||||
opal_list_append(&info, &kv->super);
|
||||
/* give it a name so we can distinguish it */
|
||||
kv = OBJ_NEW(opal_value_t);
|
||||
@ -660,7 +660,7 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided,
|
||||
opal_pmix.commit();
|
||||
OMPI_TIMING_NEXT("commit");
|
||||
#if (OPAL_ENABLE_TIMING)
|
||||
if (OMPI_TIMING_ENABLED && !opal_pmix_base_async_modex &&
|
||||
if (OMPI_TIMING_ENABLED && !opal_pmix_base_async_modex &&
|
||||
opal_pmix_collect_all_data) {
|
||||
if (OMPI_SUCCESS != (ret = opal_pmix.fence(NULL, 0))) {
|
||||
error = "timing: pmix-barrier-1 failed";
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2015-2018 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
@ -38,19 +38,6 @@ component_noinst = libmca_pmix_ext3x.la
|
||||
component_install =
|
||||
endif
|
||||
|
||||
#
|
||||
# Generate ext3x sources from the pmix3x component
|
||||
#
|
||||
$(nodist_headers):
|
||||
pmix3xname=`echo $@ | sed -e s/ext3x/pmix3x/g` ; \
|
||||
$(SED) 's/pmix3x/ext3x/g' $(top_srcdir)/opal/mca/pmix/pmix3x/$$pmix3xname > $@
|
||||
|
||||
$(sources): $(nodist_headers)
|
||||
|
||||
$(nodist_sources): $(nodist_headers)
|
||||
pmix3xname=`echo $@ | sed -e s/ext3x/pmix3x/g` ; \
|
||||
$(SED) 's/pmix3x/ext3x/g' $(top_srcdir)/opal/mca/pmix/pmix3x/$$pmix3xname > $@
|
||||
|
||||
mcacomponentdir = $(opallibdir)
|
||||
mcacomponent_LTLIBRARIES = $(component_install)
|
||||
mca_pmix_ext3x_la_SOURCES = $(sources)
|
||||
|
351
opal/mca/pmix/ext3x/ext3x.h
Обычный файл
351
opal/mca/pmix/ext3x/ext3x.h
Обычный файл
@ -0,0 +1,351 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2017 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef MCA_PMIX_PMIX2X_H
|
||||
#define MCA_PMIX_PMIX2X_H
|
||||
|
||||
#include "opal_config.h"
|
||||
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_UN_H
|
||||
#include <sys/un.h>
|
||||
#endif
|
||||
|
||||
#include "opal/class/opal_list.h"
|
||||
#include "opal/mca/mca.h"
|
||||
#include "opal/mca/event/event.h"
|
||||
#include "opal/util/proc.h"
|
||||
|
||||
#include "opal/mca/pmix/base/base.h"
|
||||
#include "pmix_server.h"
|
||||
#include "pmix_common.h"
|
||||
|
||||
BEGIN_C_DECLS
|
||||
|
||||
typedef struct {
|
||||
opal_pmix_base_component_t super;
|
||||
pmix_proc_t myproc;
|
||||
opal_list_t jobids;
|
||||
bool native_launch;
|
||||
size_t evindex;
|
||||
opal_list_t events;
|
||||
int cache_size;
|
||||
opal_list_t cache;
|
||||
opal_list_t dmdx;
|
||||
bool silence_warning;
|
||||
} mca_pmix_ext3x_component_t;
|
||||
|
||||
OPAL_DECLSPEC extern mca_pmix_ext3x_component_t mca_pmix_ext3x_component;
|
||||
|
||||
OPAL_DECLSPEC extern const opal_pmix_base_module_t opal_pmix_ext3x_module;
|
||||
|
||||
/**** INTERNAL OBJECTS ****/
|
||||
typedef struct {
|
||||
opal_list_item_t super;
|
||||
opal_jobid_t jobid;
|
||||
char nspace[PMIX_MAX_NSLEN + 1];
|
||||
} opal_ext3x_jobid_trkr_t;
|
||||
OBJ_CLASS_DECLARATION(opal_ext3x_jobid_trkr_t);
|
||||
|
||||
typedef struct {
|
||||
opal_list_item_t super;
|
||||
opal_pmix_lock_t lock;
|
||||
size_t index;
|
||||
opal_pmix_notification_fn_t handler;
|
||||
void *cbdata;
|
||||
} opal_ext3x_event_t;
|
||||
OBJ_CLASS_DECLARATION(opal_ext3x_event_t);
|
||||
|
||||
typedef struct {
|
||||
opal_list_item_t super;
|
||||
char *nspace;
|
||||
pmix_modex_cbfunc_t cbfunc;
|
||||
void *cbdata;
|
||||
} opal_ext3x_dmx_trkr_t;
|
||||
OBJ_CLASS_DECLARATION(opal_ext3x_dmx_trkr_t);
|
||||
|
||||
typedef struct {
|
||||
opal_object_t super;
|
||||
opal_event_t ev;
|
||||
pmix_status_t status;
|
||||
char *nspace;
|
||||
pmix_proc_t p;
|
||||
pmix_proc_t *procs;
|
||||
size_t nprocs;
|
||||
pmix_pdata_t *pdata;
|
||||
size_t npdata;
|
||||
pmix_proc_t *error_procs;
|
||||
size_t nerror_procs;
|
||||
pmix_info_t *info;
|
||||
size_t ninfo;
|
||||
pmix_app_t *apps;
|
||||
size_t sz;
|
||||
opal_pmix_lock_t lock;
|
||||
opal_list_t *codes;
|
||||
pmix_status_t *pcodes;
|
||||
size_t ncodes;
|
||||
pmix_query_t *queries;
|
||||
size_t nqueries;
|
||||
opal_ext3x_event_t *event;
|
||||
opal_pmix_op_cbfunc_t opcbfunc;
|
||||
opal_pmix_modex_cbfunc_t mdxcbfunc;
|
||||
opal_pmix_value_cbfunc_t valcbfunc;
|
||||
opal_pmix_lookup_cbfunc_t lkcbfunc;
|
||||
opal_pmix_spawn_cbfunc_t spcbfunc;
|
||||
opal_pmix_evhandler_reg_cbfunc_t evregcbfunc;
|
||||
opal_pmix_info_cbfunc_t qcbfunc;
|
||||
opal_pmix_setup_application_cbfunc_t setupcbfunc;
|
||||
void *cbdata;
|
||||
} ext3x_opcaddy_t;
|
||||
OBJ_CLASS_DECLARATION(ext3x_opcaddy_t);
|
||||
|
||||
typedef struct {
|
||||
opal_object_t super;
|
||||
opal_list_t procs;
|
||||
opal_list_t info;
|
||||
opal_list_t apps;
|
||||
pmix_op_cbfunc_t opcbfunc;
|
||||
pmix_dmodex_response_fn_t dmdxfunc;
|
||||
pmix_modex_cbfunc_t mdxcbfunc;
|
||||
pmix_lookup_cbfunc_t lkupcbfunc;
|
||||
pmix_spawn_cbfunc_t spwncbfunc;
|
||||
pmix_info_cbfunc_t infocbfunc;
|
||||
pmix_tool_connection_cbfunc_t toolcbfunc;
|
||||
void *cbdata;
|
||||
opal_pmix_release_cbfunc_t odmdxfunc;
|
||||
void *ocbdata;
|
||||
} ext3x_opalcaddy_t;
|
||||
OBJ_CLASS_DECLARATION(ext3x_opalcaddy_t);
|
||||
|
||||
typedef struct {
|
||||
opal_object_t super;
|
||||
opal_event_t ev;
|
||||
opal_pmix_lock_t lock;
|
||||
const char *msg;
|
||||
char *strings;
|
||||
size_t id;
|
||||
int status;
|
||||
opal_process_name_t pname;
|
||||
opal_jobid_t jobid;
|
||||
const opal_process_name_t *source;
|
||||
opal_pmix_data_range_t range;
|
||||
bool nondefault;
|
||||
size_t handler;
|
||||
opal_value_t *val;
|
||||
opal_list_t *event_codes;
|
||||
opal_list_t *info;
|
||||
opal_list_t results;
|
||||
opal_pmix_notification_fn_t evhandler;
|
||||
opal_pmix_evhandler_reg_cbfunc_t cbfunc;
|
||||
opal_pmix_op_cbfunc_t opcbfunc;
|
||||
pmix_event_notification_cbfunc_fn_t pmixcbfunc;
|
||||
opal_pmix_value_cbfunc_t valcbfunc;
|
||||
opal_pmix_lookup_cbfunc_t lkcbfunc;
|
||||
void *cbdata;
|
||||
} ext3x_threadshift_t;
|
||||
OBJ_CLASS_DECLARATION(ext3x_threadshift_t);
|
||||
|
||||
#define OPAL_PMIX_OP_THREADSHIFT(e, fn, cb, cd) \
|
||||
do { \
|
||||
ext3x_threadshift_t *_cd; \
|
||||
_cd = OBJ_NEW(ext3x_threadshift_t); \
|
||||
_cd->handler = (e); \
|
||||
_cd->opcbfunc = (cb); \
|
||||
_cd->cbdata = (cd); \
|
||||
opal_event_assign(&((_cd)->ev), opal_pmix_base.evbase, \
|
||||
-1, EV_WRITE, (fn), (_cd)); \
|
||||
OPAL_POST_OBJECT(_cd); \
|
||||
opal_event_active(&((_cd)->ev), EV_WRITE, 1); \
|
||||
} while(0)
|
||||
|
||||
#define OPAL_PMIX_THREADSHIFT(e, i, eh, fn, cb, cd) \
|
||||
do { \
|
||||
ext3x_threadshift_t *_cd; \
|
||||
_cd = OBJ_NEW(ext3x_threadshift_t); \
|
||||
_cd->event_codes = (e); \
|
||||
_cd->info = (i); \
|
||||
_cd->evhandler = (eh); \
|
||||
_cd->cbfunc = (cb); \
|
||||
_cd->cbdata = (cd); \
|
||||
opal_event_assign(&((_cd)->ev), opal_pmix_base.evbase, \
|
||||
-1, EV_WRITE, (fn), (_cd)); \
|
||||
OPAL_POST_OBJECT(_cd); \
|
||||
opal_event_active(&((_cd)->ev), EV_WRITE, 1); \
|
||||
} while(0)
|
||||
|
||||
#define OPAL_PMIX_NOTIFY_THREADSHIFT(s, sr, r, i, fn, cb, cd) \
|
||||
do { \
|
||||
ext3x_threadshift_t *_cd; \
|
||||
_cd = OBJ_NEW(ext3x_threadshift_t); \
|
||||
_cd->status = (s); \
|
||||
_cd->source = (sr); \
|
||||
_cd->range = (r); \
|
||||
_cd->info = (i); \
|
||||
_cd->opcbfunc = (cb); \
|
||||
_cd->cbdata = (cd); \
|
||||
opal_event_assign(&((_cd)->ev), opal_pmix_base.evbase, \
|
||||
-1, EV_WRITE, (fn), (_cd)); \
|
||||
OPAL_POST_OBJECT(_cd); \
|
||||
opal_event_active(&((_cd)->ev), EV_WRITE, 1); \
|
||||
} while(0)
|
||||
|
||||
#define OPAL_PMIX2X_THREADSHIFT(p, cb) \
|
||||
do { \
|
||||
opal_event_assign(&((p)->ev), opal_pmix_base.evbase, \
|
||||
-1, EV_WRITE, (cb), (p)); \
|
||||
OPAL_POST_OBJECT(p); \
|
||||
opal_event_active(&((p)->ev), EV_WRITE, 1); \
|
||||
} while(0)
|
||||
|
||||
/**** CLIENT FUNCTIONS ****/
|
||||
OPAL_MODULE_DECLSPEC int ext3x_client_init(opal_list_t *ilist);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_client_finalize(void);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_initialized(void);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_abort(int flag, const char *msg,
|
||||
opal_list_t *procs);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_commit(void);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_fence(opal_list_t *procs, int collect_data);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_fencenb(opal_list_t *procs, int collect_data,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_put(opal_pmix_scope_t scope,
|
||||
opal_value_t *val);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_get(const opal_process_name_t *proc, const char *key,
|
||||
opal_list_t *info, opal_value_t **val);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_getnb(const opal_process_name_t *proc, const char *key,
|
||||
opal_list_t *info,
|
||||
opal_pmix_value_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_publish(opal_list_t *info);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_publishnb(opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_lookup(opal_list_t *data, opal_list_t *info);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_lookupnb(char **keys, opal_list_t *info,
|
||||
opal_pmix_lookup_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_unpublish(char **keys, opal_list_t *info);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_unpublishnb(char **keys, opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_spawn(opal_list_t *job_info, opal_list_t *apps, opal_jobid_t *jobid);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_spawnnb(opal_list_t *job_info, opal_list_t *apps,
|
||||
opal_pmix_spawn_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_connect(opal_list_t *procs);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_connectnb(opal_list_t *procs,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_disconnect(opal_list_t *procs);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_disconnectnb(opal_list_t *procs,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_resolve_peers(const char *nodename, opal_jobid_t jobid,
|
||||
opal_list_t *procs);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_resolve_nodes(opal_jobid_t jobid, char **nodelist);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_allocate(opal_pmix_alloc_directive_t directive,
|
||||
opal_list_t *info,
|
||||
opal_pmix_info_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_job_control(opal_list_t *targets,
|
||||
opal_list_t *directives,
|
||||
opal_pmix_info_cbfunc_t cbfunc, void *cbdata);
|
||||
|
||||
/**** TOOL FUNCTIONS ****/
|
||||
OPAL_MODULE_DECLSPEC int ext3x_tool_init(opal_list_t *info);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_tool_fini(void);
|
||||
|
||||
/**** COMMON FUNCTIONS ****/
|
||||
OPAL_MODULE_DECLSPEC int ext3x_store_local(const opal_process_name_t *proc,
|
||||
opal_value_t *val);
|
||||
|
||||
/**** SERVER SOUTHBOUND FUNCTIONS ****/
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_init(opal_pmix_server_module_t *module,
|
||||
opal_list_t *info);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_finalize(void);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_gen_regex(const char *input, char **regex);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_gen_ppn(const char *input, char **ppn);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_register_nspace(opal_jobid_t jobid,
|
||||
int nlocalprocs,
|
||||
opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC void ext3x_server_deregister_nspace(opal_jobid_t jobid,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_register_client(const opal_process_name_t *proc,
|
||||
uid_t uid, gid_t gid,
|
||||
void *server_object,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC void ext3x_server_deregister_client(const opal_process_name_t *proc,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_setup_fork(const opal_process_name_t *proc, char ***env);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_dmodex(const opal_process_name_t *proc,
|
||||
opal_pmix_modex_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_notify_event(int status,
|
||||
const opal_process_name_t *source,
|
||||
opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
|
||||
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_iof_push(const opal_process_name_t *source,
|
||||
opal_pmix_iof_channel_t channel,
|
||||
unsigned char *data, size_t nbytes);
|
||||
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_setup_application(opal_jobid_t jobid,
|
||||
opal_list_t *info,
|
||||
opal_pmix_setup_application_cbfunc_t cbfunc, void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_server_setup_local_support(opal_jobid_t jobid,
|
||||
opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata);
|
||||
|
||||
/**** COMPONENT UTILITY FUNCTIONS ****/
|
||||
OPAL_MODULE_DECLSPEC int opal_pmix_ext3x_check_evars(void);
|
||||
|
||||
OPAL_MODULE_DECLSPEC void ext3x_event_hdlr(size_t evhdlr_registration_id,
|
||||
pmix_status_t status, const pmix_proc_t *source,
|
||||
pmix_info_t info[], size_t ninfo,
|
||||
pmix_info_t results[], size_t nresults,
|
||||
pmix_event_notification_cbfunc_fn_t cbfunc,
|
||||
void *cbdata);
|
||||
OPAL_MODULE_DECLSPEC pmix_status_t ext3x_convert_opalrc(int rc);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_convert_rc(pmix_status_t rc);
|
||||
|
||||
OPAL_MODULE_DECLSPEC opal_vpid_t ext3x_convert_rank(pmix_rank_t rank);
|
||||
OPAL_MODULE_DECLSPEC pmix_rank_t ext3x_convert_opalrank(opal_vpid_t vpid);
|
||||
|
||||
OPAL_MODULE_DECLSPEC opal_pmix_scope_t ext3x_convert_scope(pmix_scope_t scope);
|
||||
OPAL_MODULE_DECLSPEC pmix_scope_t ext3x_convert_opalscope(opal_pmix_scope_t scope);
|
||||
|
||||
OPAL_MODULE_DECLSPEC pmix_data_range_t ext3x_convert_opalrange(opal_pmix_data_range_t range);
|
||||
OPAL_MODULE_DECLSPEC opal_pmix_data_range_t ext3x_convert_range(pmix_data_range_t range);
|
||||
|
||||
OPAL_MODULE_DECLSPEC opal_pmix_persistence_t ext3x_convert_persist(pmix_persistence_t scope);
|
||||
OPAL_MODULE_DECLSPEC pmix_persistence_t ext3x_convert_opalpersist(opal_pmix_persistence_t scope);
|
||||
|
||||
OPAL_MODULE_DECLSPEC void ext3x_value_load(pmix_value_t *v,
|
||||
opal_value_t *kv);
|
||||
OPAL_MODULE_DECLSPEC int ext3x_value_unload(opal_value_t *kv,
|
||||
const pmix_value_t *v);
|
||||
|
||||
OPAL_MODULE_DECLSPEC opal_pmix_alloc_directive_t ext3x_convert_allocdir(pmix_alloc_directive_t dir);
|
||||
|
||||
OPAL_MODULE_DECLSPEC char* ext3x_convert_jobid(opal_jobid_t jobid);
|
||||
|
||||
OPAL_MODULE_DECLSPEC int ext3x_convert_state(pmix_proc_state_t state);
|
||||
|
||||
OPAL_MODULE_DECLSPEC pmix_proc_state_t ext3x_convert_opalstate(int state);
|
||||
|
||||
|
||||
END_C_DECLS
|
||||
|
||||
#endif /* MCA_PMIX_EXTERNAL_H */
|
1664
opal/mca/pmix/ext3x/ext3x_client.c
Обычный файл
1664
opal/mca/pmix/ext3x/ext3x_client.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@ -23,13 +23,13 @@
|
||||
#include "opal/util/proc.h"
|
||||
#include "opal/util/show_help.h"
|
||||
#include "opal/mca/pmix/pmix.h"
|
||||
#include "pmix3x.h"
|
||||
#include "ext3x.h"
|
||||
|
||||
/*
|
||||
* Public string showing the pmix external component version number
|
||||
*/
|
||||
const char *opal_pmix_pmix3x_component_version_string =
|
||||
"OPAL pmix3x MCA component version " OPAL_VERSION;
|
||||
const char *opal_pmix_ext3x_component_version_string =
|
||||
"OPAL ext3x MCA component version " OPAL_VERSION;
|
||||
|
||||
/*
|
||||
* Local function
|
||||
@ -50,7 +50,7 @@ static char *pmix_library_version = NULL;
|
||||
* and pointers to our public functions in it
|
||||
*/
|
||||
|
||||
mca_pmix_pmix3x_component_t mca_pmix_pmix3x_component = {
|
||||
mca_pmix_ext3x_component_t mca_pmix_ext3x_component = {
|
||||
{
|
||||
/* First, the mca_component_t struct containing meta information
|
||||
about the component itself */
|
||||
@ -63,7 +63,7 @@ mca_pmix_pmix3x_component_t mca_pmix_pmix3x_component = {
|
||||
|
||||
/* Component name and version */
|
||||
|
||||
.mca_component_name = "pmix3x",
|
||||
.mca_component_name = "ext3x",
|
||||
MCA_BASE_MAKE_VERSION(component, OPAL_MAJOR_VERSION, OPAL_MINOR_VERSION,
|
||||
OPAL_RELEASE_VERSION),
|
||||
|
||||
@ -85,16 +85,16 @@ mca_pmix_pmix3x_component_t mca_pmix_pmix3x_component = {
|
||||
|
||||
static int external_register(void)
|
||||
{
|
||||
mca_base_component_t *component = &mca_pmix_pmix3x_component.super.base_version;
|
||||
mca_base_component_t *component = &mca_pmix_ext3x_component.super.base_version;
|
||||
char *tmp = NULL;
|
||||
|
||||
mca_pmix_pmix3x_component.silence_warning = false;
|
||||
mca_pmix_ext3x_component.silence_warning = false;
|
||||
(void) mca_base_component_var_register (component, "silence_warning",
|
||||
"Silence warning about PMIX_INSTALL_PREFIX",
|
||||
MCA_BASE_VAR_TYPE_BOOL, NULL, 0, 0,
|
||||
OPAL_INFO_LVL_4,
|
||||
MCA_BASE_VAR_SCOPE_READONLY,
|
||||
&mca_pmix_pmix3x_component.silence_warning);
|
||||
&mca_pmix_ext3x_component.silence_warning);
|
||||
|
||||
asprintf(&pmix_library_version,
|
||||
"PMIx library version %s (embedded in Open MPI)", PMIx_Get_version());
|
||||
@ -115,10 +115,10 @@ static int external_open(void)
|
||||
{
|
||||
const char *version;
|
||||
|
||||
mca_pmix_pmix3x_component.evindex = 0;
|
||||
OBJ_CONSTRUCT(&mca_pmix_pmix3x_component.jobids, opal_list_t);
|
||||
OBJ_CONSTRUCT(&mca_pmix_pmix3x_component.events, opal_list_t);
|
||||
OBJ_CONSTRUCT(&mca_pmix_pmix3x_component.dmdx, opal_list_t);
|
||||
mca_pmix_ext3x_component.evindex = 0;
|
||||
OBJ_CONSTRUCT(&mca_pmix_ext3x_component.jobids, opal_list_t);
|
||||
OBJ_CONSTRUCT(&mca_pmix_ext3x_component.events, opal_list_t);
|
||||
OBJ_CONSTRUCT(&mca_pmix_ext3x_component.dmdx, opal_list_t);
|
||||
|
||||
version = PMIx_Get_version();
|
||||
if ('3' > version[0]) {
|
||||
@ -131,9 +131,9 @@ static int external_open(void)
|
||||
|
||||
static int external_close(void)
|
||||
{
|
||||
OPAL_LIST_DESTRUCT(&mca_pmix_pmix3x_component.jobids);
|
||||
OPAL_LIST_DESTRUCT(&mca_pmix_pmix3x_component.events);
|
||||
OPAL_LIST_DESTRUCT(&mca_pmix_pmix3x_component.dmdx);
|
||||
OPAL_LIST_DESTRUCT(&mca_pmix_ext3x_component.jobids);
|
||||
OPAL_LIST_DESTRUCT(&mca_pmix_ext3x_component.events);
|
||||
OPAL_LIST_DESTRUCT(&mca_pmix_ext3x_component.dmdx);
|
||||
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
@ -152,6 +152,6 @@ static int external_component_query(mca_base_module_t **module, int *priority)
|
||||
/* we could be a server, so we still need to be considered */
|
||||
*priority = 5;
|
||||
}
|
||||
*module = (mca_base_module_t *)&opal_pmix_pmix3x_module;
|
||||
*module = (mca_base_module_t *)&opal_pmix_ext3x_module;
|
||||
return OPAL_SUCCESS;
|
||||
}
|
1338
opal/mca/pmix/ext3x/ext3x_server_north.c
Обычный файл
1338
opal/mca/pmix/ext3x/ext3x_server_north.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
790
opal/mca/pmix/ext3x/ext3x_server_south.c
Обычный файл
790
opal/mca/pmix/ext3x/ext3x_server_south.c
Обычный файл
@ -0,0 +1,790 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2017 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2017 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "opal_config.h"
|
||||
#include "opal/constants.h"
|
||||
#include "opal/types.h"
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "opal/dss/dss.h"
|
||||
#include "opal/mca/event/event.h"
|
||||
#include "opal/mca/hwloc/base/base.h"
|
||||
#include "opal/runtime/opal.h"
|
||||
#include "opal/runtime/opal_progress_threads.h"
|
||||
#include "opal/threads/threads.h"
|
||||
#include "opal/util/argv.h"
|
||||
#include "opal/util/error.h"
|
||||
#include "opal/util/output.h"
|
||||
#include "opal/util/opal_environ.h"
|
||||
#include "opal/util/proc.h"
|
||||
#include "opal/util/show_help.h"
|
||||
#include "opal/mca/pmix/base/base.h"
|
||||
#include "ext3x.h"
|
||||
|
||||
#include "pmix.h"
|
||||
#include "pmix_server.h"
|
||||
|
||||
/**** S.O.U.T.H.B.O.U.N.D I.N.T.E.R.F.A.C.E.S ****/
|
||||
|
||||
/* These are the interfaces used by the OMPI/ORTE/OPAL layer to call
|
||||
* down into the embedded PMIx server. */
|
||||
|
||||
extern pmix_server_module_t mymodule;
|
||||
extern opal_pmix_server_module_t *host_module;
|
||||
static char *dbgvalue=NULL;
|
||||
|
||||
static void errreg_cbfunc (pmix_status_t status,
|
||||
size_t errhandler_ref,
|
||||
void *cbdata)
|
||||
{
|
||||
opal_ext3x_event_t *ev = (opal_ext3x_event_t*)cbdata;
|
||||
|
||||
OPAL_ACQUIRE_OBJECT(ev);
|
||||
ev->index = errhandler_ref;
|
||||
opal_output_verbose(5, opal_pmix_base_framework.framework_output,
|
||||
"PMIX server errreg_cbfunc - error handler registered status=%d, reference=%lu",
|
||||
status, (unsigned long)errhandler_ref);
|
||||
OPAL_POST_OBJECT(ev);
|
||||
OPAL_PMIX_WAKEUP_THREAD(&ev->lock);
|
||||
}
|
||||
|
||||
static void opcbfunc(pmix_status_t status, void *cbdata)
|
||||
{
|
||||
ext3x_opcaddy_t *op = (ext3x_opcaddy_t*)cbdata;
|
||||
|
||||
OPAL_ACQUIRE_OBJECT(op);
|
||||
|
||||
if (NULL != op->opcbfunc) {
|
||||
op->opcbfunc(ext3x_convert_rc(status), op->cbdata);
|
||||
}
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
|
||||
static void lkcbfunc(pmix_status_t status, void *cbdata)
|
||||
{
|
||||
opal_pmix_lock_t *lk = (opal_pmix_lock_t*)cbdata;
|
||||
|
||||
OPAL_POST_OBJECT(lk);
|
||||
lk->status = ext3x_convert_rc(status);
|
||||
OPAL_PMIX_WAKEUP_THREAD(lk);
|
||||
}
|
||||
|
||||
int ext3x_server_init(opal_pmix_server_module_t *module,
|
||||
opal_list_t *info)
|
||||
{
|
||||
pmix_status_t rc;
|
||||
int dbg;
|
||||
opal_value_t *kv;
|
||||
pmix_info_t *pinfo;
|
||||
size_t sz, n;
|
||||
opal_ext3x_event_t *event;
|
||||
opal_ext3x_jobid_trkr_t *job;
|
||||
opal_pmix_lock_t lk;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
if (0 == opal_pmix_base.initialized) {
|
||||
if (0 < (dbg = opal_output_get_verbosity(opal_pmix_base_framework.framework_output))) {
|
||||
asprintf(&dbgvalue, "PMIX_DEBUG=%d", dbg);
|
||||
putenv(dbgvalue);
|
||||
}
|
||||
/* check the evars for a mismatch */
|
||||
if (OPAL_SUCCESS != (dbg = opal_pmix_ext3x_check_evars())) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return dbg;
|
||||
}
|
||||
}
|
||||
++opal_pmix_base.initialized;
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
sz = 2 + ((NULL==info)?0:opal_list_get_size(info));
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
if (NULL != info) {
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext3x_value_load(&pinfo[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
/* check for direct modex use-case */
|
||||
if (opal_pmix_base_async_modex && !opal_pmix_collect_all_data) {
|
||||
opal_setenv("PMIX_MCA_gds", "hash", true, &environ);
|
||||
}
|
||||
|
||||
/* insert ourselves into our list of jobids - it will be the
|
||||
* first, and so we'll check it first */
|
||||
job = OBJ_NEW(opal_ext3x_jobid_trkr_t);
|
||||
(void)opal_snprintf_jobid(job->nspace, PMIX_MAX_NSLEN, OPAL_PROC_MY_NAME.jobid);
|
||||
job->jobid = OPAL_PROC_MY_NAME.jobid;
|
||||
opal_list_append(&mca_pmix_ext3x_component.jobids, &job->super);
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* add our nspace and rank to the array going down to the PMIx server */
|
||||
PMIX_INFO_LOAD(&pinfo[sz-2], PMIX_SERVER_NSPACE, job->nspace, PMIX_STRING);
|
||||
PMIX_INFO_LOAD(&pinfo[sz-1], PMIX_SERVER_RANK, &OPAL_PROC_MY_NAME.vpid, PMIX_PROC_RANK);
|
||||
if (PMIX_SUCCESS != (rc = PMIx_server_init(&mymodule, pinfo, sz))) {
|
||||
PMIX_INFO_FREE(pinfo, sz);
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
PMIX_INFO_FREE(pinfo, sz);
|
||||
|
||||
/* record the host module */
|
||||
host_module = module;
|
||||
|
||||
/* register the default event handler */
|
||||
event = OBJ_NEW(opal_ext3x_event_t);
|
||||
opal_list_append(&mca_pmix_ext3x_component.events, &event->super);
|
||||
PMIX_INFO_CREATE(pinfo, 1);
|
||||
PMIX_INFO_LOAD(&pinfo[0], PMIX_EVENT_HDLR_NAME, "OPAL-PMIX-2X-SERVER-DEFAULT", PMIX_STRING);
|
||||
PMIx_Register_event_handler(NULL, 0, pinfo, 1, ext3x_event_hdlr, errreg_cbfunc, (void*)event);
|
||||
OPAL_PMIX_WAIT_THREAD(&event->lock);
|
||||
PMIX_INFO_FREE(pinfo, 1);
|
||||
|
||||
/* as we might want to use some client-side functions, be sure
|
||||
* to register our own nspace */
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&lk);
|
||||
PMIX_INFO_CREATE(pinfo, 1);
|
||||
PMIX_INFO_LOAD(&pinfo[0], PMIX_REGISTER_NODATA, NULL, PMIX_BOOL);
|
||||
PMIx_server_register_nspace(job->nspace, 1, pinfo, 1, lkcbfunc, (void*)&lk);
|
||||
OPAL_PMIX_WAIT_THREAD(&lk);
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&lk);
|
||||
PMIX_INFO_FREE(pinfo, 1);
|
||||
|
||||
return OPAL_SUCCESS;
|
||||
}
|
||||
|
||||
static void dereg_cbfunc(pmix_status_t st, void *cbdata)
|
||||
{
|
||||
opal_ext3x_event_t *ev = (opal_ext3x_event_t*)cbdata;
|
||||
OPAL_PMIX_WAKEUP_THREAD(&ev->lock);
|
||||
}
|
||||
|
||||
int ext3x_server_finalize(void)
|
||||
{
|
||||
pmix_status_t rc;
|
||||
opal_ext3x_event_t *event, *ev2;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
--opal_pmix_base.initialized;
|
||||
|
||||
if (0 < opal_pmix_base.initialized) {
|
||||
/* deregister all event handlers */
|
||||
OPAL_LIST_FOREACH_SAFE(event, ev2, &mca_pmix_ext3x_component.events, opal_ext3x_event_t) {
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&event->lock);
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&event->lock);
|
||||
PMIx_Deregister_event_handler(event->index, dereg_cbfunc, (void*)event);
|
||||
OPAL_PMIX_WAIT_THREAD(&event->lock);
|
||||
opal_list_remove_item(&mca_pmix_ext3x_component.events, &event->super);
|
||||
OBJ_RELEASE(event);
|
||||
}
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
rc = PMIx_server_finalize();
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
int ext3x_server_gen_regex(const char *input, char **regex)
|
||||
{
|
||||
pmix_status_t rc;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
rc = PMIx_generate_regex(input, regex);
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
|
||||
int ext3x_server_gen_ppn(const char *input, char **ppn)
|
||||
{
|
||||
pmix_status_t rc;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
rc = PMIx_generate_ppn(input, ppn);
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
int ext3x_server_register_nspace(opal_jobid_t jobid,
|
||||
int nlocalprocs,
|
||||
opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata)
|
||||
{
|
||||
opal_value_t *kv, *k2;
|
||||
pmix_info_t *pinfo = NULL, *pmap;
|
||||
size_t sz, szmap, m, n;
|
||||
char nspace[PMIX_MAX_NSLEN];
|
||||
pmix_status_t rc;
|
||||
opal_list_t *pmapinfo;
|
||||
opal_ext3x_jobid_trkr_t *job;
|
||||
opal_pmix_lock_t lock;
|
||||
int ret;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
/* convert the jobid */
|
||||
(void)opal_snprintf_jobid(nspace, PMIX_MAX_NSLEN, jobid);
|
||||
|
||||
/* store this job in our list of known nspaces */
|
||||
job = OBJ_NEW(opal_ext3x_jobid_trkr_t);
|
||||
(void)strncpy(job->nspace, nspace, PMIX_MAX_NSLEN);
|
||||
job->jobid = jobid;
|
||||
opal_list_append(&mca_pmix_ext3x_component.jobids, &job->super);
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
if (0 == strcmp(kv->key, OPAL_PMIX_PROC_DATA)) {
|
||||
pinfo[n].value.type = PMIX_DATA_ARRAY;
|
||||
/* the value contains a list of values - convert
|
||||
* that list to another array */
|
||||
pmapinfo = (opal_list_t*)kv->data.ptr;
|
||||
szmap = opal_list_get_size(pmapinfo);
|
||||
if (0 < szmap) {
|
||||
PMIX_INFO_CREATE(pmap, szmap);
|
||||
pinfo[n].value.data.darray = (pmix_data_array_t*)calloc(1, sizeof(pmix_data_array_t));
|
||||
pinfo[n].value.data.darray->type = PMIX_INFO;
|
||||
pinfo[n].value.data.darray->array = (struct pmix_info_t*)pmap;
|
||||
pinfo[n].value.data.darray->size = szmap;
|
||||
m = 0;
|
||||
OPAL_LIST_FOREACH(k2, pmapinfo, opal_value_t) {
|
||||
(void)strncpy(pmap[m].key, k2->key, PMIX_MAX_KEYLEN);
|
||||
ext3x_value_load(&pmap[m].value, k2);
|
||||
++m;
|
||||
}
|
||||
}
|
||||
OPAL_LIST_RELEASE(pmapinfo);
|
||||
} else {
|
||||
ext3x_value_load(&pinfo[n].value, kv);
|
||||
}
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
sz = 0;
|
||||
pinfo = NULL;
|
||||
}
|
||||
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
||||
rc = PMIx_server_register_nspace(nspace, nlocalprocs, pinfo, sz,
|
||||
lkcbfunc, (void*)&lock);
|
||||
if (PMIX_SUCCESS == rc) {
|
||||
OPAL_PMIX_WAIT_THREAD(&lock);
|
||||
}
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
||||
|
||||
if (NULL != pinfo) {
|
||||
PMIX_INFO_FREE(pinfo, sz);
|
||||
}
|
||||
|
||||
ret = ext3x_convert_rc(rc);
|
||||
|
||||
/* release the caller */
|
||||
if (NULL != cbfunc) {
|
||||
cbfunc(ret, cbdata);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ext3x_server_deregister_nspace(opal_jobid_t jobid,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata)
|
||||
{
|
||||
opal_ext3x_jobid_trkr_t *jptr;
|
||||
opal_pmix_lock_t lock;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
/* release the caller */
|
||||
if (NULL != cbfunc) {
|
||||
cbfunc(OPAL_ERR_NOT_INITIALIZED, cbdata);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* if we don't already have it, we can ignore this */
|
||||
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext3x_component.jobids, opal_ext3x_jobid_trkr_t) {
|
||||
if (jptr->jobid == jobid) {
|
||||
/* found it - tell the server to deregister */
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
PMIx_server_deregister_nspace(jptr->nspace, lkcbfunc, (void*)&lock);
|
||||
OPAL_PMIX_WAIT_THREAD(&lock);
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
||||
/* now get rid of it from our list */
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
opal_list_remove_item(&mca_pmix_ext3x_component.jobids, &jptr->super);
|
||||
OBJ_RELEASE(jptr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
/* release the caller */
|
||||
if (NULL != cbfunc) {
|
||||
cbfunc(OPAL_SUCCESS, cbdata);
|
||||
}
|
||||
}
|
||||
|
||||
int ext3x_server_register_client(const opal_process_name_t *proc,
|
||||
uid_t uid, gid_t gid,
|
||||
void *server_object,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata)
|
||||
{
|
||||
pmix_status_t rc;
|
||||
pmix_proc_t p;
|
||||
opal_pmix_lock_t lock;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the jobid */
|
||||
(void)opal_snprintf_jobid(p.nspace, PMIX_MAX_NSLEN, proc->jobid);
|
||||
p.rank = ext3x_convert_opalrank(proc->vpid);
|
||||
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
||||
rc = PMIx_server_register_client(&p, uid, gid, server_object,
|
||||
lkcbfunc, (void*)&lock);
|
||||
if (PMIX_SUCCESS == rc) {
|
||||
OPAL_PMIX_WAIT_THREAD(&lock);
|
||||
}
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
/* tell the local PMIx server to cleanup this client as it is
|
||||
* done executing */
|
||||
void ext3x_server_deregister_client(const opal_process_name_t *proc,
|
||||
opal_pmix_op_cbfunc_t cbfunc,
|
||||
void *cbdata)
|
||||
{
|
||||
opal_ext3x_jobid_trkr_t *jptr;
|
||||
pmix_proc_t p;
|
||||
opal_pmix_lock_t lock;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
if (NULL != cbfunc) {
|
||||
cbfunc(OPAL_ERR_NOT_INITIALIZED, cbdata);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* if we don't already have it, we can ignore this */
|
||||
OPAL_LIST_FOREACH(jptr, &mca_pmix_ext3x_component.jobids, opal_ext3x_jobid_trkr_t) {
|
||||
if (jptr->jobid == proc->jobid) {
|
||||
/* found it - tell the server to deregister */
|
||||
(void)strncpy(p.nspace, jptr->nspace, PMIX_MAX_NSLEN);
|
||||
p.rank = ext3x_convert_opalrank(proc->vpid);
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
PMIx_server_deregister_client(&p, lkcbfunc, (void*)&lock);
|
||||
OPAL_PMIX_WAIT_THREAD(&lock);
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
break;
|
||||
}
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
if (NULL != cbfunc) {
|
||||
cbfunc(OPAL_SUCCESS, cbdata);
|
||||
}
|
||||
}
|
||||
|
||||
/* have the local PMIx server setup the environment for this client */
|
||||
int ext3x_server_setup_fork(const opal_process_name_t *proc, char ***env)
|
||||
{
|
||||
pmix_status_t rc;
|
||||
pmix_proc_t p;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the jobid */
|
||||
(void)opal_snprintf_jobid(p.nspace, PMIX_MAX_NSLEN, proc->jobid);
|
||||
p.rank = ext3x_convert_opalrank(proc->vpid);
|
||||
|
||||
rc = PMIx_server_setup_fork(&p, env);
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
/* this is the call back up from the embedded PMIx server that
|
||||
* will contain the returned data. Note that the embedded server
|
||||
* "owns" the data and will free it upon return from this function */
|
||||
static void dmdx_response(pmix_status_t status, char *data, size_t sz, void *cbdata)
|
||||
{
|
||||
int rc;
|
||||
ext3x_opcaddy_t *op = (ext3x_opcaddy_t*)cbdata;
|
||||
|
||||
rc = ext3x_convert_rc(status);
|
||||
if (NULL != op->mdxcbfunc) {
|
||||
op->mdxcbfunc(rc, data, sz, op->cbdata, NULL, NULL);
|
||||
}
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
|
||||
/* request modex data for a local proc from the PMIx server */
|
||||
int ext3x_server_dmodex(const opal_process_name_t *proc,
|
||||
opal_pmix_modex_cbfunc_t cbfunc, void *cbdata)
|
||||
{
|
||||
ext3x_opcaddy_t *op;
|
||||
pmix_status_t rc;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* setup the caddy */
|
||||
op = OBJ_NEW(ext3x_opcaddy_t);
|
||||
op->mdxcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
|
||||
/* convert the jobid */
|
||||
(void)opal_snprintf_jobid(op->p.nspace, PMIX_MAX_NSLEN, proc->jobid);
|
||||
op->p.rank = ext3x_convert_opalrank(proc->vpid);
|
||||
|
||||
/* find the internally-cached data for this proc */
|
||||
rc = PMIx_server_dmodex_request(&op->p, dmdx_response, op);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
/* tell the PMIx server to notify its local clients of an event */
|
||||
int ext3x_server_notify_event(int status,
|
||||
const opal_process_name_t *source,
|
||||
opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata)
|
||||
{
|
||||
opal_value_t *kv;
|
||||
pmix_info_t *pinfo;
|
||||
size_t sz, n;
|
||||
pmix_status_t rc;
|
||||
ext3x_opcaddy_t *op;
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
if (0 == strcmp(kv->key, OPAL_PMIX_JOB_TERM_STATUS)) {
|
||||
pinfo[n].value.type = PMIX_STATUS;
|
||||
pinfo[n].value.data.status = ext3x_convert_opalrc(kv->data.integer);
|
||||
} else {
|
||||
ext3x_value_load(&pinfo[n].value, kv);
|
||||
}
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
sz = 0;
|
||||
pinfo = NULL;
|
||||
}
|
||||
/* setup the caddy */
|
||||
op = OBJ_NEW(ext3x_opcaddy_t);
|
||||
op->info = pinfo;
|
||||
op->sz = sz;
|
||||
op->opcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
/* convert the jobid */
|
||||
if (NULL == source) {
|
||||
(void)opal_snprintf_jobid(op->p.nspace, PMIX_MAX_NSLEN, OPAL_JOBID_INVALID);
|
||||
op->p.rank = ext3x_convert_opalrank(OPAL_VPID_INVALID);
|
||||
} else {
|
||||
(void)opal_snprintf_jobid(op->p.nspace, PMIX_MAX_NSLEN, source->jobid);
|
||||
op->p.rank = ext3x_convert_opalrank(source->vpid);
|
||||
}
|
||||
|
||||
|
||||
rc = ext3x_convert_opalrc(status);
|
||||
/* the range must be nonlocal so the server will pass
|
||||
* the event down to its local clients */
|
||||
rc = PMIx_Notify_event(rc, &op->p, PMIX_RANGE_SESSION,
|
||||
pinfo, sz, opcbfunc, op);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
int ext3x_server_iof_push(const opal_process_name_t *source,
|
||||
opal_pmix_iof_channel_t channel,
|
||||
unsigned char *data, size_t nbytes)
|
||||
{
|
||||
ext3x_opcaddy_t *op;
|
||||
pmix_byte_object_t bo;
|
||||
pmix_iof_channel_t pchan;
|
||||
opal_pmix_lock_t lock;
|
||||
pmix_status_t rc;
|
||||
int ret;
|
||||
|
||||
opal_output_verbose(2, opal_pmix_base_framework.framework_output,
|
||||
"%s IOF push from %s with %d bytes",
|
||||
OPAL_NAME_PRINT(OPAL_PROC_MY_NAME),
|
||||
OPAL_NAME_PRINT(*source), (int)nbytes);
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* setup the caddy */
|
||||
op = OBJ_NEW(ext3x_opcaddy_t);
|
||||
/* convert the source */
|
||||
(void)opal_snprintf_jobid(op->p.nspace, PMIX_MAX_NSLEN, source->jobid);
|
||||
op->p.rank = ext3x_convert_opalrank(source->vpid);
|
||||
/* convert the channel */
|
||||
pchan = 0;
|
||||
if (OPAL_PMIX_FWD_STDIN_CHANNEL & channel) {
|
||||
pchan |= PMIX_FWD_STDIN_CHANNEL;
|
||||
}
|
||||
if (OPAL_PMIX_FWD_STDOUT_CHANNEL & channel) {
|
||||
pchan |= PMIX_FWD_STDOUT_CHANNEL;
|
||||
}
|
||||
if (OPAL_PMIX_FWD_STDERR_CHANNEL & channel) {
|
||||
pchan |= PMIX_FWD_STDERR_CHANNEL;
|
||||
}
|
||||
if (OPAL_PMIX_FWD_STDDIAG_CHANNEL & channel) {
|
||||
pchan |= PMIX_FWD_STDDIAG_CHANNEL;
|
||||
}
|
||||
|
||||
/* setup the byte object */
|
||||
PMIX_BYTE_OBJECT_CONSTRUCT(&bo);
|
||||
if (0 < nbytes) {
|
||||
bo.bytes = (char*)data;
|
||||
}
|
||||
bo.size = nbytes;
|
||||
|
||||
/* push the IO */
|
||||
OPAL_PMIX_CONSTRUCT_LOCK(&lock);
|
||||
rc = PMIx_server_IOF_deliver(&op->p, pchan, &bo, NULL, 0, lkcbfunc, (void*)&lock);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
ret = ext3x_convert_rc(rc);
|
||||
} else {
|
||||
/* wait for completion */
|
||||
OPAL_PMIX_WAIT_THREAD(&lock);
|
||||
ret = lock.status;
|
||||
OPAL_PMIX_DESTRUCT_LOCK(&lock);
|
||||
}
|
||||
/* cleanup */
|
||||
OBJ_RELEASE(op);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void final_cleanup(int status, void *cbdata)
|
||||
{
|
||||
ext3x_opalcaddy_t *opalcaddy = (ext3x_opalcaddy_t*)cbdata;
|
||||
OBJ_RELEASE(opalcaddy);
|
||||
}
|
||||
|
||||
static void setup_cbfunc(pmix_status_t status,
|
||||
pmix_info_t info[], size_t ninfo,
|
||||
void *provided_cbdata,
|
||||
pmix_op_cbfunc_t cbfunc, void *cbdata)
|
||||
{
|
||||
ext3x_opcaddy_t *op = (ext3x_opcaddy_t*)provided_cbdata;
|
||||
ext3x_opalcaddy_t *opalcaddy;
|
||||
size_t n;
|
||||
opal_value_t *iptr;
|
||||
int rc;
|
||||
pmix_status_t ret = PMIX_SUCCESS;
|
||||
|
||||
/* setup the caddy */
|
||||
opalcaddy = OBJ_NEW(ext3x_opalcaddy_t);
|
||||
|
||||
rc = ext3x_convert_rc(status);
|
||||
if (OPAL_SUCCESS == rc && NULL != info) {
|
||||
/* need to convert the info array to a list */
|
||||
for (n=0; n < ninfo; n++) {
|
||||
iptr = OBJ_NEW(opal_value_t);
|
||||
opal_list_append(&opalcaddy->info, &iptr->super);
|
||||
iptr->key = strdup(info[n].key);
|
||||
if (OPAL_SUCCESS != (rc = ext3x_value_unload(iptr, &info[n].value))) {
|
||||
OBJ_RELEASE(opalcaddy);
|
||||
ret = ext3x_convert_opalrc(rc);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
/* release our caller */
|
||||
if (NULL != cbfunc) {
|
||||
cbfunc(ret, cbdata);
|
||||
}
|
||||
/* pass what we have upstairs */
|
||||
if (NULL != op->setupcbfunc) {
|
||||
op->setupcbfunc(rc, &opalcaddy->info, op->cbdata,
|
||||
final_cleanup, opalcaddy);
|
||||
}
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
|
||||
int ext3x_server_setup_application(opal_jobid_t jobid,
|
||||
opal_list_t *info,
|
||||
opal_pmix_setup_application_cbfunc_t cbfunc, void *cbdata)
|
||||
{
|
||||
opal_value_t *kv;
|
||||
pmix_info_t *pinfo;
|
||||
size_t sz, n;
|
||||
pmix_status_t rc;
|
||||
ext3x_opcaddy_t *op;
|
||||
|
||||
opal_output_verbose(2, opal_pmix_base_framework.framework_output,
|
||||
"%s setup application for job %s",
|
||||
OPAL_NAME_PRINT(OPAL_PROC_MY_NAME),
|
||||
OPAL_JOBID_PRINT(jobid));
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext3x_value_load(&pinfo[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
sz = 0;
|
||||
pinfo = NULL;
|
||||
}
|
||||
/* setup the caddy */
|
||||
op = OBJ_NEW(ext3x_opcaddy_t);
|
||||
op->info = pinfo;
|
||||
op->sz = sz;
|
||||
op->setupcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
/* convert the jobid */
|
||||
(void)opal_snprintf_jobid(op->p.nspace, PMIX_MAX_NSLEN, jobid);
|
||||
|
||||
rc = PMIx_server_setup_application(op->p.nspace, op->info, op->sz,
|
||||
setup_cbfunc, op);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
||||
|
||||
int ext3x_server_setup_local_support(opal_jobid_t jobid,
|
||||
opal_list_t *info,
|
||||
opal_pmix_op_cbfunc_t cbfunc, void *cbdata)
|
||||
{
|
||||
opal_value_t *kv;
|
||||
pmix_info_t *pinfo;
|
||||
size_t sz, n;
|
||||
pmix_status_t rc;
|
||||
ext3x_opcaddy_t *op;
|
||||
|
||||
opal_output_verbose(2, opal_pmix_base_framework.framework_output,
|
||||
"%s setup local support for job %s",
|
||||
OPAL_NAME_PRINT(OPAL_PROC_MY_NAME),
|
||||
OPAL_JOBID_PRINT(jobid));
|
||||
|
||||
OPAL_PMIX_ACQUIRE_THREAD(&opal_pmix_base.lock);
|
||||
if (0 >= opal_pmix_base.initialized) {
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
return OPAL_ERR_NOT_INITIALIZED;
|
||||
}
|
||||
OPAL_PMIX_RELEASE_THREAD(&opal_pmix_base.lock);
|
||||
|
||||
/* convert the list to an array of pmix_info_t */
|
||||
if (NULL != info && 0 < (sz = opal_list_get_size(info))) {
|
||||
PMIX_INFO_CREATE(pinfo, sz);
|
||||
n = 0;
|
||||
OPAL_LIST_FOREACH(kv, info, opal_value_t) {
|
||||
(void)strncpy(pinfo[n].key, kv->key, PMIX_MAX_KEYLEN);
|
||||
ext3x_value_load(&pinfo[n].value, kv);
|
||||
++n;
|
||||
}
|
||||
} else {
|
||||
sz = 0;
|
||||
pinfo = NULL;
|
||||
}
|
||||
/* setup the caddy */
|
||||
op = OBJ_NEW(ext3x_opcaddy_t);
|
||||
op->info = pinfo;
|
||||
op->sz = sz;
|
||||
op->opcbfunc = cbfunc;
|
||||
op->cbdata = cbdata;
|
||||
/* convert the jobid */
|
||||
(void)opal_snprintf_jobid(op->p.nspace, PMIX_MAX_NSLEN, jobid);
|
||||
|
||||
rc = PMIx_server_setup_local_support(op->p.nspace, op->info, op->sz,
|
||||
opcbfunc, op);
|
||||
if (PMIX_SUCCESS != rc) {
|
||||
OBJ_RELEASE(op);
|
||||
}
|
||||
return ext3x_convert_rc(rc);
|
||||
}
|
73
opal/mca/pmix/ext4x/Makefile.am
Обычный файл
73
opal/mca/pmix/ext4x/Makefile.am
Обычный файл
@ -0,0 +1,73 @@
|
||||
#
|
||||
# Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2015-2018 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2017 IBM Corporation. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
dist_opaldata_DATA = help-pmix-ext4x.txt
|
||||
|
||||
sources = \
|
||||
ext4x_local.c
|
||||
|
||||
nodist_headers = \
|
||||
ext4x.h
|
||||
|
||||
nodist_sources = \
|
||||
ext4x.c \
|
||||
ext4x_client.c \
|
||||
ext4x_component.c \
|
||||
ext4x_server_north.c \
|
||||
ext4x_server_south.c
|
||||
|
||||
# Make the output library in this directory, and name it either
|
||||
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
||||
# (for static builds).
|
||||
|
||||
if MCA_BUILD_opal_pmix_ext4x_DSO
|
||||
component_noinst =
|
||||
component_install = mca_pmix_ext4x.la
|
||||
else
|
||||
component_noinst = libmca_pmix_ext4x.la
|
||||
component_install =
|
||||
endif
|
||||
|
||||
#
|
||||
# Generate ext4x sources from the pmix4x component
|
||||
#
|
||||
$(nodist_headers):
|
||||
pmix4xname=`echo $@ | sed -e s/ext4x/pmix4x/g` ; \
|
||||
$(SED) 's/pmix4x/ext4x/g' $(top_srcdir)/opal/mca/pmix/pmix4x/$$pmix4xname > $@
|
||||
|
||||
$(sources): $(nodist_headers)
|
||||
|
||||
$(nodist_sources): $(nodist_headers)
|
||||
pmix4xname=`echo $@ | sed -e s/ext4x/pmix4x/g` ; \
|
||||
$(SED) 's/pmix4x/ext4x/g' $(top_srcdir)/opal/mca/pmix/pmix4x/$$pmix4xname > $@
|
||||
|
||||
mcacomponentdir = $(opallibdir)
|
||||
mcacomponent_LTLIBRARIES = $(component_install)
|
||||
mca_pmix_ext4x_la_SOURCES = $(sources)
|
||||
nodist_mca_pmix_ext4x_la_SOURCES = $(nodist_sources)
|
||||
mca_pmix_ext4x_la_CFLAGS = $(opal_pmix_ext4x_CFLAGS)
|
||||
mca_pmix_ext4x_la_CPPFLAGS =$(opal_pmix_ext4x_CPPFLAGS)
|
||||
mca_pmix_ext4x_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext4x_LDFLAGS)
|
||||
mca_pmix_ext4x_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \
|
||||
$(opal_pmix_ext4x_LIBS)
|
||||
|
||||
noinst_LTLIBRARIES = $(component_noinst)
|
||||
libmca_pmix_ext4x_la_SOURCES =$(sources)
|
||||
nodist_libmca_pmix_ext4x_la_SOURCES = $(nodist_sources)
|
||||
libmca_pmix_ext4x_la_CFLAGS = $(opal_pmix_ext4x_CFLAGS)
|
||||
libmca_pmix_ext4x_la_CPPFLAGS = $(opal_pmix_ext4x_CPPFLAGS)
|
||||
libmca_pmix_ext4x_la_LDFLAGS = -module -avoid-version $(opal_pmix_ext4x_LDFLAGS)
|
||||
libmca_pmix_ext4x_la_LIBADD = $(opal_pmix_ext4x_LIBS)
|
||||
|
||||
clean-local:
|
||||
$(RM) -f $(nodist_sources) $(nodist_headers)
|
63
opal/mca/pmix/ext4x/configure.m4
Обычный файл
63
opal/mca/pmix/ext4x/configure.m4
Обычный файл
@ -0,0 +1,63 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2011-2013 Los Alamos National Security, LLC.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015-2017 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2014-2015 Mellanox Technologies, Inc.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# MCA_pmix_ext4x_CONFIG([action-if-found], [action-if-not-found])
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([MCA_opal_pmix_ext4x_CONFIG],[
|
||||
AC_CONFIG_FILES([opal/mca/pmix/ext4x/Makefile])
|
||||
|
||||
AS_IF([test "$opal_external_pmix_happy" = "yes"],
|
||||
[ # check for the 4.x version
|
||||
AC_MSG_CHECKING([if external component is version 4.x])
|
||||
AS_IF([test "$opal_external_pmix_version" = "4x"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AS_IF([test "$opal_event_external_support" != "yes"],
|
||||
[AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT])
|
||||
AC_MSG_WARN([LIBRARY. THIS LIBRARY MUST POINT TO THE SAME ONE USED])
|
||||
AC_MSG_WARN([TO BUILD PMIX OR ELSE UNPREDICTABLE BEHAVIOR MAY RESULT])
|
||||
AC_MSG_ERROR([PLEASE CORRECT THE CONFIGURE COMMAND LINE AND REBUILD])])
|
||||
opal_pmix_external_4x_happy=yes],
|
||||
[AC_MSG_RESULT([no])
|
||||
opal_pmix_external_4x_happy=no])
|
||||
|
||||
AS_IF([test "$opal_pmix_external_4x_happy" = "yes"],
|
||||
[$1
|
||||
# need to set the wrapper flags for static builds
|
||||
pmix_ext4x_WRAPPER_EXTRA_LDFLAGS=$opal_external_pmix_LDFLAGS
|
||||
pmix_ext4x_WRAPPER_EXTRA_LIBS=$opal_external_pmix_LIBS],
|
||||
[$2])],
|
||||
[$2])
|
||||
|
||||
opal_pmix_ext4x_CPPFLAGS=$opal_external_pmix_CPPFLAGS
|
||||
opal_pmix_ext4x_LDFLAGS=$opal_external_pmix_LDFLAGS
|
||||
opal_pmix_ext4x_LIBS=$opal_external_pmix_LIBS
|
||||
|
||||
AC_SUBST([opal_pmix_ext4x_CPPFLAGS])
|
||||
AC_SUBST([opal_pmix_ext4x_LDFLAGS])
|
||||
AC_SUBST([opal_pmix_ext4x_LIBS])
|
||||
|
||||
])dnl
|
27
opal/mca/pmix/ext4x/ext4x_local.c
Обычный файл
27
opal/mca/pmix/ext4x/ext4x_local.c
Обычный файл
@ -0,0 +1,27 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2017 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2014-2015 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2017 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include "opal_config.h"
|
||||
#include "opal/constants.h"
|
||||
|
||||
#include "ext4x.h"
|
||||
|
||||
int opal_pmix_ext4x_check_evars(void)
|
||||
{
|
||||
/* a dummy function */
|
||||
return OPAL_SUCCESS;
|
||||
}
|
@ -10,7 +10,7 @@
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -1,58 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2017 IBM Corporation. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
EXTRA_DIST = autogen.subdirs
|
||||
|
||||
dist_opaldata_DATA = help-pmix-pmix3x.txt
|
||||
|
||||
SUBDIRS = pmix
|
||||
|
||||
sources = \
|
||||
pmix3x.h \
|
||||
pmix3x_component.c \
|
||||
pmix3x.c \
|
||||
pmix3x_client.c \
|
||||
pmix3x_local.c \
|
||||
pmix3x_server_south.c \
|
||||
pmix3x_server_north.c
|
||||
|
||||
# Make the output library in this directory, and name it either
|
||||
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
||||
# (for static builds).
|
||||
|
||||
if MCA_BUILD_opal_pmix_pmix3x_DSO
|
||||
component_noinst =
|
||||
component_install = mca_pmix_pmix3x.la
|
||||
else
|
||||
component_noinst = libmca_pmix_pmix3x.la
|
||||
component_install =
|
||||
endif
|
||||
|
||||
mcacomponentdir = $(opallibdir)
|
||||
mcacomponent_LTLIBRARIES = $(component_install)
|
||||
mca_pmix_pmix3x_la_SOURCES = $(sources)
|
||||
mca_pmix_pmix3x_la_CFLAGS = $(opal_pmix_pmix3x_CFLAGS)
|
||||
mca_pmix_pmix3x_la_CPPFLAGS = \
|
||||
-I$(srcdir)/pmix/include $(opal_pmix_pmix3x_CPPFLAGS)
|
||||
mca_pmix_pmix3x_la_LDFLAGS = -module -avoid-version $(opal_pmix_pmix3x_LDFLAGS)
|
||||
mca_pmix_pmix3x_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \
|
||||
$(opal_pmix_pmix3x_LIBS)
|
||||
mca_pmix_pmix3x_la_DEPENDENCIES = $(opal_pmix_pmix3x_DEPENDENCIES)
|
||||
|
||||
noinst_LTLIBRARIES = $(component_noinst)
|
||||
libmca_pmix_pmix3x_la_SOURCES =$(sources)
|
||||
libmca_pmix_pmix3x_la_CFLAGS = $(opal_pmix_pmix3x_CFLAGS)
|
||||
libmca_pmix_pmix3x_la_CPPFLAGS = $(opal_pmix_pmix3x_CPPFLAGS)
|
||||
libmca_pmix_pmix3x_la_LDFLAGS = -module -avoid-version $(opal_pmix_pmix3x_LDFLAGS)
|
||||
libmca_pmix_pmix3x_la_LIBADD = $(opal_pmix_pmix3x_LIBS)
|
||||
libmca_pmix_pmix3x_la_DEPENDENCIES = $(opal_pmix_pmix3x_DEPENDENCIES)
|
@ -1,129 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2017 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#ifndef PMIX_DS12_H
|
||||
#define PMIX_DS12_H
|
||||
|
||||
#include <src/include/pmix_config.h>
|
||||
|
||||
|
||||
#include "src/mca/gds/gds.h"
|
||||
#include "src/mca/pshmem/pshmem.h"
|
||||
|
||||
BEGIN_C_DECLS
|
||||
|
||||
#include <src/include/pmix_config.h>
|
||||
#include "src/class/pmix_value_array.h"
|
||||
|
||||
#define INITIAL_SEG_SIZE 4096
|
||||
#define NS_META_SEG_SIZE (1<<22)
|
||||
#define NS_DATA_SEG_SIZE (1<<22)
|
||||
|
||||
#define PMIX_DSTORE_ESH_BASE_PATH "PMIX_DSTORE_ESH_BASE_PATH"
|
||||
|
||||
#ifdef HAVE_PTHREAD_SHARED
|
||||
#define ESH_PTHREAD_LOCK
|
||||
#elif defined HAVE_FCNTL_FLOCK
|
||||
#define ESH_FCNTL_LOCK
|
||||
#else
|
||||
#error No locking mechanism was found
|
||||
#endif
|
||||
|
||||
/* this structs are used to store information about
|
||||
* shared segments addresses locally at each process,
|
||||
* so they are common for different types of segments
|
||||
* and don't have a specific content (namespace's info,
|
||||
* rank's meta info, ranks's data). */
|
||||
|
||||
typedef enum {
|
||||
INITIAL_SEGMENT,
|
||||
NS_META_SEGMENT,
|
||||
NS_DATA_SEGMENT
|
||||
} segment_type;
|
||||
|
||||
typedef struct seg_desc_t seg_desc_t;
|
||||
struct seg_desc_t {
|
||||
segment_type type;
|
||||
pmix_pshmem_seg_t seg_info;
|
||||
uint32_t id;
|
||||
seg_desc_t *next;
|
||||
};
|
||||
|
||||
typedef struct ns_map_data_s ns_map_data_t;
|
||||
typedef struct session_s session_t;
|
||||
typedef struct ns_map_s ns_map_t;
|
||||
|
||||
struct session_s {
|
||||
int in_use;
|
||||
uid_t jobuid;
|
||||
char setjobuid;
|
||||
char *nspace_path;
|
||||
char *lockfile;
|
||||
#ifdef ESH_PTHREAD_LOCK
|
||||
pmix_pshmem_seg_t *rwlock_seg;
|
||||
pthread_rwlock_t *rwlock;
|
||||
#endif
|
||||
int lockfd;
|
||||
seg_desc_t *sm_seg_first;
|
||||
seg_desc_t *sm_seg_last;
|
||||
};
|
||||
|
||||
struct ns_map_data_s {
|
||||
char name[PMIX_MAX_NSLEN+1];
|
||||
size_t tbl_idx;
|
||||
int track_idx;
|
||||
};
|
||||
|
||||
struct ns_map_s {
|
||||
int in_use;
|
||||
ns_map_data_t data;
|
||||
};
|
||||
|
||||
/* initial segment format:
|
||||
* size_t num_elems;
|
||||
* size_t full; //indicate to client that it needs to attach to the next segment
|
||||
* ns_seg_info_t ns_seg_info[max_ns_num];
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
ns_map_data_t ns_map;
|
||||
size_t num_meta_seg;/* read by clients to attach to this number of segments. */
|
||||
size_t num_data_seg;
|
||||
} ns_seg_info_t;
|
||||
|
||||
/* meta segment format:
|
||||
* size_t num_elems;
|
||||
* rank_meta_info meta_info[max_meta_elems];
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
size_t rank;
|
||||
size_t offset;
|
||||
size_t count;
|
||||
} rank_meta_info;
|
||||
|
||||
typedef struct {
|
||||
pmix_value_array_t super;
|
||||
ns_map_data_t ns_map;
|
||||
size_t num_meta_seg;
|
||||
size_t num_data_seg;
|
||||
seg_desc_t *meta_seg;
|
||||
seg_desc_t *data_seg;
|
||||
bool in_use;
|
||||
} ns_track_elem_t;
|
||||
|
||||
/* the component must be visible data for the linker to find it */
|
||||
PMIX_EXPORT extern pmix_gds_base_component_t mca_gds_ds12_component;
|
||||
extern pmix_gds_base_module_t pmix_ds12_module;
|
||||
|
||||
END_C_DECLS
|
||||
|
||||
#endif
|
@ -1,53 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <pthread.h>
|
||||
|
||||
typedef struct {
|
||||
pthread_mutex_t mutex;
|
||||
pthread_cond_t cond;
|
||||
volatile bool active;
|
||||
pmix_status_t status;
|
||||
} mylock_t;
|
||||
|
||||
#define DEBUG_CONSTRUCT_LOCK(l) \
|
||||
do { \
|
||||
pthread_mutex_init(&(l)->mutex, NULL); \
|
||||
pthread_cond_init(&(l)->cond, NULL); \
|
||||
(l)->active = true; \
|
||||
(l)->status = PMIX_SUCCESS; \
|
||||
} while(0)
|
||||
|
||||
#define DEBUG_DESTRUCT_LOCK(l) \
|
||||
do { \
|
||||
pthread_mutex_destroy(&(l)->mutex); \
|
||||
pthread_cond_destroy(&(l)->cond); \
|
||||
} while(0)
|
||||
|
||||
#define DEBUG_WAIT_THREAD(lck) \
|
||||
do { \
|
||||
pthread_mutex_lock(&(lck)->mutex); \
|
||||
while ((lck)->active) { \
|
||||
pthread_cond_wait(&(lck)->cond, &(lck)->mutex); \
|
||||
} \
|
||||
pthread_mutex_unlock(&(lck)->mutex); \
|
||||
} while(0)
|
||||
|
||||
#define DEBUG_WAKEUP_THREAD(lck) \
|
||||
do { \
|
||||
pthread_mutex_lock(&(lck)->mutex); \
|
||||
(lck)->active = false; \
|
||||
pthread_cond_broadcast(&(lck)->cond); \
|
||||
pthread_mutex_unlock(&(lck)->mutex); \
|
||||
} while(0)
|
58
opal/mca/pmix/pmix4x/Makefile.am
Обычный файл
58
opal/mca/pmix/pmix4x/Makefile.am
Обычный файл
@ -0,0 +1,58 @@
|
||||
#
|
||||
# Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2017 IBM Corporation. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
EXTRA_DIST = autogen.subdirs
|
||||
|
||||
dist_opaldata_DATA = help-pmix-pmix4x.txt
|
||||
|
||||
SUBDIRS = pmix
|
||||
|
||||
sources = \
|
||||
pmix4x.h \
|
||||
pmix4x_component.c \
|
||||
pmix4x.c \
|
||||
pmix4x_client.c \
|
||||
pmix4x_local.c \
|
||||
pmix4x_server_south.c \
|
||||
pmix4x_server_north.c
|
||||
|
||||
# Make the output library in this directory, and name it either
|
||||
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
||||
# (for static builds).
|
||||
|
||||
if MCA_BUILD_opal_pmix_pmix4x_DSO
|
||||
component_noinst =
|
||||
component_install = mca_pmix_pmix4x.la
|
||||
else
|
||||
component_noinst = libmca_pmix_pmix4x.la
|
||||
component_install =
|
||||
endif
|
||||
|
||||
mcacomponentdir = $(opallibdir)
|
||||
mcacomponent_LTLIBRARIES = $(component_install)
|
||||
mca_pmix_pmix4x_la_SOURCES = $(sources)
|
||||
mca_pmix_pmix4x_la_CFLAGS = $(opal_pmix_pmix4x_CFLAGS)
|
||||
mca_pmix_pmix4x_la_CPPFLAGS = \
|
||||
-I$(srcdir)/pmix/include $(opal_pmix_pmix4x_CPPFLAGS)
|
||||
mca_pmix_pmix4x_la_LDFLAGS = -module -avoid-version $(opal_pmix_pmix4x_LDFLAGS)
|
||||
mca_pmix_pmix4x_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \
|
||||
$(opal_pmix_pmix4x_LIBS)
|
||||
mca_pmix_pmix4x_la_DEPENDENCIES = $(opal_pmix_pmix4x_DEPENDENCIES)
|
||||
|
||||
noinst_LTLIBRARIES = $(component_noinst)
|
||||
libmca_pmix_pmix4x_la_SOURCES =$(sources)
|
||||
libmca_pmix_pmix4x_la_CFLAGS = $(opal_pmix_pmix4x_CFLAGS)
|
||||
libmca_pmix_pmix4x_la_CPPFLAGS = $(opal_pmix_pmix4x_CPPFLAGS)
|
||||
libmca_pmix_pmix4x_la_LDFLAGS = -module -avoid-version $(opal_pmix_pmix4x_LDFLAGS)
|
||||
libmca_pmix_pmix4x_la_LIBADD = $(opal_pmix_pmix4x_LIBS)
|
||||
libmca_pmix_pmix4x_la_DEPENDENCIES = $(opal_pmix_pmix4x_DEPENDENCIES)
|
6
opal/mca/pmix/pmix4x/common_sym_whitelist.txt
Обычный файл
6
opal/mca/pmix/pmix4x/common_sym_whitelist.txt
Обычный файл
@ -0,0 +1,6 @@
|
||||
# Ignore symbols in this component that are auto-generated and we
|
||||
# can't do anything about them (e.g., flex/bison symbols).
|
||||
pmix_util_keyval_yyleng
|
||||
pmix_util_keyval_yytext
|
||||
pmix_show_help_yyleng
|
||||
pmix_show_help_yytext
|
@ -23,19 +23,19 @@
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# MCA_pmix_pmix3x_CONFIG([action-if-found], [action-if-not-found])
|
||||
# MCA_pmix_pmix4x_CONFIG([action-if-found], [action-if-not-found])
|
||||
# -----------------------------------------------------------
|
||||
AC_DEFUN([MCA_opal_pmix_pmix3x_CONFIG],[
|
||||
AC_CONFIG_FILES([opal/mca/pmix/pmix3x/Makefile])
|
||||
AC_DEFUN([MCA_opal_pmix_pmix4x_CONFIG],[
|
||||
AC_CONFIG_FILES([opal/mca/pmix/pmix4x/Makefile])
|
||||
|
||||
OPAL_VAR_SCOPE_PUSH([PMIX_VERSION opal_pmix_pmix3x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix3x_save_LDFLAGS opal_pmix_pmix3x_save_LIBS opal_pmix_pmix3x_basedir opal_pmix_pmix3x_args opal_pmix_pmix3x_happy pmix_pmix3x_status_filename])
|
||||
OPAL_VAR_SCOPE_PUSH([PMIX_VERSION opal_pmix_pmix4x_save_CPPFLAGS opal_pmix_pmix2_save_CFLAGS opal_pmix_pmix4x_save_LDFLAGS opal_pmix_pmix4x_save_LIBS opal_pmix_pmix4x_basedir opal_pmix_pmix4x_args opal_pmix_pmix4x_happy pmix_pmix4x_status_filename])
|
||||
|
||||
opal_pmix_pmix3x_basedir=opal/mca/pmix/pmix3x
|
||||
opal_pmix_pmix4x_basedir=opal/mca/pmix/pmix4x
|
||||
|
||||
opal_pmix_pmix3x_save_CFLAGS=$CFLAGS
|
||||
opal_pmix_pmix3x_save_CPPFLAGS=$CPPFLAGS
|
||||
opal_pmix_pmix3x_save_LDFLAGS=$LDFLAGS
|
||||
opal_pmix_pmix3x_save_LIBS=$LIBS
|
||||
opal_pmix_pmix4x_save_CFLAGS=$CFLAGS
|
||||
opal_pmix_pmix4x_save_CPPFLAGS=$CPPFLAGS
|
||||
opal_pmix_pmix4x_save_LDFLAGS=$LDFLAGS
|
||||
opal_pmix_pmix4x_save_LIBS=$LIBS
|
||||
|
||||
AC_ARG_ENABLE([install-libpmix],
|
||||
[AC_HELP_STRING([--enable-install-libpmix],
|
||||
@ -47,72 +47,72 @@ AC_DEFUN([MCA_opal_pmix_pmix3x_CONFIG],[
|
||||
AC_MSG_CHECKING([if PMIx timing is enabled])
|
||||
if test "$enable_pmix_timing" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
opal_pmix_pmix3x_timing_flag=--enable-pmix-timing
|
||||
opal_pmix_pmix4x_timing_flag=--enable-pmix-timing
|
||||
else
|
||||
AC_MSG_RESULT([no (disabled)])
|
||||
opal_pmix_pmix3x_timing_flag=--disable-pmix-timing
|
||||
opal_pmix_pmix4x_timing_flag=--disable-pmix-timing
|
||||
fi
|
||||
|
||||
opal_pmix_pmix3x_args="$opal_pmix_pmix3x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\""
|
||||
opal_pmix_pmix4x_args="$opal_pmix_pmix4x_timing_flag --without-tests-examples --disable-pmix-binaries --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\""
|
||||
AS_IF([test "$enable_debug" = "yes"],
|
||||
[opal_pmix_pmix3x_args="--enable-debug $opal_pmix_pmix3x_args"
|
||||
[opal_pmix_pmix4x_args="--enable-debug $opal_pmix_pmix4x_args"
|
||||
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"],
|
||||
[opal_pmix_pmix3x_args="--disable-debug $opal_pmix_pmix3x_args"
|
||||
[opal_pmix_pmix4x_args="--disable-debug $opal_pmix_pmix4x_args"
|
||||
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"])
|
||||
AC_MSG_CHECKING([if want to install standalone libpmix])
|
||||
AS_IF([test "$enable_install_libpmix" == "yes"],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
opal_pmix_pmix3x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX3X_ --enable-embedded-mode $opal_pmix_pmix3x_args"])
|
||||
opal_pmix_pmix4x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX4X_ --enable-embedded-mode $opal_pmix_pmix4x_args"])
|
||||
AS_IF([test "$with_devel_headers" = "yes"],
|
||||
[opal_pmix_pmix3x_args="--with-devel-headers $opal_pmix_pmix3x_args"])
|
||||
[opal_pmix_pmix4x_args="--with-devel-headers $opal_pmix_pmix4x_args"])
|
||||
CPPFLAGS="-I$OPAL_TOP_SRCDIR -I$OPAL_TOP_BUILDDIR -I$OPAL_TOP_SRCDIR/opal/include -I$OPAL_TOP_BUILDDIR/opal/include $CPPFLAGS"
|
||||
|
||||
OPAL_CONFIG_SUBDIR([$opal_pmix_pmix3x_basedir/pmix],
|
||||
[$opal_pmix_pmix3x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'],
|
||||
[opal_pmix_pmix3x_happy=1], [opal_pmix_pmix3x_happy=0])
|
||||
OPAL_CONFIG_SUBDIR([$opal_pmix_pmix4x_basedir/pmix],
|
||||
[$opal_pmix_pmix4x_args $opal_subdir_args 'CFLAGS=$CFLAGS' 'CPPFLAGS=$CPPFLAGS'],
|
||||
[opal_pmix_pmix4x_happy=1], [opal_pmix_pmix4x_happy=0])
|
||||
|
||||
CFLAGS=$opal_pmix_pmix3x_save_CFLAGS
|
||||
CPPFLAGS=$opal_pmix_pmix3x_save_CPPFLAGS
|
||||
LDFLAGS=$opal_pmix_pmix3x_save_LDFLAGS
|
||||
LIBS=$opal_pmix_pmix3x_save_LIBS
|
||||
CFLAGS=$opal_pmix_pmix4x_save_CFLAGS
|
||||
CPPFLAGS=$opal_pmix_pmix4x_save_CPPFLAGS
|
||||
LDFLAGS=$opal_pmix_pmix4x_save_LDFLAGS
|
||||
LIBS=$opal_pmix_pmix4x_save_LIBS
|
||||
|
||||
# See if we are using the internal version. NOTE: we still did all the
|
||||
# above configury so that all the proper GNU Autotools
|
||||
# infrastructure is setup properly (e.g., w.r.t. SUBDIRS=pmix in
|
||||
# this directory's Makefile.am, we still need the Autotools "make
|
||||
# distclean" infrastructure to work properly).
|
||||
AC_MSG_CHECKING([if v3.x component is to be used])
|
||||
AC_MSG_CHECKING([if v4.x component is to be used])
|
||||
AS_IF([test "$opal_external_pmix_happy" = "yes"],
|
||||
[AC_MSG_RESULT([no - disqualifying this component])
|
||||
opal_pmix_pmix3x_happy=0],
|
||||
[AC_MSG_RESULT([yes - using the internal v3.x library])
|
||||
opal_pmix_pmix4x_happy=0],
|
||||
[AC_MSG_RESULT([yes - using the internal v4.x library])
|
||||
# Build flags for our Makefile.am
|
||||
opal_pmix_pmix3x_LDFLAGS=
|
||||
opal_pmix_pmix3x_LIBS="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/src/libpmix.la"
|
||||
opal_pmix_pmix3x_CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/include -I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix3x_basedir/pmix/include -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix3x_basedir/pmix"
|
||||
opal_pmix_pmix3x_DEPENDENCIES="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/src/libpmix.la"])
|
||||
opal_pmix_pmix4x_LDFLAGS=
|
||||
opal_pmix_pmix4x_LIBS="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/pmix/src/libpmix.la"
|
||||
opal_pmix_pmix4x_CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/pmix/include -I$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/pmix -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix4x_basedir/pmix/include -I$OPAL_TOP_SRCDIR/$opal_pmix_pmix4x_basedir/pmix"
|
||||
opal_pmix_pmix4x_DEPENDENCIES="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/pmix/src/libpmix.la"])
|
||||
|
||||
AC_SUBST([opal_pmix_pmix3x_LIBS])
|
||||
AC_SUBST([opal_pmix_pmix3x_CPPFLAGS])
|
||||
AC_SUBST([opal_pmix_pmix3x_LDFLAGS])
|
||||
AC_SUBST([opal_pmix_pmix3x_DEPENDENCIES])
|
||||
AC_SUBST([opal_pmix_pmix4x_LIBS])
|
||||
AC_SUBST([opal_pmix_pmix4x_CPPFLAGS])
|
||||
AC_SUBST([opal_pmix_pmix4x_LDFLAGS])
|
||||
AC_SUBST([opal_pmix_pmix4x_DEPENDENCIES])
|
||||
|
||||
# Finally, add some flags to the wrapper compiler so that our
|
||||
# headers can be found.
|
||||
pmix_pmix3x_status_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix3x_basedir/pmix/config.status"
|
||||
pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix3x_status_filename | cut -d\" -f4`
|
||||
pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix3x_status_filename | cut -d\" -f4`
|
||||
pmix_pmix3x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix3x_status_filename | cut -d\" -f4`
|
||||
pmix_pmix4x_status_filename="$OPAL_TOP_BUILDDIR/$opal_pmix_pmix4x_basedir/pmix/config.status"
|
||||
pmix_pmix4x_WRAPPER_EXTRA_CPPFLAGS=`egrep PMIX_EMBEDDED_CPPFLAGS $pmix_pmix4x_status_filename | cut -d\" -f4`
|
||||
pmix_pmix4x_WRAPPER_EXTRA_LDFLAGS=`egrep PMIX_EMBEDDED_LDFLAGS $pmix_pmix4x_status_filename | cut -d\" -f4`
|
||||
pmix_pmix4x_WRAPPER_EXTRA_LIBS=`egrep PMIX_EMBEDDED_LIBS $pmix_pmix4x_status_filename | cut -d\" -f4`
|
||||
|
||||
AC_MSG_CHECKING([PMIx extra wrapper CPPFLAGS])
|
||||
AC_MSG_RESULT([$pmix_pmix3x_WRAPPER_EXTRA_CPPFLAGS])
|
||||
AC_MSG_RESULT([$pmix_pmix4x_WRAPPER_EXTRA_CPPFLAGS])
|
||||
AC_MSG_CHECKING([PMIx extra wrapper LDFLAGS])
|
||||
AC_MSG_RESULT([$pmix_pmix3x_WRAPPER_EXTRA_LDFLAGS])
|
||||
AC_MSG_RESULT([$pmix_pmix4x_WRAPPER_EXTRA_LDFLAGS])
|
||||
AC_MSG_CHECKING([PMIx extra wrapper LIBS])
|
||||
AC_MSG_RESULT([$pmix_pmix3x_WRAPPER_EXTRA_LIBS])
|
||||
AC_MSG_RESULT([$pmix_pmix4x_WRAPPER_EXTRA_LIBS])
|
||||
|
||||
AS_IF([test $opal_pmix_pmix3x_happy -eq 1],
|
||||
AS_IF([test $opal_pmix_pmix4x_happy -eq 1],
|
||||
[$1],
|
||||
[$2])
|
||||
|
32
opal/mca/pmix/pmix4x/help-pmix-pmix4x.txt
Обычный файл
32
opal/mca/pmix/pmix4x/help-pmix-pmix4x.txt
Обычный файл
@ -0,0 +1,32 @@
|
||||
# -*- text -*-
|
||||
#
|
||||
# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
# This is the US/English help file for Open MPI MCA error messages.
|
||||
#
|
||||
[evars]
|
||||
We found conflicting directives regarding the location of OPAL vs PMIx
|
||||
installation directories:
|
||||
|
||||
%s
|
||||
|
||||
This usually indicates that OMPI was configured to use its internal copy
|
||||
of PMIx, but another installation of PMIx is also in use on this system
|
||||
and could potentially cause confusion between the two sets of plugins.
|
||||
Please either unset the indicated environment variables, or configure
|
||||
OMPI to use the external PMIx installation.
|
242
opal/mca/pmix/pmix4x/pmix/HACKING
Обычный файл
242
opal/mca/pmix/pmix4x/pmix/HACKING
Обычный файл
@ -0,0 +1,242 @@
|
||||
Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
University Research and Technology
|
||||
Corporation. All rights reserved.
|
||||
Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
of Tennessee Research Foundation. All rights
|
||||
reserved.
|
||||
Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
University of Stuttgart. All rights reserved.
|
||||
Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
All rights reserved.
|
||||
Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
|
||||
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
$COPYRIGHT$
|
||||
|
||||
Additional copyrights may follow
|
||||
|
||||
$HEADER$
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
This file is here for those who are building/exploring PMIx in its
|
||||
source code form, most likely through a developer's tree (i.e., a Git
|
||||
checkout).
|
||||
|
||||
|
||||
Debugging vs. Optimized Builds
|
||||
==============================
|
||||
|
||||
If you are building PMIx from a Git checkout, the default build
|
||||
includes a lot of debugging features. This happens automatically when
|
||||
when configure detects the hidden ".git" Git meta directory (that is
|
||||
present in all Git checkouts) in your source tree, and therefore
|
||||
activates a number of developer-only debugging features in the PMIx
|
||||
code base.
|
||||
|
||||
By definition, debugging builds will perform [much] slower than
|
||||
optimized builds of PMIx. You should *NOT* conduct timing tests
|
||||
or try to run production performance numbers with debugging builds.
|
||||
|
||||
If you wish to build an optimized version of PMIx from a
|
||||
developer's checkout, you have three main options:
|
||||
|
||||
1. Use the "--with-platform=optimized" switch to configure. This is
|
||||
the preferred (and probably easiest) method. For example:
|
||||
|
||||
shell$ git clone git@github.com:pmix/master.git pmix
|
||||
shell$ cd pmix
|
||||
shell$ ./autogen.pl
|
||||
shell$ mkdir build
|
||||
shell$ cd build
|
||||
shell$ ./configure --with-platform=optimized ...
|
||||
[...lots of output...]
|
||||
shell$ make all install
|
||||
|
||||
2. Use a VPATH build. Simply build PMIx from a different
|
||||
directory than the source tree -- one where the .git subdirectory
|
||||
is not present. For example:
|
||||
|
||||
shell$ git clone git@github.com:pmix/master.git pmix
|
||||
shell$ cd pmix
|
||||
shell$ ./autogen.pl
|
||||
shell$ mkdir build
|
||||
shell$ cd build
|
||||
shell$ ../configure ...
|
||||
[...lots of output...]
|
||||
shell$ make all install
|
||||
|
||||
3. Manually specify configure options to disable all the debugging
|
||||
options (note that this is exactly what "--with-platform=optimized"
|
||||
does behind the scenes). You'll need to carefully examine the
|
||||
output of "./configure --help" to see which options to disable.
|
||||
They are all listed, but some are less obvious than others (they
|
||||
are not listed here because it is a changing set of flags; by
|
||||
Murphy's Law, listing them here will pretty much guarantee that
|
||||
this file will get out of date):
|
||||
|
||||
shell$ ./configure --disable-debug ...
|
||||
[...lots of output...]
|
||||
shell$ make all install
|
||||
|
||||
|
||||
Use of GNU Autoconf, Automake, and Libtool (and m4)
|
||||
===================================================
|
||||
|
||||
This procedure is *ONLY* necessary if you are building from a
|
||||
developer's tree. If you have a PMIx distribution tarball, this
|
||||
procedure is unnecessary -- you can (and should) skip reading this
|
||||
section.
|
||||
|
||||
If you are building PMIx from a developer's tree, you must first
|
||||
install fairly recent versions of the GNU tools Autoconf, Automake,
|
||||
and Libtool (and possibly GNU m4, because recent versions of Autoconf
|
||||
have specific GNU m4 version requirements). The specific versions
|
||||
required depend on if you are using the master or a release branch (and
|
||||
which release branch you are using). The specific versions can be
|
||||
found at:
|
||||
|
||||
https://pmix.github.io/pmix/faq/building
|
||||
|
||||
You can check what versions of the autotools you have installed with
|
||||
the following:
|
||||
|
||||
shell$ m4 --version
|
||||
shell$ autoconf --version
|
||||
shell$ automake --version
|
||||
shell$ libtoolize --version
|
||||
|
||||
To strengthen the above point: the core PMIx developers typically
|
||||
use very, very recent versions of the GNU tools. There are known bugs
|
||||
in older versions of the GNU tools that PMIx no longer compensates
|
||||
for (it seemed senseless to indefinitely support patches for ancient
|
||||
versions of Autoconf, for example). You *WILL* have problems if you
|
||||
do not use recent versions of the GNU tools.
|
||||
|
||||
If you need newer versions, you are *strongly* encouraged to heed the
|
||||
following advice:
|
||||
|
||||
NOTE: On MacOS/X, the default "libtool" program is different than the
|
||||
GNU libtool. You must download and install the GNU version
|
||||
(e.g., via MacPorts, Homebrew, or some other mechanism).
|
||||
|
||||
1. Unless your OS distribution has easy-to-use binary installations,
|
||||
the sources can be can be downloaded from:
|
||||
|
||||
ftp://ftp.gnu.org/gnu/autoconf/
|
||||
ftp://ftp.gnu.org/gnu/automake/
|
||||
ftp://ftp.gnu.org/gnu/libtool/
|
||||
and if you need it:
|
||||
ftp://ftp.gnu.org/gnu/m4/
|
||||
|
||||
NOTE: It is certainly easiest to download/build/install all four of
|
||||
these tools together. But note that PMIx has no specific m4
|
||||
requirements; it is only listed here because Autoconf requires
|
||||
minimum versions of GNU m4. Hence, you may or may not *need* to
|
||||
actually install a new version of GNU m4. That being said, if you
|
||||
are confused or don't know, just install the latest GNU m4 with the
|
||||
rest of the GNU Autotools and everything will work out fine.
|
||||
|
||||
2. Build and install the tools in the following order:
|
||||
|
||||
2a. m4
|
||||
2b. Autoconf
|
||||
2c. Automake
|
||||
2d. Libtool
|
||||
|
||||
3. You MUST install the last three tools (Autoconf, Automake, Libtool)
|
||||
into the same prefix directory. These three tools are somewhat
|
||||
inter-related, and if they're going to be used together, they MUST
|
||||
share a common installation prefix.
|
||||
|
||||
You can install m4 anywhere as long as it can be found in the path;
|
||||
it may be convenient to install it in the same prefix as the other
|
||||
three. Or you can use any recent-enough m4 that is in your path.
|
||||
|
||||
3a. It is *strongly* encouraged that you do not install your new
|
||||
versions over the OS-installed versions. This could cause
|
||||
other things on your system to break. Instead, install into
|
||||
$HOME/local, or /usr/local, or wherever else you tend to
|
||||
install "local" kinds of software.
|
||||
3b. In doing so, be sure to prefix your $path with the directory
|
||||
where they are installed. For example, if you install into
|
||||
$HOME/local, you may want to edit your shell startup file
|
||||
(.bashrc, .cshrc, .tcshrc, etc.) to have something like:
|
||||
|
||||
# For bash/sh:
|
||||
export PATH=$HOME/local/bin:$PATH
|
||||
# For csh/tcsh:
|
||||
set path = ($HOME/local/bin $path)
|
||||
|
||||
3c. Ensure to set your $path *BEFORE* you configure/build/install
|
||||
the four packages.
|
||||
|
||||
4. All four packages require two simple commands to build and
|
||||
install (where PREFIX is the prefix discussed in 3, above).
|
||||
|
||||
shell$ cd m4-1.4.13
|
||||
shell$ ./configure --prefix=PREFIX
|
||||
shell$ make; make install
|
||||
|
||||
--> If you are using the csh or tcsh shells, be sure to run the
|
||||
"rehash" command after you install each package.
|
||||
|
||||
shell$ cd ../autoconf-2.68
|
||||
shell$ ./configure --prefix=PREFIX
|
||||
shell$ make; make install
|
||||
|
||||
--> If you are using the csh or tcsh shells, be sure to run the
|
||||
"rehash" command after you install each package.
|
||||
|
||||
shell$ cd ../automake-1.11.1
|
||||
shell$ ./configure --prefix=PREFIX
|
||||
shell$ make; make install
|
||||
|
||||
--> If you are using the csh or tcsh shells, be sure to run the
|
||||
"rehash" command after you install each package.
|
||||
|
||||
shell$ cd ../libtool-2.2.8
|
||||
shell$ ./configure --prefix=PREFIX
|
||||
shell$ make; make install
|
||||
|
||||
--> If you are using the csh or tcsh shells, be sure to run the
|
||||
"rehash" command after you install each package.
|
||||
|
||||
m4, Autoconf and Automake build and install very quickly; Libtool will
|
||||
take a minute or two.
|
||||
|
||||
5. You can now run PMIx’s top-level "autogen.sh" script. This script
|
||||
will invoke the GNU Autoconf, Automake, and Libtool commands in the
|
||||
proper order and setup to run PMIx's top-level "configure" script.
|
||||
|
||||
5a. You generally need to run autogen.sh only when the top-level
|
||||
file "configure.ac" changes, or any files in the config/ or
|
||||
<project>/config/ directories change (these directories are
|
||||
where a lot of "include" files for PMI’xs configure script
|
||||
live).
|
||||
|
||||
5b. You do *NOT* need to re-run autogen.sh if you modify a
|
||||
Makefile.am.
|
||||
|
||||
Use of Flex
|
||||
===========
|
||||
|
||||
Flex may be used during the compilation of a developer's checkout (it is
|
||||
not used to build official distribution tarballs). Other flavors of
|
||||
lex are *not* supported: given the choice of making parsing code
|
||||
portable between all flavors of lex and doing more interesting work on
|
||||
PMIx, we greatly prefer the latter.
|
||||
|
||||
Note that no testing has been performed to see what the minimum
|
||||
version of Flex is required by PMIx. We suggest that you use
|
||||
v2.5.35 at the earliest.
|
||||
|
||||
Note that the flex-generated code generates some compiler warnings on
|
||||
some platforms, but the warnings do not seem to be consistent or
|
||||
uniform on all platforms, compilers, and flex versions. As such, we
|
||||
have done little to try to remove those warnings.
|
||||
|
||||
If you do not have Flex installed, it can be downloaded from the
|
||||
following URL:
|
||||
|
||||
http://flex.sourceforge.net/
|
@ -9,7 +9,7 @@ Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
All rights reserved.
|
||||
Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
|
||||
Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
||||
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
$COPYRIGHT$
|
||||
|
||||
Additional copyrights may follow
|
@ -26,7 +26,7 @@ Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved.
|
||||
Copyright (c) 2006-2010 The University of Houston. All rights reserved.
|
||||
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
|
||||
Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
|
||||
Copyright (c) 2007-2018 IBM Corporation. All rights reserved.
|
||||
Copyright (c) 2007-2010 IBM Corporation. All rights reserved.
|
||||
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
|
||||
Centre, Federal Republic of Germany
|
||||
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
|
||||
@ -36,7 +36,7 @@ Copyright (c) 2008-2009 Institut National de Recherche en
|
||||
Informatique. All rights reserved.
|
||||
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
|
||||
All rights reserved.
|
||||
Copyright (c) 2007-2018 Mellanox Technologies. All rights reserved.
|
||||
Copyright (c) 2007-2009 Mellanox Technologies. All rights reserved.
|
||||
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
|
||||
Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved.
|
||||
Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
@ -45,7 +45,7 @@ Copyright (c) 2010 ARM ltd. All rights reserved.
|
||||
Copyright (c) 2010-2011 Alex Brick <bricka@ccs.neu.edu>. All rights reserved.
|
||||
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
|
||||
reserved.
|
||||
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved.
|
||||
|
||||
$COPYRIGHT$
|
@ -23,13 +23,13 @@
|
||||
# via AC_CONFIG_MACRO_DIR in configure.ac.
|
||||
ACLOCAL_AMFLAGS = -I ./config
|
||||
|
||||
SUBDIRS = config contrib include src etc
|
||||
SUBDIRS = config contrib include src etc bindings
|
||||
|
||||
|
||||
headers =
|
||||
sources =
|
||||
nodist_headers =
|
||||
EXTRA_DIST = AUTHORS README INSTALL VERSION LICENSE autogen.pl
|
||||
EXTRA_DIST = AUTHORS README HACKING INSTALL VERSION LICENSE autogen.pl
|
||||
|
||||
# Only install the valgrind suppressions file and man pages
|
||||
# if we're building in standalone mode
|
@ -21,94 +21,8 @@ example, a bug might be fixed in the master, and then moved to the
|
||||
current release as well as the "stable" bug fix release branch.
|
||||
|
||||
|
||||
3.0.1 -- 23 Aug 2018
|
||||
----------------------
|
||||
**** DEPRECATION WARNING: The pmix_info_array_t struct was
|
||||
**** initially marked for deprecation in the v2.x series.
|
||||
**** We failed to provide clear warning at that time. This
|
||||
**** therefore serves as warning of intended removal of
|
||||
**** pmix_info_array_t in the future v4 release series.
|
||||
- Fixed memory corruption bug in event notification
|
||||
system due to uninitialized variable
|
||||
- Add numeric version field to pmix_version.h
|
||||
- Transfer all cached data to client dstore upon first connect
|
||||
- Implement missing job control and sensor APIs
|
||||
|
||||
|
||||
3.0.0 -- 6 July 2018
|
||||
Master (not on release branches yet)
|
||||
------------------------------------
|
||||
**** NOTE: This release implements the complete PMIX v3.0 Standard
|
||||
**** and therefore includes a number of new APIs and features. These
|
||||
**** can be tracked by their RFC's on the community website:
|
||||
**** https://pmix.org/pmix-standard.
|
||||
- Added blocking forms of several existing APIs:
|
||||
- PMIx_Log
|
||||
- PMIx_Allocation_request
|
||||
- PMIx_Job_control
|
||||
- PMIx_Process_monitor
|
||||
- Added support for getting/validating security credentials
|
||||
- PMIx_Get_credential, PMIx_Validate_credential
|
||||
- Extended support for debuggers/tools
|
||||
- Added IO forwarding support allowing tools to request
|
||||
forwarding of output from specific application procs,
|
||||
and to forward their input to specified target procs
|
||||
- Extended tool attributes to support synchronization
|
||||
during startup of applications. This includes the
|
||||
ability to modify an application's environment
|
||||
(including support for LD_PRELOAD) and define an
|
||||
alternate fork/exec agent
|
||||
- Added ability for a tool to switch server connections
|
||||
so it can first connect to a system-level server to
|
||||
launch a starter program, and then reconnect to that
|
||||
starter for debugging purposes
|
||||
- Extended network support to collect network inventory by
|
||||
either rolling it up from individual nodes or by direct
|
||||
query of fabric managers. Added an API by which the
|
||||
host can inject any rolled up inventory into the local
|
||||
PMIx server. Applications and/or the host RM can access
|
||||
the inventory via the PMIx_Query function.
|
||||
- Added the ability for applications and/or tools to register
|
||||
files and directories for cleanup upon their termination
|
||||
- Added support for inter-library coordination within a process
|
||||
- Extended PMIx_Log support by adding plugin support for new
|
||||
channels, including local/remote syslog and email. Added
|
||||
attributes to query available channels and to tag and
|
||||
format output.
|
||||
- Fix several memory and file descriptor leaks
|
||||
|
||||
|
||||
2.1.3 -- 23 Aug 2018
|
||||
----------------------
|
||||
- Fixed memory corruption bug in event notification
|
||||
system due to uninitialized variable
|
||||
- Add numeric version definition
|
||||
- Transfer all cached data to client dstore upon first connect
|
||||
|
||||
|
||||
2.1.2 -- 6 July 2018
|
||||
----------------------
|
||||
- Added PMIX_VERSION_RELEASE string to pmix_version.h
|
||||
- Added PMIX_SPAWNED and PMIX_PARENT_ID keys to all procs
|
||||
started via PMIx_Spawn
|
||||
- Fixed faulty compares in PMI/PMI2 tests
|
||||
- Fixed bug in direct modex for data on remote node
|
||||
- Correctly transfer all cached job info to the client's
|
||||
shared memory region upon first connection
|
||||
- Fix potential deadlock in PMIx_server_init in an error case
|
||||
- Fix uninitialized variable
|
||||
- Fix several memory and file descriptor leaks
|
||||
|
||||
|
||||
2.1.1 -- 23 Feb 2018
|
||||
----------------------
|
||||
- Fix direct modex when receiving new nspace
|
||||
- Resolve direct modex of job-level info
|
||||
- Fix a bug in attribute configuration checks
|
||||
- Fix a couple of bugs in unpacking of direct modex job-level data
|
||||
- Correcly handle application setup data during "instant on" launch
|
||||
- add a PMIX_BYTE_OBJECT_LOAD convenience macro
|
||||
- Fix two early "free" bugs
|
||||
- Add an example PMI-1 client program
|
||||
|
||||
|
||||
2.1.0 -- 1 Feb 2018
|
||||
@ -126,7 +40,7 @@ current release as well as the "stable" bug fix release branch.
|
||||
sets of numbers
|
||||
|
||||
|
||||
2.0.3 -- 1 Feb 2018
|
||||
2.0.3 -- TBD
|
||||
----------------------
|
||||
- Fix event notification so all sides of multi-library get notified
|
||||
of other library's existence
|
@ -15,7 +15,7 @@ Copyright (c) 2007 Myricom, Inc. All rights reserved.
|
||||
Copyright (c) 2008 IBM Corporation. All rights reserved.
|
||||
Copyright (c) 2010 Oak Ridge National Labs. All rights reserved.
|
||||
Copyright (c) 2011 University of Houston. All rights reserved.
|
||||
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
$COPYRIGHT$
|
||||
|
||||
Additional copyrights may follow
|
||||
@ -25,14 +25,13 @@ $HEADER$
|
||||
===========================================================================
|
||||
|
||||
When submitting questions and problems, be sure to include as much
|
||||
extra information as possible. The issues template on the
|
||||
GitHub repo provides directions:
|
||||
extra information as possible. This web page details all the
|
||||
information that we request in order to provide assistance:
|
||||
|
||||
http://github.com/pmix/pmix/issues
|
||||
http://pmix.github.io/pmix/community/help/
|
||||
|
||||
The best way to report bugs, send comments, or ask questions is to
|
||||
open an issue on the repo. Alternatively, you are welcome to sign
|
||||
up for the developer/user mailing list:
|
||||
sign up on the PMIx mailing list, which is hosted by GoogleGroups:
|
||||
|
||||
pmix@googlegroups.com
|
||||
|
||||
@ -49,7 +48,7 @@ Thanks for your time.
|
||||
|
||||
More information is available in the PMIx FAQ:
|
||||
|
||||
https://pmix.org/support
|
||||
http://pmix.github.io/pmix/faq/
|
||||
|
||||
We are in early days, so please be patient - info will grow as questions
|
||||
are addressed.
|
||||
@ -64,7 +63,7 @@ General notes
|
||||
|
||||
- The majority of PMIx's documentation is here in this file, the
|
||||
included man pages, and on the web site FAQ
|
||||
(https://pmix.org/support). This will eventually be
|
||||
(http://pmix.github.io/pmix/faq). This will eventually be
|
||||
supplemented with cohesive installation and user documentation files.
|
||||
|
||||
- Systems that have been tested are:
|
||||
@ -313,7 +312,7 @@ Common Questions
|
||||
Many common questions about building and using PMIx are answered
|
||||
on the FAQ:
|
||||
|
||||
https://pmix.org/support
|
||||
http://pmix.github.io/pmix/faq/
|
||||
|
||||
===========================================================================
|
||||
|
||||
@ -324,10 +323,10 @@ Found a bug? Got a question? Want to make a suggestion? Want to
|
||||
contribute to PMIx? Please let us know!
|
||||
|
||||
When submitting questions and problems, be sure to include as much
|
||||
extra information as possible. Again, the issues template is your
|
||||
friend in this regard!
|
||||
extra information as possible. This web page details all the
|
||||
information that we request in order to provide assistance:
|
||||
|
||||
https://github.com/pmix/pmix/issues
|
||||
http://pmix.github.io/pmix/community/help/
|
||||
|
||||
Questions and comments should generally be sent to the PMIx mailing
|
||||
list (pmix@googlegroups.com). Because of spam, only
|
||||
@ -339,4 +338,4 @@ user's list:
|
||||
|
||||
https://groups.google.com/d/forum/pmix
|
||||
|
||||
Make today a PMIx day!
|
||||
Make today an PMIx day!
|
@ -13,9 +13,9 @@
|
||||
# major, minor, and release are generally combined in the form
|
||||
# <major>.<minor>.<release>.
|
||||
|
||||
major=3
|
||||
major=4
|
||||
minor=0
|
||||
release=1
|
||||
release=0
|
||||
|
||||
# greek is used for alpha or beta release tags. If it is non-empty,
|
||||
# it will be appended to the version number. It does not have to be
|
||||
@ -30,7 +30,7 @@ greek=
|
||||
# command, or with the date (if "git describe" fails) in the form of
|
||||
# "date<date>".
|
||||
|
||||
repo_rev=gitbf30a5f
|
||||
repo_rev=git931d7970
|
||||
|
||||
# If tarball_version is not empty, it is used as the version string in
|
||||
# the tarball filename, regardless of all other versions listed in
|
||||
@ -44,7 +44,7 @@ tarball_version=
|
||||
|
||||
# The date when this release was created
|
||||
|
||||
date="Aug 20, 2018"
|
||||
date="Sep 13, 2018"
|
||||
|
||||
# The shared library version of each of PMIx's public libraries.
|
||||
# These versions are maintained in accordance with the "Library
|
||||
@ -75,6 +75,13 @@ date="Aug 20, 2018"
|
||||
# Version numbers are described in the Libtool current:revision:age
|
||||
# format.
|
||||
|
||||
libpmix_so_version=4:1:2
|
||||
libpmi_so_version=1:0:0
|
||||
libpmi2_so_version=1:0:0
|
||||
libpmix_so_version=0:0:0
|
||||
libpmi_so_version=0:0:0
|
||||
libpmi2_so_version=0:0:0
|
||||
|
||||
# "Common" components install standalone libraries that are run-time
|
||||
# # linked by one or more components. So they need to be versioned as
|
||||
# # well. Yuck; this somewhat breaks the
|
||||
# # components-don't-affect-the-build-system abstraction.
|
||||
#
|
||||
libmca_common_dstore_so_version=0:0:0
|
2
opal/mca/pmix/pmix3x/pmix/autogen.pl → opal/mca/pmix/pmix4x/pmix/autogen.pl
Исполняемый файл → Обычный файл
2
opal/mca/pmix/pmix3x/pmix/autogen.pl → opal/mca/pmix/pmix4x/pmix/autogen.pl
Исполняемый файл → Обычный файл
@ -4,7 +4,7 @@
|
||||
# Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2015 IBM Corporation. All rights reserved.
|
22
opal/mca/pmix/pmix4x/pmix/bindings/Makefile.am
Обычный файл
22
opal/mca/pmix/pmix4x/pmix/bindings/Makefile.am
Обычный файл
@ -0,0 +1,22 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved.
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
SUBDIRS = python
|
21
opal/mca/pmix/pmix4x/pmix/bindings/README
Обычный файл
21
opal/mca/pmix/pmix4x/pmix/bindings/README
Обычный файл
@ -0,0 +1,21 @@
|
||||
Copyright (c) 2016-2018 Intel, Inc. All rights reserved.
|
||||
|
||||
$COPYRIGHT$
|
||||
|
||||
Additional copyrights may follow
|
||||
|
||||
$HEADER$
|
||||
|
||||
===========================================================================
|
||||
|
||||
This is where bindings of PMIx functions to alternative programming languages
|
||||
such as Python reside. All functions defined in the public headers have been
|
||||
provided with a wrapper. Note that there is no restriction on the number of
|
||||
wrappers that can exist, nor on what type of function is wrapped.
|
||||
|
||||
There is only one rule to observe: you can wrap a framework, but you cannot wrap a
|
||||
specific plugin within that framework. This constraint flows from the fact that
|
||||
plugins are only accessed via the framework interface - thus, there is no way to
|
||||
guarantee that a particular plugin will be the active selection.
|
||||
|
||||
|
42
opal/mca/pmix/pmix4x/pmix/bindings/python/Makefile.am
Обычный файл
42
opal/mca/pmix/pmix4x/pmix/bindings/python/Makefile.am
Обычный файл
@ -0,0 +1,42 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
# University Research and Technology
|
||||
# Corporation. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2004-2009 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved.
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2018 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
helpers = setup.py client.py server.py cpmix.pxd pmix.pyx
|
||||
|
||||
if WANT_PYTHON_BINDINGS
|
||||
|
||||
install-exec-local: $(helpers)
|
||||
$(PYTHON) $(top_srcdir)/bindings/python/construct.py --src="$(top_builddir)/include"
|
||||
$(PYTHON) $(top_srcdir)/bindings/python/setup.py build_ext --include-dirs="$(top_builddir)/include" --library-dirs="$(DESTDIR)$(libdir)" --user
|
||||
$(PYTHON) $(top_srcdir)/bindings/python/setup.py install --prefix="$(DESTDIR)$(prefix)"
|
||||
|
||||
uninstall-hook:
|
||||
rm -f $(pythondir)/pmix*.so
|
||||
rm -f $(pythondir)/pypmix-*.egg-info
|
||||
|
||||
CLEANFILES += pmix.c
|
||||
|
||||
clean-local:
|
||||
rm -rf build
|
||||
|
||||
endif
|
49
opal/mca/pmix/pmix4x/pmix/bindings/python/README
Обычный файл
49
opal/mca/pmix/pmix4x/pmix/bindings/python/README
Обычный файл
@ -0,0 +1,49 @@
|
||||
===========================================================================
|
||||
Cython-based Python wrapper for PMIx
|
||||
===========================================================================
|
||||
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
This example starts up a persistent DVM and then spawns some tasks using
|
||||
Python.
|
||||
|
||||
$ virtualenv ve
|
||||
$ source ve/bin/activate
|
||||
$ pip install orte-cffi
|
||||
$ orte-dvm --report-uri dvm_uri
|
||||
$ python examples/submit.py
|
||||
|
||||
|
||||
Create a distfile
|
||||
----------------------------------------
|
||||
|
||||
If you want to create a sdist file:
|
||||
|
||||
$ virtualenv ve
|
||||
$ source ve/bin/activate
|
||||
$ python setup.py sdist
|
||||
|
||||
|
||||
Uploading sdist to pypi
|
||||
-----------------------
|
||||
|
||||
Assuming you have admin privileges to the pypi package repository for this
|
||||
package, a new version can be uploaded using twine:
|
||||
|
||||
$ virtualenv ve
|
||||
$ source ve/bin/activate
|
||||
$ pip install twine
|
||||
$ twine upload dist/orte-cffi-`python setup.py --version`.tar.gz
|
||||
|
||||
|
||||
Building (for development purposes only)
|
||||
----------------------------------------
|
||||
|
||||
If you want to create a non-pip build:
|
||||
|
||||
$ virtualenv ve
|
||||
$ source ve/bin/activate
|
||||
$ pip install cffi
|
||||
$ python src/orte-cffi/build.py
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2013-2016 Intel, Inc. All rights reserved
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2006-2016 Cisco Systems, Inc. All rights reserved.
|
98
opal/mca/pmix/pmix4x/pmix/config/autogen_found_items.m4
Обычный файл
98
opal/mca/pmix/pmix4x/pmix/config/autogen_found_items.m4
Обычный файл
@ -0,0 +1,98 @@
|
||||
dnl
|
||||
dnl $HEADER$
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl This file is automatically created by autogen.pl; it should not
|
||||
dnl be edited by hand!!
|
||||
dnl
|
||||
dnl Generated by rhc at Thu Sep 13 01:17:54 2018
|
||||
dnl on Ralphs-iMac-2.local.
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
m4_define([autogen_platform_file], [])
|
||||
|
||||
|
||||
dnl Project names
|
||||
m4_define([project_name_long], [PMIx])
|
||||
m4_define([project_name_short], [PMIx])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
dnl MCA information
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
dnl Frameworks in the pmix project and their corresponding directories
|
||||
m4_define([mca_pmix_framework_list], [common, bfrops, gds, pdl, pif, pinstalldirs, plog, pnet, preg, psec, psensor, pshmem, ptl])
|
||||
|
||||
dnl Components in the pmix / common framework
|
||||
m4_define([mca_pmix_common_m4_config_component_list], [dstore])
|
||||
m4_define([mca_pmix_common_no_config_component_list], [])
|
||||
|
||||
dnl Components in the pmix / bfrops framework
|
||||
m4_define([mca_pmix_bfrops_m4_config_component_list], [])
|
||||
m4_define([mca_pmix_bfrops_no_config_component_list], [v12, v20, v21, v3])
|
||||
|
||||
dnl Components in the pmix / gds framework
|
||||
m4_define([mca_pmix_gds_m4_config_component_list], [])
|
||||
m4_define([mca_pmix_gds_no_config_component_list], [ds12, ds21, hash])
|
||||
|
||||
dnl Components in the pmix / pdl framework
|
||||
m4_define([mca_pmix_pdl_m4_config_component_list], [pdlopen, plibltdl])
|
||||
m4_define([mca_pmix_pdl_no_config_component_list], [])
|
||||
|
||||
dnl Components in the pmix / pif framework
|
||||
m4_define([mca_pmix_pif_m4_config_component_list], [bsdx_ipv4, bsdx_ipv6, linux_ipv6, posix_ipv4, solaris_ipv6])
|
||||
m4_define([mca_pmix_pif_no_config_component_list], [])
|
||||
|
||||
dnl Components in the pmix / pinstalldirs framework
|
||||
m4_define([mca_pmix_pinstalldirs_m4_config_component_list], [config, env])
|
||||
m4_define([mca_pmix_pinstalldirs_no_config_component_list], [])
|
||||
|
||||
dnl Components in the pmix / plog framework
|
||||
m4_define([mca_pmix_plog_m4_config_component_list], [syslog])
|
||||
m4_define([mca_pmix_plog_no_config_component_list], [default, stdfd])
|
||||
|
||||
dnl Components in the pmix / pnet framework
|
||||
m4_define([mca_pmix_pnet_m4_config_component_list], [opa])
|
||||
m4_define([mca_pmix_pnet_no_config_component_list], [tcp, test])
|
||||
|
||||
dnl Components in the pmix / preg framework
|
||||
m4_define([mca_pmix_preg_m4_config_component_list], [])
|
||||
m4_define([mca_pmix_preg_no_config_component_list], [native])
|
||||
|
||||
dnl Components in the pmix / psec framework
|
||||
m4_define([mca_pmix_psec_m4_config_component_list], [munge])
|
||||
m4_define([mca_pmix_psec_no_config_component_list], [native, none])
|
||||
|
||||
dnl Components in the pmix / psensor framework
|
||||
m4_define([mca_pmix_psensor_m4_config_component_list], [])
|
||||
m4_define([mca_pmix_psensor_no_config_component_list], [file, heartbeat])
|
||||
|
||||
dnl Components in the pmix / pshmem framework
|
||||
m4_define([mca_pmix_pshmem_m4_config_component_list], [])
|
||||
m4_define([mca_pmix_pshmem_no_config_component_list], [mmap])
|
||||
|
||||
dnl Components in the pmix / ptl framework
|
||||
m4_define([mca_pmix_ptl_m4_config_component_list], [])
|
||||
m4_define([mca_pmix_ptl_no_config_component_list], [tcp, usock])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
dnl List of configure.m4 files to include
|
||||
m4_include([src/mca/pdl/configure.m4])
|
||||
m4_include([src/mca/pinstalldirs/configure.m4])
|
||||
m4_include([src/mca/common/dstore/configure.m4])
|
||||
m4_include([src/mca/pdl/pdlopen/configure.m4])
|
||||
m4_include([src/mca/pdl/plibltdl/configure.m4])
|
||||
m4_include([src/mca/pif/bsdx_ipv4/configure.m4])
|
||||
m4_include([src/mca/pif/bsdx_ipv6/configure.m4])
|
||||
m4_include([src/mca/pif/linux_ipv6/configure.m4])
|
||||
m4_include([src/mca/pif/posix_ipv4/configure.m4])
|
||||
m4_include([src/mca/pif/solaris_ipv6/configure.m4])
|
||||
m4_include([src/mca/pinstalldirs/config/configure.m4])
|
||||
m4_include([src/mca/pinstalldirs/env/configure.m4])
|
||||
m4_include([src/mca/plog/syslog/configure.m4])
|
||||
m4_include([src/mca/pnet/opa/configure.m4])
|
||||
m4_include([src/mca/psec/munge/configure.m4])
|
@ -11,7 +11,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl $COPYRIGHT$
|
@ -15,7 +15,7 @@
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -391,7 +391,7 @@ AC_DEFUN([PMIX_SETUP_CORE],[
|
||||
crt_externs.h signal.h \
|
||||
ioLib.h sockLib.h hostLib.h limits.h \
|
||||
sys/statfs.h sys/statvfs.h \
|
||||
netdb.h ucred.h zlib.h])
|
||||
netdb.h ucred.h zlib.h sys/auxv.h])
|
||||
|
||||
AC_CHECK_HEADERS([sys/mount.h], [], [],
|
||||
[AC_INCLUDES_DEFAULT
|
||||
@ -833,6 +833,8 @@ AC_DEFUN([PMIX_SETUP_CORE],[
|
||||
|
||||
AC_CONFIG_FILES(
|
||||
pmix_config_prefix[Makefile]
|
||||
pmix_config_prefix[bindings/Makefile]
|
||||
pmix_config_prefix[bindings/python/Makefile]
|
||||
pmix_config_prefix[config/Makefile]
|
||||
pmix_config_prefix[etc/Makefile]
|
||||
pmix_config_prefix[include/Makefile]
|
||||
@ -1126,6 +1128,51 @@ fi
|
||||
|
||||
AM_CONDITIONAL([PMIX_INSTALL_BINARIES], [test $WANT_PMIX_BINARIES -eq 1])
|
||||
|
||||
#
|
||||
# Install Python bindings?
|
||||
#
|
||||
AC_MSG_CHECKING([if want install Python bindings])
|
||||
AC_ARG_ENABLE(python-bindings,
|
||||
AC_HELP_STRING([--enable-python-bindings],
|
||||
[enable Python bindings (default: disabled)]))
|
||||
if test "$enable_python_bindings" != "yes"; then
|
||||
AC_MSG_RESULT([no])
|
||||
WANT_PYTHON_BINDINGS=0
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
WANT_PYTHON_BINDINGS=1
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([WANT_PYTHON_BINDINGS], [test $WANT_PYTHON_BINDINGS -eq 1])
|
||||
|
||||
if test "$WANT_PYTHON_BINDINGS" = "1"; then
|
||||
AM_PATH_PYTHON([3.4], [python_happy=1], [python_happy=0])
|
||||
if test "$python_happy" = "0"; then
|
||||
AC_MSG_WARN([Python bindings were enabled, but no suitable])
|
||||
AC_MSG_WARN([interpreter was found. PMIx requires at least])
|
||||
AC_MSG_WARN([Python v3.4 to provide Python bindings])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
python_version=`python --version 2>&1`
|
||||
PMIX_SUMMARY_ADD([[Bindings]],[[Python]], [pmix_python], [yes ($python_version)])
|
||||
|
||||
AC_MSG_CHECKING([if Cython package installed])
|
||||
have_cython=`$srcdir/config/pmix_check_cython.py 2> /dev/null`
|
||||
if test "$have_cython" = "0"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_CHECKING([Cython version])
|
||||
cython_version=`cython --version 2>&1`
|
||||
AC_MSG_RESULT([$cython_version])
|
||||
PMIX_SUMMARY_ADD([[Bindings]],[[Cython]], [pmix_cython], [yes ($cython_version)])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_WARN([Python bindings were enabled, but the Cython])
|
||||
AC_MSG_WARN([package was not found. PMIx Python bindings])
|
||||
AC_MSG_WARN([require that the Cython package be installed])
|
||||
AC_MSG_ERROR([Cannot continue])
|
||||
fi
|
||||
fi
|
||||
|
||||
])dnl
|
||||
|
||||
# This must be a standalone routine so that it can be called both by
|
@ -11,7 +11,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
@ -1,7 +1,7 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
|
||||
dnl Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
dnl
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
@ -10,7 +10,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2016 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl $COPYRIGHT$
|
@ -1,7 +1,7 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Intel, Inc. All rights reserved
|
||||
dnl Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -5,7 +5,7 @@ dnl All rights reserved.
|
||||
dnl Copyright (c) 2017 IBM Corporation. All rights reserved.
|
||||
dnl Copyright (c) 2017 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -57,4 +57,6 @@ AC_DEFUN([PMIX_CHECK_DSTOR_LOCK],[
|
||||
fi
|
||||
fi
|
||||
LIBS="$orig_libs"
|
||||
AM_CONDITIONAL([HAVE_DSTORE_PTHREAD_LOCK], [test "$_x_ac_pthread_lock_found" = "1"])
|
||||
AM_CONDITIONAL([HAVE_DSTORE_FCNTL_LOCK], [test "$_x_ac_fcntl_lock_found" = "1"])
|
||||
])
|
@ -1,7 +1,7 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl
|
@ -12,7 +12,7 @@
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006 QLogic Corp. All rights reserved.
|
||||
# Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2016-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2016-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
@ -10,7 +10,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -11,7 +11,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
|
||||
dnl Copyright (c) 2013 Intel, Inc. All rights reserved
|
||||
dnl Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
@ -12,7 +12,7 @@
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2009-2011 Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -8,7 +8,7 @@ dnl reserved.
|
||||
dnl Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl Copyright (c) 2016 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2016-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -17,7 +17,7 @@ dnl Copyright (c) 2014-2017 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2017 Amazon.com, Inc. or its affiliates. All Rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -10,7 +10,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2012 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2016 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl $COPYRIGHT$
|
@ -11,7 +11,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2012-2016 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl $COPYRIGHT$
|
@ -10,7 +10,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
@ -11,7 +11,7 @@ dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2009-2011 Oak Ridge National Labs. All rights reserved.
|
||||
dnl Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl $COPYRIGHT$
|
@ -12,7 +12,7 @@ dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2007-2009 Sun Microsystems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2013 Intel, Inc. All rights reserved
|
||||
dnl Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -13,7 +13,7 @@ dnl All rights reserved.
|
||||
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
|
||||
dnl Copyright (c) 2009-2016 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2017 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl
|
@ -11,7 +11,7 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2008-2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Intel, Inc. All rights reserved
|
||||
# Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -10,7 +10,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl $COPYRIGHT$
|
@ -11,7 +11,7 @@ dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2013-2016 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -428,7 +428,7 @@ AC_DEFUN([MCA_CONFIGURE_FRAMEWORK],[
|
||||
# Create the final .h file that will be included in the type's
|
||||
# top-level glue. This lists all the static components. We don't
|
||||
# need to do this for "common".
|
||||
if test "$2" != "common"; then
|
||||
if test "$1" != "common"; then
|
||||
cat > $outfile <<EOF
|
||||
/*
|
||||
* \$HEADER\$
|
@ -2,6 +2,7 @@
|
||||
#
|
||||
# Copyright (c) 2010 Sandia National Laboratories. All rights reserved.
|
||||
#
|
||||
# Copyright (c) 2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -1,7 +1,7 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2013-2014 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -1,7 +1,7 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2014 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -2,7 +2,7 @@ dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2016 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# Copyright (c) 2009-2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2013 Los Alamos National Security, LLC. All rights reserved.
|
||||
# Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
79
opal/mca/pmix/pmix4x/pmix/config/pmix_summary.m4
Обычный файл
79
opal/mca/pmix/pmix4x/pmix/config/pmix_summary.m4
Обычный файл
@ -0,0 +1,79 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2016-2018 Cisco Systems, Inc. All rights reserved
|
||||
dnl Copyright (c) 2016 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl Copyright (c) 2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
dnl
|
||||
dnl $HEADER$
|
||||
dnl
|
||||
AC_DEFUN([PMIX_SUMMARY_ADD],[
|
||||
PMIX_VAR_SCOPE_PUSH([pmix_summary_section pmix_summary_line pmix_summary_section_current])
|
||||
|
||||
dnl need to replace spaces in the section name with somethis else. _ seems like a reasonable
|
||||
dnl choice. if this changes remember to change PMIX_PRINT_SUMMARY as well.
|
||||
pmix_summary_section=$(echo $1 | tr ' ' '_')
|
||||
pmix_summary_line="$2: $4"
|
||||
pmix_summary_section_current=$(eval echo \$pmix_summary_values_$pmix_summary_section)
|
||||
|
||||
if test -z "$pmix_summary_section_current" ; then
|
||||
if test -z "$pmix_summary_sections" ; then
|
||||
pmix_summary_sections=$pmix_summary_section
|
||||
else
|
||||
pmix_summary_sections="$pmix_summary_sections $pmix_summary_section"
|
||||
fi
|
||||
eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_line\"
|
||||
else
|
||||
eval pmix_summary_values_$pmix_summary_section=\"$pmix_summary_section_current,$pmix_summary_line\"
|
||||
fi
|
||||
|
||||
PMIX_VAR_SCOPE_POP
|
||||
])
|
||||
|
||||
AC_DEFUN([PMIX_SUMMARY_PRINT],[
|
||||
PMIX_VAR_SCOPE_PUSH([pmix_summary_section pmix_summary_section_name])
|
||||
cat <<EOF
|
||||
|
||||
PMIx configuration:
|
||||
-----------------------
|
||||
Version: $PMIX_MAJOR_VERSION.$PMIX_MINOR_VERSION.$PMIX_RELEASE_VERSION$PMIX_GREEK_VERSION
|
||||
EOF
|
||||
|
||||
if test $WANT_DEBUG = 0 ; then
|
||||
echo "Debug build: no"
|
||||
else
|
||||
echo "Debug build: yes"
|
||||
fi
|
||||
|
||||
if test ! -z $with_platform ; then
|
||||
echo "Platform file: $with_platform"
|
||||
else
|
||||
echo "Platform file: (none)"
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
for pmix_summary_section in $(echo $pmix_summary_sections) ; do
|
||||
pmix_summary_section_name=$(echo $pmix_summary_section | tr '_' ' ')
|
||||
echo "$pmix_summary_section_name"
|
||||
echo "-----------------------"
|
||||
echo "$(eval echo \$pmix_summary_values_$pmix_summary_section)" | tr ',' $'\n' | sort -f
|
||||
echo " "
|
||||
done
|
||||
|
||||
if test $WANT_DEBUG = 1 ; then
|
||||
cat <<EOF
|
||||
*****************************************************************************
|
||||
THIS IS A DEBUG BUILD! DO NOT USE THIS BUILD FOR PERFORMANCE MEASUREMENTS!
|
||||
*****************************************************************************
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
PMIX_VAR_SCOPE_POP
|
||||
])
|
@ -9,7 +9,7 @@ dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
@ -19,7 +19,7 @@
|
||||
# Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 IBM Corporation. All rights reserved.
|
||||
# Copyright (c) 2016-2018 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
@ -44,7 +44,7 @@ m4_include([config/autogen_found_items.m4])
|
||||
|
||||
AC_INIT([pmix],
|
||||
[m4_normalize(esyscmd([config/pmix_get_version.sh VERSION --tarball]))],
|
||||
[http://pmix.github.io/master], [pmix])
|
||||
[https://github.com/pmix/pmix/issues], [pmix])
|
||||
AC_PREREQ(2.69)
|
||||
AC_CONFIG_AUX_DIR(./config)
|
||||
# Note that this directory must *exactly* match what was specified via
|
||||
@ -245,6 +245,7 @@ AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION'])
|
||||
AC_SUBST([libpmix_so_version])
|
||||
AC_SUBST([libpmi_so_version])
|
||||
AC_SUBST([libpmi2_so_version])
|
||||
AC_SUBST([libmca_common_dstore_so_version])
|
||||
|
||||
AC_CONFIG_FILES(pmix_config_prefix[contrib/Makefile]
|
||||
pmix_config_prefix[examples/Makefile]
|
||||
@ -255,3 +256,5 @@ AC_CONFIG_FILES(pmix_config_prefix[contrib/Makefile]
|
||||
pmix_show_title "Configuration complete"
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
PMIX_SUMMARY_PRINT
|
@ -14,7 +14,7 @@
|
||||
# Copyright (c) 2010-2011 Oak Ridge National Labs. All rights reserved.
|
||||
# Copyright (c) 2013-2016 Los Alamos National Security, Inc. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2013-2016 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
2
opal/mca/pmix/pmix3x/pmix/contrib/make_dist_tarball → opal/mca/pmix/pmix4x/pmix/contrib/make_dist_tarball
Исполняемый файл → Обычный файл
2
opal/mca/pmix/pmix3x/pmix/contrib/make_dist_tarball → opal/mca/pmix/pmix4x/pmix/contrib/make_dist_tarball
Исполняемый файл → Обычный файл
@ -11,7 +11,7 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
@ -10,7 +10,7 @@
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2013-2016 Intel, Inc. All rights reserved
|
||||
# Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
@ -1,6 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
* Additional copyrights may follow
|
||||
*
|
@ -3,7 +3,7 @@
|
||||
*
|
||||
* Copyright (c) 2013 Mellanox Technologies, Inc.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
* Additional copyrights may follow
|
||||
*
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2014-2016 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2018 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2014-2016 Research Organization for Information Science
|
||||
* and Technology (RIST). All rights reserved.
|
||||
* Copyright (c) 2016 Mellanox Technologies, Inc.
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved.
|
||||
* Copyright (c) 2016 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved.
|
||||
* Copyright (c) 2016 Intel, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2018 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
@ -192,7 +192,7 @@
|
||||
|
||||
Summary: An extended/exascale implementation of PMI
|
||||
Name: %{?_name:%{_name}}%{!?_name:pmix}
|
||||
Version: 3.0.1
|
||||
Version: 4.0.0
|
||||
Release: 1%{?dist}
|
||||
License: BSD
|
||||
Group: Development/Libraries
|
2
opal/mca/pmix/pmix3x/pmix/contrib/update-my-copyright.pl → opal/mca/pmix/pmix4x/pmix/contrib/update-my-copyright.pl
Исполняемый файл → Обычный файл
2
opal/mca/pmix/pmix3x/pmix/contrib/update-my-copyright.pl → opal/mca/pmix/pmix4x/pmix/contrib/update-my-copyright.pl
Исполняемый файл → Обычный файл
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# Copyright (c) 2010-2014 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2016-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
|
2
opal/mca/pmix/pmix3x/pmix/contrib/whitespace-purge.sh → opal/mca/pmix/pmix4x/pmix/contrib/whitespace-purge.sh
Исполняемый файл → Обычный файл
2
opal/mca/pmix/pmix3x/pmix/contrib/whitespace-purge.sh → opal/mca/pmix/pmix4x/pmix/contrib/whitespace-purge.sh
Исполняемый файл → Обычный файл
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2015 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
||||
# reserved
|
||||
# Copyright (c) 2015 Cisco Systems, Inc.
|
@ -10,7 +10,7 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2017 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2017-2018 Intel, Inc. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче
Block a user