Skip to content

Pipe block operators proposal

vird edited this page May 18, 2017 · 34 revisions

Block-template operator

  • Excellent parallel
    • map
    • filter
  • Good parallel (local accumulators)
    • reduce (makes sure that size >= 1)
    • reduce0 (also takes zero element. Can accept zero-sized stream)
    • group_by (in fact it's reduce by google whitepaper)
    • partition_by (??? должен разделять по условию... формат???)
  • Bad parallel
    • sort
    • unique (alias disctinct)
  • Shrinkable
    • skip
    • limit
    • any
    • all
  • Debug
    • peek(dst)
    • print (==peek(stdout))

Frame operators

  • Pack N frames into 1.
  • Unpack 1 frame into N. (in fact combos with pack-blocking)

Block operators

  • Pack each block to make it operational over N-subblock-frame
    • unroll
    • vectorize

Alignment

  • Array of objects
  • Object of arrays
    • Object of mixed arrays (fusing same type into single array, partial fusing)

Black magic ???

  • Loop Stream Detector size/format tuning
  • CPU time quant granularity rounding/tuning (enough work for thread)
  • CPU cache line tuning

Clone this wiki locally