paper-lvars-lattice-based-structures

https://www.cs.indiana.edu/~lkuper/papers/lvars-fhpc13.pdf

It appears that what they are driving at is that anything can read from the shared state, but to write to it, you may only append to it.

paper-lvars-lattice-based-structures#data-structures-grow-monotonically1 2"Specifically, we are concerned with models where shared data structures grow monotonically—by publishing information, but never invalidating it." paper-lvars-lattice-based-structures#data-structures-grow-monotonically1 2

paper-lvars-lattice-based-structures#monotonic-supports-diverse-parallel-programming-models1 2"Because state modifications that only add information and never destroy it can be structured to commute with one another and thereby avoid race conditions, it stands to reason that diverse deterministic parallel programming models would leverage the principle of monotonicity." paper-lvars-lattice-based-structures#monotonic-supports-diverse-parallel-programming-models1 2

When talking about the Haskell program on page 3, it seems to say that connected-component discovery is parallel, but then before proceeding to the next level (where connected-component discovery can happen in parallel again) it has to wait for all members of the output set to become available. In other words, this inhibits pipelining.

"Even though connected-component discovery is parallel, members of the output set do not become available to other computations until component discovery is finished, limiting parallelism"

I don't understand this problem TODO: " separating producers and consumers when expressing producer-consumer computations using pure programming with futures"

Page 4

"(it is possible for) two subcomputations to independently update an LVar, and then deterministically merge the results by taking the lub of the resulting two states"

References

quora-post-what-does-set-theory-equation-mean


Questions

paper-lvars-lattice-based-structures#commute1 What does commute with one another mean in:

"In this paper, we are concerned with an alternative approach: allowing data to be shared, but limiting the operations that can be performed on it to only those operations that commute with one another and thus can tolerate nondeterministic thread interleavings." paper-lvars-lattice-based-structures#commute1

cs-glossary#glossary
 

Referring Pages

musings-on-ui talk-silence-is-golden data-architecture-glossary monotonic-data-growth