-
Notifications
You must be signed in to change notification settings - Fork 0
First Principles for Multidimensional Array Data
Carter Edwards edited this page Oct 16, 2018
·
1 revision
- The codomain element space is a subset of elements residing within a contiguous span of memory.
- Elements are (typically) of the same type and in-memory representation.
- The domain index space is a Cartesion product of integer ranges.
- Index ranges are (typically) dense.
- The number of integer ranges is the rank of the domain index space.
- The layout is a mapping from the domain index space to the codomain element space.
- A layout mapping is (typically) an O(rank) computation.
- Common rank-2 layout mappings are row major and column major.
- A layout mapping is typically, but not required to be, injective.
- A computation may have a temporary license to operate on the codomain of a multidimensional array
- Read (const): computation does not modify elements
- Read-volatile: computation does not modify elements with expectation that elements are concurrently modified
- Read-restrict: computation does not modify elements with guarantee that elements are not modified
- Write: computation modifies elements
- Write-volatile: computation modifies elements with expectation that elements are concurrently read
- Write-restrict: computation claims exclusive access to elements for modification
- Write-atomic: computation modifies elements with expectation that elements are concurrently modified
- Characterization of a computations' accesses to elements with respect to the location(s) of those elements in memory
- Dependent upon computations' scheduling and patterns in execution resources, and elements' scheduling and layout in memory resources