(Update: I got the PLMW travel award; hooray! I also changed my talk slightly from the version appearing below, because, as they say, certain things have come to light. Stay tuned.)
I just applied for a scholarship to attend PLMW 2013 in Rome next January, which, if I'm accepted, will cover airfare, hotel, and registration fees for both PLMW itself and POPL for the rest of that week. It's an amazing deal for those of us in the US -- round-trip airfare alone would cost over $1000 for me -- and I hope all the students I know in the PL community here will apply!
As part of the PLMW festivities this time, they're running a one-minute madness event:
One minute madness is a fun event where you get to present your research in 1 minute. You can have 1 slide to help you. After one minute you must leave the floor (escorted if necessary) and the next presenter begins.
The idea of presenting one's research in one minute is, well, madness. But I came up with the following talk, which clocks in at fifty-eight seconds:
Hi, my name is Lindsey Kuper, and I'm a Ph.D. student at Indiana University, where I'm working with Ryan Newton on new models for deterministic parallel programming. We're excited about deterministic parallel models because they offer programmers the promise of freedom from subtle, hard-to-reproduce nondeterministic bugs that are the scourge of traditional parallel programming. We've observed that in existing deterministic parallel systems, from venerable ones like Kahn process networks to modern ones like Intel's Concurrent Collections framework, the determinism of the system is based on some notion of monotonicity. By taking monotonicity as our starting point, then, we can generalize existing models. In particular, we generalize existing single-assignment models to allow multiple assignments that are monotonically increasing with respect to a user-specified partial order. We maintain determinism by allowing only monotonic writes and "threshold" reads to and from shared data. If you're interested in learning more, you can find our draft paper and tech report by doing a web search for "lattice-based deterministic parallelism". Thanks!
What do I mean by "traditional parallel programming"? That's a good question, but what I think I mean is that
traditional languages only offered programmers one set of abstractions
for doing either parallelism (that is, making sequential programs go
faster by spreading some parts of the work across multiple available
processors) or concurrency (that is, a program-structuring technique that
allows multiple threads of control, for times when you have multiple
distinct tasks to accomplish), and that single set of abstractions
(threads and locks, or
synchronized) was better suited for
concurrency than it was for parallelism. If you wanted to do
parallelism, you were forced to use a fairly unsuitable abstraction
that allowed nondeterminism in places you didn't want it. So a
deterministic parallel model, then, is really just one that recognizes
that parallelism calls for a different set of abstractions than
I don't find there to be a shortage of deterministic parallel models in the research community -- quite the opposite. Our research isn't just about Yet Another deterministic parallel model; it's about sussing out the essence of deterministic parallelism. Having said that, our monotonic-writes-and-threshold-reads model is a twist that might be especially well suited for certain kinds of problems. We'll see!