David Durst's Blog

I'm blogging in order to share what I've learned about making programs faster using application-specific techniques.

It's hard making computers go fast. You all knew that. Otherwise, we would've made everything fast already and nothing would ever be slow!

So what are we gonna do about it?

I've had the most success "making stuff go fast" when I take an application-specific direction. In this blog, I'm going to look at specific applications and explore techniques for improving performance metrics defined for each application. Those applications may be database software running on a CPU with metrics such as latency in ms or throughput in GOps/s, or image processing on an FPGA with energy efficiency in Ops-per-watt as the key metric.

So why am I reading your blog? You're just telling me about specific problems you've already solved.

I've learned some pretty cool things by making stuff faster. These nuggets of knowledge range from techniques for comparing different processor architectures, to different methods for distributing workloads, and even approaches for how to tweak mathematical representations of programming languages to produce more energy-efficient hardware. Hopefully, you can apply these lessons to your own problems. Or maybe, you can improve on my solutions to the problems I've already encountered. I'm always excited for people to improve on my work. (hint: email me durst@stanford.edu) Either way, I have a lifetime, 0% money back guarantee if you're not satisfied!