Tuesday, June 7, 2011

Conference Time: HotPar-3

A little over a week ago, I was at Berkeley for the 3rd annual Workshop on Hot Topics in Parallelism.  The exciting thing was that researchers from a variety of areas were there, unlike my impression of conferences where everyone is in the same area.  Computational scientists, computer architects, programming language and compiler folk, and more were present to discuss their work on parallelism.

There are a couple of works that I would like to highlight (none of which are my own), from the complete list available at HotPar11.  First, "Parallel Programming with Inductive Synthesis" had some of the coolest and most unexpected ideas that I heard.  Their work provides a programmer with the ability to sketch a solution.  A simple example is factoring.  Given an initial function: f(x) = x^2 - 2 * x - 3.  And the programmer then requests the system provide an equivalent function in the form of g(x) = (x - ??) * (x - ??).  (?? is the notation for the system to synthesize the value).

Factoring is a known problem, so the system just factors, right?  Wrong!  Rather (based on my memory of the presentation), the system converts the two functions into circuits, then sets them equal to each other and finds a satisfying assignment to all variables.  Therefore, the system can create the synthesized functions in the general case.

The second interesting work explored data races.  In "How to Miscompile Programs with "Benign" Data Races", the attendees saw how even benign data races could cause errors given certain compiler optimizations.  Unfortunately, the examples are more involved and therefore I refer you to the paper.

The final interesting result that I wish to highlight is that given current technology trends, matrix multiply will be memory bound in 10 years.  In "Balance Principles for Algorithm-Architecture Co-Design", the authors derive simplified formulas for specific functions that can show how their performance relates to current / future technology.  The intent is to enable architects, etc to understand where to best focus the design "dollar", in order to achieve the best performance for that dollar.

I've selected these works primarily on the basis of the results staying with me.  I found many others professionally interesting, but the three papers here are the ones that made me sit up, scratch my beard, and go "hmm".

No comments: