Skip to Main Content
We provide an overview of the SPEEDES persistence framework that is currently used to automate checkpoint/restart for the joint simulation system. The persistence framework interfaces are documented and standards are proposed for the standard simulation architecture. The persistence framework fundamentally keeps track of memory allocations and pointer references within a high-speed internal database linked with applications. With persistence, an object, and the collection of objects it recursively references through pointers, can be automatically packed into a buffer that is written to disk or sent as a message to another machine. Later, that buffer can be used to reconstruct the object and all of its recursively referenced objects. The reconstructed objects will likely be instantiated at different memory locations. The persistence framework automatically updates all affected pointer references to account for this fact. The persistence framework is fully integrated with the SPEEDES rollback infrastructure and built-in container class libraries that include an implementation of the standard template library. These utilities automate support for optimistic event processing required by many high-performance parallel and distributed time management algorithms. In the future, persistence will enable dynamic load balancing algorithms to migrate complex objects to different processors.