112 friend class Internal::Runtime;
114 Runtime(Internal::Runtime* rt);
135 Context ctx,
const Domain& bounds, TypeTag type_tag = 0,
136 const char* provenance =
nullptr,
const bool take_ownership =
false);
138 template<
int DIM,
typename COORD_T>
140 Context ctx,
const Rect<DIM, COORD_T>& bounds,
141 const char* provenance =
nullptr);
142 template<
int DIM,
typename COORD_T>
144 Context ctx,
const DomainT<DIM, COORD_T>& bounds,
145 const char* provenance =
nullptr,
const bool take_ownership =
false);
162 Context ctx,
size_t dimensions,
const Future& f, TypeTag type_tag = 0,
163 const char* provenance =
nullptr);
164 template<
int DIM,
typename COORD_T>
166 Context ctx,
const Future& f,
const char* provenance =
nullptr);
178 Context ctx,
const std::vector<DomainPoint>& points,
179 const char* provenance =
nullptr);
181 template<
int DIM,
typename COORD_T>
183 Context ctx,
const std::vector<Point<DIM, COORD_T> >& points,
184 const char* provenance =
nullptr);
196 Context ctx,
const std::vector<Domain>& rects,
197 const char* provenance =
nullptr);
199 template<
int DIM,
typename COORD_T>
201 Context ctx,
const std::vector<Rect<DIM, COORD_T> >& rects,
202 const char* provenance =
nullptr);
215 Context ctx,
const std::vector<IndexSpace>& spaces,
216 const char* provenance =
nullptr);
218 template<
int DIM,
typename COORD_T>
220 Context ctx,
const std::vector<IndexSpaceT<DIM, COORD_T> >& spaces,
221 const char* provenance =
nullptr);
234 Context ctx,
const std::vector<IndexSpace>& spaces,
235 const char* provenance =
nullptr);
237 template<
int DIM,
typename COORD_T>
239 Context ctx,
const std::vector<IndexSpaceT<DIM, COORD_T> >& spaces,
240 const char* provenance =
nullptr);
251 const char* provenance =
nullptr);
253 template<
int DIM,
typename COORD_T>
255 Context ctx, IndexSpaceT<DIM, COORD_T> left,
256 IndexSpaceT<DIM, COORD_T> right,
const char* provenance =
nullptr);
266 "Use the new index space creation routines with a "
267 "single domain or rectangle.")
277 "Use the new index space creation routines with a "
278 "single domain or rectangle.")
302 Context ctx,
IndexSpace handle, const
bool unordered = false,
303 const
bool recurse = true, const
char* provenance =
nullptr);
328 const
bool recurse = true, const
char* provenance =
nullptr);
356 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
357 const
char* provenance =
nullptr);
358 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
362 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
363 const
char* provenance =
nullptr);
386 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
387 const
char* provenance =
nullptr);
388 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
391 const std::map<Point<COLOR_DIM, COLOR_COORD_T>,
int>& weights,
393 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
394 const
char* provenance =
nullptr);
399 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
400 const
char* provenance =
nullptr);
401 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
404 const std::map<Point<COLOR_DIM, COLOR_COORD_T>,
size_t>& weights,
406 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
407 const
char* provenance =
nullptr);
413 IndexSpace color_space,
size_t granularity = 1,
414 Color color = LEGION_AUTO_GENERATE_ID,
415 const
char* provenance =
nullptr);
416 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
420 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
421 const
char* provenance =
nullptr);
451 PartitionKind part_kind = LEGION_COMPUTE_KIND,
452 Color color = LEGION_AUTO_GENERATE_ID,
453 const
char* provenance =
nullptr);
454 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
460 PartitionKind part_kind = LEGION_COMPUTE_KIND,
461 Color color = LEGION_AUTO_GENERATE_ID,
462 const
char* provenance =
nullptr);
493 PartitionKind part_kind = LEGION_COMPUTE_KIND,
494 Color color = LEGION_AUTO_GENERATE_ID,
495 const
char* provenance =
nullptr);
496 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
502 PartitionKind part_kind = LEGION_COMPUTE_KIND,
503 Color color = LEGION_AUTO_GENERATE_ID,
504 const
char* provenance =
nullptr);
529 PartitionKind part_kind = LEGION_COMPUTE_KIND,
530 Color color = LEGION_AUTO_GENERATE_ID,
bool dominates = false,
531 const
char* provenance =
nullptr);
532 template<
int DIM, typename COORD_T>
536 PartitionKind part_kind = LEGION_COMPUTE_KIND,
537 Color color = LEGION_AUTO_GENERATE_ID,
bool dominates = false,
538 const
char* provenance =
nullptr);
569 PartitionKind part_kind = LEGION_COMPUTE_KIND,
570 Color color = LEGION_AUTO_GENERATE_ID,
571 const
char* provenance =
nullptr);
572 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
578 PartitionKind part_kind = LEGION_COMPUTE_KIND,
579 Color color = LEGION_AUTO_GENERATE_ID,
580 const
char* provenance =
nullptr);
611 PartitionKind part_kind = LEGION_COMPUTE_KIND,
612 Color color = LEGION_AUTO_GENERATE_ID,
613 const
char* provenance =
nullptr);
614 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
620 PartitionKind part_kind = LEGION_COMPUTE_KIND,
621 Color color = LEGION_AUTO_GENERATE_ID,
622 const
char* provenance =
nullptr);
651 FieldID domain_fid,
IndexSpace range, MapperID
id = 0,
653 const
char* provenance =
nullptr);
654 void create_bidirectional_association(
657 FieldID range_fid, MapperID
id = 0, MappingTagID tag = 0,
659 const
char* provenance =
nullptr);
661 template<
int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2>
666 IndexSpaceT<DIM2, COORD_T2> range, MapperID
id = 0,
668 const
char* provenance =
nullptr);
669 template<
int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2>
670 void create_bidirectional_association(
677 MapperID
id = 0, MappingTagID tag = 0,
679 const
char* provenance =
nullptr);
710 PartitionKind part_kind = LEGION_COMPUTE_KIND,
711 Color color = LEGION_AUTO_GENERATE_ID,
712 const
char* provenance =
nullptr);
714 template<
int DIM,
int COLOR_DIM, typename COORD_T>
718 Transform<DIM, COLOR_DIM, COORD_T> transform, Rect<DIM, COORD_T> extent,
719 PartitionKind part_kind = LEGION_COMPUTE_KIND,
720 Color color = LEGION_AUTO_GENERATE_ID,
721 const
char* provenance =
nullptr);
741 Color color = LEGION_AUTO_GENERATE_ID,
742 const
char* provenance =
nullptr);
744 template<
int DIM, typename COORD_T>
747 Point<DIM, COORD_T> blocking_factor,
748 Color color = LEGION_AUTO_GENERATE_ID,
749 const
char* provenance =
nullptr);
764 DomainPoint origin, Color color = LEGION_AUTO_GENERATE_ID,
765 const
char* provenance =
nullptr);
767 template<
int DIM, typename COORD_T>
770 Point<DIM, COORD_T> blocking_factor, Point<DIM, COORD_T> origin,
771 Color color = LEGION_AUTO_GENERATE_ID,
772 const
char* provenance =
nullptr);
800 bool perform_intersections = true,
801 PartitionKind part_kind = LEGION_COMPUTE_KIND,
802 Color color = LEGION_AUTO_GENERATE_ID, const
char* provenance =
nullptr,
803 bool take_ownership = false);
804 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
807 const std::map<Point<COLOR_DIM, COLOR_COORD_T>, DomainT<DIM, COORD_T> >&
810 bool perform_intersections = true,
811 PartitionKind part_kind = LEGION_COMPUTE_KIND,
812 Color color = LEGION_AUTO_GENERATE_ID, const
char* provenance =
nullptr,
813 bool take_ownership = false);
833 IndexSpace color_space,
bool perform_intersections = true,
834 PartitionKind part_kind = LEGION_COMPUTE_KIND,
835 Color color = LEGION_AUTO_GENERATE_ID,
836 const
char* provenance =
nullptr);
837 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
842 bool perform_intersections = true,
843 PartitionKind part_kind = LEGION_COMPUTE_KIND,
844 Color color = LEGION_AUTO_GENERATE_ID,
845 const
char* provenance =
nullptr);
865 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
869 Point<COLOR_DIM, COLOR_COORD_T>, std::vector<Rect<DIM, COORD_T> > >&
872 bool perform_intersections = true,
873 PartitionKind part_kind = LEGION_COMPUTE_KIND,
874 Color color = LEGION_AUTO_GENERATE_ID, const
char* provenance =
nullptr,
875 bool collective = false);
908 IndexSpace color_space, Color color = LEGION_AUTO_GENERATE_ID,
909 MapperID
id = 0, MappingTagID tag = 0,
910 PartitionKind part_kind = LEGION_DISJOINT_KIND,
912 const
char* provenance =
nullptr);
913 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
919 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
920 MappingTagID tag = 0, PartitionKind part_kind = LEGION_DISJOINT_KIND,
922 const
char* provenance =
nullptr);
961 PartitionKind part_kind = LEGION_COMPUTE_KIND,
962 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
964 const
char* provenance =
nullptr);
966 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
967 typename COLOR_COORD_T>
974 PartitionKind part_kind = LEGION_COMPUTE_KIND,
975 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
977 const
char* provenance =
nullptr);
982 PartitionKind part_kind = LEGION_COMPUTE_KIND,
983 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
985 const
char* provenance =
nullptr);
987 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
988 typename COLOR_COORD_T>
995 PartitionKind part_kind = LEGION_COMPUTE_KIND,
996 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
998 const
char* provenance =
nullptr);
1034 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1035 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1037 const
char* provenance =
nullptr);
1039 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
1040 typename COLOR_COORD_T>
1046 IndexSpaceT<COLOR_DIM, COLOR_COORD_T> color_space,
1047 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1048 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1050 const
char* provenance =
nullptr);
1055 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1056 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1058 const
char* provenance =
nullptr);
1060 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
1061 typename COLOR_COORD_T>
1067 IndexSpaceT<COLOR_DIM, COLOR_COORD_T> color_space,
1068 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1069 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1071 const
char* provenance =
nullptr);
1106 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1107 Color color = LEGION_AUTO_GENERATE_ID,
1108 const
char* provenance =
nullptr);
1109 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1112 IndexSpaceT<COLOR_DIM, COLOR_COORD_T> color_space,
1113 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1114 Color color = LEGION_AUTO_GENERATE_ID,
1115 const
char* provenance =
nullptr);
1137 const
char* provenance =
nullptr);
1138 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1141 Point<COLOR_DIM, COLOR_COORD_T> color,
1142 const typename std::vector<
IndexSpaceT<DIM, COORD_T> >& handles,
1143 const
char* provenance =
nullptr);
1162 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1165 Point<COLOR_DIM, COLOR_COORD_T> color,
1166 IndexPartitionT<DIM, COORD_T> handle, const
char* provenance =
nullptr);
1188 const
char* provenance =
nullptr);
1189 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1192 Point<COLOR_DIM, COLOR_COORD_T> color,
1193 const typename std::vector<
IndexSpaceT<DIM, COORD_T> >& handles,
1194 const
char* provenance =
nullptr);
1213 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1216 Point<COLOR_DIM, COLOR_COORD_T> color,
1217 IndexPartitionT<DIM, COORD_T> handle, const
char* provenance =
nullptr);
1244 const
char* provenancne =
nullptr);
1245 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1248 Point<COLOR_DIM, COLOR_COORD_T> color,
1250 const typename std::vector<
IndexSpaceT<DIM, COORD_T> >& handles,
1251 const
char* provenance =
nullptr);
1267 Context ctx,
IndexSpace parent, Color color);
1275 template<
int DIM, typename COORD_T>
1297 template<
int DIM, typename COORD_T>
1317 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1319 IndexPartitionT<DIM, COORD_T> p, Point<COLOR_DIM, COLOR_COORD_T> color);
1336 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1338 IndexPartitionT<DIM, COORD_T> p, Point<COLOR_DIM, COLOR_COORD_T> color);
1352 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1355 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1371 template<
int DIM, typename COORD_T>
1387 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1391 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1408 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1425 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1441 Context ctx,
IndexSpace sp, std::set<Color>& colors);
1490 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1522 template<
int DIM, typename COORD_T>
1551 template<
int DIM, typename COORD_T>
1602 template<
int DIM, typename COORD_T>
1604 Context ctx, Point<DIM, COORD_T> point,
1618 Context ctx, const
char* provenance =
nullptr);
1631 Context ctx, const std::vector<
size_t>& field_sizes,
1632 std::vector<FieldID>& resulting_fields, CustomSerdezID serdez_id = 0,
1633 const
char* provenance =
nullptr);
1646 Context ctx, const std::vector<
Future>& field_sizes,
1647 std::vector<FieldID>& resulting_fields, CustomSerdezID serdez_id = 0,
1648 const
char* provenance =
nullptr);
1670 Context ctx,
FieldSpace handle, const
bool unordered = false,
1671 const
char* provenance =
nullptr);
1694 Context ctx,
FieldSpace handle, std::vector<FieldID>& fields);
1697 FieldSpace handle, std::vector<FieldID>& fields);
1708 Context ctx,
FieldSpace handle, std::set<FieldID>& fields);
1731 bool task_local = false, const
char* provenance =
nullptr);
1733 template<
int DIM, typename COORD_T>
1736 bool task_local = false, const
char* provenance =
nullptr);
1758 Context ctx,
LogicalRegion handle, const
bool unordered = false,
1759 const
char* provenance =
nullptr);
1769 "Destruction of logical partitions are no-ops now."
1770 "Logical partitions are automatically destroyed when their root "
1771 "logical region or their index spartition are destroyed.")
1795 const std::set<FieldID>& fields);
1816 template<
int DIM, typename COORD_T>
1841 template<
int DIM, typename COORD_T>
1879 template<
int DIM, typename COORD_T>
1901 template<
int DIM, typename COORD_T>
1926 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1929 Point<COLOR_DIM, COLOR_COORD_T> color);
1947 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1950 Point<COLOR_DIM, COLOR_COORD_T> color);
1969 template<
int DIM, typename COORD_T>
1990 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1991 Point<COLOR_DIM, COLOR_COORD_T> get_logical_region_color_point(
2023 template<
int DIM, typename COORD_T>
2052 template<
int DIM, typename COORD_T>
2076 LEGION_DEPRECATED("
ArgumentMap can be constructed directly.")
2159 Context ctx, const
FutureMap& future_map, ReductionOpID redop,
2160 bool ordered = true, MapperID map_id = 0, MappingTagID tag = 0,
2161 const
char* provenance =
nullptr,
Future initial_value =
Future());
2193 bool collective = false, ShardingID sid = 0,
2194 bool implicit_sharding = false, const
char* provenance =
nullptr);
2195 LEGION_DEPRECATED("Use the version that takes an
IndexSpace instead")
2197 Context ctx, const
Domain& domain,
2199 bool collective = false, ShardingID sid = 0,
2200 bool implicit_sharding = false);
2228 ShardingID sid = 0,
bool implicit_sharding = false,
2229 const
char* provenance =
nullptr);
2230 LEGION_DEPRECATED("Use the version that takes an
IndexSpace instead")
2232 Context ctx, const
Domain& domain,
2234 ShardingID sid = 0,
bool implicit_sharding = false);
2278 const
char* provenance =
nullptr);
2296 "Launching tasks should be done with the new task "
2297 "launcher interface.")
2299 Context ctx, TaskID task_id,
2304 MappingTagID tag = 0);
2325 "Launching tasks should be done with the new task "
2326 "launcher interface.")
2328 Context ctx, TaskID task_id, const
Domain domain,
2334 bool must_paralleism = false, MapperID
id = 0, MappingTagID tag = 0);
2358 "Launching tasks should be done with the new task "
2359 "launcher interface.")
2361 Context ctx, TaskID task_id, const
Domain domain,
2366 ReductionOpID reduction, const
UntypedBuffer& initial_value,
2368 bool must_parallelism = false, MapperID
id = 0, MappingTagID tag = 0);
2399 MappingTagID tag = 0, const
char* provenance =
nullptr);
2413 Context ctx,
unsigned idx, MapperID
id = 0, MappingTagID tag = 0,
2414 const
char* provenance =
nullptr);
2426 Context ctx,
PhysicalRegion region, const
char* provenance =
nullptr);
2480 template<typename T>
2500 const
void* value,
size_t value_size,
2529 template<typename T>
2532 const std::set<FieldID>& fields, const T& value,
2549 const std::set<FieldID>& fields, const
void* value,
size_t value_size,
2564 const std::set<FieldID>& fields,
Future f,
2616 const
bool unordered = false, const
char* provenance =
nullptr);
2652 const
bool unordered = false, const
char* provenance =
nullptr);
2693 "Attaching specific HDF5 file type is deprecated "
2694 "in favor of generic attach launcher interface.")
2697 LogicalRegion parent, const std::map<FieldID, const
char*>& field_map,
2698 LegionFileMode mode);
2717 "Detaching specific HDF5 file type is deprecated "
2718 "in favor of generic detach interface.")
2728 "Attaching generic file type is deprecated "
2729 "in favor of generic attach launcher interface.")
2732 LogicalRegion parent, const std::vector<FieldID>& field_vec,
2733 LegionFileMode mode);
2741 "Detaching generic file type is deprecated "
2742 "in favor of generic detach interface.")
2779 Context ctx, const
Future& f, const
char* provenance =
nullptr);
2791 Context ctx, const
Predicate& p, const
char* provenance =
nullptr);
2805 const
char* provenance =
nullptr);
2819 const
char* provenance =
nullptr);
2838 Context ctx, const
Predicate& p, const
char* provenance =
nullptr);
2948 Context ctx,
unsigned arrivals, ReductionOpID redop,
2949 const
void* init_value,
size_t init_size);
2970 unsigned count = 1);
3084 Context ctx, TraceID tid,
bool logical_only = false,
3085 bool static_trace = false,
3086 const std::set<RegionTreeID>* managed =
nullptr,
3087 const
char* provenance =
nullptr);
3091 void end_trace(Context ctx, TraceID tid, const
char* provenance =
nullptr);
3106 LEGION_DEPRECATED("Use
begin_trace with static_trace=true")
3108 Context ctx, const std::set<RegionTreeID>* managed =
nullptr);
3192 Context ctx, TunableID tid, MapperID mapper = 0, MappingTagID tag = 0,
3193 const
void* args =
nullptr,
size_t argsize = 0);
3203 "Tunable values should now be obtained via the "
3204 "generic interface that returns a future result.")
3206 Context ctx, TunableID tid, MapperID mapper = 0, MappingTagID tag = 0);
3226 template<typename T>
3227 T* get_local_task_variable(Context ctx, LocalVariableID
id);
3240 Context ctx, LocalVariableID
id, const
void* value,
3241 void (*destructor)(
void*) =
nullptr);
3242 template<typename T>
3243 void set_local_task_variable(
3244 Context ctx, LocalVariableID
id, const T* value,
3245 void (*destructor)(
void*) =
nullptr);
3274 Realm::Event precondition = Realm::Event::NO_EVENT);
3286 template<typename COORD_T = coord_t>
3299 template<typename COORD_T = coord_t>
3302 Realm::Event precondition = Realm::Event::NO_EVENT);
3390 Context ctx, MapperID
id, Processor target = Processor::NO_PROC);
3406 Context ctx, MapperID
id, Processor target = Processor::NO_PROC);
3447 Context ctx, Memory target,
bool escaping = true);
3511 Context ctx, Realm::Event effect, const
char* provenance =
nullptr);
3564 void stop_profiling_range(Context ctx, const
char* provenance);
3610 TaskID task_id, SemanticTag tag, const
void* buffer,
size_t size,
3611 bool is_mutable = false,
bool local_only = false);
3622 IndexSpace handle, SemanticTag tag, const
void* buffer,
size_t size,
3623 bool is_mutable = false);
3634 IndexPartition handle, SemanticTag tag, const
void* buffer,
size_t size,
3635 bool is_mutable = false);
3646 FieldSpace handle, SemanticTag tag, const
void* buffer,
size_t size,
3647 bool is_mutable = false);
3659 FieldSpace handle, FieldID fid, SemanticTag tag, const
void* buffer,
3660 size_t size,
bool is_mutable = false);
3671 LogicalRegion handle, SemanticTag tag, const
void* buffer,
size_t size,
3672 bool is_mutable = false);
3684 size_t size,
bool is_mutable = false);
3694 TaskID task_id, const
char* name,
bool is_mutable = false,
3695 bool local_only = false);
3704 IndexSpace handle, const
char* name,
bool is_mutable = false);
3713 IndexPartition handle, const
char* name,
bool is_mutable = false);
3722 FieldSpace handle, const
char* name,
bool is_mutable = false);
3732 FieldSpace handle, FieldID fid, const
char* name,
3733 bool is_mutable = false);
3742 LogicalRegion handle, const
char* name,
bool is_mutable = false);
3764 TaskID task_id, SemanticTag tag, const
void*& result,
size_t& size,
3765 bool can_fail = false,
bool wait_until_ready = false);
3778 IndexSpace handle, SemanticTag tag, const
void*& result,
size_t& size,
3779 bool can_fail = false,
bool wait_until_ready = false);
3793 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3806 FieldSpace handle, SemanticTag tag, const
void*& result,
size_t& size,
3807 bool can_fail = false,
bool wait_until_ready = false);
3821 FieldSpace handle, FieldID fid, SemanticTag tag, const
void*& result,
3822 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3836 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3850 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3922 void log_once(Context ctx, Realm::LoggerMessage& message);
3976 MapperID map_id, Mapping::Mapper* mapper,
3977 Processor proc = Processor::NO_PROC);
3991 Mapping::Mapper* mapper, Processor proc = Processor::NO_PROC);
4010 const
char* name,
size_t count);
4036 bool silence_warnings = false, const
char* warning_string =
nullptr);
4098 ShardingID sid,
ShardingFunctor* functor,
bool silence_warnings = false,
4099 const
char* warning_string =
nullptr);
4139 const
char* name,
size_t count);
4165 bool silence_warnings = false, const
char* warning_string =
nullptr);
4206 const
char* name,
size_t count);
4260 const
char* name,
size_t count);
4285 template<typename REDOP>
4287 ReductionOpID redop_id,
bool permit_duplicates = false);
4310 ReductionOpID redop_id, ReductionOp* op,
4311 SerdezInitFunc init_fnptr =
nullptr,
4312 SerdezFoldFunc fold_fnptr =
nullptr,
bool permit_duplicates = false);
4321#ifdef LEGION_GPU_REDUCTIONS
4322 template<
typename REDOP>
4323 LEGION_DEPRECATED(
"Use register_reduction_op instead")
4324 static
void preregister_gpu_reduction_op(ReductionOpID redop_id);
4367 template<
typename SERDEZ>
4369 CustomSerdezID serdez_id,
bool permit_duplicates =
false);
4384 CustomSerdezID serdez_id, SerdezOp* serdez_op,
4385 bool permit_duplicates =
false);
4625 int argc,
char** argv,
bool background =
false,
4626 bool supply_default_mapper =
true,
bool filter =
false,
4627 bool realm_initialize_network =
true,
4628 bool realm_configure_machine =
true);
4651 int* argc,
char*** argv,
bool filter =
false,
bool parse =
true,
4652 bool realm_initialize_network =
true,
4653 bool realm_create_configure_machine =
true);
4715 TaskID top_task_id, MapperID mapper_id,
4716 Processor::Kind proc_kind = Processor::NO_KIND,
4717 const char* task_name =
nullptr,
bool control_replicable =
false,
4718 unsigned shard_per_address_space = 1,
int shard_id = -1,
4749 Context ctx, Realm::Event effects = Realm::Event::NO_EVENT);
4783 bool init_in_ext =
true,
int ext_participants = 1,
4784 int legion_participants = 1);
4798 bool init_in_MPI =
true,
int mpi_participants = 1,
4799 int legion_participants = 1);
4814 "Projection functions should now be specified "
4815 "using projection functor objects")
4830 "Projection functions should now be specified "
4831 "using projection functor objects")
4851 RegistrationCallback callback,
bool dedup =
true,
size_t dedup_tag = 0);
4853 RegistrationWithArgsCallback callback,
const UntypedBuffer& buffer,
4854 bool dedup =
true,
size_t dedup_tag = 0);
4881 RegistrationCallback callback,
bool global,
bool deduplicate =
true,
4882 size_t dedup_tag = 0);
4884 RegistrationWithArgsCallback callback,
const UntypedBuffer& buffer,
4885 bool global,
bool deduplicate =
true,
size_t dedup_tag = 0);
4899 "Legion now supports multiple registration callbacks "
4900 "added via the add_registration_callback method.")
4957 LayoutConstraintID layout_id = LEGION_AUTO_GENERATE_ID);
5025 VariantID vid = LEGION_AUTO_GENERATE_ID);
5036 typename T, typename UDT,
5042 VariantID vid = LEGION_AUTO_GENERATE_ID);
5051 template<
void (*TASK_PTR)(
5055 VariantID vid = LEGION_AUTO_GENERATE_ID);
5066 typename UDT,
void (*TASK_PTR)(
5068 Context,
Runtime*, const UDT&)>
5071 VariantID vid = LEGION_AUTO_GENERATE_ID);
5094 const
void* user_data =
nullptr,
size_t user_len = 0,
5095 size_t return_type_size = LEGION_MAX_RETURN_SIZE,
5096 VariantID vid = LEGION_AUTO_GENERATE_ID,
5097 bool has_return_type_size = true);
5115 VariantID vid = LEGION_AUTO_GENERATE_ID);
5129 typename T, typename UDT,
5135 const
char* task_name =
nullptr,
5136 VariantID vid = LEGION_AUTO_GENERATE_ID);
5148 template<
void (*TASK_PTR)(
5152 VariantID vid = LEGION_AUTO_GENERATE_ID);
5166 typename UDT,
void (*TASK_PTR)(
5168 Context,
Runtime*, const UDT&)>
5171 const
char* task_name =
nullptr,
5172 VariantID vid = LEGION_AUTO_GENERATE_ID);
5197 const
void* user_data =
nullptr,
size_t user_len = 0,
5198 const
char* task_name =
nullptr,
5199 VariantID vid = LEGION_AUTO_GENERATE_ID,
5200 size_t return_type_size = LEGION_MAX_RETURN_SIZE,
5201 bool has_return_type_size = true,
bool check_task_id = true);
5217 const
void* data,
size_t datalen, Processor p, const
Task*& task,
5239 Context ctx, const
void* retvalptr =
nullptr,
size_t retvalsize = 0,
5241 Realm::RegionInstance inst = Realm::RegionInstance::NO_INST,
5242 const
void* metadataptr =
nullptr,
size_t metadatasize = 0);
5263 Context ctx, const
void* retvalptr,
size_t retvalsize,
bool owned,
5264 const Realm::ExternalInstanceResource& allocation,
5265 void (*freefunc)(const Realm::ExternalInstanceResource&) =
nullptr,
5266 const
void* metadataptr =
nullptr,
size_t metadatasize = 0);
5278 Context ctx,
FutureFunctor* callback_functor,
bool owned = false);
5295 Context ctx, const
Domain& domain,
bool take_ownership,
5296 const
void* metadataptr =
nullptr,
size_t metadatasize = 0);
5317 "
Task registration should be done with "
5320 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5321 VariantID vid = LEGION_AUTO_GENERATE_ID,
5323 const
char* task_name =
nullptr);
5337 template<
void (*TASK_PTR)(
5340 "
Task registration should be done with "
5343 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5344 VariantID vid = LEGION_AUTO_GENERATE_ID,
5346 const
char* task_name =
nullptr);
5363 typename T, typename UDT,
5368 "
Task registration should be done with "
5371 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5372 const UDT& user_data, VariantID vid = LEGION_AUTO_GENERATE_ID,
5374 const
char* task_name =
nullptr);
5391 typename UDT,
void (*TASK_PTR)(
5393 Context,
Runtime*, const UDT&)>
5395 "
Task registration should be done with "
5398 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5399 const UDT& user_data, VariantID vid = LEGION_AUTO_GENERATE_ID,
5401 const
char* task_name =
nullptr);
5445 const
void* transform,
size_t transform_size, const
void* extent,
5446 size_t extent_size, PartitionKind part_kind, Color color,
5447 const
char* provenance, const
char* func_name,
bool blockify);
5448 IndexSpace create_index_space_union_internal(
5450 size_t color_size, TypeTag type_tag, const
char* provenance,
5451 const
char* func, const std::vector<
IndexSpace>& handles);
5452 IndexSpace create_index_space_union_internal(
5454 size_t color_size, TypeTag type_tag, const
char* provenance,
5456 IndexSpace create_index_space_intersection_internal(
5458 size_t color_size, TypeTag type_tag, const
char* provenance,
5459 const
char* func, const std::vector<
IndexSpace>& handles);
5460 IndexSpace create_index_space_intersection_internal(
5462 size_t color_size, TypeTag type_tag, const
char* provenance,
5464 IndexSpace create_index_space_difference_internal(
5466 size_t color_size, TypeTag type_tag, const
char* provenance,
5470 IndexPartition handle, const
void* realm_color, TypeTag type_tag);
5471 bool has_index_subspace_internal(
5472 IndexPartition handle, const
void* realm_color, TypeTag type_tag);
5473 void get_index_partition_color_space_internal(
5475 void get_index_space_domain_internal(
5476 IndexSpace handle,
void* realm_is, TypeTag type_tag);
5477 void get_index_space_color_internal(
5478 IndexSpace handle,
void* realm_color, TypeTag type_tag);
5479 bool safe_cast_internal(
5481 TypeTag type_tag, const
char* func_name);
5484 bool has_logical_subregion_by_color_internal(
5488 friend class LegionTaskWrapper;
5489 friend class LegionSerialization;
5495 ShardID get_shard_id(Context ctx,
bool I_know_what_I_am_doing = false);
5498 size_t get_num_shards(Context ctx,
bool I_know_what_I_am_doing = false);
5518 Context ctx, const
void* input,
void* output,
size_t num_elements,
5519 size_t element_size, const
char* provenance =
nullptr);
5521 friend class Mapper;