Thursday, August 04, 2011

New Adventures in Computing

If you may recall, I am a big faker when it comes to giving talks in the field of computing. I end up volunteered to give a talk, and then I spend a lot of time prepping. A lot of time. I am almost always able to prep things well enough that my talks go really well. I figure things out to the point where I am even able to answer questions.

It is true: my mental model of computers does not include anything sophisticated like level 3 caches or how one's arrays are arranged in memory. In fact, I imagine the computer as filled with malicious little passive-aggressive elves that will follow the directions that you give to them (up to a point). In my model, the computer that I work with has a modest number of reasonably friendly elves that are a bit moody and unpredictable. The other computer here is like an elf metropolis -- an elf Gotham City. The elves are very anti-social and hate to talk to each other. You can't get anything done if you need your elves to work together. My model of computing is firmly elf-based.

I've been in the midst of giving five talks in five weeks. I talked about data analysis to grad students, a programming model to whoever wanted to show up to a half-day tutorial at a conference, using a certain framework with high performance computing to a group in Cambridge, MA, an overview of what we do in my office to a group of senior citizens, and next week I am giving a half-day tutorial on a few pieces of software. No two talks the same! So I have been very busy fighting with elves. (OK, so I did have to venture into the world of caches, as the elves will fight if you have them trying to access shared variables that are stored in the same cache-line. And fighting elves are not doing work for you, so your program runs more slowly.)

So this brings me to the crazy part of this week. For those who are not up on trends in computing, you should read "CUDA" as "a fairly complicated and difficult way to write computer programs." And it is completely incompatible with the "elf" model of computing.
Tuesday:
Someone from the workshop tells me and the other instructors that we will help out at the CUDA workshop on Wednesday, August 10. Have I mentioned that all I know about CUDA is that it is not an elf-based model of computing and that most people find it unpleasant? And that it has something to do with XBox.

Wednesday:
Crickets.

Thursday:
Today we got some sort of archive full of mysterious files that are apparently in CUDA. I don't know how to unarchive files on Unix, so I downloaded them to my Mac, double-clicked on them to unarchive them, and then was going to sftp them to where they needed to be. But then I realized that I have no idea where I should be running these files. We have been asked to look over them and say whether they do anything "unexpected." As I have expected them to completely befuddle me, we seem to be right on track. Does CUDA even run on my laptop? NO IDEA.

Friday:
We will have a 3pm conference call to straighten everything out. I'm sure that I can get up to speed on CUDA over the phone. Did anyone ask if I was even planning on being at work at 3pm on Friday afternoon before leaving on travel? Oh wait, that is 3pm central time. Some of us leave work at 4pm on the east coast.

Saturday:
Do you think that I'm spending Saturday figuring out CUDA when I have been on travel more than I have been home lately? Ha!

Sunday:
Travelling all day, due to horrible connection times from plane to plane, from plane to shuttle, and an infinity long shuttle ride because this workshop is in the middle of fucking nowhere.

Monday:
Workshop begins!

Tuesday:
More workshopping.

Wednesday:
CUDA!


This should be great.