A Scalability Study of Erlang/OTP
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.
NOTE: If you are curious to find out how your application performs in terms of scalability, feel free to send it to the speaker by mid-March and he may include the results in his talk. The only prerequisite is that your application should be highly concurrent and more or less self-contained.
Talk objectives: Report on the scalability of Erlang/OTP.
Target audience:Performance conscious Erlang programmers. Anybody curious what scalability to expect from current and future Erlang/OTP versions.
Kostis Sagonas Leader of the HiPE team and Erlang tool developer
Uppsala University and National Technical University of Athens
Kostis Sagonas is an academic who has been heavily involved in the development of Erlang and its implementation since 1999. At Uppsala University, he has led the development team of the HiPE native code compiler that nowadays is part of Erlang/OTP. Together with his students, first at Uppsala University and more recently at the National Technical University of Athens, he has proposed various changes and additions to the language (most notably, bit-level pattern matching and bit-stream comprehensions, and the language of type and spec declarations), and has contributed to its compiler and runtime system. Besides HiPE, he has designed and implemented software development tools for Erlang (dialyzer, typer, tidier, proper, ...) and has contributed bug fixes to many open-source Erlang projects.