photon  1.1
Macros | Typedefs | Enumerations | Functions | Variables
photon_collectives.h File Reference

Go to the source code of this file.

Macros

#define PHOTON_DT_NULL   ((photonDatatype) (photon_datatype_null))
 C datatypes. More...
 
#define PHOTON_DT_BYTE   ((photonDatatype) (photon_byte))
 
#define PHOTON_DT_PACKED   ((photonDatatype) (photon_packed))
 
#define PHOTON_DT_CHAR   ((photonDatatype) (photon_char))
 
#define PHOTON_DT_SHORT   ((photonDatatype) (photon_short))
 
#define PHOTON_DT_INT   ((photonDatatype) (photon_int))
 
#define PHOTON_DT_LONG   ((photonDatatype) (photon_long))
 
#define PHOTON_DT_FLOAT   ((photonDatatype) (photon_float))
 
#define PHOTON_DT_DOUBLE   ((photonDatatype) (photon_double))
 
#define PHOTON_DT_LONG_DOUBLE   ((photonDatatype) (photon_long_double))
 
#define PHOTON_DT_UNSIGNED_CHAR   ((photonDatatype) (photon_unsigned_char))
 
#define PHOTON_DT_SIGNED_CHAR   ((photonDatatype) (photon_signed_char))
 
#define PHOTON_DT_UNSIGNED_SHORT   ((photonDatatype) (photon_unsigned_short))
 
#define PHOTON_DT_UNSIGNED_LONG   ((photonDatatype) (photon_unsigned_long))
 
#define PHOTON_DT_UNSIGNED   ((photonDatatype) (photon_unsigned))
 
#define PHOTON_DT_LONG_LONG_INT   ((photonDatatype) (photon_long_long_int))
 
#define PHOTON_DT_LONG_LONG   ((photonDatatype) (photon_long_long))
 
#define PHOTON_DT_UNSIGNED_LONG_LONG   ((photonDatatype) (photon_unsigned_long_long))
 
#define PHOTON_OP_NULL   ((photonOp) (photon_op_null))
 
#define PHOTON_OP_MAX   ((photonOp) (photon_op_max))
 
#define PHOTON_OP_MIN   ((photonOp) (photon_op_min))
 
#define PHOTON_OP_SUM   ((photonOp) (photon_op_sum))
 
#define PHOTON_OP_PROD   ((photonOp) (photon_op_prod))
 
#define PHOTON_OP_LAND   ((photonOp) (photon_op_land))
 
#define PHOTON_OP_BAND   ((photonOp) (photon_op_band))
 
#define PHOTON_OP_LOR   ((photonOp) (photon_op_lor))
 
#define PHOTON_OP_BOR   ((photonOp) (photon_op_bor))
 
#define PHOTON_OP_LXOR   ((photonOp) (photon_op_lxor))
 
#define PHOTON_OP_BXOR   ((photonOp) (photon_op_bxor))
 
#define PHOTON_OP_MAXLOC   ((photonOp) (photon_op_maxloc))
 
#define PHOTON_OP_MINLOC   ((photonOp) (photon_op_minloc))
 
#define PHOTON_OP_REPLACE   ((photonOp) (photon_op_replace))
 
#define PHOTON_OP_NO_OP   ((photonOp) (photon_op_no_op))
 
#define PHOTON_COLL_MSG_RING_AT_BR   65
 
#define PHOTON_COLL_MSG_RING_RELEASE_BR   67
 
#define PHOTON_COLL_MSG_TREE_CHILD_AT_BR   68
 
#define PHOTON_COLL_MSG_REC_DOUBLING_TAG   1
 

Typedefs

typedef void * photon_datatype_t
 
typedef photon_datatype_t photonDatatype
 
typedef void * photon_op_t
 
typedef photon_op_t photonOp
 
typedef void * photonComm
 

Enumerations

enum  photon_cfg_coll_iface_t { PHOTON_COLL_IFACE_DEFAULT = 0, PHOTON_COLL_IFACE_PWC, PHOTON_COLL_IFACE_NBC, PHOTON_COLL_IFACE_MAX }
 
enum  photon_coll {
  PHOTON_COLL_BARRIER = 1, PHOTON_COLL_REDUCE, PHOTON_COLL_GATHER, PHOTON_COLL_ALLREDUCE,
  PHOTON_COLL_SCAN, PHOTON_COLL_IBARRIER, PHOTON_COLL_IREDUCE, PHOTON_COLL_IGATHER,
  PHOTON_COLL_IALLREDUCE, PHOTON_COLL_ISCAN, PHOTON_COLL_MAXVAL
}
 
enum  photon_coll_algo { PHOTON_COLL_ALGO_RING = 1, PHOTON_COLL_ALGO_TREE, PHOTON_COLL_ALGO_REC_DOUBLING }
 
enum  photon_coll_node {
  PHOTON_COLL_NODE_RING_HEAD = 1, PHOTON_COLL_NODE_RING_REGULAR, PHOTON_COLL_NODE_TREE_ROOT, PHOTON_COLL_NODE_TREE_INTERNAL,
  PHOTON_COLL_NODE_TREE_LEAF, PHOTON_COLL_NODE_REC_DOUBLING
}
 

Functions

int photon_collective_init (photonComm comm, photon_coll ctype, photon_cid local, photon_rid *request, int flags)
 
int photon_collective_join (photon_rid request, void *in, void *out, int scount, int rcount, photonDatatype stype, photonDatatype rtype, int root, photonOp op)
 
int photon_collective_comm_create (void *active, int num_active, int total, photonComm *c)
 In-progress communicator handling. More...
 
int photon_collective_init_new_comm (void *active, int num_active, int total, photon_coll ctype, photon_cid local, photon_rid *request, int flags, photonComm *c)
 In-progress communicator handling. More...
 

Variables

photon_datatype_t photon_datatype_null
 
photon_datatype_t photon_char
 
photon_datatype_t photon_signed_char
 
photon_datatype_t photon_unsigned_char
 
photon_datatype_t photon_byte
 
photon_datatype_t photon_short
 
photon_datatype_t photon_unsigned_short
 
photon_datatype_t photon_int
 
photon_datatype_t photon_unsigned
 
photon_datatype_t photon_long
 
photon_datatype_t photon_unsigned_long
 
photon_datatype_t photon_long_long_int
 
photon_datatype_t photon_unsigned_long_long
 
photon_datatype_t photon_float
 
photon_datatype_t photon_double
 
photon_datatype_t photon_long_double
 
photon_datatype_t photon_wchar
 
photon_datatype_t photon_packed
 
photon_op_t photon_op_null
 
photon_op_t photon_op_min
 
photon_op_t photon_op_max
 
photon_op_t photon_op_sum
 
photon_op_t photon_op_prod
 
photon_op_t photon_op_land
 
photon_op_t photon_op_band
 
photon_op_t photon_op_lor
 
photon_op_t photon_op_bor
 
photon_op_t photon_op_lxor
 
photon_op_t photon_op_bxor
 
photon_op_t photon_op_maxloc
 
photon_op_t photon_op_minloc
 
photon_op_t photon_op_replace
 
photon_op_t photon_op_no_op
 
photonComm PHOTON_COMM_WORLD
 

Macro Definition Documentation

◆ PHOTON_COLL_MSG_REC_DOUBLING_TAG

#define PHOTON_COLL_MSG_REC_DOUBLING_TAG   1

Definition at line 148 of file photon_collectives.h.

◆ PHOTON_COLL_MSG_RING_AT_BR

#define PHOTON_COLL_MSG_RING_AT_BR   65

Definition at line 145 of file photon_collectives.h.

◆ PHOTON_COLL_MSG_RING_RELEASE_BR

#define PHOTON_COLL_MSG_RING_RELEASE_BR   67

Definition at line 146 of file photon_collectives.h.

◆ PHOTON_COLL_MSG_TREE_CHILD_AT_BR

#define PHOTON_COLL_MSG_TREE_CHILD_AT_BR   68

Definition at line 147 of file photon_collectives.h.

◆ PHOTON_DT_BYTE

#define PHOTON_DT_BYTE   ((photonDatatype) (photon_byte))

Definition at line 61 of file photon_collectives.h.

◆ PHOTON_DT_CHAR

#define PHOTON_DT_CHAR   ((photonDatatype) (photon_char))

Definition at line 63 of file photon_collectives.h.

◆ PHOTON_DT_DOUBLE

#define PHOTON_DT_DOUBLE   ((photonDatatype) (photon_double))

Definition at line 68 of file photon_collectives.h.

◆ PHOTON_DT_FLOAT

#define PHOTON_DT_FLOAT   ((photonDatatype) (photon_float))

Definition at line 67 of file photon_collectives.h.

◆ PHOTON_DT_INT

#define PHOTON_DT_INT   ((photonDatatype) (photon_int))

Definition at line 65 of file photon_collectives.h.

◆ PHOTON_DT_LONG

#define PHOTON_DT_LONG   ((photonDatatype) (photon_long))

Definition at line 66 of file photon_collectives.h.

◆ PHOTON_DT_LONG_DOUBLE

#define PHOTON_DT_LONG_DOUBLE   ((photonDatatype) (photon_long_double))

Definition at line 69 of file photon_collectives.h.

◆ PHOTON_DT_LONG_LONG

#define PHOTON_DT_LONG_LONG   ((photonDatatype) (photon_long_long))

Definition at line 76 of file photon_collectives.h.

◆ PHOTON_DT_LONG_LONG_INT

#define PHOTON_DT_LONG_LONG_INT   ((photonDatatype) (photon_long_long_int))

Definition at line 75 of file photon_collectives.h.

◆ PHOTON_DT_NULL

#define PHOTON_DT_NULL   ((photonDatatype) (photon_datatype_null))

C datatypes.

Definition at line 60 of file photon_collectives.h.

◆ PHOTON_DT_PACKED

#define PHOTON_DT_PACKED   ((photonDatatype) (photon_packed))

Definition at line 62 of file photon_collectives.h.

◆ PHOTON_DT_SHORT

#define PHOTON_DT_SHORT   ((photonDatatype) (photon_short))

Definition at line 64 of file photon_collectives.h.

◆ PHOTON_DT_SIGNED_CHAR

#define PHOTON_DT_SIGNED_CHAR   ((photonDatatype) (photon_signed_char))

Definition at line 71 of file photon_collectives.h.

◆ PHOTON_DT_UNSIGNED

#define PHOTON_DT_UNSIGNED   ((photonDatatype) (photon_unsigned))

Definition at line 74 of file photon_collectives.h.

◆ PHOTON_DT_UNSIGNED_CHAR

#define PHOTON_DT_UNSIGNED_CHAR   ((photonDatatype) (photon_unsigned_char))

Definition at line 70 of file photon_collectives.h.

◆ PHOTON_DT_UNSIGNED_LONG

#define PHOTON_DT_UNSIGNED_LONG   ((photonDatatype) (photon_unsigned_long))

Definition at line 73 of file photon_collectives.h.

◆ PHOTON_DT_UNSIGNED_LONG_LONG

#define PHOTON_DT_UNSIGNED_LONG_LONG   ((photonDatatype) (photon_unsigned_long_long))

Definition at line 77 of file photon_collectives.h.

◆ PHOTON_DT_UNSIGNED_SHORT

#define PHOTON_DT_UNSIGNED_SHORT   ((photonDatatype) (photon_unsigned_short))

Definition at line 72 of file photon_collectives.h.

◆ PHOTON_OP_BAND

#define PHOTON_OP_BAND   ((photonOp) (photon_op_band))

Definition at line 106 of file photon_collectives.h.

◆ PHOTON_OP_BOR

#define PHOTON_OP_BOR   ((photonOp) (photon_op_bor))

Definition at line 108 of file photon_collectives.h.

◆ PHOTON_OP_BXOR

#define PHOTON_OP_BXOR   ((photonOp) (photon_op_bxor))

Definition at line 110 of file photon_collectives.h.

◆ PHOTON_OP_LAND

#define PHOTON_OP_LAND   ((photonOp) (photon_op_land))

Definition at line 105 of file photon_collectives.h.

◆ PHOTON_OP_LOR

#define PHOTON_OP_LOR   ((photonOp) (photon_op_lor))

Definition at line 107 of file photon_collectives.h.

◆ PHOTON_OP_LXOR

#define PHOTON_OP_LXOR   ((photonOp) (photon_op_lxor))

Definition at line 109 of file photon_collectives.h.

◆ PHOTON_OP_MAX

#define PHOTON_OP_MAX   ((photonOp) (photon_op_max))

Definition at line 101 of file photon_collectives.h.

◆ PHOTON_OP_MAXLOC

#define PHOTON_OP_MAXLOC   ((photonOp) (photon_op_maxloc))

Definition at line 111 of file photon_collectives.h.

◆ PHOTON_OP_MIN

#define PHOTON_OP_MIN   ((photonOp) (photon_op_min))

Definition at line 102 of file photon_collectives.h.

◆ PHOTON_OP_MINLOC

#define PHOTON_OP_MINLOC   ((photonOp) (photon_op_minloc))

Definition at line 112 of file photon_collectives.h.

◆ PHOTON_OP_NO_OP

#define PHOTON_OP_NO_OP   ((photonOp) (photon_op_no_op))

Definition at line 114 of file photon_collectives.h.

◆ PHOTON_OP_NULL

#define PHOTON_OP_NULL   ((photonOp) (photon_op_null))

Definition at line 100 of file photon_collectives.h.

◆ PHOTON_OP_PROD

#define PHOTON_OP_PROD   ((photonOp) (photon_op_prod))

Definition at line 104 of file photon_collectives.h.

◆ PHOTON_OP_REPLACE

#define PHOTON_OP_REPLACE   ((photonOp) (photon_op_replace))

Definition at line 113 of file photon_collectives.h.

◆ PHOTON_OP_SUM

#define PHOTON_OP_SUM   ((photonOp) (photon_op_sum))

Definition at line 103 of file photon_collectives.h.

Typedef Documentation

◆ photon_datatype_t

typedef void* photon_datatype_t

Photon currently just points to existing datatypes defined elsewhere At some point we may define a storage class for Photon-specific types

Definition at line 37 of file photon_collectives.h.

◆ photon_op_t

typedef void* photon_op_t

Photon currently just points to existing collective OPs defined elsewhere At some point we may define a storage class for Photon-specific ops

Definition at line 81 of file photon_collectives.h.

◆ photonComm

typedef void* photonComm

Definition at line 151 of file photon_collectives.h.

◆ photonDatatype

Definition at line 38 of file photon_collectives.h.

◆ photonOp

Definition at line 82 of file photon_collectives.h.

Enumeration Type Documentation

◆ photon_cfg_coll_iface_t

Enumerator
PHOTON_COLL_IFACE_DEFAULT 
PHOTON_COLL_IFACE_PWC 
PHOTON_COLL_IFACE_NBC 
PHOTON_COLL_IFACE_MAX 

Definition at line 21 of file photon_collectives.h.

◆ photon_coll

Enumerator
PHOTON_COLL_BARRIER 
PHOTON_COLL_REDUCE 
PHOTON_COLL_GATHER 
PHOTON_COLL_ALLREDUCE 
PHOTON_COLL_SCAN 
PHOTON_COLL_IBARRIER 
PHOTON_COLL_IREDUCE 
PHOTON_COLL_IGATHER 
PHOTON_COLL_IALLREDUCE 
PHOTON_COLL_ISCAN 
PHOTON_COLL_MAXVAL 

Definition at line 116 of file photon_collectives.h.

◆ photon_coll_algo

Enumerator
PHOTON_COLL_ALGO_RING 
PHOTON_COLL_ALGO_TREE 
PHOTON_COLL_ALGO_REC_DOUBLING 

Definition at line 130 of file photon_collectives.h.

◆ photon_coll_node

Enumerator
PHOTON_COLL_NODE_RING_HEAD 
PHOTON_COLL_NODE_RING_REGULAR 
PHOTON_COLL_NODE_TREE_ROOT 
PHOTON_COLL_NODE_TREE_INTERNAL 
PHOTON_COLL_NODE_TREE_LEAF 
PHOTON_COLL_NODE_REC_DOUBLING 

Definition at line 136 of file photon_collectives.h.

Variable Documentation

◆ photon_byte

photon_datatype_t photon_byte

Definition at line 37 of file photon_exchange.c.

◆ photon_char

photon_datatype_t photon_char

Definition at line 34 of file photon_exchange.c.

◆ PHOTON_COMM_WORLD

photonComm PHOTON_COMM_WORLD

Definition at line 32 of file photon_exchange.c.

◆ photon_datatype_null

photon_datatype_t photon_datatype_null

Definition at line 33 of file photon_exchange.c.

◆ photon_double

photon_datatype_t photon_double

Definition at line 47 of file photon_exchange.c.

◆ photon_float

photon_datatype_t photon_float

Definition at line 46 of file photon_exchange.c.

◆ photon_int

photon_datatype_t photon_int

Definition at line 40 of file photon_exchange.c.

◆ photon_long

photon_datatype_t photon_long

Definition at line 42 of file photon_exchange.c.

◆ photon_long_double

photon_datatype_t photon_long_double

Definition at line 48 of file photon_exchange.c.

◆ photon_long_long_int

photon_datatype_t photon_long_long_int

Definition at line 44 of file photon_exchange.c.

◆ photon_op_band

photon_op_t photon_op_band

Definition at line 58 of file photon_exchange.c.

◆ photon_op_bor

photon_op_t photon_op_bor

Definition at line 60 of file photon_exchange.c.

◆ photon_op_bxor

photon_op_t photon_op_bxor

Definition at line 62 of file photon_exchange.c.

◆ photon_op_land

photon_op_t photon_op_land

Definition at line 57 of file photon_exchange.c.

◆ photon_op_lor

photon_op_t photon_op_lor

Definition at line 59 of file photon_exchange.c.

◆ photon_op_lxor

photon_op_t photon_op_lxor

Definition at line 61 of file photon_exchange.c.

◆ photon_op_max

photon_op_t photon_op_max

Definition at line 54 of file photon_exchange.c.

◆ photon_op_maxloc

photon_op_t photon_op_maxloc

Definition at line 63 of file photon_exchange.c.

◆ photon_op_min

photon_op_t photon_op_min

Definition at line 53 of file photon_exchange.c.

◆ photon_op_minloc

photon_op_t photon_op_minloc

Definition at line 64 of file photon_exchange.c.

◆ photon_op_no_op

photon_op_t photon_op_no_op

Definition at line 66 of file photon_exchange.c.

◆ photon_op_null

photon_op_t photon_op_null

Definition at line 52 of file photon_exchange.c.

◆ photon_op_prod

photon_op_t photon_op_prod

Definition at line 56 of file photon_exchange.c.

◆ photon_op_replace

photon_op_t photon_op_replace

Definition at line 65 of file photon_exchange.c.

◆ photon_op_sum

photon_op_t photon_op_sum

Definition at line 55 of file photon_exchange.c.

◆ photon_packed

photon_datatype_t photon_packed

Definition at line 50 of file photon_exchange.c.

◆ photon_short

photon_datatype_t photon_short

Definition at line 38 of file photon_exchange.c.

◆ photon_signed_char

photon_datatype_t photon_signed_char

Definition at line 35 of file photon_exchange.c.

◆ photon_unsigned

photon_datatype_t photon_unsigned

Definition at line 41 of file photon_exchange.c.

◆ photon_unsigned_char

photon_datatype_t photon_unsigned_char

Definition at line 36 of file photon_exchange.c.

◆ photon_unsigned_long

photon_datatype_t photon_unsigned_long

Definition at line 43 of file photon_exchange.c.

◆ photon_unsigned_long_long

photon_datatype_t photon_unsigned_long_long

Definition at line 45 of file photon_exchange.c.

◆ photon_unsigned_short

photon_datatype_t photon_unsigned_short

Definition at line 39 of file photon_exchange.c.

◆ photon_wchar

photon_datatype_t photon_wchar

Definition at line 49 of file photon_exchange.c.