Computer Science and Software Engineering Capstone Presentations
Fall Quarter
December 18, 2020
Jonathan Acoltzi-Rojas "Benchmarking
Mass Java" (UWB CSS Faculty Research) Faculty Advisor: Dr. Munehiro
Fukuda |
Abstract For my capstone I had the opportunity to work on writing
benchmark programs for Multi-Agent Spatial Simulation (MASS) JAVA. MASS is a parallel-computing framework
that utilizes cluster computing and multithreading. MASS is built upon two main components, one being an array
distributed across the cluster computing nodes, the other are
individual active entities known as agents. The elements in the
array are known as a place, while the agents populate the places. Agents can migrate, and spawn new agents. All
computation is done on the place or the agents. Other libraries such as
Apache Spark are competitors against MASS. Like MASS Apache Spark is a
cluster computing framework. A Non-official version of Spark, called Spark IncRDD, has made incremental modifications possible
without recreating the already resilient distributed dataset, which in Spark
is immutable. I first started working on a graph creation
benchmark where a graph of 1000 vertices was created and then expanded by one-hundred vertices forty-five times. This
benchmark was tested upon MASS using their graphing component, GraphPlaces, Spark using its own graphing component, GraphX, and Spark IncRdd. For
this benchmark we measured MASS and competitors on how efficiently
modifications to a graph can be done. What was concluded was tha MASS can outperform both Spark's GraphX
and Spark IncRdd when there is
only dynamic graph modifications. MASS, however, suffered in performance when the data of the graph
was retrieved back to the master computing node. MASS GraphPlaces is also benchmarked
using a range search on a KD-tree. In this benchmark an agent started at the root and spawned or migrated to different children
nodes. The agents collected all the points which fit the range specified. This benchmark showed that MASS can
construct a KD-tree quicker than MapReduce and Spark in 10K data points while it slows down the creation performance
in 50K and 500K data points due to messaging overheads of Hazelcast that MASS internally uses. Another feature that was benchmarked is MASS Annotations.
MASS Annotations utilize java annotations to help the deveopers create a program that is event oriented. Events
like an agent arriving to a place and leaving a place could trigger a method to be called on either the place
object or the agent object. MASS Annotations were great for shortening code used to create programs such as
Shortest path finder. Annotations also worked well with MASS as most programs in MASS already were event oriented. |
|
Updated December 15, 2020