upc_op_t

Date:

05-03-2013

NAME

upc_op_t - UPC operators

SYNOPSIS

#include <upc_collective_cray.h>

IMPLEMENTATION

Cray Linux Environment (CLE)

DESCRIPTION

The following operators are defined by the UPC 1.2 specification for collective reductions. They can be accessed by including the upc_collective.h header file.

UPC_ADD             Addition (all types)
UPC_MULT            Multiplication (all types)
UPC_AND             Bitwise AND (integer types)
UPC_OR              Bitwise OR (integer types)
UPC_XOR             Bitwise XOR (integer types)
UPC_LOGAND          Logical AND (all types)
UPC_LOGOR           Logical OR (all types)
UPC_MIN             Minimum value (all types)
UPC_MAX             Maximum value (all types)
UPC_FUNC            Associative + Commutative user function
UPC_NONCOMM_FUNC    Associative user function

Cray additionally supports two more predefined values that can be accessed by including the <upc_collective_cray.h> header file. They are only defined for the CRAY_UPC_FLOAT_INT, CRAY_UPC_DOUBLE_INT, CRAY_UPC_LONG_INT, CRAY_UPC_2INT, and CRAY_UPC_SHORT_INT data types and are, therefore, only usable with the Cray UPC team reduction functions cray_upc_team_reduce(3c) and cray_upc_team_allreduce(3c). They work the same way as MPI_MINLOC and MPI_MAXLOC.

CRAY_UPC_MINLOC    Minimum value + location
CRAY_UPC_MAXLOC    Maximum value + location

Users can also create their own operators with the function cray_upc_op_create(3c), accessed via the <upc_collective_cray.h> header file. Operators created in this manner may be used with both the UPC v1.2 collectives and the Cray UPC team reduction functions.

SEE ALSO

cray_upc_op_create(3c), cray_upc_op_free(3c), cray_upc_team_allreduce(3c), cray_upc_team_reduce(3c), cray_upc_user_fun(3c), upc_all_reduce(3c)