phony (North et al., 2007). The rest of this paper
is organized as follows: Section 2 considers con-
ventional ABM systems’ agent migration over dis-
tributed datasets and clarifies their challenges; Sec-
tion 3 designs and implements automated agent mi-
gration in MASS; Section 4 demonstrates improve-
ments of migration performance and programmabil-
ity, using graph and geometric benchmark programs;
and Section 5 concludes our discussions.
2 RELATED WORK
When applying ABM concepts to analysis of dis-
tributed data structures, we need to consider execution
performance and programmability for parallelization.
The former has been supported by MPI-based ABM
simulators represented by FLAME (Holcombe et al.,
2006) and RepastHPC (Collier and North, 2013).
Since their utmost goal is ABM parallel performance,
their C/C++ coding frameworks do not best support
programmability nor data visualization. However,
most interests of data scientists are quick coding and
easy visualization, for which they prefer interpretive
or script languages, (e.g., Java and Python). From this
viewpoint, we assume what if these scientists would
use NetLogo (NetLogo Models, 1999) or Repast Sim-
phony (North et al., 2007) as interpretive ABM sys-
tems when conducting their data analysis. Based on
our assumption, we focus on their descriptive features
for having agents migrate over data structures and an-
alyze their attributes.
NetLogo (NetLogo Models, 1999) supports agent
migration in a 2D continuous space and provides
agents with pre-defined behaviors that can be utilized
by the model designers. It includes migration func-
tions such as FORWARD, BACKWARD, RIGHT,
LEFT, HATCH, DIE, JUMP and MOVE-TO. FOR-
WARD/BACKWARD enables agents to move for-
ward and backward from their current position in the
environment. RIGHT/LEFT enables agents to change
the direction of movement. DIE removes agents from
the environment. HATCH spawns new agents that in-
herit properties from their parent agent. MOVE-TO
moves agents to a given coordinate.
Repast Simphony (North et al., 2007) is another
ABM system that provides pre-defined agent migra-
tion and behavior. This includes moveByDisplace-
ment, moveByVector, moveTo, VNContains, and
MooreContains. MoveByDisplacement moves agents
from their current location by a specified distance.
MoveByVector moves agents by a given distance
along a specified angle. MoveTo moves agents from
their current location to a new location. VNContains
determines whether or not a particular agent is in the
von Neumann neighborhood of a particular source.
MooreContains determines whether or not a particu-
lar agent is in the Moore neighborhood of a particular
source.
MASS has three versions, each in Java, C++, and
CUDA. For data sciences, we use MASS Java. The
library distinguishes two classes: Places and Agents.
The former constructs a multi-dimensional array over
a cluster system, whereas the latter populates and
walks agents over the array. For graph computing,
users can instantiate GraphPlaces that incrementally
constructs a distributed graph where agents move
along its edges. The library supports basic agent-
navigation and life-cycle-management functions: mi-
grate() to move agents to a specified place index;
spawn() to create new agents as inheriting their parent
properties; and kill() to terminate the calling agents.
All Places and Agents computation is performed in
parallel through their callAll() from the main() func-
tion. In addition, Places facilitates inter-place com-
munication with exchangeAll(), whereas Agents com-
mits all agent creation, termination, and migration at
once with manageAll().
All these ABM libraries define basic agent migra-
tion methods. However, they do not provide functions
that automate agent propagation and migration over
a graph or a 2D space. Users have to build custom
agent migration functions that would use these basic
migrations, which requires their significant program-
ming capabilities to successfully perform data analy-
sis. Inability to automate agent navigational functions
gives a big burden to data scientists who hopes to con-
duct big-data computing with ABM. Knowledge of
these limitations motivated us to upgrade MASS Java
for supporting intelligent agent migration and propa-
gation out of the box.
3 ABSTRACTION OF AGENT
MIGRATION
This section first looks at several applications in graph
computing and computational geometry to find com-
mon patterns of agent migration. Thereafter, we will
explain their implementation and our infrastructural
supports for automated migration.
3.1 Application-Based Agent Migration
We consider the following five categories of appli-
cations: (1) breadth-first search (BFS); (2) trian-
gle counting and connected components; (3) range
ICAART 2023 - 15th International Conference on Agents and Artificial Intelligence
364