Some important conclusions from Operation 343:

A scheme to address these points is proposed:

Tiled MeqParms

Consider, e.g., a phase parameter that is represented by 1-timeslot-wide polcs. If phase over a larger domain is requested, MeqParm can currently do a "tiled predict", where a larger domain is perfectly tiled by smaller polc domains.

fq1

fq2

fq3

time1

polc 1 (c00)

time2

polc 2 (c00)

time3

polc 3 (c00)

time4

polc 4 (c00)

Now, imagine trying a "tiled solve". We solve for all four c00's at the same time, over the "larger" domain of time 1--4. Under the current scheme, MeqParm would produce a main value and four perturbed values, but because the individual c00s are completely orthogonal, each perturbed value would differ from the main value in only one row of the matrix. Passing such a VellSet through the tree would result in many redundant computations.

Now, imagine we were to produce only one perturbed value, with each row of it corresponding to a different c00. Such a VellSet could be processed by the rest of the tree without violating correctness.

MeqSolver would need to be made aware of such cases, so as to decompose a "tiled" perturbed value into different equations for different unknowns. However, this change is limited to MeqParm and MeqSolver, while the rest of the tree can be happily oblivious to it.

Advantages of this scheme:

Cons:

VellSet representation

Changes to VellSet are no longer needed, now that I've implemented SpidDiscovery. The VellSet still contains just one spid and one perturbed value. MeqSolver discovers in advance which spids are tiled, and can reserve space for N equations for each tiled spids.

Tiling information is passed in a SpidDefinitionRecord during SpidDiscovery.

Updates

The Update.Values command passed up from the solver currently contains a vector of N update values for the N spids associated with each Parm. In the tiled case (M tiles per spid), it will still pass updates up as a flat vector: M updates for spid 0, M updates for spid 1, ... If tiling is multi-dimensional, then tiles are arranged in C order.

Implementation plan

MM: Right. Implemented it now such that if 'tiling' (eg. =[freq=3,time=1]) is specified in the state record, automatically the ComposedPolc is created...only freq and time available at this moment.

TiledSolutions (last edited 2005-06-10 15:44:51 by MaaijkeMevius)