Add a new reliable multicast component based on the "spread" library
Thanks to Srini Nariangadu (Cisco) for the contribution! This commit was SVN r23076.
Этот коммит содержится в:
родитель
c93af95351
Коммит
3f262bf0b6
@ -103,6 +103,7 @@ typedef struct {
|
|||||||
orte_rmcast_callback_fn_t cbfunc_iovec;
|
orte_rmcast_callback_fn_t cbfunc_iovec;
|
||||||
orte_rmcast_callback_buffer_fn_t cbfunc_buffer;
|
orte_rmcast_callback_buffer_fn_t cbfunc_buffer;
|
||||||
void *cbdata;
|
void *cbdata;
|
||||||
|
bool send_complete;
|
||||||
} rmcast_base_send_t;
|
} rmcast_base_send_t;
|
||||||
ORTE_DECLSPEC OBJ_CLASS_DECLARATION(rmcast_base_send_t);
|
ORTE_DECLSPEC OBJ_CLASS_DECLARATION(rmcast_base_send_t);
|
||||||
|
|
||||||
|
@ -54,7 +54,8 @@ typedef int32_t orte_rmcast_tag_t;
|
|||||||
#define ORTE_RMCAST_TAG_MSG 6
|
#define ORTE_RMCAST_TAG_MSG 6
|
||||||
#define ORTE_RMCAST_TAG_TOOL 7
|
#define ORTE_RMCAST_TAG_TOOL 7
|
||||||
#define ORTE_RMCAST_TAG_IOF 8
|
#define ORTE_RMCAST_TAG_IOF 8
|
||||||
#define ORTE_RMCAST_TAG_UPDATE_STATE 9
|
#define ORTE_RMCAST_TAG_STATE 9
|
||||||
|
#define ORTE_RMCAST_TAG_STATE_ACK 10
|
||||||
|
|
||||||
/* starting value for dynamically assignable tags */
|
/* starting value for dynamically assignable tags */
|
||||||
#define ORTE_RMCAST_TAG_DYNAMIC 100
|
#define ORTE_RMCAST_TAG_DYNAMIC 100
|
||||||
|
38
orte/mca/rmcast/spread/Makefile.am
Обычный файл
38
orte/mca/rmcast/spread/Makefile.am
Обычный файл
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
AM_CPPFLAGS = $(rmcast_spread_CPPFLAGS)
|
||||||
|
|
||||||
|
# Make the output library in this directory, and name it either
|
||||||
|
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
||||||
|
# (for static builds).
|
||||||
|
|
||||||
|
if OMPI_BUILD_rmcast_spread_DSO
|
||||||
|
component_noinst =
|
||||||
|
component_install = mca_rmcast_spread.la
|
||||||
|
else
|
||||||
|
component_noinst = libmca_rmcast_spread.la
|
||||||
|
component_install =
|
||||||
|
endif
|
||||||
|
|
||||||
|
rmcast_spread_SOURCES = \
|
||||||
|
rmcast_spread.c \
|
||||||
|
rmcast_spread.h \
|
||||||
|
rmcast_spread_component.c
|
||||||
|
|
||||||
|
mcacomponentdir = $(pkglibdir)
|
||||||
|
mcacomponent_LTLIBRARIES = $(component_install)
|
||||||
|
mca_rmcast_spread_la_SOURCES = $(rmcast_spread_SOURCES)
|
||||||
|
mca_rmcast_spread_la_LDFLAGS = -module -avoid-version $(rmcast_spread_LDFLAGS)
|
||||||
|
mca_rmcast_spread_la_LIBADD = $(rmcast_spread_LIBS)
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = $(component_noinst)
|
||||||
|
libmca_rmcast_spread_la_SOURCES = $(rmcast_spread_SOURCES)
|
||||||
|
libmca_rmcast_spread_la_LDFLAGS = -module -avoid-version $(rmcast_spread_LDFLAGS)
|
||||||
|
libmca_rmcast_spread_la_LIBADD = $(rmcast_spread_LIBS)
|
25
orte/mca/rmcast/spread/configure.m4
Обычный файл
25
orte/mca/rmcast/spread/configure.m4
Обычный файл
@ -0,0 +1,25 @@
|
|||||||
|
dnl -*- shell-script -*-
|
||||||
|
dnl
|
||||||
|
dnl Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||||
|
dnl $COPYRIGHT$
|
||||||
|
dnl
|
||||||
|
dnl Additional copyrights may follow
|
||||||
|
dnl
|
||||||
|
dnl $HEADER$
|
||||||
|
dnl
|
||||||
|
|
||||||
|
# MCA_rmcast_spread_CONFIG([action-if-found], [action-if-not-found])
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
AC_DEFUN([MCA_rmcast_spread_CONFIG],[
|
||||||
|
OPAL_SETUP_COMPONENT_PACKAGE([rmcast],
|
||||||
|
[spread],
|
||||||
|
[spread],
|
||||||
|
[include/sp.h],
|
||||||
|
[libspread*],
|
||||||
|
[sp.h],
|
||||||
|
[spread],
|
||||||
|
[SP_version],
|
||||||
|
[],
|
||||||
|
[$1],
|
||||||
|
[$2])
|
||||||
|
])dnl
|
11
orte/mca/rmcast/spread/configure.params
Обычный файл
11
orte/mca/rmcast/spread/configure.params
Обычный файл
@ -0,0 +1,11 @@
|
|||||||
|
# -*- shell-script -*-
|
||||||
|
#
|
||||||
|
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||||
|
# $COPYRIGHT$
|
||||||
|
#
|
||||||
|
# Additional copyrights may follow
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
PARAM_CONFIG_FILES="Makefile"
|
1468
orte/mca/rmcast/spread/rmcast_spread.c
Обычный файл
1468
orte/mca/rmcast/spread/rmcast_spread.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
43
orte/mca/rmcast/spread/rmcast_spread.h
Обычный файл
43
orte/mca/rmcast/spread/rmcast_spread.h
Обычный файл
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef ORTE_RMCAST_SPREAD_H
|
||||||
|
#define ORTE_RMCAST_SPREAD_H
|
||||||
|
|
||||||
|
#include "orte_config.h"
|
||||||
|
|
||||||
|
#include "opal/mca/mca.h"
|
||||||
|
#include "opal/mca/base/base.h"
|
||||||
|
|
||||||
|
#include "orte/mca/rmcast/rmcast.h"
|
||||||
|
|
||||||
|
BEGIN_C_DECLS
|
||||||
|
|
||||||
|
#define ORTE_RMCAST_SPREAD_MAX_MSG_SIZE 1500
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
orte_rmcast_base_component_t super;
|
||||||
|
int max_msg_size;
|
||||||
|
} orte_rmcast_spread_component_t;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Module open / close
|
||||||
|
*/
|
||||||
|
int orte_rmcast_spread_component_open(void);
|
||||||
|
int orte_rmcast_spread_component_close(void);
|
||||||
|
int orte_rmcast_spread_component_query(mca_base_module_t **module, int *priority);
|
||||||
|
|
||||||
|
|
||||||
|
ORTE_MODULE_DECLSPEC extern orte_rmcast_spread_component_t mca_rmcast_spread_component;
|
||||||
|
ORTE_DECLSPEC extern orte_rmcast_module_t orte_rmcast_spread_module;
|
||||||
|
|
||||||
|
END_C_DECLS
|
||||||
|
|
||||||
|
#endif /* ORTE_RMCAST_SPREAD_H */
|
92
orte/mca/rmcast/spread/rmcast_spread_component.c
Обычный файл
92
orte/mca/rmcast/spread/rmcast_spread_component.c
Обычный файл
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* $COPYRIGHT$
|
||||||
|
*
|
||||||
|
* Additional copyrights may follow
|
||||||
|
*
|
||||||
|
* $HEADER$
|
||||||
|
*
|
||||||
|
* These symbols are in a file by themselves to provide nice linker
|
||||||
|
* semantics. Since linkers generally pull in symbols by object
|
||||||
|
* files, keeping these symbols as the only symbols in this file
|
||||||
|
* prevents utility programs such as "ompi_info" from having to import
|
||||||
|
* entire components just to query their version and parameters.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "orte_config.h"
|
||||||
|
#include "orte/constants.h"
|
||||||
|
|
||||||
|
#include "opal/mca/base/base.h"
|
||||||
|
#include "opal/mca/base/mca_base_param.h"
|
||||||
|
|
||||||
|
#include "orte/util/proc_info.h"
|
||||||
|
|
||||||
|
#include "orte/mca/rmcast/rmcast.h"
|
||||||
|
#include "rmcast_spread.h"
|
||||||
|
|
||||||
|
extern orte_rmcast_module_t orte_rmcast_spread_module;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Public string showing the rmcast spread component version number
|
||||||
|
*/
|
||||||
|
const char *mca_rmcast_spread_component_version_string =
|
||||||
|
"Open MPI spread rmcast MCA component version " ORTE_VERSION;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instantiate the public struct with all of our public information
|
||||||
|
* and pointers to our public functions in it
|
||||||
|
*/
|
||||||
|
orte_rmcast_spread_component_t mca_rmcast_spread_component = {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
ORTE_RMCAST_BASE_VERSION_1_0_0,
|
||||||
|
|
||||||
|
/* Component name and version */
|
||||||
|
"spread",
|
||||||
|
ORTE_MAJOR_VERSION,
|
||||||
|
ORTE_MINOR_VERSION,
|
||||||
|
ORTE_RELEASE_VERSION,
|
||||||
|
|
||||||
|
/* Component open and close functions */
|
||||||
|
orte_rmcast_spread_component_open,
|
||||||
|
orte_rmcast_spread_component_close,
|
||||||
|
orte_rmcast_spread_component_query
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/* The component is checkpoint ready */
|
||||||
|
MCA_BASE_METADATA_PARAM_CHECKPOINT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rmcast_spread_component_open(void)
|
||||||
|
{
|
||||||
|
mca_base_component_t *c = &mca_rmcast_spread_component.super.version;
|
||||||
|
|
||||||
|
mca_base_param_reg_int(c, "max_msg_size",
|
||||||
|
"Max #bytes in a single msg (must be > 0)",
|
||||||
|
false, false,
|
||||||
|
ORTE_RMCAST_SPREAD_MAX_MSG_SIZE,
|
||||||
|
&mca_rmcast_spread_component.max_msg_size);
|
||||||
|
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int orte_rmcast_spread_component_query(mca_base_module_t **module, int *priority)
|
||||||
|
{
|
||||||
|
/* if we built, then we probably want to be selected */
|
||||||
|
*priority = 1000;
|
||||||
|
*module = (mca_base_module_t*)&orte_rmcast_spread_module;
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
orte_rmcast_spread_component_close(void)
|
||||||
|
{
|
||||||
|
return ORTE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
Загрузка…
x
Ссылка в новой задаче
Block a user