Comparing actor and shared memory model: a performance evaluation
2024 (English)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesis
Abstract [en]
Parallel computing, originating with supercomputers in the 1950s, is essential for modern hardware utilization. This thesis examines the performance of two concurrency models: Java's shared memory model and Erlang's actor model, focusing on CPU-bound and I/O-bound workloads. The research question addressed is: How do the concurrency models of Java and Erlang, represented by the shared memory model and actor model respectively, perform in terms of Factor of Speed-up (FOS) and Scaling Efficiency (SE) across CPU-bound and I/O-bound workloads?
Using Factor of Speed-Up (FOS) and Scaling Efficiency (SE), the study provides a comparative analysis. Experiments were conducted on standardized hardware to ensure reliable results. The results of this study show that Java's model outperformed Erlang's in both workloads, while Erlang showed better robustness in handling I/O operations.
This study highlights the trade-offs between the models, guiding developers in choosing the right model based on the workload they are facing. Java’s shared memory model excels in CPU-bound tasks, demonstrating superior efficiency and scalability due to its effective multi-threading capabilities. Conversely, Erlang’s actor model, which uses message passing to avoid shared state, performs robustly in I/O-bound tasks, managing concurrency across thread-count and size of data consistently.
Future research should explore synchronization-intensive tasks, diverse hardware, additional metrics like resource utilization, and mixed workloads to provide a comprehensive understanding of concurrency models.
In conclusion, selecting the appropriate concurrency model is crucial for optimizing performance and scalability in modern computing environments. This study provides valuable insights for developers to make informed decisions when choosing a concurrency model based on FOS and SE.
Place, publisher, year, edition, pages
2024.
Keywords [en]
programming, parallel programming, Erlang, Java, shared memory, actor, performance
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:su:diva-242665OAI: oai:DiVA.org:su-242665DiVA, id: diva2:1955556
2025-04-302025-04-30