1
1
openmpi/opal/mca/db/base/db_base_frame.c
Ralph Castain d565a76814 Do some cleanup of the way we handle modex data. Identify data that needs to be shared with peers in my job vs data that needs to be shared with non-peers - no point in sharing extra data. When we share data with some process(es) from another job, we cannot know in advance what info they have or lack, so we have to share everything just in case. This limits the optimization we can do for things like comm_spawn.
Create a new required key in the OMPI layer for retrieving a "node id" from the database. ALL RTE'S MUST DEFINE THIS KEY. This allows us to compute locality in the MPI layer, which is necessary when we do things like intercomm_create.

cmr:v1.7.4:reviewer=rhc:subject=Cleanup handling of modex data

This commit was SVN r29274.
2013-09-27 00:37:49 +00:00

72 строки
1.8 KiB
C

/*
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "opal_config.h"
#include "opal/constants.h"
#include "opal/mca/mca.h"
#include "opal/util/output.h"
#include "opal/mca/base/base.h"
#include "opal/dss/dss_types.h"
#include "opal/mca/db/base/base.h"
/*
* The following file was created by configure. It contains extern
* dbments and the definition of an array of pointers to each
* module's public mca_base_module_t struct.
*/
#include "opal/mca/db/base/static-components.h"
opal_db_base_module_t opal_db = {
NULL,
NULL,
opal_db_base_set_id,
opal_db_base_store,
opal_db_base_store_pointer,
opal_db_base_commit,
opal_db_base_fetch,
opal_db_base_fetch_pointer,
opal_db_base_fetch_multiple,
opal_db_base_remove_data,
opal_db_base_add_log
};
opal_db_base_t opal_db_base;
static int opal_db_base_close(void)
{
if (NULL != opal_db.finalize) {
opal_db.finalize();
}
return mca_base_framework_components_close(&opal_db_base_framework, NULL);
}
static int opal_db_base_open(mca_base_open_flag_t flags)
{
opal_db_base.my_id = 0;
opal_db_base.id_set = false;
OBJ_CONSTRUCT(&opal_db_base.fetch_order, opal_list_t);
OBJ_CONSTRUCT(&opal_db_base.store_order, opal_list_t);
/* Open up all available components */
return mca_base_framework_components_open(&opal_db_base_framework, flags);
}
MCA_BASE_FRAMEWORK_DECLARE(opal, db, NULL, NULL, opal_db_base_open, opal_db_base_close,
mca_db_base_static_components, 0);
OBJ_CLASS_INSTANCE(opal_db_active_module_t,
opal_list_item_t,
NULL, NULL);