Defining topology instances and fields. More...
Topics | |
Legion Data | |
Owning wrappers for Legion objects. | |
Launch maps | |
Selecting topology colors to send to tasks. | |
MPI Data | |
Direct data storage. | |
Topology implementation | |
These types are movable but may not be copyable. | |
Classes | |
struct | accessor< L, T, Priv > |
A data accessor. More... | |
struct | accessor< dense, T, P > |
Accessor for ordinary fields. More... | |
struct | accessor< raw, DATA_TYPE, PRIVILEGES > |
Accessor for potentially uninitialized memory. More... | |
struct | accessor< single, DATA_TYPE, PRIVILEGES > |
Accessor for a single value. This class is supported for GPU execution. More... | |
struct | accessor< sparse, T, P > |
Accessor for sparse fields. More... | |
struct | coloring_slot< class > |
A mpi_coloring object, constructed on request. More... | |
struct | field< T, L > |
Helper type to define and access fields. More... | |
struct | field_info_t |
The field_info_t type provides a structure for capturing runtime field information. More... | |
struct | field_reference< class, layout, Topo, index_space > |
Identifies a field on a particular topology instance. More... | |
struct | multi< class > |
A sequence of accessors obtained from a launch::mapping . More... | |
struct | multi_reference< T, L, Topo, S > |
Identifies a field on a launch::mapping . More... | |
struct | mutator< layout, class, Privileges > |
A specialized accessor for changing the extent of dynamic layouts. More... | |
struct | mutator< particle, T, P > |
Mutator for particle fields. More... | |
struct | mutator< ragged, T, P > |
Mutator for ragged fields. More... | |
struct | mutator< sparse, T, P > |
Mutator for sparse fields. More... | |
struct | particle_accessor< class, Privileges, bool > |
Accessor for particle fields. More... | |
struct | ragged_accessor< class, Privileges, Privileges > |
Accessor for ragged fields. More... | |
struct | reduction_accessor< R, T > |
Accessor for computing reductions. More... | |
struct | topology_accessor< class, Privileges > |
Topology accessor type. More... | |
struct | topology_slot< Topo > |
A movable slot that holds a topology, constructed upon request. More... | |
Typedefs | |
template<const auto & F, Privileges P> | |
using | scalar_access |
Metadata provided with this type is made available on the host if read-only even if fields are stored on a device. | |
Enumerations | |
enum | layout : size_t { raw , single , dense , ragged , sparse , particle } |
A type of logical data structure. More... | |
enum | partition_privilege_t : Privileges { na , ro , wo , rw } |
Access privileges for data passed to FleCSI tasks. More... | |
Functions | |
constexpr privilege | get_privilege (PrivilegeCount i, Privileges pack) |
Get a privilege out of a pack for the specified id. | |
constexpr PrivilegeCount | privilege_count (Privileges PACK) |
Return the number of privileges stored in a privilege pack. | |
Variables | |
util::counter< field_id_t(FLECSI_GENERATED_ID_MAX)> | fid_counter (0) |
Unique counter for field ids. | |
topo::global::slot | global_topology |
Default global topology instance with size 1. | |
template<privilege... PP> | |
constexpr Privileges | privilege_pack |
Utility to allow general privilege components that will match the old style of specifying permissions, e.g., <EX, SH, GH> (The old approach was only valid for mesh type topologies, and didn't make sense for all topology types). | |
topo::index::slot | process_topology |
Topology instance with one color per process. | |
Defining topology instances and fields.
The inclusion of flecsi/topology.hh by this header is deprecated.
using scalar_access |
Metadata provided with this type is made available on the host if read-only even if fields are stored on a device.
Use *sa
or sa->
to access it.
P | produces an ordinary accessor if writable |
enum layout : size_t |
A type of logical data structure.
The interface for each is provided by an accessor
.
enum partition_privilege_t : Privileges |
Access privileges for data passed to FleCSI tasks.
Each field must be initialized with wo
privileges (perhaps combined with na
). Any use of such privileges produces default-initialized values.
Ghost data is updated only when read access to it is requested. Writes to shared data are never propagated to ghost data for which the same task has write access, as it is assumed to have updated them.
Enumerator | |
---|---|
na | no access: defer consistency update |
ro | read-only |
wo | write-only: consistency updates discarded |
rw | read-write |
|
constexpr |
Return the number of privileges stored in a privilege pack.
PACK | a privilege_pack value |
|
constexpr |
Get a privilege out of a pack for the specified id.
i | privilege index |
pack | a privilege_pack value |
topo::global::slot global_topology |
Default global topology instance with size 1.
topo::index::slot process_topology |
Topology instance with one color per process.
util::counter< field_id_t(FLECSI_GENERATED_ID_MAX)> fid_counter(0) | ( | 0 | ) |
Unique counter for field ids.
|
constexpr |
Utility to allow general privilege components that will match the old style of specifying permissions, e.g., <EX, SH, GH> (The old approach was only valid for mesh type topologies, and didn't make sense for all topology types).
PP | privileges |