20#ifndef REALM_SUBGRAPH_H
21#define REALM_SUBGRAPH_H
34 struct SubgraphDefinition;
47 bool exists(
void)
const {
return id != 0; }
51 Event wait_on = Event::NO_EVENT);
58 Event wait_on = Event::NO_EVENT,
int priority_adjust = 0)
const;
61 const std::vector<Event> &preconditions,
62 std::vector<Event> &postconditions,
Event wait_on = Event::NO_EVENT,
63 int priority_adjust = 0)
const;
103 std::vector<CopySrcDstField>
srcs;
104 std::vector<CopySrcDstField>
dsts;
205 TARGET_TASK_BASE = OPKIND_TASK << 8,
208 TARGET_COPY_BASE = OPKIND_COPY << 8,
210 TARGET_ARRIVAL_BASE = OPKIND_ARRIVAL << 8,
214 TARGET_INSTANCE_BASE = OPKIND_INSTANTIATION << 8,
217 TARGET_ACQUIRE_BASE = OPKIND_ACQUIRE << 8,
219 TARGET_RELEASE_BASE = OPKIND_RELEASE << 8,
258#include "realm/subgraph.inl"
Definition bytearray.h:53
Definition indexspace.h:1115
Definition processor.h:37
::realm_task_func_id_t TaskFuncID
Definition processor.h:58
Definition profiling.h:363
Definition reservation.h:30
::realm_id_t id_t
Definition subgraph.h:38
bool operator!=(const Subgraph &rhs) const
Definition subgraph.h:43
id_t id
Definition subgraph.h:40
bool operator==(const Subgraph &rhs) const
Definition subgraph.h:42
bool operator<(const Subgraph &rhs) const
Definition subgraph.h:41
static Event create_subgraph(Subgraph &subgraph, const SubgraphDefinition &defn, const ProfilingRequestSet &prs, Event wait_on=Event::NO_EVENT)
Event instantiate(const void *args, size_t arglen, const ProfilingRequestSet &prs, const std::vector< Event > &preconditions, std::vector< Event > &postconditions, Event wait_on=Event::NO_EVENT, int priority_adjust=0) const
static const Subgraph NO_SUBGRAPH
Definition subgraph.h:45
Event instantiate(const void *args, size_t arglen, const ProfilingRequestSet &prs, Event wait_on=Event::NO_EVENT, int priority_adjust=0) const
void destroy(Event wait_on=Event::NO_EVENT) const
bool exists(void) const
Definition subgraph.h:47
#define REALM_PUBLIC_API
Definition compiler_support.h:217
Definition activemsg.h:38
::realm_reduction_op_id_t ReductionOpID
Definition event.h:38
unsigned long long realm_id_t
Definition realm_c.h:64
Definition subgraph.h:130
Reservation rsrv
Definition subgraph.h:134
Definition subgraph.h:111
Barrier barrier
Definition subgraph.h:115
ByteArray reduce_value
Definition subgraph.h:117
IndexSpaceGeneric space
Definition subgraph.h:102
std::vector< CopySrcDstField > srcs
Definition subgraph.h:103
std::vector< CopySrcDstField > dsts
Definition subgraph.h:104
ProfilingRequestSet prs
Definition subgraph.h:105
Definition subgraph.h:178
unsigned src_op_index
Definition subgraph.h:182
unsigned src_op_port
Definition subgraph.h:183
unsigned tgt_op_port
Definition subgraph.h:186
OpKind src_op_kind
Definition subgraph.h:181
unsigned tgt_op_index
Definition subgraph.h:185
OpKind tgt_op_kind
Definition subgraph.h:184
Definition subgraph.h:120
ProfilingRequestSet prs
Definition subgraph.h:126
ByteArray args
Definition subgraph.h:125
Subgraph subgraph
Definition subgraph.h:124
int priority_adjust
Definition subgraph.h:127
Definition subgraph.h:198
TargetKind
Definition subgraph.h:202
@ TARGET_INSTANCE_ARGS
Definition subgraph.h:215
@ TARGET_TASK_ARGS
Definition subgraph.h:206
@ TARGET_ARRIVAL_BARRIER
Definition subgraph.h:211
@ TARGET_INVALID
Definition subgraph.h:203
@ TARGET_ARRIVAL_VALUE
Definition subgraph.h:212
TargetKind target_kind
Definition subgraph.h:224
ReductionOpID redop_id
Definition subgraph.h:227
size_t bytes
Definition subgraph.h:223
size_t target_offset
Definition subgraph.h:226
size_t offset
Definition subgraph.h:222
unsigned target_index
Definition subgraph.h:225
Definition subgraph.h:139
Reservation rsrv
Definition subgraph.h:143
Processor::TaskFuncID task_id
Definition subgraph.h:92
ByteArray args
Definition subgraph.h:93
ProfilingRequestSet prs
Definition subgraph.h:95
Processor proc
Definition subgraph.h:91
std::vector< AcquireDesc > acquires
Definition subgraph.h:150
std::vector< Interpolation > interpolations
Definition subgraph.h:230
ConcurrencyMode concurrency_mode
Definition subgraph.h:248
OpKind
Definition subgraph.h:164
@ OPKIND_INVALID
Definition subgraph.h:165
@ OPKIND_ARRIVAL
Definition subgraph.h:168
@ OPKIND_COPY
Definition subgraph.h:167
@ OPKIND_INSTANTIATION
Definition subgraph.h:169
@ OPKIND_EXT_PRECOND
Definition subgraph.h:172
@ OPKIND_COLL_PRECOND
Definition subgraph.h:174
@ OPKIND_COLL_POSTCOND
Definition subgraph.h:175
@ OPKIND_TASK
Definition subgraph.h:166
@ OPKIND_ACQUIRE
Definition subgraph.h:170
@ OPKIND_RELEASE
Definition subgraph.h:171
@ OPKIND_EXT_POSTCOND
Definition subgraph.h:173
std::vector< CopyDesc > copies
Definition subgraph.h:147
std::vector< TaskDesc > tasks
Definition subgraph.h:146
std::vector< ArrivalDesc > arrivals
Definition subgraph.h:148
std::vector< InstantiationDesc > instantiations
Definition subgraph.h:149
ConcurrencyMode
Definition subgraph.h:235
@ ONE_SHOT
Definition subgraph.h:236
@ INSTANTIATION_ORDER
Definition subgraph.h:238
@ SERIALIZABLE
Definition subgraph.h:240
@ CONCURRENT
Definition subgraph.h:244
std::vector< Dependency > dependencies
Definition subgraph.h:189
std::vector< ReleaseDesc > releases
Definition subgraph.h:151