An Parallel Multi-Agent Spatial Simulation Environment for Cluster Systems Munehiro Fukuda, Ph.D. Computing & Software Systems University of Washington Bothell December 4 IEEE CSE 2013,
Download ReportTranscript An Parallel Multi-Agent Spatial Simulation Environment for Cluster Systems Munehiro Fukuda, Ph.D. Computing & Software Systems University of Washington Bothell December 4 IEEE CSE 2013,
An Parallel Multi-Agent Spatial Simulation
Environment for Cluster Systems
Munehiro Fukuda, Ph.D.
Computing & Software Systems University of Washington Bothell
December 4
IEEE CSE 2013, Sydney
1
Research Motivation
Agent-based or entity-based simulations:
Most parallelization
Has been limited to shared-memory environments (OpenMP, CUDA,
etc.) but not cluster systems.
Challenges
Simulate the emergent collective behavior of social or biological agents.
Require a mega number of agents for the reality.
Machine awareness
Ghost space management
Agent management (e.g., cloning, migration, and termination)
Fine-grained execution
MASS: a parallel library for multi-agent spatial simulation for
cluster systems
December 4
IEEE CSE 2013, Sydney
2
Outline
1.
2.
3.
Related work
MASS execution model and library spec.
Programmability analysis
4.
Performance evaluation
5.
Spatial simulation
Multi-agent simulation
Spatial simulation
Multi-agent simulation
Conclusions
December 4
IEEE CSE 2013, Sydney
3
Related Work
Distributed Arrays
Multi-Agents
Examples: UPC, Co-Array
Fortran, and Global Array.
Limited scalability versus limited
remote memory access
Read-only ghost space
Examples: PDES-MAS, Nomadic
Threads, and Repast HPC
Fine granularity versus
intelligence
Hawk’s versus individual’s
viewpoint
System-level agent management
Loop parallelization goo enough?
required
for
( int I = 0; I < nAgents; i++ ) {
agents[i].updateStatus( );
agents[i].interactNeighbors( );
What if agents are introduced?
Node 1 Node 2
}
Node 3
December 4
IEEE CSE 2013, Sydney
4
MASS Library
Execution Model
Y-axis
Agents
Agents
Xaxis
mnode0.uwb.edu
December 4
Thread 3
Thread 2
Thread 1
Thread 0
CPU Core 3
CPU Core 2
CPU Core 1
CPU Core 3
CPU Core 2
System Memory
mnode1.uwb.edu
Process Rank 2
CPU Core 0
Thread 2
Thread 1
Thread 3
socket
Process Rank 1
CPU Core 1
CPU Core 3
CPU Core 2
CPU Core 1
System Memory
Thread 0
socket
Process Rank 0
CPU Core 0
Thread 3
Thread 2
Thread 1
Places
CPU Core 0
MASS Library Layer
Agents
(x,y)
Thread 0
Application Layer
A Bag of Agents
System Memory
LAN
IEEE CSE 2013, Sydney
mnode2.uwb.edu
5
MASS Library
Specification
Public static void main( String[ ] args ) {
MASS.init( args );
Places space = new Places( handle, “MySpace”,
params, xSize, ySize);
Agents agents = new Agents( handle,
“MyAgents”, params, space, population );
func1( )
func1( )
func1( )
func1( )
func2( )
func1( )
…
func2( )
…
func2( )
space.callAll( MySpace.func1, params );
func3( )
space.exchangeAll( MySpace.func2, neighbors
);
func2( )
func3( )
agents.exchangeAll( MyAgents.func3 );
agents.manageAll( );
MASS.finish( );
}
December 4
IEEE CSE 2013, Sydney
6
MASS Library
Implementation
Master node
main( String[] args )
{
MASS.init( );
MASS.finish( );
}
JSCH or libssh2
Slave node 1
December 4
JSCH or libssh2
Slave node 2
IEEE CSE 2013, Sydney
7
Programmability Analysis
Spatial Simulation – Wave2D (Implemented)
December 4
IEEE CSE 2013, Sydney
8
Programmability Analysis
Spatial Simulation – BrainGrid (Abstract Code)
December 4
IEEE CSE 2013, Sydney
9
Programmability Analysis
Multi-Agent Simulation – Random Walk
December 4
IEEE CSE 2013, Sydney
10
Programmability Analysis
Multi-Agent Simulation – FluTE (Abstract Code)
person
Infected
communities
Contagious
The original work from Univ. New Mexico:
http://www.cs.unm.edu/~dlchao/flute/
December 4
IEEE CSE 2013, Sydney
11
Programmability Analysis
Agent-Based Data Analysis – Biological Network Motif
December 4
IEEE CSE 2013, Sydney
12
MASS Programmability
Spatial Simulation
1. Machine-unaware data distribution and collection
2. No explicit ghost space management
3. No explicit for-loop parallelization
Multi-Agent Simulation
1. Automated agent migration
2. Agent collision avoidance
3. Agent propagation and distributed termination
December 4
IEEE CSE 2013, Sydney
13
Performance Evaluation
Place and Agent Granularity
Places Size
December 4
Agent Group Size
IEEE CSE 2013, Sydney
14
Performance Evaluation
Spatial Simulation – Wave2D
December 4
IEEE CSE 2013, Sydney
15
Performance Evaluation
Multi-Agent Simulation – Random Walk
December 4
IEEE CSE 2013, Sydney
16
MASS Execution Performance
The minimum conditions to benefit from
MASS (Java version):
1.
2.
3.
500 x 500 places
300,000 agents
100 floating-point operations / exchangeAll(
) or callAll( ), both returning values
December 4
IEEE CSE 2013, Sydney
17
Status and Future Plan
1.
More version and tools in development:
2.
MASS C++
MASS Cuda
Parallel NetCDF reader/writer with MASS
Practical applications in our plan:
BrainGrid
FluTE
Biological network motif search
Climate change detection
December 4
IEEE CSE 2013, Sydney
18