The Future of Concurrency Theory Renaissance or Reformation? (Met dank aan Maurice Herlihy) Frits Vaandrager
Intreedag Le Quatorze Juillet SAN FRANCISCO, May Intel said on Friday that it was scrapping its development of two microprocessors, a move that is a shift in the company's business strategy…. New York Times
Intreedag Moore’s Law Clock speed flattening sharply Transistor count still rising
Intreedag Still on some of your desktops: The Uniprocesor memory cpu
Intreedag In the Enterprise: The Shared Memory Multiprocessor (SMP) cache Bus shared memory cache
Intreedag Your New Desktop: The Multicore Processor (CMP) cache Bus shared memory cache All on the same chip Sun T2000 Niagara
Intreedag Multicores are Here “Learn how the multi-core processor architecture plays a central role in Intel's platform approach. ….” “AMD is leading the industry to multi- core technology for the x86 based computing market …” “Sun's multicore strategy centers around multi-threaded software.... “
Intreedag Renaissance? World (re)discovers Concurrency Theory achievements This has already happened (sort-of) World learns of concurrency results
Intreedag Reformation? Can we respond to the Real World’s challenges? Are we working on problems that matter? Can we recognize what’s going to be important? Bonfire of the Vanities
Intreedag In Classic Antiquity Time cured software bloat Double your path length? –Wait 6 months, until –Processor speed catches up
Intreedag Multiprocessor companies failed in 80s Outstripped by sequential processors Field respected, but not taken seriously Parallelism Didn’t Matter
Intreedag The Old Order Lies in Ruins Six months means more cores, same clock speed Must exploit more parallelism No one really knows how to do this
Intreedag What Keeps Microsoft and Intel awake at Night? If more cores does not deliver more value … Then why upgrade? ?
Intreedag Washing Machine Science? Computers could become like washing machines You don’t trade it in every 2 years for a cooler model You keep it until it breaks
Intreedag No Cores Please, we’re Theorists! Computer Science is driven by Moore’s law Each year we can do things we couldn’t do last year Means funding, students, excitement !
Intreedag With Sudden Relevance Comes Great Responsibility Many challenges involve –Concurrent algorithms –Data structures –Formal models –Complexity & lower bounds, –…–… Stuff we’re good at.
Intreedag Concurrent Programming Today
Intreedag Coarse-Grained Locking Easily made correct … But not scalable.
Intreedag Fine-Grained Locking Here comes trouble …
Intreedag Locks are not Robust If a thread holding a lock is delayed … No one else can make progress
Intreedag
Intreedag Locking Relies on Conventions Relation between –Lock bit and object bits –Exists only in programmer’s mind /* * When a locked buffer is visible to the I/O layer * BH_Launder is set. This means before unlocking * we must clear BH_Launder,mb() on alpha and then * clear BH_Lock, so no reader can see BH_Launder set * on an unlocked buffer and then risk to deadlock. */ Actual comment from Linux Kernel (hat tip: Bradley Kuszmaul)
Intreedag Sadistic Homework enq(x) deq(y) FIFO queue No interference if ends “far enough” apart
Intreedag Sadistic Homework enq(x) deq(y) FIFO queue Interference OK if ends “close enough” together
Intreedag You Try It … One lock? –Too Conservative Locks at each end? –Deadlock, too complicated, etc Publishable result? –Once, maybe still?
Intreedag Downey’s Room Party Problem “A dean of students should keep order in the students' house. In order to do this, he can enter a room with too many students (in order to break up a too large party) or he can enter an empty room to conduct a search. Otherwise, the dean may not enter a room. If the dean is in a room, no additional students may enter, but students may leave. In that case, the dean has to stay until all students have left. There is only one dean, and no limitation on the number of students in one room.”
Intreedag Don’t be Shy Marc Schoolderman (first year CS student from Nijmegen) discovered bugs in published “solution” of Downey using a model checker
Intreedag The Transactional Manifesto What we do now is inadequate to meet the multicore challenge Research Agenda –Replace locking with a transactional API –Design languages to support this model –Implement the run-time to be fast enough
Intreedag Public void enq(item x) { Qnode q = new Qnode(x); q.next = this.tail; this.tail.next = q; } Sadistic Homework Revisited (1) Write sequential Code
Intreedag Public void LeftEnq(item x) { atomic { Qnode q = new Qnode(x); q.next = this.tail; this.tail.next = q; } Sadistic Homework Revisited (1)
Intreedag Public void LeftEnq(item x) { atomic { Qnode q = new Qnode(x); q.next = this.tail; this.tail.next = q; } Sadistic Homework Revisited (1) Enclose in atomic block
Intreedag Warning Not always this simple –Conditional waits –Enhanced concurrency –Complex patterns But often it is –Works for sadistic homework
Intreedag Public void Transfer(Queue q1, q2) { atomic { T x = q1.deq(); q2.enq(x); } Composition (1) Trivial or what?
Intreedag Not All Skittles and Beer Algorithmic choices –Lower bounds –Better algorithms Language design Semantic issues –Like memory models –Atomicity checking
Intreedag Contention Management & Scheduling How to resolve conflicts? Who moves forward and who rolls back? Lots of empirical work but formal work in infancy Judgment of Solomon
Intreedag Strong vs Weak Isolation How do transactional & non-transactional threads synchronize? Similar to memory- model theory? Efficient algorithms?
Intreedag Single Global Lock Semantics? Transactions act as if it acquires SGL Good: –Intuitively appealing Bad: –What about aborted transactions? –Expensive? Need better models
Intreedag Formal Models of Performance Asynchrony
Intreedag Formal Models of Performance Asynchrony Multi-level Memory
Intreedag Formal Models of Performance Asynchrony Multi-level Memory Contention
Intreedag Formal Verification Concurrent algorithms are hard Need routine verification of real algorithms Model checking? Theorem proving? Probably both
Intreedag An Insurmountable Opportunity! Multicore forces us to rethink almost everything
Intreedag An Insurmountable Opportunity! Multicore forces us to rethink almost everything The fate of CS as a vibrant field depends on our success
Intreedag An Insurmountable Opportunity! Multicore forces us to rethink almost everything The fate of CS as a vibrant field depends on our success Concurrency theory has unique insights & advantages
Intreedag An Insurmountable Opportunity! Multicore forces us to rethink almost everything The fate of CS as a vibrant field depends on our success Concurrency theory has unique insights & advantages Are we equal to the task?