Press Release : Sage Multi-Core and System Dynamics

Sage Product Details

Modeling and Simulation Framework

View a presentation on Sage

Help File

View the Sage Help File


Request a copy of the Sage Libraries

The Sage libraries are our flagship product. They contain a robust and powerful object oriented simulation framework, written to an open architecture in C# for .net. They are ideal for those wishing to add simulation capabilities to a broader application or suite.

Many vendors will say their products are object oriented...

...But if you don't have full visibility into them, or you can't subclass them or leverage polymorhism in your designs, you're still probably making compromises.

Many vendors will say their products are open architected...

...But if you can't architect your simulation subsystem by composing elements of libraries as needed, like any of your other subsystems, you're still probably making compromises.


The executive is the component responsible for managing pending requested events, and serving them to the appropriate recipients at the correct time and in the proper sequence. Its commencement of event service marks the start of a simulation, and when it stops serving events, the simulation is complete.

The executive is represented through an interface, and there are two implementations that can be created by the ExecFactory. One is full-featured, the other is blazing fast. The user chooses the desired implementation in their call to ExecFactory.

bullet Full Featured Implementation Executive - multiple types of events w/ and w/o synchronization. Events can be rescinded by man criteria. Innovative queued multi-threading model allows simple state management in the calling stack frame, simple time-spanning process representation.
bullet Highest Performance Implementation All events are synchronous. This executive is 5 to 20 times faster than the full-featured implementation.

Major Subsystems

bullet Resource Framework Multidimensional resource taxonomy (persistent/transient and atomic/integral) with zero-flooring, or unlimited negative resource availability (useful for schedule generation.)
- simple implementation of multi-resource, multi-conditional acquisition/release.
- any object can be treated as a resource.
bullet State Machine Dual implementations -
Full-featured, with table driven, two-phase commit, state transition handlers, state entry & exit handlers, and much more.
Simple enum-based implementation, also with robust event model.
Wide choice of events fired before, during and after each
bullet Model Class Container for simulation object, warning & error handlers, & many available services. Supports dependency injection of our services and yours.

Secondary Subsystems

bullet RNG Management Multi-channel performance-tunable random subsystem w/ (replaceable) mersenne twister RNG.
bullet Distributions & Histograms distributions (including full-custom) and post-run analysis tools.
bullet Transport Network Define legs, routes, vehicles, cargo, intersection rules, manage route selection.
bullet Modeling Collections Smart Property Bag - run-time programmable object hierarchies.
Tuple spaces - multidimensional intra-object communication via bulletin boards.
bullet Persistence class-internal xml persistence mechanism - goes beyond .net's xml persistence.
bullet Adaptive Performance multiprocessor-aware subsystems that adapt to improve performance.