1
1
openmpi/orte/mca/routed/debruijn/routed_debruijn_component.c
Ralph Castain 649301a3a2 Revise the routed framework to be multi-select so it can support the new conduit system. Update all calls to rml.send* to the new syntax. Define an orte_mgmt_conduit for admin and IOF messages, and an orte_coll_conduit for all collective operations (e.g., xcast, modex, and barrier).
Still not completely done as we need a better way of tracking the routed module being used down in the OOB - e.g., when a peer drops connection, we want to remove that route from all conduits that (a) use the OOB and (b) are routed, but we don't want to remove it from an OFI conduit.
2016-10-23 21:52:39 -07:00

61 строка
1.9 KiB
C

/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
/*
* Copyright (c) 2007-2015 Los Alamos National Security, LLC.
* All rights reserved.
* Copyright (c) 2004-2008 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2016 Intel, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "orte_config.h"
#include "orte/constants.h"
#include "opal/mca/base/base.h"
#include "orte/mca/routed/base/base.h"
#include "routed_debruijn.h"
static int orte_routed_debruijn_component_query(mca_base_module_t **module, int *priority);
/**
* component definition
*/
orte_routed_component_t mca_routed_debruijn_component = {
/* First, the mca_base_component_t struct containing meta
information about the component itself */
.base_version = {
ORTE_ROUTED_BASE_VERSION_3_0_0,
.mca_component_name = "debruijn",
MCA_BASE_MAKE_VERSION(component, ORTE_MAJOR_VERSION, ORTE_MINOR_VERSION,
ORTE_RELEASE_VERSION),
.mca_query_component = orte_routed_debruijn_component_query
},
.base_data = {
/* This component can be checkpointed */
MCA_BASE_METADATA_PARAM_CHECKPOINT
},
};
static int orte_routed_debruijn_component_query(mca_base_module_t **module, int *priority)
{
/* Debruijn shall be our default, especially for large systems. For smaller
* systems, we will allow other options that have even fewer hops to
* support wireup
*
* XXX: set this to 0 until we can figure out what's going on with
* it within undersubscribed allocations. Once debruijn is fixed,
* revert back to priority 70. Note: this component seems to work fine within
* fully utilized allocations.
*/
*priority = 0;
*module = (mca_base_module_t *) &orte_routed_debruijn_module;
return ORTE_SUCCESS;
}