An Parallel Multi-Agent Spatial Simulation Environment for Cluster Systems Thank you, chairman for the kind introduction. And hello, everyone. Today, I am going to present our on-going project that implement and practicalize an agent-based workbench for on-the-fly sensor-data analysis, more specifically for orchard temperature prediction and crop monitoring. Munehiro Fukuda, Ph.D. Computing & Software Systems University of Washington Bothell December 4 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 December 4 IEEE CSE 2013, Sydney
Outline Related work MASS execution model and library spec. Programmability analysis Spatial simulation Multi-agent simulation Performance evaluation Conclusions December 4 IEEE CSE 2013, Sydney
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 required 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 December 4 IEEE CSE 2013, Sydney
MASS Library Execution Model Y-axis A Bag of Agents Agents Agents Agents Application Layer (x,y) Places X-axis Thread 0 Thread 1 Thread 2 Thread 3 Thread 0 Thread 1 Thread 2 Thread 3 Thread 0 Thread 1 Thread 2 Thread 3 Process Rank 0 socket Process Rank 1 socket Process Rank 2 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 mnode0.uwb.edu mnode1.uwb.edu LAN mnode2.uwb.edu December 4 IEEE CSE 2013, Sydney
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 ); space.callAll( MySpace.func1, params ); space.exchangeAll( MySpace.func2, neighbors ); agents.exchangeAll( MyAgents.func3 ); agents.manageAll( ); MASS.finish( ); } func1( ) … func2( ) func3( ) December 4 IEEE CSE 2013, Sydney
MASS Library Implementation Master node main( String[] args ) { MASS.init( ); MASS.finish( ); } JSCH or libssh2 JSCH or libssh2 Slave node 2 Slave node 1 December 4 IEEE CSE 2013, Sydney
Programmability Analysis Spatial Simulation – Wave2D (Implemented) December 4 IEEE CSE 2013, Sydney
Programmability Analysis Spatial Simulation – BrainGrid (Abstract Code) December 4 IEEE CSE 2013, Sydney
Programmability Analysis Multi-Agent Simulation – Random Walk December 4 IEEE CSE 2013, Sydney
Programmability Analysis Multi-Agent Simulation – FluTE (Abstract Code) Infected person communities Contagious The original work from Univ. New Mexico: http://www.cs.unm.edu/~dlchao/flute/ December 4 IEEE CSE 2013, Sydney
Programmability Analysis Agent-Based Data Analysis – Biological Network Motif December 4 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 December 4 IEEE CSE 2013, Sydney
Performance Evaluation Place and Agent Granularity Places Size Agent Group Size December 4 IEEE CSE 2013, Sydney
Performance Evaluation Spatial Simulation – Wave2D December 4 IEEE CSE 2013, Sydney
Performance Evaluation Multi-Agent Simulation – Random Walk December 4 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 December 4 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 December 4 IEEE CSE 2013, Sydney