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