Changes between Version 22 and Version 23 of DataParallel/Replicate


Ignore:
Timestamp:
Aug 9, 2011 9:43:52 AM (4 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/Replicate

    v22 v23  
    7272This is merely a change in the array representation that does not affect vectorisation.
    7373
     74=== Segment descriptor representation ===
     75
     76Instead, of repeating the start indices in a segment descriptor, we alternatively might want to represent a segmented array with repeated segments by distinguishing its ''physical'' from its ''logical'' (or ''virtual'') representation.  Specifically, instead of representing `[:[:1, 2, 3:], [:1, 2, 3:], [:1, 2, 3:]:]` as
     77{{{
     78start: [:0, 0, 0:]
     79len:   [:3, 3, 3:]
     80data:  [:1, 2, 3:])
     81}}}
     82we might instead represent it as
     83{{{
     84vsegs: [:0, 0, 0:]
     85pstart: [:0:]
     86plen:   [ 3:]
     87data:  [:1, 2, 3:])
     88}}}
     89where `pstart`, `plen`, and `data` represent the underlying segmented array (with non-overlapping segments) and `vsegs` specifies the logical segments of the array, where physical segments may occur not at all, once, or multiple times.  In this example, the only physical segment is repeated three times.
     90
     91Our second example, `[:[:1, 2:], [:1, 2:], [:3:], [:3:], [:3:]:]`, which we previously represented as
     92{{{
     93start: [:0, 0, 2, 2, 2:]
     94len:   [:2, 2, 1, 1, 1:]
     95data:  [:1, 2, 3:])
     96}}}
     97will now be
     98{{{
     99start: [:0, 0, 1, 1, 1:]
     100len:   [:2, 1:]
     101data:  [:1, 2, 3:])
     102}}}
     103
    74104== Operations on arrays with repeated segments ==
    75105