PythonPDEVS: a distributed parallel DEVS simulator

We extend PythonPDEVS, our modular simulator for the Parallel DEVS formalism, with distributed simulation using optimistic synchronization based on Time Warp. Modularity is maintained, with the addition of several new components useful for distributed simulation. The PythonPDEVS simulator supports, among others, model migration, modular allocation strategies, and distributed termination conditions. Python's introspection capabilities are used to provide default state saving and message copying. Domain-specific hints, encoded in a PythonPDEVS model, are exploited by the simulator to improve performance.