Legion Runtime
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Legion::Mapping::Mapper::TaskSlice Struct Reference

#include <mapping.h>

Public Member Functions

 TaskSlice (const Domain &d, Processor p, bool r, bool s, bool own=false)
 
 TaskSlice (IndexSpace is, Processor p, bool r, bool s)
 

Public Attributes

IndexSpace domain_is
 
Domain domain
 
Processor proc
 
bool recurse
 
bool stealable
 
bool take_ownership
 

Detailed Description


Slice Domain

Instead of needing to map an index space of tasks as a single domain, Legion allows index space of tasks to be decomposed into smaller sets of tasks that are mapped in parallel on different processors. To achieve this, the domain of the index space task launch must be sliced into subsets of points and distributed to the different processors which will actually run the tasks. Decomposing arbitrary domains in a way that matches the target architecture is clearly a mapping decision. Slicing the domain can be done recursively to match the hierarchical nature of modern machines. By setting the 'recurse' field on a DomainSlice struct to true, the runtime will invoke slice_domain again on the destination node. It is acceptable to return a single slice consisting of the entire domain, but this will guarantee that all points in an index space will map on the same node. The mapper can request that the runtime check the correctness of the slicing (e.g. each point is in exactly one slice) dynamically by setting the 'verify_correctness' flag. Note that verification can be expensive and should only be used in testing or rare cases.


The documentation for this struct was generated from the following file: