back to CSS Capstone schedule

UWB Logo

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