Parallel merge sort in Erlang
yarivsblog.com
yarivsblog.com
How well does Erlang scale to small, medium, large, and obscene numbers of processor cores?
If you've got a task that seems overly complicated, maybe you're trying to do two things at once; simplify it by splitting it into two processes. (Of course then you have to manage the interaction of the two processes, but each is simpler than your original process, so often this is a net win.)
If your processes are truly doing things in parallel, not just spending their lives waiting for each other, then you will get speedups with more processes - minus some overhead for process spawning communications, but this depends on how parallelisable your problem is. Close-to-linear speedups are not unheard of, especially if you have lots of mostly-independent problems to process.