Changes between Version 22 and Version 23 of DataParallel/Replicate


Ignore:
Timestamp:
Aug 9, 2011 9:43:52 AM (3 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