composition.al

Notes on Halide and Distributed Halide

Halide is a newish domain-specific language for writing high-performance image processing pipelines, originally created by a group of researchers at MIT and Adobe and now used in lots of places. Although the original paper on Halide appeared at SIGGRAPH 2012, I like the PLDI 2013 paper better as an introduction to this line of work.

Halide is really two languages: one for expressing the algorithm you want to compute, and one for expressing how you want that computation to be scheduled. In fact, the key idea of Halide is this notion of separating algorithm from schedule.

The optimization that wasn’t

Between mid-2015 and mid-2017, I spent a lot of time on performance measurement for the ParallelAccelerator package for Julia. I curated a collection of workloads of interest and tried to automate the process of benchmarking them as much as I could. Many of the workloads had originally been written in Matlab or Octave, and the Julia versions had been ported from those.

Participating in ICFP remotely

This year’s International Conference on Functional Programming, or ICFP ‘17 to its friends, will be getting under way in Oxford, UK in just a couple of days. ICFP is one of my favorite conferences, and this year I’m serving as the publicity chair and as a member of the program committee, so I have even more reasons than usual to want to take part in it. I also have a new baby, so intercontinental travel is rather difficult for me at the moment, and I won’t be going to Oxford. Yet, I’ll still be able to watch ICFP talks in real time, ask questions in Q&A sessions, and banter with other ICFP attendees. All this will be possible because this year we made some changes to enable remote participation at the conference.