107 friend class Internal::Runtime;
109 Runtime(Internal::Runtime* rt);
130 Context ctx,
const Domain& bounds, TypeTag type_tag = 0,
131 const char* provenance =
nullptr,
const bool take_ownership =
false);
133 template<
int DIM,
typename COORD_T>
135 Context ctx,
const Rect<DIM, COORD_T>& bounds,
136 const char* provenance =
nullptr);
137 template<
int DIM,
typename COORD_T>
139 Context ctx,
const DomainT<DIM, COORD_T>& bounds,
140 const char* provenance =
nullptr,
const bool take_ownership =
false);
157 Context ctx,
size_t dimensions,
const Future& f, TypeTag type_tag = 0,
158 const char* provenance =
nullptr);
159 template<
int DIM,
typename COORD_T>
161 Context ctx,
const Future& f,
const char* provenance =
nullptr);
173 Context ctx,
const std::vector<DomainPoint>& points,
174 const char* provenance =
nullptr);
176 template<
int DIM,
typename COORD_T>
178 Context ctx,
const std::vector<Point<DIM, COORD_T> >& points,
179 const char* provenance =
nullptr);
191 Context ctx,
const std::vector<Domain>& rects,
192 const char* provenance =
nullptr);
194 template<
int DIM,
typename COORD_T>
196 Context ctx,
const std::vector<Rect<DIM, COORD_T> >& rects,
197 const char* provenance =
nullptr);
210 Context ctx,
const std::vector<IndexSpace>& spaces,
211 const char* provenance =
nullptr);
213 template<
int DIM,
typename COORD_T>
215 Context ctx,
const std::vector<IndexSpaceT<DIM, COORD_T> >& spaces,
216 const char* provenance =
nullptr);
229 Context ctx,
const std::vector<IndexSpace>& spaces,
230 const char* provenance =
nullptr);
232 template<
int DIM,
typename COORD_T>
234 Context ctx,
const std::vector<IndexSpaceT<DIM, COORD_T> >& spaces,
235 const char* provenance =
nullptr);
246 const char* provenance =
nullptr);
248 template<
int DIM,
typename COORD_T>
250 Context ctx, IndexSpaceT<DIM, COORD_T> left,
251 IndexSpaceT<DIM, COORD_T> right,
const char* provenance =
nullptr);
261 "Use the new index space creation routines with a "
262 "single domain or rectangle.")
272 "Use the new index space creation routines with a "
273 "single domain or rectangle.")
297 Context ctx,
IndexSpace handle, const
bool unordered = false,
298 const
bool recurse = true, const
char* provenance =
nullptr);
323 const
bool recurse = true, const
char* provenance =
nullptr);
351 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
352 const
char* provenance =
nullptr);
353 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
357 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
358 const
char* provenance =
nullptr);
381 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
382 const
char* provenance =
nullptr);
383 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
386 const std::map<Point<COLOR_DIM, COLOR_COORD_T>,
int>& weights,
388 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
389 const
char* provenance =
nullptr);
394 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
395 const
char* provenance =
nullptr);
396 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
399 const std::map<Point<COLOR_DIM, COLOR_COORD_T>,
size_t>& weights,
401 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
402 const
char* provenance =
nullptr);
408 IndexSpace color_space,
size_t granularity = 1,
409 Color color = LEGION_AUTO_GENERATE_ID,
410 const
char* provenance =
nullptr);
411 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
415 size_t granularity = 1, Color color = LEGION_AUTO_GENERATE_ID,
416 const
char* provenance =
nullptr);
446 PartitionKind part_kind = LEGION_COMPUTE_KIND,
447 Color color = LEGION_AUTO_GENERATE_ID,
448 const
char* provenance =
nullptr);
449 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
455 PartitionKind part_kind = LEGION_COMPUTE_KIND,
456 Color color = LEGION_AUTO_GENERATE_ID,
457 const
char* provenance =
nullptr);
488 PartitionKind part_kind = LEGION_COMPUTE_KIND,
489 Color color = LEGION_AUTO_GENERATE_ID,
490 const
char* provenance =
nullptr);
491 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
497 PartitionKind part_kind = LEGION_COMPUTE_KIND,
498 Color color = LEGION_AUTO_GENERATE_ID,
499 const
char* provenance =
nullptr);
524 PartitionKind part_kind = LEGION_COMPUTE_KIND,
525 Color color = LEGION_AUTO_GENERATE_ID,
bool dominates = false,
526 const
char* provenance =
nullptr);
527 template<
int DIM, typename COORD_T>
531 PartitionKind part_kind = LEGION_COMPUTE_KIND,
532 Color color = LEGION_AUTO_GENERATE_ID,
bool dominates = false,
533 const
char* provenance =
nullptr);
564 PartitionKind part_kind = LEGION_COMPUTE_KIND,
565 Color color = LEGION_AUTO_GENERATE_ID,
566 const
char* provenance =
nullptr);
567 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
573 PartitionKind part_kind = LEGION_COMPUTE_KIND,
574 Color color = LEGION_AUTO_GENERATE_ID,
575 const
char* provenance =
nullptr);
606 PartitionKind part_kind = LEGION_COMPUTE_KIND,
607 Color color = LEGION_AUTO_GENERATE_ID,
608 const
char* provenance =
nullptr);
609 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
615 PartitionKind part_kind = LEGION_COMPUTE_KIND,
616 Color color = LEGION_AUTO_GENERATE_ID,
617 const
char* provenance =
nullptr);
646 FieldID domain_fid,
IndexSpace range, MapperID
id = 0,
648 const
char* provenance =
nullptr);
649 void create_bidirectional_association(
652 FieldID range_fid, MapperID
id = 0, MappingTagID tag = 0,
654 const
char* provenance =
nullptr);
656 template<
int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2>
661 IndexSpaceT<DIM2, COORD_T2> range, MapperID
id = 0,
663 const
char* provenance =
nullptr);
664 template<
int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2>
665 void create_bidirectional_association(
672 MapperID
id = 0, MappingTagID tag = 0,
674 const
char* provenance =
nullptr);
705 PartitionKind part_kind = LEGION_COMPUTE_KIND,
706 Color color = LEGION_AUTO_GENERATE_ID,
707 const
char* provenance =
nullptr);
709 template<
int DIM,
int COLOR_DIM, typename COORD_T>
713 Transform<DIM, COLOR_DIM, COORD_T> transform, Rect<DIM, COORD_T> extent,
714 PartitionKind part_kind = LEGION_COMPUTE_KIND,
715 Color color = LEGION_AUTO_GENERATE_ID,
716 const
char* provenance =
nullptr);
736 Color color = LEGION_AUTO_GENERATE_ID,
737 const
char* provenance =
nullptr);
739 template<
int DIM, typename COORD_T>
742 Point<DIM, COORD_T> blocking_factor,
743 Color color = LEGION_AUTO_GENERATE_ID,
744 const
char* provenance =
nullptr);
759 DomainPoint origin, Color color = LEGION_AUTO_GENERATE_ID,
760 const
char* provenance =
nullptr);
762 template<
int DIM, typename COORD_T>
765 Point<DIM, COORD_T> blocking_factor, Point<DIM, COORD_T> origin,
766 Color color = LEGION_AUTO_GENERATE_ID,
767 const
char* provenance =
nullptr);
795 bool perform_intersections = true,
796 PartitionKind part_kind = LEGION_COMPUTE_KIND,
797 Color color = LEGION_AUTO_GENERATE_ID, const
char* provenance =
nullptr,
798 bool take_ownership = false);
799 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
802 const std::map<Point<COLOR_DIM, COLOR_COORD_T>, DomainT<DIM, COORD_T> >&
805 bool perform_intersections = true,
806 PartitionKind part_kind = LEGION_COMPUTE_KIND,
807 Color color = LEGION_AUTO_GENERATE_ID, const
char* provenance =
nullptr,
808 bool take_ownership = false);
828 IndexSpace color_space,
bool perform_intersections = true,
829 PartitionKind part_kind = LEGION_COMPUTE_KIND,
830 Color color = LEGION_AUTO_GENERATE_ID,
831 const
char* provenance =
nullptr);
832 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
837 bool perform_intersections = true,
838 PartitionKind part_kind = LEGION_COMPUTE_KIND,
839 Color color = LEGION_AUTO_GENERATE_ID,
840 const
char* provenance =
nullptr);
860 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
864 Point<COLOR_DIM, COLOR_COORD_T>, std::vector<Rect<DIM, COORD_T> > >&
867 bool perform_intersections = true,
868 PartitionKind part_kind = LEGION_COMPUTE_KIND,
869 Color color = LEGION_AUTO_GENERATE_ID, const
char* provenance =
nullptr,
870 bool collective = false);
903 IndexSpace color_space, Color color = LEGION_AUTO_GENERATE_ID,
904 MapperID
id = 0, MappingTagID tag = 0,
905 PartitionKind part_kind = LEGION_DISJOINT_KIND,
907 const
char* provenance =
nullptr);
908 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
914 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
915 MappingTagID tag = 0, PartitionKind part_kind = LEGION_DISJOINT_KIND,
917 const
char* provenance =
nullptr);
956 PartitionKind part_kind = LEGION_COMPUTE_KIND,
957 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
959 const
char* provenance =
nullptr);
961 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
962 typename COLOR_COORD_T>
969 PartitionKind part_kind = LEGION_COMPUTE_KIND,
970 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
972 const
char* provenance =
nullptr);
977 PartitionKind part_kind = LEGION_COMPUTE_KIND,
978 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
980 const
char* provenance =
nullptr);
982 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
983 typename COLOR_COORD_T>
990 PartitionKind part_kind = LEGION_COMPUTE_KIND,
991 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
993 const
char* provenance =
nullptr);
1029 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1030 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1032 const
char* provenance =
nullptr);
1034 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
1035 typename COLOR_COORD_T>
1041 IndexSpaceT<COLOR_DIM, COLOR_COORD_T> color_space,
1042 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1043 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1045 const
char* provenance =
nullptr);
1050 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1051 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1053 const
char* provenance =
nullptr);
1055 int DIM1, typename COORD_T1,
int DIM2, typename COORD_T2,
int COLOR_DIM,
1056 typename COLOR_COORD_T>
1062 IndexSpaceT<COLOR_DIM, COLOR_COORD_T> color_space,
1063 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1064 Color color = LEGION_AUTO_GENERATE_ID, MapperID
id = 0,
1066 const
char* provenance =
nullptr);
1101 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1102 Color color = LEGION_AUTO_GENERATE_ID,
1103 const
char* provenance =
nullptr);
1104 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1107 IndexSpaceT<COLOR_DIM, COLOR_COORD_T> color_space,
1108 PartitionKind part_kind = LEGION_COMPUTE_KIND,
1109 Color color = LEGION_AUTO_GENERATE_ID,
1110 const
char* provenance =
nullptr);
1132 const
char* provenance =
nullptr);
1133 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1136 Point<COLOR_DIM, COLOR_COORD_T> color,
1137 const typename std::vector<
IndexSpaceT<DIM, COORD_T> >& handles,
1138 const
char* provenance =
nullptr);
1157 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1160 Point<COLOR_DIM, COLOR_COORD_T> color,
1161 IndexPartitionT<DIM, COORD_T> handle, const
char* provenance =
nullptr);
1183 const
char* provenance =
nullptr);
1184 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1187 Point<COLOR_DIM, COLOR_COORD_T> color,
1188 const typename std::vector<
IndexSpaceT<DIM, COORD_T> >& handles,
1189 const
char* provenance =
nullptr);
1208 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1211 Point<COLOR_DIM, COLOR_COORD_T> color,
1212 IndexPartitionT<DIM, COORD_T> handle, const
char* provenance =
nullptr);
1239 const
char* provenancne =
nullptr);
1240 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1243 Point<COLOR_DIM, COLOR_COORD_T> color,
1245 const typename std::vector<
IndexSpaceT<DIM, COORD_T> >& handles,
1246 const
char* provenance =
nullptr);
1262 Context ctx,
IndexSpace parent, Color color);
1270 template<
int DIM, typename COORD_T>
1292 template<
int DIM, typename COORD_T>
1312 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1314 IndexPartitionT<DIM, COORD_T> p, Point<COLOR_DIM, COLOR_COORD_T> color);
1331 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1333 IndexPartitionT<DIM, COORD_T> p, Point<COLOR_DIM, COLOR_COORD_T> color);
1347 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1350 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1366 template<
int DIM, typename COORD_T>
1382 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1386 LEGION_DEPRECATED("Multiple domains are no longer supported.")
1403 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1420 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1436 Context ctx,
IndexSpace sp, std::set<Color>& colors);
1485 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1517 template<
int DIM, typename COORD_T>
1546 template<
int DIM, typename COORD_T>
1597 template<
int DIM, typename COORD_T>
1599 Context ctx, Point<DIM, COORD_T> point,
1613 Context ctx, const
char* provenance =
nullptr);
1626 Context ctx, const std::vector<
size_t>& field_sizes,
1627 std::vector<FieldID>& resulting_fields, CustomSerdezID serdez_id = 0,
1628 const
char* provenance =
nullptr);
1641 Context ctx, const std::vector<
Future>& field_sizes,
1642 std::vector<FieldID>& resulting_fields, CustomSerdezID serdez_id = 0,
1643 const
char* provenance =
nullptr);
1665 Context ctx,
FieldSpace handle, const
bool unordered = false,
1666 const
char* provenance =
nullptr);
1689 Context ctx,
FieldSpace handle, std::vector<FieldID>& fields);
1692 FieldSpace handle, std::vector<FieldID>& fields);
1703 Context ctx,
FieldSpace handle, std::set<FieldID>& fields);
1726 bool task_local = false, const
char* provenance =
nullptr);
1728 template<
int DIM, typename COORD_T>
1731 bool task_local = false, const
char* provenance =
nullptr);
1753 Context ctx,
LogicalRegion handle, const
bool unordered = false,
1754 const
char* provenance =
nullptr);
1764 "Destruction of logical partitions are no-ops now."
1765 "Logical partitions are automatically destroyed when their root "
1766 "logical region or their index spartition are destroyed.")
1790 const std::set<FieldID>& fields);
1811 template<
int DIM, typename COORD_T>
1836 template<
int DIM, typename COORD_T>
1874 template<
int DIM, typename COORD_T>
1896 template<
int DIM, typename COORD_T>
1921 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1924 Point<COLOR_DIM, COLOR_COORD_T> color);
1942 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1945 Point<COLOR_DIM, COLOR_COORD_T> color);
1964 template<
int DIM, typename COORD_T>
1985 template<
int DIM, typename COORD_T,
int COLOR_DIM, typename COLOR_COORD_T>
1986 Point<COLOR_DIM, COLOR_COORD_T> get_logical_region_color_point(
2018 template<
int DIM, typename COORD_T>
2047 template<
int DIM, typename COORD_T>
2071 LEGION_DEPRECATED("
ArgumentMap can be constructed directly.")
2154 Context ctx, const
FutureMap& future_map, ReductionOpID redop,
2155 bool ordered = true, MapperID map_id = 0, MappingTagID tag = 0,
2156 const
char* provenance =
nullptr,
Future initial_value =
Future());
2188 bool collective = false, ShardingID sid = 0,
2189 bool implicit_sharding = false, const
char* provenance =
nullptr);
2190 LEGION_DEPRECATED("Use the version that takes an
IndexSpace instead")
2192 Context ctx, const
Domain& domain,
2194 bool collective = false, ShardingID sid = 0,
2195 bool implicit_sharding = false);
2223 ShardingID sid = 0,
bool implicit_sharding = false,
2224 const
char* provenance =
nullptr);
2225 LEGION_DEPRECATED("Use the version that takes an
IndexSpace instead")
2227 Context ctx, const
Domain& domain,
2229 ShardingID sid = 0,
bool implicit_sharding = false);
2273 const
char* provenance =
nullptr);
2291 "Launching tasks should be done with the new task "
2292 "launcher interface.")
2294 Context ctx, TaskID task_id,
2299 MappingTagID tag = 0);
2320 "Launching tasks should be done with the new task "
2321 "launcher interface.")
2323 Context ctx, TaskID task_id, const
Domain domain,
2329 bool must_paralleism = false, MapperID
id = 0, MappingTagID tag = 0);
2353 "Launching tasks should be done with the new task "
2354 "launcher interface.")
2356 Context ctx, TaskID task_id, const
Domain domain,
2361 ReductionOpID reduction, const
UntypedBuffer& initial_value,
2363 bool must_parallelism = false, MapperID
id = 0, MappingTagID tag = 0);
2394 MappingTagID tag = 0, const
char* provenance =
nullptr);
2408 Context ctx,
unsigned idx, MapperID
id = 0, MappingTagID tag = 0,
2409 const
char* provenance =
nullptr);
2421 Context ctx,
PhysicalRegion region, const
char* provenance =
nullptr);
2475 template<typename T>
2495 const
void* value,
size_t value_size,
2524 template<typename T>
2527 const std::set<FieldID>& fields, const T& value,
2544 const std::set<FieldID>& fields, const
void* value,
size_t value_size,
2559 const std::set<FieldID>& fields,
Future f,
2611 const
bool unordered = false, const
char* provenance =
nullptr);
2647 const
bool unordered = false, const
char* provenance =
nullptr);
2688 "Attaching specific HDF5 file type is deprecated "
2689 "in favor of generic attach launcher interface.")
2692 LogicalRegion parent, const std::map<FieldID, const
char*>& field_map,
2693 LegionFileMode mode);
2712 "Detaching specific HDF5 file type is deprecated "
2713 "in favor of generic detach interface.")
2723 "Attaching generic file type is deprecated "
2724 "in favor of generic attach launcher interface.")
2727 LogicalRegion parent, const std::vector<FieldID>& field_vec,
2728 LegionFileMode mode);
2736 "Detaching generic file type is deprecated "
2737 "in favor of generic detach interface.")
2774 Context ctx, const
Future& f, const
char* provenance =
nullptr);
2786 Context ctx, const
Predicate& p, const
char* provenance =
nullptr);
2800 const
char* provenance =
nullptr);
2814 const
char* provenance =
nullptr);
2833 Context ctx, const
Predicate& p, const
char* provenance =
nullptr);
2943 Context ctx,
unsigned arrivals, ReductionOpID redop,
2944 const
void* init_value,
size_t init_size);
2965 unsigned count = 1);
3079 Context ctx, TraceID tid,
bool logical_only = false,
3080 bool static_trace = false,
3081 const std::set<RegionTreeID>* managed =
nullptr,
3082 const
char* provenance =
nullptr);
3086 void end_trace(Context ctx, TraceID tid, const
char* provenance =
nullptr);
3101 LEGION_DEPRECATED("Use
begin_trace with static_trace=true")
3103 Context ctx, const std::set<RegionTreeID>* managed =
nullptr);
3187 Context ctx, TunableID tid, MapperID mapper = 0, MappingTagID tag = 0,
3188 const
void* args =
nullptr,
size_t argsize = 0);
3198 "Tunable values should now be obtained via the "
3199 "generic interface that returns a future result.")
3201 Context ctx, TunableID tid, MapperID mapper = 0, MappingTagID tag = 0);
3221 template<typename T>
3222 T* get_local_task_variable(Context ctx, LocalVariableID
id);
3235 Context ctx, LocalVariableID
id, const
void* value,
3236 void (*destructor)(
void*) =
nullptr);
3237 template<typename T>
3238 void set_local_task_variable(
3239 Context ctx, LocalVariableID
id, const T* value,
3240 void (*destructor)(
void*) =
nullptr);
3269 Realm::Event precondition = Realm::Event::NO_EVENT);
3281 template<typename COORD_T = coord_t>
3294 template<typename COORD_T = coord_t>
3297 Realm::Event precondition = Realm::Event::NO_EVENT);
3385 Context ctx, MapperID
id, Processor target = Processor::NO_PROC);
3401 Context ctx, MapperID
id, Processor target = Processor::NO_PROC);
3442 Context ctx, Memory target,
bool escaping = true);
3506 Context ctx, Realm::Event effect, const
char* provenance =
nullptr);
3559 void stop_profiling_range(Context ctx, const
char* provenance);
3605 TaskID task_id, SemanticTag tag, const
void* buffer,
size_t size,
3606 bool is_mutable = false,
bool local_only = false);
3617 IndexSpace handle, SemanticTag tag, const
void* buffer,
size_t size,
3618 bool is_mutable = false);
3629 IndexPartition handle, SemanticTag tag, const
void* buffer,
size_t size,
3630 bool is_mutable = false);
3641 FieldSpace handle, SemanticTag tag, const
void* buffer,
size_t size,
3642 bool is_mutable = false);
3654 FieldSpace handle, FieldID fid, SemanticTag tag, const
void* buffer,
3655 size_t size,
bool is_mutable = false);
3666 LogicalRegion handle, SemanticTag tag, const
void* buffer,
size_t size,
3667 bool is_mutable = false);
3679 size_t size,
bool is_mutable = false);
3689 TaskID task_id, const
char* name,
bool is_mutable = false,
3690 bool local_only = false);
3699 IndexSpace handle, const
char* name,
bool is_mutable = false);
3708 IndexPartition handle, const
char* name,
bool is_mutable = false);
3717 FieldSpace handle, const
char* name,
bool is_mutable = false);
3727 FieldSpace handle, FieldID fid, const
char* name,
3728 bool is_mutable = false);
3737 LogicalRegion handle, const
char* name,
bool is_mutable = false);
3759 TaskID task_id, SemanticTag tag, const
void*& result,
size_t& size,
3760 bool can_fail = false,
bool wait_until_ready = false);
3773 IndexSpace handle, SemanticTag tag, const
void*& result,
size_t& size,
3774 bool can_fail = false,
bool wait_until_ready = false);
3788 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3801 FieldSpace handle, SemanticTag tag, const
void*& result,
size_t& size,
3802 bool can_fail = false,
bool wait_until_ready = false);
3816 FieldSpace handle, FieldID fid, SemanticTag tag, const
void*& result,
3817 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3831 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3845 size_t& size,
bool can_fail = false,
bool wait_until_ready = false);
3917 void log_once(Context ctx, Realm::LoggerMessage& message);
3971 MapperID map_id, Mapping::Mapper* mapper,
3972 Processor proc = Processor::NO_PROC);
3986 Mapping::Mapper* mapper, Processor proc = Processor::NO_PROC);
4005 const
char* name,
size_t count);
4031 bool silence_warnings = false, const
char* warning_string =
nullptr);
4093 ShardingID sid,
ShardingFunctor* functor,
bool silence_warnings = false,
4094 const
char* warning_string =
nullptr);
4134 const
char* name,
size_t count);
4160 bool silence_warnings = false, const
char* warning_string =
nullptr);
4201 const
char* name,
size_t count);
4255 const
char* name,
size_t count);
4280 template<typename REDOP>
4282 ReductionOpID redop_id,
bool permit_duplicates = false);
4305 ReductionOpID redop_id, ReductionOp* op,
4306 SerdezInitFunc init_fnptr =
nullptr,
4307 SerdezFoldFunc fold_fnptr =
nullptr,
bool permit_duplicates = false);
4316#ifdef LEGION_GPU_REDUCTIONS
4317 template<
typename REDOP>
4318 LEGION_DEPRECATED(
"Use register_reduction_op instead")
4319 static
void preregister_gpu_reduction_op(ReductionOpID redop_id);
4362 template<
typename SERDEZ>
4364 CustomSerdezID serdez_id,
bool permit_duplicates =
false);
4379 CustomSerdezID serdez_id, SerdezOp* serdez_op,
4380 bool permit_duplicates =
false);
4620 int argc,
char** argv,
bool background =
false,
4621 bool supply_default_mapper =
true,
bool filter =
false,
4622 bool realm_initialize_network =
true,
4623 bool realm_configure_machine =
true);
4646 int* argc,
char*** argv,
bool filter =
false,
bool parse =
true,
4647 bool realm_initialize_network =
true,
4648 bool realm_create_configure_machine =
true);
4710 TaskID top_task_id, MapperID mapper_id,
4711 Processor::Kind proc_kind = Processor::NO_KIND,
4712 const char* task_name =
nullptr,
bool control_replicable =
false,
4713 unsigned shard_per_address_space = 1,
int shard_id = -1,
4744 Context ctx, Realm::Event effects = Realm::Event::NO_EVENT);
4778 bool init_in_ext =
true,
int ext_participants = 1,
4779 int legion_participants = 1);
4793 bool init_in_MPI =
true,
int mpi_participants = 1,
4794 int legion_participants = 1);
4809 "Projection functions should now be specified "
4810 "using projection functor objects")
4825 "Projection functions should now be specified "
4826 "using projection functor objects")
4846 RegistrationCallback callback,
bool dedup =
true,
size_t dedup_tag = 0);
4848 RegistrationWithArgsCallback callback,
const UntypedBuffer& buffer,
4849 bool dedup =
true,
size_t dedup_tag = 0);
4876 RegistrationCallback callback,
bool global,
bool deduplicate =
true,
4877 size_t dedup_tag = 0);
4879 RegistrationWithArgsCallback callback,
const UntypedBuffer& buffer,
4880 bool global,
bool deduplicate =
true,
size_t dedup_tag = 0);
4894 "Legion now supports multiple registration callbacks "
4895 "added via the add_registration_callback method.")
4952 LayoutConstraintID layout_id = LEGION_AUTO_GENERATE_ID);
5020 VariantID vid = LEGION_AUTO_GENERATE_ID);
5031 typename T, typename UDT,
5037 VariantID vid = LEGION_AUTO_GENERATE_ID);
5046 template<
void (*TASK_PTR)(
5050 VariantID vid = LEGION_AUTO_GENERATE_ID);
5061 typename UDT,
void (*TASK_PTR)(
5063 Context,
Runtime*, const UDT&)>
5066 VariantID vid = LEGION_AUTO_GENERATE_ID);
5089 const
void* user_data =
nullptr,
size_t user_len = 0,
5090 size_t return_type_size = LEGION_MAX_RETURN_SIZE,
5091 VariantID vid = LEGION_AUTO_GENERATE_ID,
5092 bool has_return_type_size = true);
5110 VariantID vid = LEGION_AUTO_GENERATE_ID);
5124 typename T, typename UDT,
5130 const
char* task_name =
nullptr,
5131 VariantID vid = LEGION_AUTO_GENERATE_ID);
5143 template<
void (*TASK_PTR)(
5147 VariantID vid = LEGION_AUTO_GENERATE_ID);
5161 typename UDT,
void (*TASK_PTR)(
5163 Context,
Runtime*, const UDT&)>
5166 const
char* task_name =
nullptr,
5167 VariantID vid = LEGION_AUTO_GENERATE_ID);
5192 const
void* user_data =
nullptr,
size_t user_len = 0,
5193 const
char* task_name =
nullptr,
5194 VariantID vid = LEGION_AUTO_GENERATE_ID,
5195 size_t return_type_size = LEGION_MAX_RETURN_SIZE,
5196 bool has_return_type_size = true,
bool check_task_id = true);
5212 const
void* data,
size_t datalen, Processor p, const
Task*& task,
5234 Context ctx, const
void* retvalptr =
nullptr,
size_t retvalsize = 0,
5236 Realm::RegionInstance inst = Realm::RegionInstance::NO_INST,
5237 const
void* metadataptr =
nullptr,
size_t metadatasize = 0);
5258 Context ctx, const
void* retvalptr,
size_t retvalsize,
bool owned,
5259 const Realm::ExternalInstanceResource& allocation,
5260 void (*freefunc)(const Realm::ExternalInstanceResource&) =
nullptr,
5261 const
void* metadataptr =
nullptr,
size_t metadatasize = 0);
5273 Context ctx,
FutureFunctor* callback_functor,
bool owned = false);
5290 Context ctx, const
Domain& domain,
bool take_ownership,
5291 const
void* metadataptr =
nullptr,
size_t metadatasize = 0);
5312 "
Task registration should be done with "
5315 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5316 VariantID vid = LEGION_AUTO_GENERATE_ID,
5318 const
char* task_name =
nullptr);
5332 template<
void (*TASK_PTR)(
5335 "
Task registration should be done with "
5338 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5339 VariantID vid = LEGION_AUTO_GENERATE_ID,
5341 const
char* task_name =
nullptr);
5358 typename T, typename UDT,
5363 "
Task registration should be done with "
5366 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5367 const UDT& user_data, VariantID vid = LEGION_AUTO_GENERATE_ID,
5369 const
char* task_name =
nullptr);
5386 typename UDT,
void (*TASK_PTR)(
5388 Context,
Runtime*, const UDT&)>
5390 "
Task registration should be done with "
5393 TaskID
id, Processor::Kind proc_kind,
bool single,
bool index,
5394 const UDT& user_data, VariantID vid = LEGION_AUTO_GENERATE_ID,
5396 const
char* task_name =
nullptr);
5440 const
void* transform,
size_t transform_size, const
void* extent,
5441 size_t extent_size, PartitionKind part_kind, Color color,
5442 const
char* provenance, const
char* func_name,
bool blockify);
5443 IndexSpace create_index_space_union_internal(
5445 size_t color_size, TypeTag type_tag, const
char* provenance,
5446 const
char* func, const std::vector<
IndexSpace>& handles);
5447 IndexSpace create_index_space_union_internal(
5449 size_t color_size, TypeTag type_tag, const
char* provenance,
5451 IndexSpace create_index_space_intersection_internal(
5453 size_t color_size, TypeTag type_tag, const
char* provenance,
5454 const
char* func, const std::vector<
IndexSpace>& handles);
5455 IndexSpace create_index_space_intersection_internal(
5457 size_t color_size, TypeTag type_tag, const
char* provenance,
5459 IndexSpace create_index_space_difference_internal(
5461 size_t color_size, TypeTag type_tag, const
char* provenance,
5465 IndexPartition handle, const
void* realm_color, TypeTag type_tag);
5466 bool has_index_subspace_internal(
5467 IndexPartition handle, const
void* realm_color, TypeTag type_tag);
5468 void get_index_partition_color_space_internal(
5470 void get_index_space_domain_internal(
5471 IndexSpace handle,
void* realm_is, TypeTag type_tag);
5472 void get_index_space_color_internal(
5473 IndexSpace handle,
void* realm_color, TypeTag type_tag);
5474 bool safe_cast_internal(
5476 TypeTag type_tag, const
char* func_name);
5479 bool has_logical_subregion_by_color_internal(
5483 friend class LegionTaskWrapper;
5484 friend class LegionSerialization;
5490 ShardID get_shard_id(Context ctx,
bool I_know_what_I_am_doing = false);
5493 size_t get_num_shards(Context ctx,
bool I_know_what_I_am_doing = false);
5513 Context ctx, const
void* input,
void* output,
size_t num_elements,
5514 size_t element_size, const
char* provenance =
nullptr);
5516 friend class Mapper;