It's good to see the programming community more interested in concurrency, but it seems that few have given serious consideration to what scalable hardware and software concurrency involves.
Current multi-core architectures are MISD (Multiple Instruction, Single Data) and won't scale as the core count goes up as too many cores will be competing to access the same memory. This is sometimes called the Von Neumann bottleneck.
Erlang is often touted as being well suited to multi-core shared memory systems, but it wasn't designed for that - it's actually much more forward thinking. It was designed to run across machines (an effective MIMD architecture). Erlang support for multiple OS threads in a process was added much later and I suspect will be removed again as it becomes irrelevant.
If you're looking for languages or concurrency tools that will scale to the high core count desktop machines of the near future,