Ah, right, that would be it. Here are the numbers for 100 concurrent processes with fork (the thread measurement above was done with 100 threads).
single process, empty loop 500,000/s 220,000/s
two processes, empty loop 340,000/s 185,000/s
single process, gettimeofday 235,000/s 85,000/s
two processes, gettimeofday 190,000/s 80,000/s
Still better than threads for the SMP system, not as good for the single-processor one. Which is as expected, so nothing to see here ;-).
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -- Brian W. Kernighan