For more than the last two decades, multi-agent simulations have been highlighted to model mega-scale social or biological agents and to simulate their emergent collective behavior that may be difficult only with mathematical and macroscopic approaches. A successful key for simulating megascale agents is to speed up the execution with parallelization. Although many parallelization attempts have been made to multiagent simulations, most work has been done on shared-memory programming environments such as OpenMP, CUDA, and Global Array, or still has left several programming problems specific to distributed-memory systems, such as machine unawareness, ghost space management, and cross-processor agent management (including migration, propagation, and termination). To address these parallelization challenges, we have been developing MASS, a new parallel-computing library for multi-agent and spatial simulation over a cluster of computing nodes. MASS composes a user application of distributed arrays and multi-agents, each representing an individual simulation place or an active entity. All computation is enclosed in each array element or agent; all communication is scheduled as periodic data exchanges among those entities, using machine-independent identifiers; and agents migrate to a remote array element for rendezvousing with each other. Our unique agent-based approach takes advantage of these merits for parallelizing big data analysis using climate change and biological network motif searches as well as individual-based simulation such as neural network simulation and influenza epidemic simulation as practical application examples.
Note that student photos and reports are
disclosed upon receiving their consents and
removed upon their requests.
Our
students and graduates are listed below in
three groups: (1) MASS Java: agent-based data
discovery, (2) MASS Java/C++: agent-based
microsimulation, (3) MASS CUDA: GPU platform
for agent-based models.
While Java cannot outperform native execution and is thus not the best option for parallel computing, MASS Java facilitates a large global memory space distributed over a cluster system, which benefits attribute discovery of big structured data.
Period | Student Name | Specific Work | Report |
---|---|---|---|
01/13 - 06/14 | Cherie Wasous |
CSS700: Distributed mega-scale agent management in MASS | MS Thesis (Spring 2014) |
06/13 - 12/13 | Brett Yasutake |
CSS595/596: Pacific Northwest climate analysis: a parallelized, provenance-aware, and extensible framework for climate analysis and beyond | eKnow 2015 |
01/14 - present | Matthew Sell |
MASS test programs and testing environment development | Dev.
Environment (Autumn 16)
Spring 20 PAAMS 2020 IEEE Computer 53(3) |
06/14 - 03/15 | Jason Woodring |
CSS595/596: Designing and implementing UW climate analysis (UWCA): an agent-based web application |
MS White Paper (Winter 15) ICDCS 2015 |
09/14 - 12/14 | Matthew Kipps |
CSS497: Biological network motif search with MASS | Colloquium Presentation (Autumn
14) Final Report (Autumn 14) HPCC 2015 |
06/15 - 06/16 | Michael O'Keefe |
CSS499: An implementation of parallel file read/write features in MASS Java and an improvement of UW Climate Analysis. | Term Report (Winter 16) |
01/16 - 12/17 | Andrew Andersen |
CSS499: Parallelization of UrbanSim and nemoprofile network motif analysis with MASS Java | BdCloud 2016 |
01/16 - 03/17 | Utku Mert |
CSS600/595: Re-engineering MASS Java's asynchronous migration | MS White Paper (Winter 17) IEEE Computer 53(3) |
04/16 - 03/18 | Jas Shih |
CSS595: MASS HDFS: Multi-Agent Spatial Simulation Hadoop Distributed File System | MS White Paper (Winter 18) WSC 2018 |
04/16 - 06/18 | Collin Gordon |
CSS600/595: Program three machine learning algorithms using the MASS library, assess their programmability, and devise new features to add to MASS to improve programmability and assess performance of the machine learning algorithms | MS White Paper (Spring
18)
PAAMS 2018
PAAMS 2019 IEEE Computer 53(3) |
07/19 - 06/20 | Saranya Gokulramkumar |
CSS600/700: Agent-based computational geometry | Thesis (Spring 20) |
09/19 - 06/20 | Saranya Duraisamy |
CSS600/595: Agent-based biological network analysis - centrality and clustering analysis | White Paper (Spring 20) |
09/19 - 06/20 | Justin Gilroy |
CSS600/595: Agent-navigable graph structure design and interface to Cytoscape interactive graph tool | White Paper
(Spring 20) Presentation (Winter 20) BigGraphs 2020 |
04/20 - 06/21 | Daniel Blashaw |
CSS600/595: Agent-tracking and automatic population tools |
White Paper
(Spring 21) ICAART 2022 |
04/20 - 03/21 | Yuna Guo |
CSS600/595: An implementation of agent-navigable contiguous 2D/3D spaces and trees |
Term Report
(Spring 20) Term Report (Summer 20) Term Report (Fall 20) White Paper (Winter 21) |
06/20 - 06/21 | Alex Li |
CSS600/595: Agent-based multi-media meta database search |
White Paper
(Spring 21) IEEE-IRI23 |
06/20 - 12/20 | Jonathan Acoltzi |
CSS497: Benchmark test of MASS Java's agent descriptivity and graph creation |
Final Report
(Fall 20) Big Graphs 2020 |
09/20 - 03/21 | Max Wenger |
CSS497: Benchmarking MASS Java, Repast Simphony, and IBM Aglets |
Final Report (Winter 21) PAAMS 2021 |
04/21 - 12/23 | Brian Luger |
CSS600: GraphPlaces refactoring and distributed data structures |
Term Report (Spring 21) Term Report (Summer 21) Term Report (Autumn 21) |
04/21 - 06/22 | Vishnu Mohan |
CSS595: Automated agent migration over structured data |
White Paper (Spring 22) ICAART 2023 |
09/21 - 06/22 | Yan Hong |
CSS595: Graph streaming in MASS Java |
White Paper (Spring 22) BigGraphs 2022 |
09/21 - 06/22 | Maré Sieling |
CSS595: Agent-basd database with GIS |
White Paper (Spring 22) |
09/21 - 12/22 | Caroline Tsui |
CSS595: Agentbased graph programming in MASS Java and comparison with graphic libraries |
White Paper (Autumn 22) |
09/21 - 3/23 | Richard Ng |
CSS595: Evaluation of Euclidean shortest path, Voronoi digram and line segement intersection using MASS, Spark, and MapReduce |
White Paper (Winter 23) |
09/22 - 3/23 | Josh Helzerman |
CSS497: Parallelization of convex hull and point location using MASS, MapReduce, and Spark. |
Term Report (Winter 23) |
09/22 - 6/23 | Anirudh Potturi |
CSS595: MASS Java Benchmarking |
White Paper (Spring 23) ICAART 2023 |
09/22 - 6/23 | Yifei Yang |
CSS595: Agent Visualization and Web GUI Development in MASS Java |
White Paper (Spring 23) |
09/22 - 6/23 | Harshit Rajvaidya |
CSS595: An Agent-basd Graph Database |
White Paper (Spring 23) |
09/22 - 6/23 | Sahana Pandurangi |
CSS595: Agent-based GIS Queries |
White Paper (Spring 23) |
09/22 - 6/23 | Srilekha Bandaru |
CSS595: Parallelization of bioinspired computing algorithms using MASS Java | White Paper (Spring 23) |
09/23 - 6/24 | Lilian Cao |
CSS595: An incremental enhancement of agent-based graph database | White Paper (Srping 24) |
09/23 - 6/24 | Michelle Dea |
CSS595: Development of an agent-based database benchmarking dataset | White Paper (Spring 24) |
09/23 - 6/24 | Shahruz Mannan |
CSS595: Anaylsis and improvement of current MASS-based GIS | White Paper (Spring 24) |
09/23 - 6/24 | Chris Ma |
CSS595: An implementation of multi-user distributed shared graph | White Paper (Spring 24) |
09/23 - 6/24 | Jeff McCrea |
CSS595: Enhancement of agent performance with machine learning |
White Paper (Spring 24) |
09/23 - 12/24 | Luo Len |
CSS595: An incremental enhancement of MASS GUI |
Term Paper (Autumn 23) Term Paper (Winter 24) |
Some agent-based microsimulations such as MATSim (multi-agent transport simulation) have been publicly available in Java. Other ABMs are parallelized with RepastHPC and FLAME, both in C++. MASS Java and C++ intends to demonstrate its practicability of parallelizing ABM microsimulation
Period | Student Name | Specific Work | Report |
---|---|---|---|
06/10 - 09/10 03/11-08/11 Java |
John Spiger |
CSS497/499: Has implemented the major methods of the MASS library in the multi-threaded version and made an initial port of MASSim. | Final Report (Summer 11) |
06/10 - 08/12 Java |
Timothy Chuang |
CSS600: implementing the multi-process and multi-threaded unified version of
the MASS library. CSS700: Design and Qualitative/Quantitative Analysis of Multi-Agent Spatial Simulation Libary |
MS Thesis (Summer 12) ICE 2013 |
06/11 - 08/13 Java |
Bhargav Mistry |
CSS600/700: Application-level dynamic load balancing | MS Thesis (Summer 13) PacRim 2015 |
06/11 - 12/11 Java |
Sean Wessels |
CSS497: MASS preprocessor | Final Report (Autumn 11) PDPTA 2012 |
04/13 - 08/13 Java |
Richard Romanus |
CSS497: Developing and extending the MASS-Java library -Places.exchangeBoundary() | Report (Summer 13) Test Results (Summer 13) Colloquium Presentation (Summer 13) Diagram (Summer 13) Appendix (Summer 13) |
01/14 - 06/14 C++ |
Chris Rouse |
CSS497: A C++ implementation of the MASS library | Final Report (Spring 14) Coloquium Presentation (Spring 14) |
06/14 - 03/15 Java |
Zach Ma |
CSS595/596: Multi-Agent Transportation Simulation Using MASS |
White Paper (Winter 15) WSC 2015 |
09/14 - 06/15 C++ |
Zac Brownell |
CSS700: Programmability and user adoption/retention in Multi-Agent Spatial Simulation (MASS) library | MS Thesis (Spring 15) |
06/15 - 12/15 C++ |
Nicolas Michael |
CSS499: Enhancement and testing of MASS Java and MASS C++ debuggers toward their public release | MASS Debugger (Java) MASS Debugger (C++) |
06/15 - 06/16 C++ |
Kasey Cohen |
CSS499: Testing and documentation of MASS C++ toward its public release CSS499: Collision-free agent migration in MASS C++ |
MASS C++ Developer
Guide MASS C++ Manual JAWS 2017 |
01/16 - 02/17 C++ |
Chris Bowzer |
CSS499: Tool development, testing, and documentation for running MASS C++ on AWS toward its public release | Term Report (Winter 16) Term Report (Spring 16) MASS Collision-Free Data (Autumn 16) JAWS 2017 |
04/16 - 06/18 C++ |
Craig Shih |
CSS595: Benchmarking, Evaluating, and Improving ABM Programming Features in Social, Behavioral, and Economic Sciences | MS White Paper (Spring
18) PAAMS 2018 |
10/18 - 06/21 C++ |
Sarah Panther |
CSS499: Benchmark comparison among MASS C++, RepastHPC, and FLAME |
Term Report (Autumn 19) Term Report (Winter 20) Term Report (Spring 20) |
01/21 - 06/21 C++ |
Nathan Wong |
CSS497: Benchmarking RepastHPC with Social Network, Bail-in/out, MATSim, and VDT |
Term Report (Winter 21) Final Report (Spring 21) |
06/21 - 12/21 C++ |
Ian Dudder |
CSS497: Benchmarking MASS C++ with Social Network, Bail-in/out, MATSim, and VDT |
Final Report (Autumn 21) |
01/22 - 12/22 C++ |
Kevin Wang |
CSS600/595: Programmability and parallelization comparison of parallel ABM libraries |
White Paper (Autumn 22) Final Presentation (Autumn 22) |
01/23 - present Java or C++ |
Jeff McCrea |
CSS600: Redistricting Simulation & Gerrymandering Detection toward its agent-based parallelization with MASS |
Term Report (Winter 23) Term Report (Spring 23) |
There is no general-purpose GPU platform for agent-based models while there are many application-specific parallelization with GPUs. This is because of mismatching between execution of variable agents' behavior, (i.e., tasks parallelism) and GPU-intrinsic data parallelization. We are currently analyzing typical agent behaviors and developing GPU parallelization techniques, each addressing a different agent behavior.
Period | Student Name | Specific Work | Report |
---|---|---|---|
06/11 - 12/12 | Tosa Ojiru |
CSS600: A MLFQ-based scheduler for cluster systems (Summer 11) CSS700: A GPU version of MASS library (Autumn 11) |
MS Thesis (Autumn 12) |
06/12 - 12/12 | Robert Jordan |
CSS595/596: A multi-GPU version of MASS library | Final Report (Autumn 12) |
01/14 - 03/15 | Nathaniel Hart |
CSS600/700: MASS CUDA Parallel-Computing Library | MS
Thesis (Winter 2015) PAAMS 2019 |
04/17 - 03/18 | Lisa Kosiachenko |
CSS600/700: Optimize the performance of the agent-based models on the graphics processing units (GPU) as part of the MASS CUDA library | MS Thesis (Winter
18) PAAMS 2019 |
04/20 - 08/21 | Ben Pittman |
CSS600/595: A development of multi-GPU execution environment for MASS CUDA | White Paper (Summer 21) |
04/21 - present | Brian Luger |
CSS700: MASS CUDA on multi GPU cards | Term Report (Winter 23) |
09/22 - 3/23 | Christopher Sumali |
CSS497: Porting agent-based benchmark programs (MatSim and TB) to MASS CUDA |
Term Report (Winter 23) |
04/23 - 8/23 | David Woo |
CSS497: Porting agent-based benchmark programs (Bank Bail-in/out) to MASS CUDA |
Term Report (Spring 23) |
06/23 - 12/23 | Omar Ahmed |
CSS497: Porting agent-based benchmark programs (Game of Life, Social Network, and VDT) to MASS CUDA |
Term Report (Summer 23) Term Report (Autumn 23) |
09/23 - 6/24 | Warren Liu |
CSS595: An incremenetal enhancement of MASS CUDA library |
White Paper (Spring 24) |
09/23 - 6/24 | Alex Hilwa |
CSS497/499: A development of FLAME GPU2 and MASS CUDA benchmark programs: TB and Neural Net |
Term Paper (Autumn 23) Term Paper (Winter 24) Term Paper (Spring 24) |
01/24 - 6/24 | John Nguyen |
CSS497: A development of FLAME GPU2 and MASS CUDA benchmark programs: Heat2D and Social Net |
Term Paper (Winter 24) Term Paper (Spring 24) |
01/24 - 3/24 | Tyler Schmale |
CSS497: A development of a FLAME GPU2 benchmark program: Traffic Sim |
Term Paper (Winter 24) |
Period | Student Name | Research Area |
---|---|---|
06/12 - 03/13 | Kelsey Weingartner | 1. MASS Java: Data Sciences |
04/13 - 08/13 | Sanjay Bappudi | 1. MASS Java: Data Sciences |
09/13 - 12/13 | Amala Gandhi | 1. MASS Java: Data Sciences |
01/14 - 06/14 | Sai Badey | 1. MASS Java: Data Sciences |
01/15 - 06/15 | Hung Ho | 1. MASS Java: Agent migration |
06/16 - 08/16 | Dareng Leng | 1. MASS Java: Data Sciences |
01/19 - 03/20 | Chang Liu |
1. MASS Java: Data Sciences |
04/19 - 08/20 | Nasser Alghamdi |
1. MASS Java: Data Sciences |
01/20 - 03/20 | Chris Lee |
1. MASS Java: Data Sciences |
04/20 - 06/21 | Satine Paronyan |
1. MASS Java: Data Sciences |
09/20 - 06/21 | Jiashun Gou |
1. MASS Java: Data Sciences |
12/20 - 06/21 | Alex van Matre |
1. MASS Java: Data Sciences |
06/21 - 12/21 | Max Seto |
1. MASS Java: Data Sciences |
09/21 - 06/22 | Nirali Gundecha |
1. MASS Java: Data Sciences |
09/21 - 06/22 | Tianhui Nie |
1. MASS Java: Data Sciences |
06/10 - 06/11 | John Emau | 2. MASS Java: ABM |
09/11 - 03/1206/13 - 12/13 | Niko Simonson | 2. MASS Java: ABM |
06/12 - 12/12 | Narayani Chandrasekaran | 2. MASS C++: ABM |
06/14 - 12/14 | Stuart Drummond | 2. MASS Java: ABM |
06/14 - 12/14 | Hongbin Li | 2. MASS Java: ABM |
09/14 - 06/15 | Osmond Gunarso | 2. MASS C++: ABM |
09/14 - 06/15 | Jennifer Kowalski | 2. MASS C++: ABM |
04/15 - 06/15 | Abdhulhadi Alghamdi | 2. MASS C++: ABM |
04/16 - 08/16 | Benjamin Phan | 2. MASS C++: ABM |
06/16 - 08/16 | Andrew VanKooten |
2. MASS Java: ABM |
10/16 - 06/17 | Caleb Yang |
2. MASS C++: ABM |
07/19 - 03/20 | Joshua Landron |
2. MASS C++: ABM |
06/20 - 09/20 | Elais Alabssie |
2. MASS C++: ABM |
06/20 - 03/21 | Rachael Kim |
2. MASS Java: ABM |
06/11 - 12/12 | Piotr Warczak | 3. MASS CUDA |
01/13 - 06/13 | Adam Gunn | 3. MASS CUDA |
04/15 - 06/15 | Ahmed Musazay | 3. MASS CUDA |
09/19 - 03/20 | Ali Yusuf |
3. MASS CUDA |