NISAC Tools: SimCore
NISAC’s SimCore tool is a scalable, discrete-event simulation framework used to study large-scale, high-resolution infrastructure systems.
(Click graphic to enlarge)
- SimCore is a library for building large-scale distributed memory, discrete event simulations (DES)
- SimCore uses the open-source discrete event engine from the Parallel Real-time Immersive Modeling Environment (PRIME)
- SimCore hides complexities of distributed DES from the application programmer
- SimCore concepts/classes are entities, services, and information:
--An Entity represents a simulation object (i.e., person, location).
--A Service represents the functionality or behavior of an Entity (as an event handler on an Entity).
--An Info is a message that triggers an event between entities or services.
- SimCore applications communicate through Runtime Event Exchange
- SimCore applications can be arbitrarily combined into Executables
Example of interdependency simulation of multiple SimCore applications
(Click graphic to enlarge)
SimCore applications are created at a rate of about four applications per year. The main applications are summarized below.
ActivitySim is an agent-based model uses a synthetic but statistically accurate population representing the people living in the United States. In ActivitySim, each person is represented as an agent who plans daily activities such as work, shopping, entertainment etc., based on optimizing a utility function. The output of ActivitySim are activities that an agent performs including its location and time.
Using the geographic distribution and distribution of activity types (sleep, work, entertainment) from ActivitySim as well as business location data, the DemandSim application computes geographically and temporally disaggregated demands on each of the 18 critical infrastructure sectors.
SessionSim is a finely tuned version of DemandSim for communication networks that takes into account the social network that guides communication session choices among individuals.
Taking individual agent-schedules and their associated location changes as input from ActivitySim, FastTrans is a queue-based vehicular traffic simulator that routes traffic according to a variety of strategies, including shortest path and computes resulting traffic congestion.
- MIITS:The Multi-scale Integrated Information and Telecommunications System (MIITS) is a full-fledged communication network simulator that simulates telephone, cell phone, Internet, and wireless networks in an integrated fashion.
Example of Interdependency Simulation of Multiple Applications
- FastTrans: Queue-based vehicular traffic simulation
- SimCore Applications: ActivitySim and FastTrans compiled into single executable
- ActivitySim sends trips (start time, source, destination) as events to FastTrans entity
- FastTrans sends “trip arrival times” to ActivitySim agent, which then potentially changes its schedule
- FastTrans execution time dominates ActivitySim by magnitudes