SMP Paper

Greg Perry <>
Tue Jun 2 19:01:58 CEST 2009

I found this reference on the SMP/multicore question, "Inside the Erlang
VM with Focus on SMP", Kenneth Lundin, Ericsson AB:


Performance and scalability

The SMP VM with only one scheduler is slightly slower (10%) than the non
This is because the SMP VM need to use locks for all shared
datastructures. But as 
long as there are no lock-conflicts the overhead caused by locking is
not that high (it 
is the lock conflicts that takes time).

This explains why it in some cases can be more efficient to run several
with one scheduler each instead on one SMP VM with several schedulers.
Of course 
the running of several VM's require that the application can run in many
parallel tasks 
which has no or very little communication with each other.

If a program scale well with the SMP VM over many cores depends very
much on the 
characteristics of the program, some programs scale linearly up to 8 and
even 16 
cores while other programs barely scale at all even on 2 cores.


>From this paragraph what would be an example of a shared datastructure?
And can anyone comment on what consitutes an application or process that
uses tail recursion properly?

More information about the erlang-questions mailing list