tasks can take advantage of the latest updates, without
itself having to change. Thus, the operating system
handles internal load balancing. External load
balancing among networked nodes is an ongoing field
of study in cloud computing, with experimental load
balancers available (Hamdani et al., 2020). I
anticipate providing an agent which will handle this
in the medium-term future.
The reduced size of the ABM platform core
results in low overhead. Again, since agents are
simply programs, a program which runs in a GPU can
easily be an agent in the ecosystem like any other.
Since individual agents are self-contained, they can
be easily migrated to other systems. The directory
server and the communications library understand
how to communicate to agents which are located on
the same system, on a GPU, or on other network
nodes. The library uses shared memory on a single
system and either IPV6 or IPV4 to communicate to
other systems.
Geometry is just an agent. The user can use a
predefined agent (e.g. checkerboard), or can provide
their own agent to provide the geometry. This permits
use of agents which can efficiently handle the sparse
space of a social network. Similarly, time is just an
agent. The user can use a predefined agent (e.g. event
tick) or provide their own to create a more complex
idea of time, possibly including a real-time clock. The
ability of agents to migrate to other systems makes
dynamic reallocation of computing resources simple.
All of these being individual programs, starting or not
starting any individual agent is trivial.
Again, the fact that every agent is a self-contained
program guarantees the maximum amount of
modularity. Users can easily pick and choose which
agents to include in an ecosystem.
All the ease of use functions are provided by
predefined agents. The user is free to modify those or
provide their own to allow for more customizability.
Since each agent is its own program, the user is not
limited to the language of the framework for
programming their own agents. The stub libraries
provided allow the user to use whatever programming
language they choose to implement their own agents.
5 CURRENT STATUS OF THE
WORK
I have created the basic framework to allow agent
communication, creation, and removal. I also have a
basic checkerboard geometry agent and event tick
timer agent. I anticipate that in the near future I will
be able to reproduce Schelling's (Schelling, 1971) and
March's (March, 1991) models to verify correct
operation, with statistics showing scalability across
CPUs and additional systems.
6 FURTHER WORK
Currently very little of the standard ease of use set of
agents is complete. Additionally, "ease of use" is
currently based upon my conceptions, informed by a
few colleagues. I intend to formally research what the
simulation community considers a full set of
requirements. Much of this will be ongoing; in the
spirit of agile development, it is better to get
something working, and then fine tune it as users
interact with it and understand better their needs, than
to lock in a feature set at the very beginning.
I have not implemented use of GPUs at this point;
Library bindings are currently only in C, so agents
can only be written in C right now. Stub libraries will
need to be provided for other languages, to include at
least: Java, C++, R, and Python.
REFERENCES
Abar, S., Theodoropoulos, G. K., Lemarinier, P., & O’Hare,
G. M. P. (2017). Agent Based Modelling and Simula-
tion tools: A review of the state-of-art software. Com-
puter Science Review, 24, 13–33. https://doi.
org/10.1016/j.cosrev.2017.03.001
Bosse, S. (2021). Parallel and Distributed Agent-based
Simulation of Large-scale Socio-technical Systems
with Loosely Coupled Virtual Machines. 344–351.
https://www.scitepress.org/PublicationsDetail.aspx?ID
=trckToYQetc=&t=1
Chen, J., Soomro, P. N., Abduljabbar, M., Manivannan, M.,
& Pericas, M. (2020). Scheduling Task-parallel Appli-
cations in Dynamically Asymmetric Environments.
49th International Conference on Parallel Processing -
ICPP : Workshops, 1–10. https://doi.org/10.1145/34
09390.3409408
Cheng, L., Rao, J., & Lau, F. C. M. (2016). vScale: Auto-
matic and efficient processor scaling for SMP virtual
machines. Proceedings of the Eleventh European Con-
ference on Computer Systems, 1–14. https://doi.
org/10.1145/2901318.2901321
Collier, N., & North, M. (2013). Parallel Agent-Based Sim-
ulation with Repast for High Performance Computing.
SIMULATION, 89(10), 1215–1235. https://doi.org/
10.117 7/0037549712462620
Conte, R., & Paolucci, M. (2014). On Agent-Based Model-
ing and Computational Social Science. Frontiers in Psy-
chology, 5. https://doi.org/10.3389/fpsyg.2014.00668