Tuesday, October 27, 2009

OOPSLA 2009, Day 3: Tuesday

Tuesday is when the research track began. The morning started off with a keynote from Barbara Liskov, this year's winner of the ACM Turing Award. I think it was quite an interesting talk, since I don't often hear historical perspective on the earlier days of computing. She gave the same speech as the one when she accepted the award; essentially how she came up with the ideas that she did that led to her impact on our field, and subsequently a Turing award. I skimped on the morning research papers, since it didn't look entirely interesting to me, in favor of getting more work done.

Tuesday's volunteer duties consisted of working at an info booth for 2 hours. I think in most cases, the info booth is just for people who don't feel like pulling out their programs to find where things are, or can't look behind them to find registration/the bathroom. The last half hour overlapped with the Onward! keynote speaker, so I skipped it as well, after seeing slides that didn't look too exciting and people leaving early. Turns out, it was probably a good choice.

The afternoon research track was on concurrency. I highlight two of the papers:

Grace, a safe, multi-threaded programming system for C/C++ was an excellent presentation, with a good chunk of humor that all people knowledgeable of concurrency know about. The idea was something like spawning processes to perform "fork-join" parallel computations, using mmap to share computations. Interestingly, they actually get initially better performance from spawning processes instead of threads. The Linux scheduler doesn't migrate threads to separate cores on a processor for some amount of time, while processes are migrated instantly, taking advantage of available cores much more quickly. The reason for this is related to caching/processor state, from what I understand. Since threads are part of a larger process, this typically means that they share data with other parts of the program. Processes, on the other hand, are typically isolated from each other, which means that immediately dumping it to another core doesn't affect cache performance.

The other highlighted presentation was on Thorn. Thorn is a collaboration, mainly between Purdue and IBM, to design a robust, concurrent scripting language. Unfortunately, the presentation was more about robustness than concurrency, even though it was in the concurrency track, but it was nice to see slides on the language, rather than guessing through the "documentation" that I saw in Thorn as an undergrad.

I think today's lesson is that computing history, unlike national history, is actually interesting. Hearing Barbara's perspective on things was very cool, since I think it's the first person who I've actually seen present their view on computing history, while actually having lived in and participated in that era. Most historical perspectives I hear seem to be peers that just know a lot more about history than I do.

No comments: