That's essentially right, although gem5 does have some plumbing to run
multiple event queues within the same simulation which can coordinate with
each other within a small window (quantum) of time. gem5 has support for
fibers/threads/coroutines, but these are not typically used to model
events. Events are processed inline when they happen using a simple
function call.

Gabe

On Thu, Apr 15, 2021 at 2:46 AM gabriel.busnot--- via gem5-users <
gem5-users@gem5.org> wrote:

> Hi John,
>
> Short answer : no, you can only run several simulations in parallel, but
> not a single simulation using one thread per CPU.
>
> Gem5 relies on Discrete Event Simulation (DES) to simulate the concurrent
> behavior of HW.
> DES is intrinsically sequential in its execution as it relies on
> coroutines (also called user user threads, greed threads, fibers, etc.).
> Parallelizing such application is a very hard task that often requires a
> lot of subtle code transformations to efficiently protect shared resources.
> If done correctly, then parallel DES does not have all the good properties
> of classic DES, especially determinism... Unless you add extra care to
> preserve it, which is hard, too. Trust me ;).
>
> This question has been discussed back in the days but seems stalled now:
> http://www.m5sim.org/Parallel_M5
>
> Cheers,
> Gabriel
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to