1. 6

So, this is sort of a talk by Matthew Hammer introducing people to incremental computation, based on his doctoral work under kind of Umut Acar (the self-adjusting computaiton guy) but extending it to avoid recomputation in many more situations, by using partial ordering constraints on the computation instead of sort of total ordering. Okay, so this is sort of helping me to understand Acar’s dissertation, which I’ve been finding somewhat tough going, even though I feel like the dissertation is sort of pretty well explained, and this talk is sort of driving me nuts with the, uh, hesitation noises and filler, right?

Okay, but, so, this talk is really helping me put Acar’s dissertation in context, and also kind of gives me an overview of what Hammer is doing, including in some languages like OCaml and Python, which, again, by the way, I care a lot more about than Standard ML or CEAL. So, the other thing is, I think this talk is well worth watching, especially with mplayer -af scaletempo so you can sort of speed it up to 1.6× to compensate for the, uh, hesitation noises, right?


  2. 2

    I like doing simulations, and the ability to rerun a computation very fast after tweaking a parameter is most appealing. However, I can’t see how this can be applied in general, unless you constrain your programming paradigm to tailor to this. And once you start constraining program design this way, it will probably get annoying, which will be an impediment to adoption. There are enough annoyances to getting code to be parallel, for example.

    1. [Comment removed by author]

      1. 1

        So, is this going to be a module I import into Python, for example, or a completely new language with special restrictions on data structures and computations?

        1. 2

          As far as I can tell, it’s in between. It does give you the programming model you’re familiar with, with mutation and everything, translating it into a mutation-free SSA form. There’s a module you can import into Python or OCaml but I think you have to write all the code you want to make incremental in terms of that module.

          Without having tried it, I think the really major problem is going to be managing your memory usage.

          1. 1

            Thanks for the link!