To: Whom it may concern
I have been using this simulator for some processor related educational projects. I noticed a drastically slower performance in simulation as compared to the real thing. To my knowledge, there are no parallelization features included in the simulator as mentioned in this issue https://github.com/cirosantilli2/gem5-issues/issues/15 . I am writing to enquire are there any such features that I am not aware of or are there any plans to include parallelization features into future versions. Hope to hear from you soon.
Best regards,
Harry Chong
On 3/15/2023 11:11 PM, yuxuan-z via gem5-users wrote:
To: Whom it may concern
I have been using this simulator for some processor related educational projects. I noticed a
drastically slower performance in simulation as compared to the real thing. To my knowledge, there
are no parallelization features included in the simulator as mentioned in this issue
https://github.com/cirosantilli2/gem5-issues/issues/15
https://github.com/cirosantilli2/gem5-issues/issues/15 . I am writing to enquire are there any
such features that I am not aware of or are there any plans to include parallelization features into
future versions. Hope to hear from you soon.
Dear Harry -
It's extremely difficult to parallelize code of this kind. I
believe one would essentially have to undertake a total rewrite
based on a somewhat different approach. It would also introduce
(more) non-determinism.
I am reminded of failed efforts to replace the global lock in the
most widely used version of python (the one written in C). And
that code base is much smaller than gem5.
The useful parallelism I have achieved is doing different runs
(varying parameters, workloads, etc.) concurrently in different
Linux processes.
Regards - Eliot Moss
This is unfortunately difficult for most of the cycle-accurate models, because it lies on that silicon is synchronized with clock trees which does not consume compute resource, HW is intrinsically parallel.
But when you are doing c-simulation, the synchronizing work is done by "ticking" and event queue mechanisms, if you want to parallelize the computation, you have to go at a bigger boundary, which is just as Eliot stated could be workload level, otherwise the sync overhead b/w threads can be really huge at those levels.
Have anyone seen some well structured cycle accurate models that can be multi-threaded to some more finer grain?
| |
G
|
|
gingerluo@163.com
|
---- Replied Message ----
| From | Eliot Moss via gem5-usersgem5-users@gem5.org |
| Date | 3/16/2023 21:28 |
| To | The gem5 Users mailing listgem5-users@gem5.org ,
gem5-devgem5-dev@gem5.org |
| Cc | yuxuan-zyuxuan-z19@qq.com ,
Eliot Mossmoss@cs.umass.edu |
| Subject | [gem5-users] Re: Enquiry about the parallelization |
On 3/15/2023 11:11 PM, yuxuan-z via gem5-users wrote:
To: Whom it may concern
I have been using this simulator for some processor related educational projects. I noticed a
drastically slower performance in simulation as compared to the real thing. To my knowledge, there
are no parallelization features included in the simulator as mentioned in this issue
https://github.com/cirosantilli2/gem5-issues/issues/15
https://github.com/cirosantilli2/gem5-issues/issues/15 . I am writing to enquire are there any
such features that I am not aware of or are there any plans to include parallelization features into
future versions. Hope to hear from you soon.
Dear Harry -
It's extremely difficult to parallelize code of this kind. I
believe one would essentially have to undertake a total rewrite
based on a somewhat different approach. It would also introduce
(more) non-determinism.
I am reminded of failed efforts to replace the global lock in the
most widely used version of python (the one written in C). And
that code base is much smaller than gem5.
The useful parallelism I have achieved is doing different runs
(varying parameters, workloads, etc.) concurrently in different
Linux processes.
Regards - Eliot Moss
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org