BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Memento EPFL//
BEGIN:VEVENT
SUMMARY:Lazy and Speculative Execution in Computer Systems
DTSTART:20100616T101500
DTSTAMP:20260501T100852Z
UID:e2ec3692df78f19579e9cb063a6cc4c844a8c86550f4640ba51111fb
CATEGORIES:Conferences - Seminars
DESCRIPTION:Dr. Butler Lampson\, Microsoft\nThe distinction between lazy a
 nd eager (or strict) evaluation has been studied in programming languages 
 since Algol 60’s call by name\, as a way to avoid unnecessary work and t
 o deal gracefully with infinite structures such as streams. It is deeply i
 ntegrated in some languages\, notably Haskell\, and can be simulated in ma
 ny languages by wrapping a lazy expression in a lambda.\n\nLess well studi
 ed is the role of laziness\, and its opposite\, speculation\, in computer 
 systems\, both hardware and software. A wide range of techniques can be un
 derstood as applications of these two ideas. \n\nLaziness is the idea behi
 nd:\n\n    * Redo logging for maintaining persistent state and replicated 
 state machines: the log represents the current state\, but it is evaluated
  only after a failure or to bring a replica online\n    * Copy-on-write sc
 hemes\n    * Clipping regions and expose events in graphics and window sys
 tems\n    * “Infinity” and “Not a number” results of floating poin
 t operations\n    * Futures (in programming) and out of order execution (i
 n CPUs)\, which launch a computation but are lazy about consuming the resu
 lt\n    * “Formatting operators” in text editors\, which apply propert
 ies such as “italic” to large regions of text by attaching a sequence 
 of functions that compute the properties\; the functions are not evaluated
  until the text needs to be displayed\n\nSpeculation is the idea behind:\n
 \n    * Optimistic concurrency control in databases\, and more recently in
  transactional memory\n    * Prefetching in memory and file systems\n    *
  Branch prediction\, and speculative execution in general in modern CPUs\n
     \n    * Exponential backoff schemes for scheduling a resource\, most n
 otably in LANs such as WiFi or classical Ethernet\n    * All forms of cach
 ing\, which speculate that it’s worth filling up some memory with data i
 n the hope that it will be used again\n\nIn both cases it is usual to insi
 st that the laziness or speculation is strictly a matter of scheduling tha
 t doesn’t affect the result of a computation but only improves the perfo
 rmance. Sometimes\, however\, the spec is weakened\, for example in eventu
 al consistency. I will discuss many of these examples in detail and examin
 e what they have in common\, how they differ\, and what factors govern the
  effectiveness of laziness and speculation in computer systems. Dr. Lampso
 n's homepage
LOCATION:CM 1 2 https://plan.epfl.ch/?room==CM%201%202
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
