Expanding the CASE Framework to Facilitate Load Balancing of Social Network Simulations
Amara Keller, Martin Kelly, Aaron Todd
Unbalanced Loads
Introduction
• Spatial Simulations (previous work)– Each agent has a location in space at all times• Ex. Traffic flow, migration patterns
– Use kd trees to assign slaves to regions of space to distribute work
Introduction
• Social Simulations (our focus)– 0-dimensional simulations are not spatial in nature• Ex. Social networks like Facebook
– No concern about physical locations• Give each agent an ID
– How to distribute work???• Load balancing could depend on simulation• Create load balancing heuristic for ALL simulations
Things that need to happen first…
• Increase usability• Add ability to do distributed computation
GOALS!!!
Create a system for load balancing 0-dimensional simulations of social networks
CASE Usability
• Create an easier to use system of simulation configuration
• Create a visual client to manipulate simulation configuration once configuration mechanism is in place
• Create a configuration file for the visual client that would tell the client necessary information for it to initialize a simulation
• Create a standardized system to log simulation data while simulation is running
• Allow CASE to import GIS data
Distributed Computing
• Must be able to use multiple machines.• All load balancing research is IMPOSSIBLE until
this is implemented…
Load balancing of 0-dimensional Social Simulations
• Relatively unexplored• Load balancing of spatial simulations has been
done… but kd tress have been used to split spatial regions
• Social simulations are constantly changing– Agents are not available by location– Friends are changing
• Must partition agents in a “good” way, even while simulation is running
Proposed Solutions
• Usability– CASE will load XML configuration files– Import GIS data into CASE
• Distributed computing– Scala uses Java’s RMI libraries super important!
• Load balancing of social simulations
Load balancing of social simulations
1. Centralized: use properties of the graph2. Slave level: each one adjusts its load
according to the work its doing
Load balancing of social simulations
• Both approaches have same goal– Equal processor load on each slave– Maximal intraslave communication– Minimized interslave communication
• Both attempt to partition the graph into clusters and distribute clusters– Ideal clusters have a large amount of interconnection
and few connections to other clusters• Ex. clique
Partitioning approaches
• Centralized approaches– Adapt spatial method of recursive bisection
partitioning to a non-spatial graph– Partition based on minimum cuts in the graph• Implementation of Ford-Fulkerson method
– Simulation starts• Use bottom-up approach- look for agents to move
– Shift cut line with algorithm
Partitioning approaches
• Slave-based approaches– No central organization– Slaves figure out when they are over or under worked– Agents can have the ability to respond to both
network and processor load– Requires slaves to have a good heuristic to govern
how load should be passed around– Have slave store a record of how much “work” an
agent has been doing and what slaves they communicate with most
Partitioning Approaches
• Shadowing– Agents can be in multiple places at once• Single agent receives messages from every agent in the
simulation but spends very little time processing these messages
– Allows the agent to exist in two places until it chooses the optimal one
Proposed Experiment Domain
• Create a set of test simulations with knowledge of optimal distribution
• Test using small and large amounts of agents• Create a set of test simulations where optimal
distribution is unknown and attempt to understand distribution– All agents on one slave– Create a static social network of clique grouped agents
equal to number of slaves– Change cliques
Proposed Timeline
• Initial Tasks– Continue literature review– Improve core functionality of CASE
• Intermediate Tasks– Explore approaches to load balancing problem
• Final Tasks– Test and tweak selected load balancing algorithm
• Wrap Up– Finalize the test set and prepare final paper and
presentation
Acknowledgements
Trinity University Department of Computer Science
Advisor: Dr. Mark Lewis
For being awesome and feeding us snacks:Becky and Rosie!