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