> The fundamental law in PDES is that one process should not run ahead of
> another if this one can trigger events effecting it. If an object schedules
> an event that should have been processed at time T1 but the eventqueue is at
> time T2 with T2 > T1 then you'll have causality errors. So this is what I
> meant with blocking eventqueues. Other then that I agree that concurrent
> scheduling should be lockless. Why not implement the eventqueues as a
> lockless qeueu?
Because event queues require insertion in the middle, and as far as I
know, there is no way to build a lockless queue where you can insert
into the middle (unless we have a double compare and swap).  Anyway, I
think that the atomic operation would actually slow things down
anyway.  The frequency of cross queue events vs regular events should
hopefully be low, so it seems that we should try to optimize for the
regular ones.

CMPXCHG16B exists on modern machines, but I think it would be pretty
limiting to require that instruction to run a parallel simulation.

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

Reply via email to