OpenMPI
0.1.1
|
This is the sum module source code. More...
#include "ompi_config.h"
#include "opal/class/opal_object.h"
#include "opal/util/output.h"
#include "ompi/constants.h"
#include "ompi/op/op.h"
#include "ompi/mca/op/op.h"
#include "ompi/mca/op/base/base.h"
#include "ompi/mca/op/x86/op_x86.h"
Data Structures | |
struct | module_sum_t |
SUM module struct, including local cached info. More... | |
Functions | |
static void | module_sum_constructor (module_sum_t *m) |
Sum module constructor. | |
static void | module_sum_destructor (module_sum_t *m) |
Sum module destructor. | |
static | OBJ_CLASS_INSTANCE (module_sum_t, ompi_op_base_module_t, module_sum_constructor, module_sum_destructor) |
Setup the class for the sum module, listing: More... | |
static void | sum_float (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Sum function for C float. | |
static void | sum_int16_t (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Sum function for C int16_t. | |
static void | sum_int32_t (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Sum function for C int32_t. | |
static void | sum_int64_t (void *in, void *out, int *count, ompi_datatype_t **type, ompi_op_base_module_t *module) |
Sum function for C int64_t. | |
ompi_op_base_module_t * | ompi_op_x86_setup_sum (ompi_op_t *op) |
Setup function for MPI_SUM. More... | |
This is the sum module source code.
It contains the "setup" functions that will create a module for the MPI_SUM MPI_Op.
|
static |
Setup the class for the sum module, listing:
ompi_op_base_module_t* ompi_op_x86_setup_sum | ( | ompi_op_t * | op | ) |
Setup function for MPI_SUM.
Setup for MPI_MAX and return a module.
If we get here, we can assume that a) the hardware is present, b) the MPI thread scenario is what we want, and c) the SUM operation is supported. So this function's job is to create a module and fill in function pointers for the functions that this hardware supports.
References ompi_op_t::intrinsic, ompi_op_t::o_func, OBJ_RETAIN, OMPI_OP_BASE_TYPE_FLOAT, OMPI_OP_BASE_TYPE_INT16_T, OMPI_OP_BASE_TYPE_INT32_T, OMPI_OP_BASE_TYPE_INT64_T, ompi_op_base_module_1_0_0_t::opm_fns, sum_float(), sum_int16_t(), sum_int32_t(), and sum_int64_t().