Title: Drilling Through the Layers of Liars
Date: 18 February 2010, 3 p.m.
Abstract: In the beginning we had “The Policy of Truth”, but the temptations of that innocent world led us to tie software and hardware systems together too tightly and the resulting brittleness and widespread complexity proved ultimately to be unsustainable and caused us to eschew truth as a virtue when it came to systems design and implementation. And so we have taught ourselves to separate concerns, create (hopefully) simplifying abstractions and to layer them all together to compose a backwards compatible, extensible and maintainable software and hardware stack. However, as in real life, duplicity, while often expediently achieving some short term goal, is rarely without downstream consequences and similarly in the systems design space, we now find ourselves mesmerized by the glamour of our own abstractions. We’ve convinced ourselves that the benefits we’ve gotten are worth the post-dated cheques we have written against the perpetuity of single-thread performance improvement. Sadly our systems are beginning to suffocate under the burden of impenetrable “layers of liars” and we find our isolationist, information-hiding and even actively duplicitous abstractions have come back haunt us.
The gigahertz perpetuity has failed and the new kid on the block, “core count” is marking our post-dated cheques “NSF.”
This talk takes a brief tour of some common abstractions and how they are starting to cause problems, mostly performance problems, and presents a few ideas on how to maintain the best part of both worlds including some early motivational work on virtualization-aware JVMs which shows the kind of value we can get by relaxing our abstractions a bit. In a very real sense, our systems will have to become smarter in order to continue delivering on the value propositions that users have come to expect.
Bio: Kevin Stoodley joined the IBM SWG Toronto Laboratory in 1988 where he started working on the first of many projects in the area of compiler optimization and code generation. In 1997, he was elected to the IBM Academy of Technology in recognition of his contributions to IBM’s technology portfolio, particularly in the area of optimizing compilers and high performance language implementations.. In 1999, he was made an IBM Distinguished Engineer and received a Corporate Award for the business impact of the technology that he had been a large part of creating. A few years earlier, Kevin had conceived and started work on a new dynamic compilation infrastructure known as Testarossa, which along with the J9 JVM project became the basis for all of IBM’s Java language implementations, which themselves are the underpinnings of a large part of IBM’s substantial portfolio of middleware products. Since that time, Testarossa has become a more generically reusable compilation component that can be found not only in IBM’s Java implementations from cell phones to servers, but also in IBM’s static compilers and binary translation systems. After an interesting 2 year stint as a third line manager, Kevin returned to a pure technical role as IBM’s Chief Technical Officer (CTO) for Compilers. Shortly thereafter in 2004 Kevin was appointed an IBM Fellow. IBM Fellow, an executive position, is IBM’s highest technical designation and Kevin is the first to be appointed to this title in the IBM Canada Laboratories as well as one of the youngest ever of the 180 who have been appointed since the Fellow program’s inception in 1963. In 2008, Kevin added IBM’s suite of Enterprise Modernization Tools to his CTO responsibilities.