Using Actors to Implement Sequential Simulations
Abstract
This thesis investigates using an approach based on the Actors paradigm for implementing a discrete
event simulation system and comparing the results with more traditional approaches. The goal of this work
is to determine if using Actors for sequential programming is viable. If Actors are viable for this type of
programming, then it follows that they would be usable for general programming. One potential advantage
of using Actors instead of traditional paradigms for general programming would be the elimination of a
distinction between designing for a sequential environment and a concurrent/distributed one. Using Actors
for general programming may also allow for a single implementation that can be deployed on both single core
and multiple core systems.
Most of the existing discussions about the Actors model focus on its strengths in distributed environments
and its ability to scale with the amount of available computing resources. The chosen system for implementation
is intentionally sequential to allow for examination of the behaviour of existing Actors implementations
where managing concurrency complexity is not the primary task. Multiple implementations of the simulation
system were built using different languages (C++, Erlang, and Java) and different paradigms, including
traditional ones and Actors. These different implementations were compared quantitatively, based on their
execution time, memory usage, and code complexity.
The analysis of these comparisons indicates that for certain existing development environments, Erlang/OTP,
following the Actors paradigm, produces a comparable or better implementation than traditional
paradigms. Further research is suggested to solidify the validity of the results presented in this research and
to extend their applicability.
event simulation system and comparing the results with more traditional approaches. The goal of this work
is to determine if using Actors for sequential programming is viable. If Actors are viable for this type of
programming, then it follows that they would be usable for general programming. One potential advantage
of using Actors instead of traditional paradigms for general programming would be the elimination of a
distinction between designing for a sequential environment and a concurrent/distributed one. Using Actors
for general programming may also allow for a single implementation that can be deployed on both single core
and multiple core systems.
Most of the existing discussions about the Actors model focus on its strengths in distributed environments
and its ability to scale with the amount of available computing resources. The chosen system for implementation
is intentionally sequential to allow for examination of the behaviour of existing Actors implementations
where managing concurrency complexity is not the primary task. Multiple implementations of the simulation
system were built using different languages (C++, Erlang, and Java) and different paradigms, including
traditional ones and Actors. These different implementations were compared quantitatively, based on their
execution time, memory usage, and code complexity.
The analysis of these comparisons indicates that for certain existing development environments, Erlang/OTP,
following the Actors paradigm, produces a comparable or better implementation than traditional
paradigms. Further research is suggested to solidify the validity of the results presented in this research and
to extend their applicability.