180 likes | 197 Views
Explore MASS, a library designed for multi-agent spatial simulations on cluster systems, addressing challenges like machine awareness and agent management. Learn about related work, execution model, programmability analysis, and performance evaluation to harness the collective behavior of numerous agents. Discover how MASS offers scalable and efficient parallelization for complex 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