1
1

fixes for Dave's get/set info code

The expected sequence of events for processing info during object creation
is that if there's an incoming info arg, it is opal_info_dup()ed into the obj
at obj->s_info first. Then interested components register callbacks for
keys they want to know about using opal_infosubscribe_infosubscribe().

Inside info_subscribe_subscribe() the specified callback() is called with
whatever matching k/v is in the object's info, or with the default. The
return string from the callback goes into the new k/v stored in info, and
the input k/v is saved as __IN_<key>/<val>. It's saved the same way
whether the input came from info or whether it was a default. A null return
from the callback indicates an ignored key/val, and no k/v is stored for
it, but an __IN_<key>/<val> is still kept so we still have access to the
original.

At MPI_*_set_info() time, opal_infosubscribe_change_info() is used. That
function calls the registered callbacks for each item in the provided info.
If the callback returns non-null, the info is updated with that k/v, or if
the callback returns null, that key is deleted from info. An __IN_<key>/<val>
is saved either way, and overwrites any previously saved value.

When MPI_*_get_info() is called, opal_info_dup_mpistandard() is used, which
allows relatively easy changes in interpretation of the standard, by looking
at both the <key>/<val> and __IN_<key>/<val> in info. Right now it does
  1. includes system extras, eg k/v defaults not expliclty set by the user
  2. omits ignored keys
  3. shows input values, not callback modifications, eg not the internal values

Currently the callbacks are doing things like
    return some_condition ? "true" : "false"
that is, returning static strings that are not to be freed. If the return
strings start becoming more dynamic in the future I don't see how unallocated
strings could support that, so I'd propose a change for the future that
the callback()s registered with info_subscribe_subscribe() do a strdup on
their return, and we change the callers of callback() to free the strings
it returns (there are only two callers).

Rough outline of the smaller changes spread over the less central files:
  comm.c
    initialize comm->super.s_info to NULL
    copy into comm->super.s_info in comm creation calls that provide info
    OBJ_RELEASE comm->super.s_info at free time
  comm_init.c
    initialize comm->super.s_info to NULL
  file.c
    copy into file->super.s_info if file creation provides info
    OBJ_RELEASE file->super.s_info at free time
  win.c
    copy into win->super.s_info if win creation provides info
    OBJ_RELEASE win->super.s_info at free time

  comm_get_info.c
  file_get_info.c
  win_get_info.c
    change_info() if there's no info attached (shouldn't happen if callbacks
      are registered)
    copy the info for the user

The other category of change is generally addressing compiler warnings where
ompi_info_t and opal_info_t were being used a little too interchangably. An
ompi_info_t* contains an opal_info_t*, at &(ompi_info->super)

Also this commit updates the copyrights.

Signed-off-by: Mark Allen <markalle@us.ibm.com>
Этот коммит содержится в:
Mark Allen 2017-01-30 20:29:50 -05:00
родитель 50aa143ab6
Коммит 482d84b6e5
110 изменённых файлов: 805 добавлений и 263 удалений

Просмотреть файл

@ -84,8 +84,6 @@ Dave Goodell, Cisco
dgoodell@cisco.com
David Daniel, Los Alamos National Laboratory
ddd@lanl.gov
David Solt, IBM
dsolt@us.ibm.com
Denis Dimick, Los Alamos National Laboratory
dgdimick@lnal.gov
Devendar Bureddy, Mellanox

Просмотреть файл

@ -22,7 +22,7 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2014-2015 Intel, Inc. All rights reserved.
* Copyright (c) 2015 Mellanox Technologies. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -158,6 +158,7 @@ int ompi_comm_set_nb ( ompi_communicator_t **ncomm,
/* ompi_comm_allocate */
newcomm = OBJ_NEW(ompi_communicator_t);
newcomm->super.s_info = NULL;
/* fill in the inscribing hyper-cube dimensions */
newcomm->c_cube_dim = opal_cube_dim(local_size);
newcomm->c_id_available = MPI_UNDEFINED;
@ -918,6 +919,12 @@ int ompi_comm_split_type (ompi_communicator_t *comm, int split_type, int key,
break;
}
// Copy info if there is one.
newcomp->super.s_info = OBJ_NEW(opal_info_t);
if (info) {
opal_info_dup(info, &(newcomp->super.s_info));
}
/* Activate the communicator and init coll-component */
rc = ompi_comm_activate (&newcomp, comm, NULL, NULL, NULL, false, mode);
if (OPAL_UNLIKELY(OMPI_SUCCESS != rc)) {
@ -1015,6 +1022,12 @@ int ompi_comm_dup_with_info ( ompi_communicator_t * comm, opal_info_t *info, omp
snprintf(newcomp->c_name, MPI_MAX_OBJECT_NAME, "MPI COMMUNICATOR %d DUP FROM %d",
newcomp->c_contextid, comm->c_contextid );
// Copy info if there is one.
newcomp->super.s_info = OBJ_NEW(opal_info_t);
if (info) {
opal_info_dup(info, &(newcomp->super.s_info));
}
/* activate communicator and init coll-module */
rc = ompi_comm_activate (&newcomp, comm, NULL, NULL, NULL, false, mode);
if ( OMPI_SUCCESS != rc ) {
@ -1095,6 +1108,15 @@ static int ompi_comm_idup_internal (ompi_communicator_t *comm, ompi_group_t *gro
return rc;
}
// Copy info if there is one.
{
ompi_communicator_t *newcomp = context->newcomp;
newcomp->super.s_info = OBJ_NEW(opal_info_t);
if (info) {
opal_info_dup(info, &(newcomp->super.s_info));
}
}
ompi_comm_request_schedule_append (request, ompi_comm_idup_getcid, subreq, subreq[0] ? 1 : 0);
/* assign the newcomm now */
@ -1472,6 +1494,10 @@ int ompi_comm_free( ompi_communicator_t **comm )
ompi_mpi_comm_parent = &ompi_mpi_comm_null.comm;
}
if (NULL != ((*comm)->super.s_info)) {
OBJ_RELEASE((*comm)->super.s_info);
}
/* Release the communicator */
if ( OMPI_COMM_IS_DYNAMIC (*comm) ) {
ompi_comm_num_dyncomm --;

Просмотреть файл

@ -21,7 +21,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Intel, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -221,6 +221,7 @@ ompi_communicator_t *ompi_comm_allocate ( int local_size, int remote_size )
/* create new communicator element */
new_comm = OBJ_NEW(ompi_communicator_t);
new_comm->super.s_info = NULL;
new_comm->c_local_group = ompi_group_allocate ( local_size );
if ( 0 < remote_size ) {
new_comm->c_remote_group = ompi_group_allocate (remote_size);

Просмотреть файл

@ -20,7 +20,7 @@
* Copyright (c) 2014-2015 Intel, 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 (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -5,7 +5,7 @@
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2012-2013 Inria. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -18,7 +18,6 @@
* Copyright (c) 2013-2016 Intel, Inc. All rights reserved.
* Copyright (c) 2014-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -704,7 +703,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
if ( array_of_info != NULL && array_of_info[i] != MPI_INFO_NULL ) {
/* check for personality - this is a job-level key */
opal_info_get (array_of_info[i], "personality", sizeof(host) - 1, host, &flag);
ompi_info_get (array_of_info[i], "personality", sizeof(host) - 1, host, &flag);
if ( flag ) {
personality = true;
info = OBJ_NEW(opal_value_t);
@ -714,7 +713,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'host' */
opal_info_get (array_of_info[i], "host", sizeof(host) - 1, host, &flag);
ompi_info_get (array_of_info[i], "host", sizeof(host) - 1, host, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_HOST);
@ -723,7 +722,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'hostfile' */
opal_info_get (array_of_info[i], "hostfile", sizeof(host) - 1, host, &flag);
ompi_info_get (array_of_info[i], "hostfile", sizeof(host) - 1, host, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_HOSTFILE);
@ -732,7 +731,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'add-hostfile' */
opal_info_get (array_of_info[i], "add-hostfile", sizeof(host) - 1, host, &flag);
ompi_info_get (array_of_info[i], "add-hostfile", sizeof(host) - 1, host, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_ADD_HOSTFILE);
@ -741,7 +740,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'add-host' */
opal_info_get (array_of_info[i], "add-host", sizeof(host) - 1, host, &flag);
ompi_info_get (array_of_info[i], "add-host", sizeof(host) - 1, host, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_ADD_HOST);
@ -750,7 +749,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for env */
opal_info_get (array_of_info[i], "env", sizeof(host)-1, host, &flag);
ompi_info_get (array_of_info[i], "env", sizeof(host)-1, host, &flag);
if ( flag ) {
envars = opal_argv_split(host, '\n');
for (j=0; NULL != envars[j]; j++) {
@ -766,7 +765,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
*
* This is a job-level key
*/
opal_info_get (array_of_info[i], "ompi_prefix", sizeof(prefix) - 1, prefix, &flag);
ompi_info_get (array_of_info[i], "ompi_prefix", sizeof(prefix) - 1, prefix, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_PREFIX);
@ -775,7 +774,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'wdir' */
opal_info_get (array_of_info[i], "wdir", sizeof(cwd) - 1, cwd, &flag);
ompi_info_get (array_of_info[i], "wdir", sizeof(cwd) - 1, cwd, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_WDIR);
@ -785,7 +784,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'mapper' - a job-level key */
opal_info_get(array_of_info[i], "mapper", sizeof(mapper) - 1, mapper, &flag);
ompi_info_get(array_of_info[i], "mapper", sizeof(mapper) - 1, mapper, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_MAPPER);
@ -794,7 +793,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'display_map' - a job-level key */
opal_info_get_bool(array_of_info[i], "display_map", &local_spawn, &flag);
ompi_info_get_bool(array_of_info[i], "display_map", &local_spawn, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_DISPLAY_MAP);
@ -803,7 +802,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'npernode' and 'ppr' - job-level key */
opal_info_get (array_of_info[i], "npernode", sizeof(slot_list) - 1, slot_list, &flag);
ompi_info_get (array_of_info[i], "npernode", sizeof(slot_list) - 1, slot_list, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_PPR);
@ -811,14 +810,14 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
(void)asprintf(&(info->data.string), "%s:n", slot_list);
opal_list_append(&job_info, &info->super);
}
opal_info_get (array_of_info[i], "pernode", sizeof(slot_list) - 1, slot_list, &flag);
ompi_info_get (array_of_info[i], "pernode", sizeof(slot_list) - 1, slot_list, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_PPR);
opal_value_load(info, "1:n", OPAL_STRING);
opal_list_append(&job_info, &info->super);
}
opal_info_get (array_of_info[i], "ppr", sizeof(slot_list) - 1, slot_list, &flag);
ompi_info_get (array_of_info[i], "ppr", sizeof(slot_list) - 1, slot_list, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_PPR);
@ -827,7 +826,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'map_by' - job-level key */
opal_info_get(array_of_info[i], "map_by", sizeof(slot_list) - 1, slot_list, &flag);
ompi_info_get(array_of_info[i], "map_by", sizeof(slot_list) - 1, slot_list, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_MAPBY);
@ -836,7 +835,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'rank_by' - job-level key */
opal_info_get(array_of_info[i], "rank_by", sizeof(slot_list) - 1, slot_list, &flag);
ompi_info_get(array_of_info[i], "rank_by", sizeof(slot_list) - 1, slot_list, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_RANKBY);
@ -845,7 +844,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'bind_to' - job-level key */
opal_info_get(array_of_info[i], "bind_to", sizeof(slot_list) - 1, slot_list, &flag);
ompi_info_get(array_of_info[i], "bind_to", sizeof(slot_list) - 1, slot_list, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_BINDTO);
@ -854,7 +853,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'preload_binary' - job-level key */
opal_info_get_bool(array_of_info[i], "ompi_preload_binary", &local_spawn, &flag);
ompi_info_get_bool(array_of_info[i], "ompi_preload_binary", &local_spawn, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_PRELOAD_BIN);
@ -863,7 +862,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* check for 'preload_files' - job-level key */
opal_info_get (array_of_info[i], "ompi_preload_files", sizeof(cwd) - 1, cwd, &flag);
ompi_info_get (array_of_info[i], "ompi_preload_files", sizeof(cwd) - 1, cwd, &flag);
if ( flag ) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_PRELOAD_FILES);
@ -874,7 +873,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
/* see if this is a non-mpi job - if so, then set the flag so ORTE
* knows what to do - job-level key
*/
opal_info_get_bool(array_of_info[i], "ompi_non_mpi", &non_mpi, &flag);
ompi_info_get_bool(array_of_info[i], "ompi_non_mpi", &non_mpi, &flag);
if (flag && non_mpi) {
info = OBJ_NEW(opal_value_t);
info->key = strdup(OPAL_PMIX_NON_PMI);
@ -883,7 +882,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
}
/* see if this is an MCA param that the user wants applied to the child job */
opal_info_get (array_of_info[i], "ompi_param", sizeof(params) - 1, params, &flag);
ompi_info_get (array_of_info[i], "ompi_param", sizeof(params) - 1, params, &flag);
if ( flag ) {
opal_argv_append_unique_nosize(&app->env, params, true);
}
@ -891,7 +890,7 @@ int ompi_dpm_spawn(int count, const char *array_of_commands[],
/* see if user specified what to do with stdin - defaults to
* not forwarding stdin to child processes - job-level key
*/
opal_info_get (array_of_info[i], "ompi_stdin_target", sizeof(stdin_target) - 1, stdin_target, &flag);
ompi_info_get (array_of_info[i], "ompi_stdin_target", sizeof(stdin_target) - 1, stdin_target, &flag);
if ( flag ) {
if (0 == strcmp(stdin_target, "all")) {
ui32 = OPAL_VPID_WILDCARD;

Просмотреть файл

@ -15,7 +15,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -114,11 +114,10 @@ int ompi_file_open(struct ompi_communicator_t *comm, const char *filename,
file->f_comm = comm;
OBJ_RETAIN(comm);
/* Present the info to the info layer */
if (OPAL_SUCCESS != opal_infosubscribe_change_info(&file->super, info)) {
OBJ_RELEASE(file);
return ret;
/* Copy the info for the info layer */
file->super.s_info = OBJ_NEW(opal_info_t);
if (info) {
opal_info_dup(info, &(file->super.s_info));
}
file->f_amode = amode;
@ -310,6 +309,13 @@ static void file_destructor(ompi_file_t *file)
#endif
}
if (NULL != file->super.s_info) {
OBJ_RELEASE(file->super.s_info);
#if OPAL_ENABLE_DEBUG
file->super.s_info = NULL;
#endif
}
/* Reset the f_to_c table entry */
if (MPI_UNDEFINED != file->f_f_to_c_index &&

Просмотреть файл

@ -15,7 +15,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -16,7 +16,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -53,9 +53,9 @@
/*
* Global variables
*/
ompi_predefined_info_t ompi_mpi_info_null;
ompi_predefined_info_t ompi_mpi_info_null = {{{{{0}}}}};
ompi_predefined_info_t *ompi_mpi_info_null_addr = &ompi_mpi_info_null;
ompi_predefined_info_t ompi_mpi_info_env;
ompi_predefined_info_t ompi_mpi_info_env = {{{{{0}}}}};
/*
* Local functions
@ -196,6 +196,57 @@ int ompi_mpiinfo_init(void)
return OMPI_SUCCESS;
}
// Generally ompi_info_t processing is handled by opal_info_t now.
// But to avoid compiler warnings and to avoid having to constantly
// change code to mpiinfo->super to make MPI code use the opal_info_t
// it's convenient to have ompi_info_t wrappers for some of the opal_info_t
// related calls:
int ompi_info_dup (ompi_info_t *info, ompi_info_t **newinfo) {
return opal_info_dup (&(info->super), (opal_info_t **)newinfo);
}
int ompi_info_dup_mpistandard (ompi_info_t *info, ompi_info_t **newinfo) {
return opal_info_dup_mpistandard (&(info->super), (opal_info_t **)newinfo);
}
int ompi_info_set (ompi_info_t *info, const char *key, const char *value) {
return opal_info_set (&(info->super), key, value);
}
int ompi_info_set_value_enum (ompi_info_t *info, const char *key, int value,
mca_base_var_enum_t *var_enum)
{
return opal_info_set_value_enum (&(info->super), key, value, var_enum);
}
int ompi_info_get (ompi_info_t *info, const char *key, int valuelen,
char *value, int *flag)
{
return opal_info_get (&(info->super), key, valuelen, value, flag);
}
int ompi_info_get_value_enum (ompi_info_t *info, const char *key, int *value,
int default_value, mca_base_var_enum_t *var_enum,
int *flag)
{
return opal_info_get_value_enum (&(info->super), key, value,
default_value, var_enum, flag);
}
int ompi_info_get_bool(ompi_info_t *info, char *key, bool *value, int *flag) {
return opal_info_get_bool(&(info->super), key, value, flag);
}
int ompi_info_delete (ompi_info_t *info, const char *key) {
return opal_info_delete (&(info->super), key);
}
int ompi_info_get_valuelen (ompi_info_t *info, const char *key, int *valuelen,
int *flag)
{
return opal_info_get_valuelen (&(info->super), key, valuelen, flag);
}
int ompi_info_get_nthkey (ompi_info_t *info, int n, char *key) {
return opal_info_get_nthkey (&(info->super), n, key);
}
int ompi_info_get_nkeys(ompi_info_t *info, int *nkeys)
{
return opal_info_get_nkeys (&(info->super), nkeys);
}
/*
* Shut down MPI_Info handling

Просмотреть файл

@ -14,7 +14,7 @@
* Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2012-2015 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -99,6 +99,61 @@ int ompi_info_free (ompi_info_t **info);
*/
int ompi_mpiinfo_finalize(void);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_dup (ompi_info_t *info, ompi_info_t **newinfo);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_dup_mpistandard (ompi_info_t *info, ompi_info_t **newinfo);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_set (ompi_info_t *info, const char *key, const char *value);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_set_value_enum (ompi_info_t *info, const char *key, int value,
mca_base_var_enum_t *var_enum);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_get_bool (ompi_info_t *info, char *key, bool *value, int *flag);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_get_value_enum (ompi_info_t *info, const char *key,
int *value, int default_value,
mca_base_var_enum_t *var_enum, int *flag);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_get (ompi_info_t *info, const char *key, int valuelen,
char *value, int *flag);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_delete (ompi_info_t *info, const char *key);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_get_valuelen (ompi_info_t *info, const char *key, int *valuelen,
int *flag);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_get_nthkey (ompi_info_t *info, int n, char *key);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_value_to_bool(char *value, bool *interp);
/**
* ompi_info_foo() wrapper around various opal_info_foo() calls
*/
OMPI_DECLSPEC int ompi_info_get_nkeys(ompi_info_t *info, int *nkeys);
END_C_DECLS
/**

Просмотреть файл

@ -15,6 +15,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
* Copyright (c) 2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -30,6 +31,7 @@
#include "ompi/mca/rte/rte.h"
#include "ompi/interlib/interlib.h"
#include "mpi.h"
typedef struct {
int status;

Просмотреть файл

@ -13,6 +13,7 @@
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -281,7 +282,7 @@ int mca_common_ompio_file_close (mca_io_ompio_file_t *ompio_fh)
ret = ompio_fh->f_fs->fs_file_close (ompio_fh);
}
if ( delete_flag && 0 == ompio_fh->f_rank ) {
mca_io_ompio_file_delete ( ompio_fh->f_filename, MPI_INFO_NULL );
mca_io_ompio_file_delete ( ompio_fh->f_filename, &(MPI_INFO_NULL->super) );
}
if ( NULL != ompio_fh->f_fs ) {

Просмотреть файл

@ -12,6 +12,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -15,7 +15,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -30,6 +30,7 @@
#include "mpi.h"
#include "ompi/mca/mca.h"
#include "opal/mca/base/base.h"
#include "ompi/info/info.h"
BEGIN_C_DECLS

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2011 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2015 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2014 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2014 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2011 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2014 University of Houston. All rights reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2011 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2014 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -13,7 +13,7 @@
* Copyright (c) 2008-2011 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -16,7 +16,7 @@
* Copyright (c) 2015 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -30,6 +30,7 @@
#include "mpi.h"
#include "ompi/mca/mca.h"
#include "ompi/request/request.h"
#include "ompi/info/info.h"
/*
* Forward declaration for private data on io components and modules.

Просмотреть файл

@ -13,7 +13,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -15,7 +15,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -13,7 +13,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2008-2011 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -15,7 +15,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -240,10 +240,20 @@ static int delete_select(const char *filename, struct opal_info_t *info,
{
int ret;
// An opal_info_t isn't a full ompi_info_t. so if we're using an MPI call
// below with an MPI_Info, we need to create an equivalent MPI_Info. This
// isn't ideal but it only happens a few places.
ompi_info_t *ompi_info;
ompi_info = OBJ_NEW(ompi_info_t);
if (!ompi_info) { return(MPI_ERR_NO_MEM); }
opal_info_t *opal_info = &(ompi_info->super);
opal_info_dup (info, &opal_info);
OPAL_THREAD_LOCK (&mca_io_romio314_mutex);
ret = ROMIO_PREFIX(MPI_File_delete)(filename, info);
ret = ROMIO_PREFIX(MPI_File_delete)(filename, ompi_info);
OPAL_THREAD_UNLOCK (&mca_io_romio314_mutex);
ompi_info_free(&ompi_info);
return ret;
}

Просмотреть файл

@ -11,7 +11,7 @@
* All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -38,12 +38,22 @@ mca_io_romio314_file_open (ompi_communicator_t *comm,
int ret;
mca_io_romio314_data_t *data;
// An opal_info_t isn't a full ompi_info_t. so if we're using an MPI call
// below with an MPI_Info, we need to create an equivalent MPI_Info. This
// isn't ideal but it only happens a few places.
ompi_info_t *ompi_info;
ompi_info = OBJ_NEW(ompi_info_t);
if (!ompi_info) { return(MPI_ERR_NO_MEM); }
opal_info_t *opal_info = &(ompi_info->super);
opal_info_dup (info, &opal_info);
data = (mca_io_romio314_data_t *) fh->f_io_selected_data;
// OPAL_THREAD_LOCK (&mca_io_romio314_mutex);
ret = ROMIO_PREFIX(MPI_File_open)(comm, filename, amode, info,
ret = ROMIO_PREFIX(MPI_File_open)(comm, filename, amode, ompi_info,
&data->romio_fh);
// OPAL_THREAD_UNLOCK (&mca_io_romio314_mutex);
ompi_info_free(&ompi_info);
return ret;
}
@ -155,11 +165,21 @@ mca_io_romio314_file_set_info (ompi_file_t *fh,
int ret;
mca_io_romio314_data_t *data;
// An opal_info_t isn't a full ompi_info_t. so if we're using an MPI call
// below with an MPI_Info, we need to create an equivalent MPI_Info. This
// isn't ideal but it only happens a few places.
ompi_info_t *ompi_info;
ompi_info = OBJ_NEW(ompi_info_t);
if (!ompi_info) { return(MPI_ERR_NO_MEM); }
opal_info_t *opal_info = &(ompi_info->super);
opal_info_dup (info, &opal_info);
data = (mca_io_romio314_data_t *) fh->f_io_selected_data;
OPAL_THREAD_LOCK (&mca_io_romio314_mutex);
ret = ROMIO_PREFIX(MPI_File_set_info) (data->romio_fh, info);
ret = ROMIO_PREFIX(MPI_File_set_info) (data->romio_fh, ompi_info);
OPAL_THREAD_UNLOCK (&mca_io_romio314_mutex);
ompi_info_free(&ompi_info);
return ret;
}
@ -171,11 +191,20 @@ mca_io_romio314_file_get_info (ompi_file_t *fh,
int ret;
mca_io_romio314_data_t *data;
// An opal_info_t isn't a full ompi_info_t. so if we're using an MPI call
// below with an MPI_Info, we need to create an equivalent MPI_Info. This
// isn't ideal but it only happens a few places.
ompi_info_t *ompi_info;
ompi_info = OBJ_NEW(ompi_info_t);
if (!ompi_info) { return(MPI_ERR_NO_MEM); }
data = (mca_io_romio314_data_t *) fh->f_io_selected_data;
OPAL_THREAD_LOCK (&mca_io_romio314_mutex);
ret = ROMIO_PREFIX(MPI_File_get_info) (data->romio_fh, info_used);
ret = ROMIO_PREFIX(MPI_File_get_info) (data->romio_fh, &ompi_info);
OPAL_THREAD_UNLOCK (&mca_io_romio314_mutex);
opal_info_dup (&(ompi_info->super), info_used);
ompi_info_free(&ompi_info);
return ret;
}
@ -191,13 +220,23 @@ mca_io_romio314_file_set_view (ompi_file_t *fh,
int ret;
mca_io_romio314_data_t *data;
// An opal_info_t isn't a full ompi_info_t. so if we're using an MPI call
// below with an MPI_Info, we need to create an equivalent MPI_Info. This
// isn't ideal but it only happens a few places.
ompi_info_t *ompi_info;
ompi_info = OBJ_NEW(ompi_info_t);
if (!ompi_info) { return(MPI_ERR_NO_MEM); }
opal_info_t *opal_info = &(ompi_info->super);
opal_info_dup (info, &opal_info);
data = (mca_io_romio314_data_t *) fh->f_io_selected_data;
OPAL_THREAD_LOCK (&mca_io_romio314_mutex);
ret =
ROMIO_PREFIX(MPI_File_set_view) (data->romio_fh, disp, etype, filetype,
datarep, info);
datarep, ompi_info);
OPAL_THREAD_UNLOCK (&mca_io_romio314_mutex);
ompi_info_free(&ompi_info);
return ret;
}

Просмотреть файл

@ -11,6 +11,7 @@
* All rights reserved.
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2017 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -47,8 +48,6 @@ mca_io_base_module_2_0_0_t mca_io_romio314_module = {
mca_io_romio314_file_preallocate,
mca_io_romio314_file_get_size,
mca_io_romio314_file_get_amode,
mca_io_romio314_file_set_info,
mca_io_romio314_file_get_info,
mca_io_romio314_file_set_view,
mca_io_romio314_file_get_view,

Просмотреть файл

@ -7,7 +7,7 @@
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* All rights reserved.
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -13,7 +13,7 @@
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -5,7 +5,7 @@
* reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -8,7 +8,7 @@
* Copyright (c) 2017 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -15,7 +15,7 @@
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 FUJITSU LIMITED. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -16,7 +16,7 @@
* Copyright (c) 2012-2013 Sandia National Laboratories. All rights reserved.
* Copyright (c) 2015-2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -104,9 +104,6 @@ ompi_osc_pt2pt_module_t ompi_osc_pt2pt_module_template = {
ompi_osc_pt2pt_flush_all,
ompi_osc_pt2pt_flush_local,
ompi_osc_pt2pt_flush_local_all,
ompi_osc_pt2pt_set_info,
ompi_osc_pt2pt_get_info
}
};

Просмотреть файл

@ -16,7 +16,7 @@
* Copyright (c) 2012-2015 Sandia National Laboratories. All rights reserved.
* Copyright (c) 2015 NVIDIA Corporation. All rights reserved.
* Copyright (c) 2015 Intel, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -1239,7 +1239,7 @@ static char* ompi_osc_rdma_set_no_lock_info(opal_infosubscriber_t *obj, char *ke
module->no_locks = false;
}
/* enforce collectiveness... */
module->comm->c_coll.coll_barrier(module->comm, module->comm->c_coll.coll_barrier_module);
module->comm->c_coll->coll_barrier(module->comm, module->comm->c_coll->coll_barrier_module);
/*
* Accept any value
*/

Просмотреть файл

@ -5,7 +5,7 @@
* reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2017 The University of Tennessee and The University
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -39,8 +39,8 @@ static int component_query(struct ompi_win_t *win, void **base, size_t size, int
static int component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit,
struct ompi_communicator_t *comm, struct opal_info_t *info,
int flavor, int *model);
static char* component_set_blocking_fence_info(void *obj, char *key, char *val);
static char* component_set_alloc_shared_noncontig_info(void *obj, char *key, char *val);
static char* component_set_blocking_fence_info(opal_infosubscriber_t *obj, char *key, char *val);
static char* component_set_alloc_shared_noncontig_info(opal_infosubscriber_t *obj, char *key, char *val);
ompi_osc_sm_component_t mca_osc_sm_component = {
@ -182,14 +182,14 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
OBJ_CONSTRUCT(&module->lock, opal_mutex_t);
ret = opal_infosubscribe_subscribe(win, "blocking_fence", "false",
ret = opal_infosubscribe_subscribe(&(win->super), "blocking_fence", "false",
component_set_blocking_fence_info);
module->global_state->use_barrier_for_fence = 1;
if (OPAL_SUCCESS != ret) goto error;
ret = opal_infosubscribe_subscribe(win, "alloc_shared_contig", "false", component_set_alloc_shared_noncontig_info);
ret = opal_infosubscribe_subscribe(&(win->super), "alloc_shared_contig", "false", component_set_alloc_shared_noncontig_info);
if (OPAL_SUCCESS != ret) goto error;
@ -521,7 +521,7 @@ ompi_osc_sm_set_info(struct ompi_win_t *win, struct opal_info_t *info)
static char*
component_set_blocking_fence_info(void *obj, char *key, char *val)
component_set_blocking_fence_info(opal_infosubscriber_t *obj, char *key, char *val)
{
ompi_osc_sm_module_t *module = (ompi_osc_sm_module_t*) ((struct ompi_win_t*) obj)->w_osc_module;
/*
@ -532,7 +532,7 @@ component_set_blocking_fence_info(void *obj, char *key, char *val)
static char*
component_set_alloc_shared_noncontig_info(void *obj, char *key, char *val)
component_set_alloc_shared_noncontig_info(opal_infosubscriber_t *obj, char *key, char *val)
{
ompi_osc_sm_module_t *module = (ompi_osc_sm_module_t*) ((struct ompi_win_t*) obj)->w_osc_module;

Просмотреть файл

@ -6,7 +6,7 @@
* Copyright (c) 2014-2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Intel, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2013-2016 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2013-2016 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2013-2015 University of Houston. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -73,7 +73,7 @@ struct mca_sharedfp_base_module_1_0_0_t * mca_sharedfp_individual_component_file
int amode;
bool wronly_flag=false;
bool relaxed_order_flag=false;
MPI_Info info;
opal_info_t *info;
int flag;
int valuelen;
char value[MPI_MAX_INFO_VAL+1];
@ -102,7 +102,7 @@ struct mca_sharedfp_base_module_1_0_0_t * mca_sharedfp_individual_component_file
/*---------------------------------------------------------*/
/* 2. Did the user specify MPI_INFO relaxed ordering flag? */
info = fh->f_info;
if ( info != MPI_INFO_NULL ){
if ( info != &(MPI_INFO_NULL->super) ){
valuelen = MPI_MAX_INFO_VAL;
opal_info_get ( info,"OMPIO_SHAREDFP_RELAXED_ORDERING", valuelen, value, &flag);
if ( flag ) {

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2013-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2013-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -114,7 +114,7 @@ int mca_sharedfp_individual_file_open (struct ompi_communicator_t *comm,
}
err = mca_common_ompio_file_open(MPI_COMM_SELF, datafilename,
MPI_MODE_RDWR | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE,
MPI_INFO_NULL, datafilehandle, false);
&(MPI_INFO_NULL->super), datafilehandle, false);
if ( OMPI_SUCCESS != err) {
opal_output(0, "mca_sharedfp_individual_file_open: Error during datafile file open\n");
free (shfileHandle );
@ -157,7 +157,7 @@ int mca_sharedfp_individual_file_open (struct ompi_communicator_t *comm,
}
err = mca_common_ompio_file_open ( MPI_COMM_SELF,metadatafilename,
MPI_MODE_RDWR | MPI_MODE_CREATE | MPI_MODE_DELETE_ON_CLOSE,
MPI_INFO_NULL, metadatafilehandle, false);
&(MPI_INFO_NULL->super), metadatafilehandle, false);
if ( OMPI_SUCCESS != err) {
opal_output(0, "mca_sharedfp_individual_file_open: Error during metadatafile file open\n");
free (shfileHandle );

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2013-2016 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2013-2017 University of Houston. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -68,7 +68,7 @@ int mca_sharedfp_lockedfile_file_open (struct ompi_communicator_t *comm,
ompio_fh->f_etype,
ompio_fh->f_orig_filetype,
ompio_fh->f_datarep,
MPI_INFO_NULL);
&(MPI_INFO_NULL->super));
/*Memory is allocated here for the sh structure*/

Просмотреть файл

@ -15,7 +15,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -31,6 +31,7 @@
#include "ompi/mca/mca.h"
#include "opal/mca/base/base.h"
#include "ompi/request/request.h"
#include "ompi/info/info.h"
BEGIN_C_DECLS

Просмотреть файл

@ -13,7 +13,7 @@
* 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) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -14,7 +14,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -87,7 +87,7 @@ int mca_sharedfp_sm_file_open (struct ompi_communicator_t *comm,
ompio_fh->f_etype,
ompio_fh->f_orig_filetype,
ompio_fh->f_datarep,
MPI_INFO_NULL);
&(MPI_INFO_NULL->super));
/*Memory is allocated here for the sh structure*/
if ( mca_sharedfp_sm_verbose ) {

Просмотреть файл

@ -15,7 +15,7 @@
* Copyright (c) 2012-2013 Inria. All rights reserved.
* Copyright (c) 2014-2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -10,7 +10,7 @@
* Copyright (c) 2011-2013 Université Bordeaux 1
* Copyright (c) 2014-2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corporation. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
*/
#include "ompi_config.h"
@ -295,6 +295,14 @@ int mca_topo_base_dist_graph_create(mca_topo_base_module_t* module,
OBJ_RELEASE(module);
return err;
}
// But if there is an info object, the above call didn't make use
// of it, so we'll do a dup-with-info to get the final comm and
// free the above intermediate newcomm:
if (info && info != &(MPI_INFO_NULL->super)) {
ompi_communicator_t *intermediate_comm = *newcomm;
ompi_comm_dup_with_info (intermediate_comm, info, newcomm);
ompi_comm_free(&intermediate_comm);
}
assert(NULL == (*newcomm)->c_topo);
(*newcomm)->c_topo = module;

Просмотреть файл

@ -10,6 +10,7 @@
* Copyright (c) 2011-2013 Université Bordeaux 1
* Copyright (c) 2014-2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2017 IBM Corp. All rights reserved.
*/
#include "ompi_config.h"
@ -37,6 +38,15 @@ int mca_topo_base_dist_graph_create_adjacent(mca_topo_base_module_t* module,
newcomm)) ) {
return err;
}
// But if there is an info object, the above call didn't make use
// of it, so we'll do a dup-with-info to get the final comm and
// free the above intermediate newcomm:
if (info && info != &(MPI_INFO_NULL->super)) {
ompi_communicator_t *intermediate_comm = *newcomm;
ompi_comm_dup_with_info (intermediate_comm, info, newcomm);
ompi_comm_free(&intermediate_comm);
}
err = OMPI_ERR_OUT_OF_RESOURCE; /* suppose by default something bad will happens */
assert( NULL == (*newcomm)->c_topo );

Просмотреть файл

@ -16,7 +16,7 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -6,7 +6,7 @@
* Copyright (c) 2011-2015 Bordeaux Polytechnic Institute
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -11,7 +11,7 @@
* Copyright (c) 2016 Los Alamos National Security, LLC. All rights
* reserved.
* Copyright (c) 2017 Cisco Systems, Inc. All rights reserved
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -76,7 +76,7 @@ int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr)
if (MPI_INFO_NULL != info) {
int flag;
(void) opal_info_get (info, "mpool_hints", MPI_MAX_INFO_VAL, info_value, &flag);
(void) ompi_info_get (info, "mpool_hints", MPI_MAX_INFO_VAL, info_value, &flag);
if (flag) {
mpool_hints = info_value;
}

Просмотреть файл

@ -16,7 +16,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -3,7 +3,7 @@
* Copyright (c) 2014 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -51,7 +51,7 @@ int MPI_Comm_get_info(MPI_Comm comm, MPI_Info *info_used)
/*
* Setup any defaults if MPI_Win_set_info was never called
*/
opal_infosubscribe_change_info(comm, &MPI_INFO_NULL->super);
opal_infosubscribe_change_info(&comm->super, &MPI_INFO_NULL->super);
}
@ -60,8 +60,9 @@ int MPI_Comm_get_info(MPI_Comm comm, MPI_Info *info_used)
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_NO_MEM,
FUNC_NAME);
}
opal_info_t *opal_info_used = &(*info_used)->super;
opal_info_dup(comm->super.s_info, &(*info_used)->super);
opal_info_dup_mpistandard(comm->super.s_info, &opal_info_used);
return MPI_SUCCESS;
}

Просмотреть файл

@ -3,7 +3,7 @@
* Copyright (c) 2014 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -50,7 +50,7 @@ int MPI_Comm_set_info(MPI_Comm comm, MPI_Info info)
OPAL_CR_ENTER_LIBRARY();
opal_infosubscribe_change_info(comm, info);
opal_infosubscribe_change_info(&(comm->super), &(info->super));
return MPI_SUCCESS;
}

Просмотреть файл

@ -17,7 +17,6 @@
* Copyright (c) 2015 Intel, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -110,7 +109,7 @@ int MPI_Comm_spawn(const char *command, char *argv[], int maxprocs, MPI_Info inf
/* See if the info key "ompi_non_mpi" was set to true */
if (rank == root) {
opal_info_get_bool(info, "ompi_non_mpi", &non_mpi, &flag);
ompi_info_get_bool(info, "ompi_non_mpi", &non_mpi, &flag);
}
OPAL_CR_ENTER_LIBRARY();

Просмотреть файл

@ -17,7 +17,6 @@
* Copyright (c) 2015 Intel, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -106,7 +105,7 @@ int MPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_o
be set to true on all of them. Note that not
setting ompi_non_mpi is the same as setting it to
false. */
opal_info_get_bool(array_of_info[i], "ompi_non_mpi", &non_mpi,
ompi_info_get_bool(array_of_info[i], "ompi_non_mpi", &non_mpi,
&flag);
if (flag && 0 == i) {
/* If this is the first info, save its
@ -142,7 +141,7 @@ int MPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_o
if (MPI_INFO_NULL == array_of_info[0]) {
non_mpi = false;
} else {
opal_info_get_bool(array_of_info[0], "ompi_non_mpi", &non_mpi,
ompi_info_get_bool(array_of_info[0], "ompi_non_mpi", &non_mpi,
&flag);
if (!flag) {
non_mpi = false;

Просмотреть файл

@ -13,6 +13,7 @@
* Copyright (c) 2012 Sandia National Laboratories. 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
@ -92,7 +93,7 @@ int MPI_Comm_split_type(MPI_Comm comm, int split_type, int key,
*newcomm = MPI_COMM_NULL;
rc = MPI_SUCCESS;
} else {
rc = ompi_comm_split_type( (ompi_communicator_t*)comm, split_type, key, info,
rc = ompi_comm_split_type( (ompi_communicator_t*)comm, split_type, key, &(info->super),
(ompi_communicator_t**)newcomm);
}
OMPI_ERRHANDLER_RETURN ( rc, comm, rc, FUNC_NAME);

Просмотреть файл

@ -8,6 +8,7 @@
* 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
@ -88,7 +89,7 @@ int MPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[],
}
err = topo->topo.dist_graph.dist_graph_create(topo, comm_old, n, sources, degrees,
destinations, weights, info,
destinations, weights, &(info->super),
reorder, newcomm);
OMPI_ERRHANDLER_RETURN(err, comm_old, err, FUNC_NAME);
}

Просмотреть файл

@ -12,6 +12,7 @@
* Copyright (c) 2012-2013 Inria. 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
@ -100,7 +101,7 @@ int MPI_Dist_graph_create_adjacent(MPI_Comm comm_old,
err = topo->topo.dist_graph.dist_graph_create_adjacent(topo, comm_old, indegree,
sources, sourceweights, outdegree,
destinations, destweights, info,
destinations, destweights, &(info->super),
reorder, comm_dist_graph);
OMPI_ERRHANDLER_RETURN(err, comm_old, err, FUNC_NAME);
}

Просмотреть файл

@ -14,6 +14,7 @@
* 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
@ -78,6 +79,6 @@ int MPI_File_delete(const char *filename, MPI_Info info)
/* Since there is no MPI_File handle associated with this
function, the MCA has to do a selection and perform the
action */
rc = mca_io_base_delete(filename, info);
rc = mca_io_base_delete(filename, &(info->super));
OMPI_ERRHANDLER_RETURN(rc, MPI_FILE_NULL, rc, FUNC_NAME);
}

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -57,7 +57,7 @@ int MPI_File_get_info(MPI_File fh, MPI_Info *info_used)
/*
* Setup any defaults if MPI_Win_set_info was never called
*/
opal_infosubscribe_change_info(fh, &MPI_INFO_NULL->super);
opal_infosubscribe_change_info(&fh->super, &MPI_INFO_NULL->super);
}
@ -65,8 +65,9 @@ int MPI_File_get_info(MPI_File fh, MPI_Info *info_used)
if (NULL == (*info_used)) {
return OMPI_ERRHANDLER_INVOKE(fh, MPI_ERR_NO_MEM, FUNC_NAME);
}
opal_info_t *opal_info_used = &(*info_used)->super;
opal_info_dup(fh->super.s_info, &(*info_used)->super);
opal_info_dup_mpistandard(fh->super.s_info, &opal_info_used);
return OMPI_SUCCESS;
}

Просмотреть файл

@ -16,6 +16,7 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 University of Houston. All rights reserved.
* Copyright (c) 2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -105,7 +106,7 @@ int MPI_File_open(MPI_Comm comm, const char *filename, int amode,
/* Create an empty MPI_File handle */
*fh = MPI_FILE_NULL;
rc = ompi_file_open(comm, filename, amode, info, fh);
rc = ompi_file_open(comm, filename, amode, &(info->super), fh);
/* Creating the file handle also selects a component to use,
creates a module, and calls file_open() on the module. So

Просмотреть файл

@ -12,7 +12,7 @@
* Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -62,7 +62,7 @@ int MPI_File_set_info(MPI_File fh, MPI_Info info)
OPAL_CR_ENTER_LIBRARY();
ret = opal_infosubscribe_change_info(fh, &info->super);
ret = opal_infosubscribe_change_info(&fh->super, &info->super);
OMPI_ERRHANDLER_RETURN(ret, fh, ret, FUNC_NAME);
}

Просмотреть файл

@ -15,6 +15,7 @@
* 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
@ -73,7 +74,7 @@ int MPI_File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
switch (fh->f_io_version) {
case MCA_IO_BASE_V_2_0_0:
rc = fh->f_io_selected_module.v2_0_0.
io_module_file_set_view(fh, disp, etype, filetype, datarep, info);
io_module_file_set_view(fh, disp, etype, filetype, datarep, &(info->super));
break;
default:

Просмотреть файл

@ -14,7 +14,6 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -78,6 +77,6 @@ int MPI_Info_delete(MPI_Info info, const char *key) {
OPAL_CR_ENTER_LIBRARY();
err = opal_info_delete (info, key);
err = ompi_info_delete (info, key);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -11,7 +11,6 @@
* All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -74,7 +73,7 @@ int MPI_Info_dup(MPI_Info info, MPI_Info *newinfo) {
}
}
*newinfo = OBJ_NEW(opal_info_t);
*newinfo = OBJ_NEW(ompi_info_t);
if (NULL == *newinfo) {
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_NO_MEM,
FUNC_NAME);
@ -85,6 +84,6 @@ int MPI_Info_dup(MPI_Info info, MPI_Info *newinfo) {
/*
* Now to actually duplicate all the values
*/
err = opal_info_dup (info, newinfo);
err = ompi_info_dup (info, newinfo);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -14,7 +14,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -101,6 +101,6 @@ int MPI_Info_get(MPI_Info info, const char *key, int valuelen,
OPAL_CR_ENTER_LIBRARY();
err = opal_info_get(info, key, valuelen, value, flag);
err = ompi_info_get(info, key, valuelen, value, flag);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -11,7 +11,6 @@
* All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -70,6 +69,6 @@ int MPI_Info_get_nkeys(MPI_Info info, int *nkeys)
OPAL_CR_ENTER_LIBRARY();
err = opal_info_get_nkeys(info, nkeys);
err = ompi_info_get_nkeys(info, nkeys);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -11,7 +11,6 @@
* All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -83,7 +82,7 @@ int MPI_Info_get_nthkey(MPI_Info info, int n, char *key)
1 from the value returned by get_nkeys(). So be sure to
compare appropriately. */
err = opal_info_get_nkeys(info, &nkeys);
err = ompi_info_get_nkeys(info, &nkeys);
OMPI_ERRHANDLER_CHECK(err, MPI_COMM_WORLD, err, FUNC_NAME);
if (n > (nkeys - 1)) {
OPAL_CR_EXIT_LIBRARY();
@ -93,6 +92,6 @@ int MPI_Info_get_nthkey(MPI_Info info, int n, char *key)
/* Everything seems alright. Call the back end key copy */
err = opal_info_get_nthkey (info, n, key);
err = ompi_info_get_nthkey (info, n, key);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -14,7 +14,6 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -91,6 +90,6 @@ int MPI_Info_get_valuelen(MPI_Info info, const char *key, int *valuelen,
OPAL_CR_ENTER_LIBRARY();
err = opal_info_get_valuelen (info, key, valuelen, flag);
err = ompi_info_get_valuelen (info, key, valuelen, flag);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -12,7 +12,6 @@
* Copyright (c) 2012-2013 Inria. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -105,6 +104,6 @@ int MPI_Info_set(MPI_Info info, const char *key, const char *value)
* allocator.
*/
err = opal_info_set (info, key, value);
err = ompi_info_set (info, key, value);
OMPI_ERRHANDLER_RETURN(err, MPI_COMM_WORLD, err, FUNC_NAME);
}

Просмотреть файл

@ -16,7 +16,6 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -89,7 +88,7 @@ int MPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name)
/* OMPI supports info keys to pass the range to
* be searched for the given key */
if (MPI_INFO_NULL != info) {
opal_info_get (info, "range", sizeof(range) - 1, range, &flag);
ompi_info_get (info, "range", sizeof(range) - 1, range, &flag);
if (flag) {
if (0 == strcmp(range, "nspace")) {
rng = OBJ_NEW(opal_value_t);

Просмотреть файл

@ -16,7 +16,6 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -89,7 +88,7 @@ int MPI_Publish_name(const char *service_name, MPI_Info info,
/* OMPI supports info keys to pass the range and persistence to
* be used for the given key */
if (MPI_INFO_NULL != info) {
opal_info_get (info, "range", sizeof(range) - 1, range, &flag);
ompi_info_get (info, "range", sizeof(range) - 1, range, &flag);
if (flag) {
if (0 == strcmp(range, "nspace")) {
rng = OBJ_NEW(opal_value_t);
@ -111,7 +110,7 @@ int MPI_Publish_name(const char *service_name, MPI_Info info,
FUNC_NAME);
}
}
opal_info_get (info, "persistence", sizeof(range) - 1, range, &flag);
ompi_info_get (info, "persistence", sizeof(range) - 1, range, &flag);
if (flag) {
if (0 == strcmp(range, "indef")) {
rng = OBJ_NEW(opal_value_t);

Просмотреть файл

@ -16,7 +16,6 @@
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -91,7 +90,7 @@ int MPI_Unpublish_name(const char *service_name, MPI_Info info,
/* OMPI supports info keys to pass the range to
* be searched for the given key */
if (MPI_INFO_NULL != info) {
opal_info_get (info, "range", sizeof(range) - 1, range, &flag);
ompi_info_get (info, "range", sizeof(range) - 1, range, &flag);
if (flag) {
if (0 == strcmp(range, "nspace")) {
rng = OBJ_NEW(opal_value_t);

Просмотреть файл

@ -12,6 +12,7 @@
* Copyright (c) 2006 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
@ -77,7 +78,7 @@ int MPI_Win_allocate(MPI_Aint size, int disp_unit, MPI_Info info,
OPAL_CR_ENTER_LIBRARY();
/* create window and return */
ret = ompi_win_allocate((size_t)size, disp_unit, info,
ret = ompi_win_allocate((size_t)size, disp_unit, &(info->super),
comm, baseptr, win);
if (OMPI_SUCCESS != ret) {
*win = MPI_WIN_NULL;

Просмотреть файл

@ -15,6 +15,7 @@
* 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
@ -78,7 +79,7 @@ int MPI_Win_allocate_shared(MPI_Aint size, int disp_unit, MPI_Info info,
OPAL_CR_ENTER_LIBRARY();
/* create window and return */
ret = ompi_win_allocate_shared((size_t)size, disp_unit, info,
ret = ompi_win_allocate_shared((size_t)size, disp_unit, &(info->super),
comm, baseptr, win);
if (OMPI_SUCCESS != ret) {
*win = MPI_WIN_NULL;

Просмотреть файл

@ -12,6 +12,7 @@
* Copyright (c) 2006 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
@ -78,7 +79,7 @@ int MPI_Win_create(void *base, MPI_Aint size, int disp_unit,
/* create window and return */
ret = ompi_win_create(base, (size_t)size, disp_unit, comm,
info, win);
&(info->super), win);
if (OMPI_SUCCESS != ret) {
*win = MPI_WIN_NULL;
OPAL_CR_EXIT_LIBRARY();

Просмотреть файл

@ -12,6 +12,7 @@
* Copyright (c) 2006 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
@ -73,7 +74,7 @@ int MPI_Win_create_dynamic(MPI_Info info, MPI_Comm comm, MPI_Win *win)
OPAL_CR_ENTER_LIBRARY();
/* create_dynamic window and return */
ret = ompi_win_create_dynamic(info, comm, win);
ret = ompi_win_create_dynamic(&(info->super), comm, win);
if (OMPI_SUCCESS != ret) {
*win = MPI_WIN_NULL;
OPAL_CR_EXIT_LIBRARY();

Просмотреть файл

@ -5,7 +5,7 @@
* reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -53,15 +53,16 @@ int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used)
/*
* Setup any defaults if MPI_Win_set_info was never called
*/
opal_infosubscribe_change_info(win, &MPI_INFO_NULL->super);
opal_infosubscribe_change_info(&win->super, &MPI_INFO_NULL->super);
}
(*info_used) = OBJ_NEW(ompi_info_t);
if (NULL == (*info_used)) {
return OMPI_ERRHANDLER_INVOKE(win, MPI_ERR_NO_MEM, FUNC_NAME);
}
opal_info_t *opal_info_used = &(*info_used)->super;
ret = opal_info_dup(&win->super.s_info, &(*info_used)->super);
ret = opal_info_dup_mpistandard(win->super.s_info, &opal_info_used);
OMPI_ERRHANDLER_RETURN(ret, win, ret, FUNC_NAME);
}

Просмотреть файл

@ -2,7 +2,7 @@
* Copyright (c) 2013 Sandia National Laboratories. All rights reserved.
* Copyright (c) 2015 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -48,7 +48,7 @@ int MPI_Win_set_info(MPI_Win win, MPI_Info info)
OPAL_CR_ENTER_LIBRARY();
ret = opal_infosubscribe_change_info(win, info);
ret = opal_infosubscribe_change_info(&(win->super), &(info->super));
OMPI_ERRHANDLER_RETURN(ret, win, ret, FUNC_NAME);
}

Просмотреть файл

@ -6,7 +6,7 @@
* of Tennessee Research Foundation. All rights
* reserved.
* Copyright (c) 2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -20,7 +20,7 @@
* Copyright (c) 2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
*
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -22,7 +22,7 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved.
*
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow

Просмотреть файл

@ -16,7 +16,7 @@
* reserved.
* Copyright (c) 2015-2016 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2016 IBM Corp. All rights reserved.
* Copyright (c) 2016-2017 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -179,6 +179,12 @@ static int alloc_window(struct ompi_communicator_t *comm, opal_info_t *info, int
OBJ_RETAIN(group);
win->w_group = group;
/* Copy the info for the info layer */
win->super.s_info = OBJ_NEW(opal_info_t);
if (info) {
opal_info_dup(info, &(win->super.s_info));
}
*win_out = win;
return OMPI_SUCCESS;
@ -361,6 +367,10 @@ ompi_win_free(ompi_win_t *win)
NULL);
}
if (NULL != (win->super.s_info)) {
OBJ_RELEASE(win->super.s_info);
}
if (OMPI_SUCCESS == ret) {
OBJ_RELEASE(win);
}

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше