900,000 processes in Erlang

January 24, 2008

I started up an Erlang shell with a one million process limit. (erl +P 1000000)

I then fired up the multiple consumer / multiple producer problem I whipped up for my concurrency class, and asked for 400,000 consumers and 500,000 producers. It actually worked!

I tried it with about 100,000 processes first, and that was no problem, but I was skeptical that it would start nearly a million processes. But it appeared to work fine. My machine was getting really HOT and unhappy so I stopped it and haven't had time to prove correctness on that sample yet, but at a glance it looked like it was doing the right thing.

One of the nicest things about this was it was automatically using both cores in my MacBook Pro without having to write a single line of code to ask it to do that. Maybe that's not earth-shattering these days, but it's nice anyway. :-)

Geez, I'm still mesmerized by that Rick Nash goal from last week's post!

I want to try out my program on my graphics prof's 8-core Mac Pro and see how many processes I can start on it. Muuuuhahahaha!!!