Characterizing the Scalability of Erlang VM on Many-core Processors
📜 Abstract
As CPU chips integrate more processor cores, computer systems are evolving from multi-core to many-core. How to utilize them fully and efficiently is a great challenge. With message passing and native support of concurrent programming, Erlang is a convenient way of developing applications on these systems. The scalability of applications is dependent on the performance of the underlying Erlang runtime system or virtual machine (VM). This thesis presents a study on the scalability of the Erlang VM on a many-core processor with 64 cores, TILEPro64. The purpose is to study the implementation of parallel Erlang VM, investigate its performance, identify bottlenecks and provide optimization suggestions. To achieve this goal, the VM is tested with some benchmark programs. Then discovered problems are examined more closely with methods such as profiling and tracing. The results show that the current version of Erlang VM achieves good scalability on the processor with most benchmarks used. The maximum speedup is from about 40 to 50 on 60 cores. Synchronization overhead caused by contention is a major bottleneck of the system. The scalability can be improved by reducing lock contention. Another major problem is that the parallel version of the virtual machine using one core is much slower than the sequential version with a benchmark program containing a huge amount of message passing. Further analysis indicates that synchronization latency induced by uncontended locks is one of the main reasons. Low overhead locks, lock-free structures or algorithms are recommended for improving the performance of the Erlang VM. Our evaluation result suggests Erlang is ready to be used to develop applications on many-core systems.
✨ Summary
- The thesis provides an early systematic evaluation of the Erlang virtual machine on a 64-core TILEPro64 processor. Across the selected benchmarks, it reports speedups of approximately 40–50× on 60 cores, while identifying synchronization overhead, lock contention, and uncontended-lock latency as important limitations. (kth.diva-portal.org)
- Subsequent research cited the thesis as background for work on actor-runtime performance and many-core execution. A later actor-runtime study used it in discussing Erlang-related runtime bottlenecks and NUMA-aware optimizations. (researchgate.net)
- Later Erlang scalability research extended the same problem area from single-host VM behavior to large multicore, NUMA, and distributed systems. That work reports improvements to Erlang/OTP involving shared data structures, time management, scheduler load balancing, and other VM mechanisms. The relationship is best characterized as continuity of research topic rather than evidence that the thesis directly caused those changes. (arxiv.org)
- The thesis is also used as technical background in educational material on BEAM scheduling and is listed by the Erlang Ecosystem Foundation among academic papers relevant to the BEAM community. (cs.tufts.edu)
- No specific commercial product or industrial deployment was found that explicitly attributes an implementation decision to this thesis.