Skip to content

Instantly share code, notes, and snippets.

@neilconway
Last active January 4, 2016 14:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neilconway/8637145 to your computer and use it in GitHub Desktop.
Save neilconway/8637145 to your computer and use it in GitHub Desktop.
Title: Abstraction without regret in systems building: The case of databases
Speaker: Christoph Koch, EPFL
Date & Time: Wednesday 29 January 2014, 12:00pm
Location: 405 Soda Hall
Abstract:
It has been said that all problems in computer science can be solved by adding
another level of indirection, except for performance problems, which are solved
by removing levels of indirection. Compilers are our tools for removing levels
of indirection automatically. However, we do not trust them when it comes to
systems building. Most critical systems are built in low-level programming
languages such as C. Some of the downsides of this compared to using modern
high-level programming languages are very well known: utterly buggy systems,
poor programmer productivity, a talent bottleneck, and cruelty to programming
language researchers.
I want to add bad performance to this list, and propose the following heretical
thesis. Modern compiler technology can be competitive with and outperform human
experts at low-level systems programming. Performance-critical software systems
are a limited-enough domain for us to encode systems programming skills as
compiler optimizations. In a large system, a human expert´s occasional stroke
of creativity producing an original and very specific coding trick is outweighed
by a compiler´s superior stamina, selectively performing deforestation and
inlining at a level of consistency that is absent even in very mature systems
codebases. I will present a preliminary study of this thesis in the even more
limited domain of database systems, both of the OLAP and OLTP flavors. Along the
way, I will give my thoughts on the design of domain-specific languages (DSLs)
for systems and on optimizing compilers, and will show extensive experimental
evidence supporting my thesis, some preliminary, and some mature.
This is in part joint work with my students Thierry Coppey, Mohammad Dashti,
Vojin Jovanovic, Yannis Klonatos, Milos Nikolic, Andres Noetzli, and Amir
Shaikhha (EPFL DATA Lab), and my collaborators Yanif Ahmad (Johns Hopkins),
Oliver Kennedy (SUNY Buffalo), Martin Odersky (EPFL), and Tiark Rompf (EFPL
and Oracle Labs).
Biography:
Christoph Koch is a professor of computer science at EPFL, specializing in data
management. Until 2010, he was an associate professor of computer science at
Cornell University. Previously to this, he obtained his PhD in Artificial
Intelligence from TU Vienna and CERN (2001) and has held faculty positions at
TU Vienna and Saarland University. He has won best paper awards at PODS 2002,
ICALP 2005, and SIGMOD 2011, an Outrageous Ideas and Vision Paper Award at CIDR
2013, a Google Research Award (in 2009), and an ERC Grant (in 2011). He is a PI
of the Billion-Euro EU FET Flagship Human Brain Project and of NCCR MARVEL, a
new Swiss national research center for materials research. He (co-)chaired the
program committees of DBPL 2005, WebDB 2008, ICDE 2011, and VLDB 2013, and was
PC vice-chair of ICDE 2008 and ICDE 2009. He has served on the editorial board of
ACM Transactions on Internet Technology, as Editor-in-Chief of PVLDB, as well as
in numerous program committees.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment