Abstract -- In 1994, I started building interactive systems and while more of the programming is now done by my students than me, I can not resist the thrill of designing and building something that solves real problem or explores new ways of interacting with data. Even after building over a dozen major systems, I continue to struggle with what I find to be an impedance mismatch with systems building and the world of academia. I have managed to have some level of success, but in many ways, it was through a matter of luck and timing.
Thursday, January 29, 2015 - 4:00pm to 5:00pmBenjamin BedersonUniversity of Maryland, College Park
Tuesday, February 3, 2015 - 4:00pm to 5:00pmSmita Krishnaswamy, PhDColumbia University
This is a computational biology seminar. The speaker is a Postdoctoral Research Scientist at Columbia University.
Thursday, February 5, 2015 - 4:00pm to 5:00pmDavid WashingtonMicrosoft
Building a high-quality operating system is hard, and it’s even harder when you have a sixth of the planet using your product in thousands of different ways. In this session, David Washington, Director of Developer Experience at Microsoft, will walk though his experience as an engineer designing and building Windows 7 and Windows 8. He’ll show you what goes on behind the scenes on a large-scale engineering project and you’ll see unreleased prototypes and architecture explorations for how a feature comes about.
Tuesday, February 17, 2015 - 4:00pm to 5:00pmZachary KincaidUniversity of Toronto
Speaker's abstract: Writing reliable multi-threaded software is hard. My research aims to make it easier by developing program analysis algorithms that automatically verify that multi-threaded programs are free of certain types of errors (e.g., dividing by zero, overflowing buffers, or de-referencing null pointers). The challenge posed by multi-threading to program analysis is that parallelism creates an explosion in the number of behaviors that must be examined by a program analyzer in order to prove the absence of faults.
Friday, February 27, 2015 - 1:00pm to 2:00pmDick SitesGoogle Inc.
Computers used as datacenter servers have usage patterns that differ substantially from those of desktop or laptop computers. We discuss four key differences in usage and their first-order implications for designing computers that are particularly well-suited as servers: data movement, thousands of transactions per second, program isolation, and measurement underpinnings. Maintaining high-bandwidth data movement requires coordinated design decisions throughout the memory system, instruction-issue system, and even instruction set.