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>
Этот коммит содержится в:
родитель
50aa143ab6
Коммит
482d84b6e5
2
AUTHORS
2
AUTHORS
@ -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);
|
||||
}
|
||||
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
x
Ссылка в новой задаче
Block a user