1. A non-transitory tangible computer-readable medium storing instructions executable by a processor in a simulation system to perform a simulation, the instructions configured to: wait for a plurality of virtual controllers to complete a previous simulation step; write a result of the previous simulation step from each of the plurality of virtual controllers to a shared memory; read an input from the memory to each of the plurality of virtual controllers; initiate a simulation step on each of the plurality of virtual controllers; and upon initiation of the simulation step in each of the plurality of virtual controllers, indicate completion of the simulation, wherein the plurality of virtual controllers comprises a controller model having a plurality of simulation steps, and wherein the instructions are configured to be executed by the processor in parallel.