The concurrency model of the Erlang language is claimed to be ideally suited for the multicore era. In theory it allows concurrent programs to achieve good scalability as the number of cores increases. OK, but what happens in practice?
Since November 2011, we have embarked on a project that aims to improve the scalability of Erlang programs on machines with hundreds, thousands, and possibly even hundreds of thousands of cores. As a first step, we have created a benchmark suite, consisting of both synthetic benchmarks and actual Erlang applications with needs for massive concurrency, in order to measure the scalability of existing Erlang/OTP versions, identify possible bottlenecks in the language and the VM, and get inspiration for language extensions and VM improvements for future versions of Erlang/OTP. The talk will present the results of our investigation so far and offer some advice on dos and don'ts for achieving good scalability on the existing VM.