7c795f4416
Do a little optimization and minimize recomputation of the routing plan. Signed-off-by: Ralph Castain <rhc@open-mpi.org>
78 строки
2.6 KiB
C
78 строки
2.6 KiB
C
/*
|
|
* Copyright (c) 2007-2013 Los Alamos National Security, LLC.
|
|
* All rights reserved.
|
|
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#ifndef MCA_ROUTED_BASE_H
|
|
#define MCA_ROUTED_BASE_H
|
|
|
|
#include "orte_config.h"
|
|
|
|
#include "orte/mca/mca.h"
|
|
|
|
#include "opal/class/opal_pointer_array.h"
|
|
#include "opal/dss/dss_types.h"
|
|
|
|
#include "orte/mca/rml/rml_types.h"
|
|
#include "orte/mca/routed/routed.h"
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
/*
|
|
* MCA Framework
|
|
*/
|
|
ORTE_DECLSPEC extern mca_base_framework_t orte_routed_base_framework;
|
|
/* select a component */
|
|
ORTE_DECLSPEC int orte_routed_base_select(void);
|
|
|
|
typedef struct {
|
|
opal_list_item_t super;
|
|
int pri;
|
|
orte_routed_component_t *component;
|
|
orte_routed_module_t *module;
|
|
} orte_routed_base_active_t;
|
|
OBJ_CLASS_DECLARATION(orte_routed_base_active_t);
|
|
|
|
typedef struct {
|
|
opal_list_t actives;
|
|
bool routing_enabled;
|
|
} orte_routed_base_t;
|
|
ORTE_DECLSPEC extern orte_routed_base_t orte_routed_base;
|
|
|
|
|
|
/* base API wrapper functions */
|
|
ORTE_DECLSPEC char* orte_routed_base_assign_module(char *modules);
|
|
|
|
ORTE_DECLSPEC int orte_routed_base_delete_route(char *module, orte_process_name_t *proc);
|
|
ORTE_DECLSPEC int orte_routed_base_update_route(char *module, orte_process_name_t *target,
|
|
orte_process_name_t *route);
|
|
ORTE_DECLSPEC orte_process_name_t orte_routed_base_get_route(char *module,
|
|
orte_process_name_t *target);
|
|
ORTE_DECLSPEC int orte_routed_base_route_lost(char *module,
|
|
const orte_process_name_t *route);
|
|
ORTE_DECLSPEC bool orte_routed_base_route_is_defined(char *module,
|
|
const orte_process_name_t *target);
|
|
ORTE_DECLSPEC void orte_routed_base_update_routing_plan(char *module);
|
|
ORTE_DECLSPEC void orte_routed_base_get_routing_list(char *module, opal_list_t *coll);
|
|
ORTE_DECLSPEC int orte_routed_base_set_lifeline(char *module, orte_process_name_t *proc);
|
|
ORTE_DECLSPEC size_t orte_routed_base_num_routes(char *module);
|
|
ORTE_DECLSPEC int orte_routed_base_ft_event(char *module, int state);
|
|
|
|
/* specialized support functions */
|
|
ORTE_DECLSPEC void orte_routed_base_xcast_routing(opal_list_t *coll,
|
|
opal_list_t *my_children);
|
|
|
|
ORTE_DECLSPEC int orte_routed_base_process_callback(orte_jobid_t job,
|
|
opal_buffer_t *buffer);
|
|
ORTE_DECLSPEC void orte_routed_base_update_hnps(opal_buffer_t *buf);
|
|
|
|
END_C_DECLS
|
|
|
|
#endif /* MCA_ROUTED_BASE_H */
|