> When I said that two collections of SimObjects can safely be simulated in
> parallel if and only if these collections of objects only interact with each
> other through events I assumed that  causality problems are handled by
> Eventqueues. To be more precise, if objects in one collection can send
> events to another collection's EventQueue then this one should not simulate
> past the time of the EventQueue of the objects who can send those events. In
> PDES terms this collection of SimObjects would be "state objects" and
> together with their EventQueue they would form a "process".  Just so you
> have an idea of what I mean with my terminology.

We generally don't actually work this way.  When one object wants to
cause something to happen on another object, it usually goes through
some sort of Port interface.  There's an event buried in there.  I
think it's really up to the port objects to deal with moving things
from one event queue to another and to manage the timing differences.
The port interfaces themselves would probably have some sort of
lockless queue inside to move events from one side to the other
without requiring locking.

This could really just be two different ways of looking at the same
thing, but I think fundamentally, we want to have a long term goal of
not having locking in the queues and using some lock free data
structures to move events from one queue to another.

  Nate
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to