TOCS Event-Silicon Valley Campus - Carnegie Mellon University

TOCS Event-Silicon Valley Campus - Carnegie Mellon University

TOCS Event


David Ungar
IBM Research


Nov. 22, 1:30pm PT



CMUSV, Rm 118 [directions]

[recorded webcast]

Title: Everything You Know (About Parallel Programming) Is Wrong!: A Wild Screed About the Future
Abstract: New chips such as Tilera’s can give us a glimpse of a future in which many core microprocessors will become commonplace: every (non-hand-held) computer’s CPU chip will contain 1,000 fairly homogeneous cores. Such a system will not be programmed like the cloud, or even a cluster because communication will be much faster relative to computation. Nor will it be programmed like today’s multicore processors because the illusion of instant memory coherency will have been dispelled by both the physical limitations imposed by the 1,000-way fan-in to the memory system, and the comparatively long physical lengths of the inter- vs. intra-core connections. In the 1980’s we changed our model of computation from static to dynamic, and when this future arrives we will have to change our model of computation yet again.
The parallel computational world we are entering will be compromised by even tiny amounts of serialization. Locks?! Even lock-free algorithms will not be parallel enough. They rely on instructions that require communication and synchronization between cores’ caches. We will need to embrace a style of programming without any synchronization whatsoever. In our Renaissance project at IBM, Vrije, and Portland State (, we are investigating what we call “anti-lock,” “raceand- repair,” or “end-to-end nondeterministic” computing. As part of this effort, we have built a Smalltalk system that runs on the 64-core Tilera chip, and have experimented with dynamic languages atop this system. When we give up synchronization, we of necessity give up determinism. There seems to be a fundamental tradeoff between determinism and performance, just as there once seemed to be a tradeoff between static checking and performance. The obstacle we shall have to overcome, if we are to successfully program manycore systems, is our cherished assumption that we write programs that always get the exactly right answers. This assumption is deeply embedded in how we think about programming. The folks who build web search engines already understand, but for the rest of us, to quote Firesign Theatre: Everything You Know Is Wrong!
Speaker Bio: David Ungar received the 2009 Dahl-Nygaard award for outstanding career contributions in the field of object-orientation, and was honored as an ACM Fellow in 2010. Three of his papers have been honored by the Association for Computing Machinery for lasting impact over ten to twentyfour years: for the design of the prototype-based Self language, dynamic optimization techniques, and the application of cartoon animation ideas to user interfaces. He enjoys a position at IBM Research, where he is investigating how application programmers can exploit manycore systems, and testing those ideas to see if they can help scale up analytics.