07.08.08

Concurrency ≠ Threads

Posted in Random Thoughts at 11:16 am by martin

Here’s a conversation I seem to be having over and over these days:

Someone else: Computers are getting more and more cores. So, we need to thread our software to take advantage of them.

Me: But threads (the Dijkstra style shared-state-with-locks-and-mutexes-and-semaphores-oh-my variety) are almost impossible to get right, and when they’re used in other than the simplest way, its easy to get random deadlocks that happen every few months/years.

Someone else: Computers are getting more and more cores, so we need threads.

Me: But there are other forms of concurrency. Processes that communicate using files, pipes, sockets, or even shared memory. Or software transactional memory (hell, people use databases for IPC now, so STM can only be better), or message passing.

Someone else: … ?

A few days later:

Someone else: Let’s talk about how to multi-thread our code.

Sorry people. As Sutter and Larus say:

“humans are quickly overwhelmed by concurrency and find it much more difficult to
reason about concurrent than sequential code. Even careful people miss possible interleavings among even simple collections of partially ordered operations.”

And as Edward A Lee says:

“[Threads] discard the most essential and appealing properties of sequential computation: understandability, predictability, and determinism.”

[Clever summary encouraging people to understand concurrency more closely.]

06.18.08

Should you pursue your PhD?

Posted in Random Thoughts at 9:46 pm by martin

“A PhD is a big, multi-year project. You really learn self-reliance, how to budget your time, and how to motivate yourself,” says Martin Martin, a senior software engineer with a PhD in robotics from Carnegie Mellon University.

From Should you pursue your PhD?, an article that includes a couple different paragraphs from yours truly.

07.14.07

Ian Simon Martin-Swader

Posted in Random Thoughts at 7:23 pm by martin

 

 

Ian Simon Martin-Swader

joined our family

July 12, 2007 at 1:17 pm

6 pounds 0 ounces

18 inches long

Mother doing well

Father low on sleep

- Martin, Joy, Amber, Miles and Ian

www.flickr.com

12.06.06

Netflix Prize: Number of ratings per customer

Posted in Random Thoughts at 7:54 pm by martin

Does anyone have a good distribution for characterizing the number of ratings per customer? Graphing the histogram log-log (where the vertical axis is density, not count) it’s clearly not the straight line implied by a power law:

Histogram of the number of ratings per customer

The red line is the gamma distribution fit by the method of moments. It’s way too high on the left, and way too low on the right. Can anyone think of anything better?

This thread on the Netflix Prize forums:

10.09.06

Game Design PowerPoint Now Online

Posted in Random Thoughts at 9:18 pm by martin

I’ve been giving a talk on game design which has been surprisingly well received. Several people have asked me for a copy of my PowerPoint presetation. The problem was, my PowerPoint file had lots of images, but little text. I think that’s the most engaging format - certainly TV shows don’t just display notes on the screen while someone talks. But the down side was that, for those who wanted to show the ideas to their friends, the PowerPoint just wasn’t sufficient.

So, I’ve created a new one, which is just my notes on top of the images. The images become kind of hard to see, but hey, if you want the full effect, you’ll have to come to my talk. :)

10.01.06

Giving Grey Thumb talk tomorrow

Posted in Random Thoughts at 12:24 pm by martin

I’m kicking off a Capture The Flag bot contest at Grey Thumb tomorrow. You can find more details at the breve Capture The Flag page. I’ll post my PowerPoint slides as soon as their done.

Update: The slides and simple example bots are now available here.

08.20.06

Two New Projects

Posted in Random Thoughts at 5:27 pm by martin

I’ve added two new projects to the Projects page. The first is something my son Miles likes, it plays sounds whenever a key is hit. The second is some notes on creating AI for Sodarace. At the moment, it’s just about how to interface a program to the Sodaracer.