The native host realization of a data-parallel learner
(Learning.DataParallel) over owners 0..n-1 on a star centred on owner 0 or
on a bounded-fan-out hierarchy (Runtime.NativeDataParallelTree).
One update is one round of a global protocol:
every owner: sum its own samples' contributions in sample order into a
(numerator, mass) value, starting from +0;
ordered combine: on a star the left-deep sum (((v0 + v1) + v2) + ...)
at owner 0; on a hierarchy each node's own value followed by its
children's subtree values, left-deep at the node; replicated to every
owner (Runtime.NativeCombine), elementwise binary64 addition of
numerators and of masses;
every owner: mean = numerator / mass, then the update program on
(parameters, mean, rate); version and input cursor advance.
Every owner computes the same bits, so the parameters stay replicated
without a separate broadcast. The evaluation order is the combine tree;
its numerical contract and digest are part of the frame identities, so a
peer compiled for another order refuses before any result.
Persistence: the parameters are one logical region held (replicated) by
every owner; owner 0 publishes it as one shard and every owner's whole
replicated state must equal owner 0's before anything is published. Restore
reads that shard into every owner's parameters. Samples are immutable
program inputs and are not checkpointed. This module owns everything
except the publication itself; the star's publication is below and the
hierarchy's in Runtime.NativeDataParallelTree.
73constructor DataParallelCombineThe compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.