Erlang is a concurrent functional programming language that is claimed to be well suited for parallel programming.Some experts however think otherwise. The author makes a good case for Erlang not being any different to other functional languages without side-effects, capable of exploiting coarse-grained parallelism.
I guess it is generally accepted that Erlang offers only good coarse-grained parallelism, but fails to address programming fine-grained parallel systems where all the programming control is left in the hands of the programmer.
TrapExit is an Erlang community site that provides some more information and tools.
I have started studying Erlang recently, and I like some of the programming constructs it offers. Writing quicksort in 3 lines of code is pretty amazing. I wonder how much optimisation can be done on the virtual machine level to exploit fine-grained parallelism on a multi-core hardware.