Sorry, somehow the formatting got messed up. I'm sending my last message
again...

================================================================

Thanks Jason​.​

I think I should have been more specific in my question:
I understand how "LiveProcess" objects are created for each application and
how each single threaded workload is assigned to a CPU. The loop in se.py
that does the workload to CPU assignments either expects the ​number of
specified applications to be equal to the number of cores, or expects only
one application. In case of only one application and if #CPUs > 1 , it
assigns the same app to all cores (line 237)​.

To be clear this is the code excerpt I'm referring to:
​​
===============================
   233 for i in xrange(np):
   234     if options.smt:
   235         system.cpu[i].workload = multiprocesses
   236     elif len(multiprocesses) == 1:
   237         system.cpu[i].workload = multiprocesses[0]
   238     else:
   239         system.cpu[i].workload = multiprocesses[i]
​===============================

First of all, how is line 237 not causing that np copies of
multiprocesses[0] to run​ but instead just 1 runs ?

I'm trying to understand how I can create enough hardware context without
assigning a workload to all of them. I modified the loop to run just for
the number of given applications  by replacing "for i in xrange(np):" with
"for i in xrange(len(multiprocesses)):", but it throws an error which I
believe means I should somehow assign a workload to all CPUs​ :
​
===============================
fatal: Must specify at least one workload!
 @ tick 0
[create:build/ARM/cpu/o3/deriv.cc, line 48]
===============================

Hope my question is clear.

Thank you for your time.
Majid

On Mon, Nov 21, 2016 at 12:26 AM, Majid Namaki Shoushtari <[email protected]>
wrote:

> ​
> Thanks Jason
> ​.​
>
>
> I think I should have been more specific in my question:
> I understand how "LiveProcess" objects are created for each application
> and how each single threaded workload is assigned to a
> ​
> CPU. The loop in se.py that does the workload to
> ​
> CPU assignments either expects the
> ​number​
> of specified applications to be equal to the number of cores, or expects
> only one application. In case of only one
> ​
> application and if #CPUs
> ​
> > 1
> ​,
> it assigns the same app
> ​​
>  to all cores
> ​ (line 237)​
> .
>
> To be clear this is the code excerpt I'm referring to:
>
> ​​
> ===============================
>    233 for i in xrange(np):
>    234     if options.smt:
>    235         system.cpu[i].workload = multiprocesses
>    236     elif len(multiprocesses) == 1:
>    237         system.cpu[i].workload = multiprocesses[0]
>    238     else:
>    239         system.cpu[i].workload = multiprocesses[i]
> ​
> ===============================
>
> First of all, how is line 237 not causing that np copies of
> multiprocesses[0]
> ​ to run​ but instead just 1 runs
> ?
>
> I'm trying to understand how I can create enough hardware context without
> assigning a workload to all of them. I modified the loop to run just for
> the number of given applications  by replacing "for i in xrange(np):" with
> "for i in xrange(len(multiprocesses)):", but it throws an error
> ​ which I believe means I should somehow assign a workload to all CPUs​
> :
>
> ​
> ===============================
> fatal: Must specify at least one workload!
>  @ tick 0
> [create:build/ARM/cpu/o3/deriv.cc, line 48]
> ​
> ===============================
>
> Hope my question is clear.
>
> Thank
> ​
> you
> ​
> for your time.
> Majid
>
> On Sun, Nov 20, 2016 at 12:21 PM, Jason Lowe-Power <[email protected]>
> wrote:
>
>> Hi Majid,
>>
>> Yes. This is possible. To run multiple different processes, you can
>> create multiple CPUs with multiple "LiveProcess" objects. For
>> multi-threaded applications, I believe you need to have enough CPUs create
>> (enough hardware contexts) and then link to m5threads instead of the
>> pthreads library.
>>
>> Hopefully this will get your started down the right path.
>>
>> Jason
>>
>> On Fri, Nov 18, 2016 at 1:48 AM Majid Namaki Shoushtari <[email protected]>
>> wrote:
>>
>>> I was wondering if there is a way to simulate
>>> multiprogrammed/multithreaded workloads in SE mode?
>>> Just to clarify: I mean running for example two programs that spawn 4
>>> threads each.
>>>
>>> As I understand this is not possible with the current se.py script, but
>>> is it theoretically possible to run such simulations in SE mode?
>>> If yes, could you please give some hints on how to modify se.py
>>> accordingly?
>>>
>>> Thanks,
>>> Majid
>>> _______________________________________________
>>> gem5-users mailing list
>>> [email protected]
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
>
> --
> Majid Namaki Shoushtari
> PhD Candidate
> Department of Computer Science
> University of California, Irvine
> Irvine, CA 92697
> [email protected]
> http://www.ics.uci.edu/~anamakis
>



-- 
Majid Namaki Shoushtari
PhD Candidate
Department of Computer Science
University of California, Irvine
Irvine, CA 92697
[email protected]
http://www.ics.uci.edu/~anamakis
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to