Hi Steve,

I really appreciate you quick response. I want to understand what you
explained in you earlier mail clearly...so that I get it right:

I think I have done the same thing you explained  in my earlier script...
I am assigning workload for each thread here. I create a thread for each
workload.

elif options.detailed:
    cpus = [DerivO3CPU(cpu_id = i,
                       clock=options.frequency)
            for i in xrange(options.numcpus)]

    if options.cmd:
        #check for SMT workload
        commands = options.cmd.split(':')

        process = []

        for cmmd in commands:
                if cmmd == 'Cholesky':
                        smt_process = Cholesky()
                elif cmmd == 'FFT':
                        smt_process = FFT()
                elif cmmd == 'LUContig':
                        smt_process = LU_contig()
                elif cmmd == 'LUNoncontig':
                        smt_process = LU_noncontig()
                elif cmmd == 'Radix':
                        smt_process = Radix()
                elif cmmd == 'Barnes':
                        smt_process = Barnes()
                elif cmmd == 'FMM':
                        smt_process = FMM()
                elif cmmd == 'OceanContig':
                        smt_process = Ocean_contig()
                elif cmmd == 'OceanNoncontig':
                        smt_process = Ocean_noncontig()
                elif cmmd == 'Raytrace':
                        smt_process = Raytrace()
                elif cmmd == 'WaterNSquared':
                        smt_process = Water_nsquared()
                elif cmmd == 'WaterSpatial':
                        smt_process = Water_spatial()
                else:
                        print >> sys.stderr, """The --cmd environment
variable was set to something improper.
                Use Cholesky, FFT, LUContig, LUNoncontig, Radix, Barnes,
FMM, OceanContig,
                OceanNoncontig, Raytrace, WaterNSquared, or WaterSpatial"""
                        sys.exit(1)
                process += [smt_process, ]

After this I assign the workload to the CPU's

root = Root(system = system)
root.workload = process

for cpu in cpus:
    cpu.workload = root.workload

Say if I want to run two bench marks(FFT,Radix) on 2 two-way SMT CPU's:
Command line: m5.debug sahi.py -d -n2 -cFFT:Radix

wont my code assign them in the following way:

CPU0.thread1 = FFT
CPU0.thread2 = Radix
CPU1.thread1 = FFT
CPU2.thread2 = Radix

Why is it giving me an error then?

Thanks,
Sahithi

On Mon, May 5, 2008 at 12:40 PM, Steve Reinhardt <[EMAIL PROTECTED]> wrote:

> You just set the workload for each thread to point to the same workload
> object.  Note that in an SMT machine the CPU takes a list of workloads, one
> for each thread context.
>
> So to run a two-thread copy of FFT on a two-way SMT CPU you'd do something
> like:
>
> bm = FFT()
> cpu.workload = [bm, bm]
>
> If you want to rn a four-thread copy of FFT on two two-way SMT CPUs:
>
> cpu0.workload = [bm, bm]
> cpu1.workload = [bm, bm]
>
> Note that you have to make sure the workload object is created with the
> right command-line parameters to use the proper number of threads.
>
>
> Steve
>
>
> On Mon, May 5, 2008 at 10:17 AM, sahithi krishna <
> [EMAIL PROTECTED]> wrote:
>
> > Hi Steve,
> > I donot know how to associate the same workload object to multiple
> > thread contexts. Can you please tell me how to do this?
> >
> > Thanks,
> > Sahithi
> >
> >
> > On Mon, May 5, 2008 at 12:04 PM, Steve Reinhardt <[EMAIL PROTECTED]>
> > wrote:
> >
> > > I just looked at your script briefly, but it looks like you're only
> > > configuring the workload to use a single thread context on the SMT CPU.  
> > > For
> > > multithreaded workloads like SPLASH, you have to associate the same 
> > > workload
> > > object with multiple thread contexts (whether they're SMT CPU contexts or 
> > > on
> > > separate CPUs) so that when the application creates new threads there is
> > > somewhere to run them.  The error you're getting indicates that the
> > > application is creating a new thread but has nowhere to run it.
> > >
> > > Steve
> > >
> > >
> > > On Mon, May 5, 2008 at 8:57 AM, sahithi krishna <
> > > [EMAIL PROTECTED]> wrote:
> > >
> > > > Hi Steve,
> > > > I modified the run.py to deal with the SMT part and when I run the
> > > > script it aborts. Here is the error:
> > > >
> > > > M5 compiled Apr 26 2008 10:12:48
> > > > M5 started Mon May  5 10:51:52 2008
> > > > M5 executing on sunshyin.local
> > > > command line: /Users/Sunshyin/m5/build/ALPHA_SE/m5.debug sahi.py -d
> > > > -n2 -cFFT:Radix
> > > > Global frequency set at 1000000000000 ticks per second
> > > > 0: system.remote_gdb.listener: listening for remote gdb #0 on port
> > > > 7000
> > > > 0: system.remote_gdb.listener: listening for remote gdb #1 on port
> > > > 7001
> > > > 0: system.remote_gdb.listener: listening for remote gdb #2 on port
> > > > 7002
> > > > 0: system.remote_gdb.listener: listening for remote gdb #3 on port
> > > > 7003
> > > > warn: Entering event queue @ 0.  Starting simulation...
> > > > warn: Increasing stack size by one page.
> > > > warn: Increasing stack size by one page.
> > > > warn: ignoring syscall sigprocmask(3, 18446744073709551615, ...)
> > > > warn: ignoring syscall sigprocmask(3, 18446744073709551615, ...)
> > > > warn: ignoring syscall sigprocmask(3, 0, ...)
> > > > warn: ignoring syscall sigaction(8, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(11, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(10, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(4, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(7, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(6, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(12, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(5, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(13, 4831387552, ...)
> > > > warn: ignoring syscall sigprocmask(3, 0, ...)
> > > > warn: ignoring syscall sigaction(8, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(11, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(10, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(4, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(7, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(6, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(12, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(5, 4831387552, ...)
> > > > warn: ignoring syscall sigaction(13, 4831387552, ...)
> > > > nxm_thread_create: no idle contexts available.
> > > > Program aborted at cycle 163629500
> > > > Abort trap
> > > >
> > > > Do you know why this is happening? I am attaching the config file
> > > > with this email.
> > > >
> > > > Thanks,
> > > > Sahithi
> > > >
> > > > On Sat, May 3, 2008 at 8:59 PM, Steve Reinhardt <[EMAIL PROTECTED]>
> > > > wrote:
> > > >
> > > > > As far as I know, SPLASH benchmarks should work fine with SMT.
> > > > > (Someone speak up if they know otherwise.)  You'd have to modify the
> > > > > configs/splash2/run.py script to deal with that though.
> > > > >
> > > > > I haven't done this before, so I can't provide any general
> > > > > directions, but if you have more specific questions we can try and 
> > > > > answer
> > > > > those.
> > > > >
> > > > > Steve
> > > > >
> > > > > On Sat, May 3, 2008 at 9:04 AM, sahithi krishna <
> > > > > [EMAIL PROTECTED]> wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > As a part of my course project, my group is trying to study the
> > > > > > SMT/CMP hybrid architectures and study their performance. As a part 
> > > > > > of the
> > > > > > project we need to vary the parameters like number of cores and 
> > > > > > number of
> > > > > > threads supported for each core and run simulations. As per my
> > > > > > understanding, such configurations can be defined using M5, but I am
> > > > > > confused as to how to run the simulations and what benchmarks to 
> > > > > > use. I am
> > > > > > new to the M5 simulator and I trying to figure out the best way to 
> > > > > > work on
> > > > > > my project.
> > > > > > The spec cpu benchmarks have lincense issues and currently I
> > > > > > donot have access to them. So I wanted to try the SPLASH benchmark 
> > > > > > suite.
> > > > > > Can some one help me understand how I can run these simulations 
> > > > > > using SPLASH
> > > > > > benchmarks (if it is possible). It looks like the current binaries 
> > > > > > for
> > > > > > splash benchmarks on the M5 website work only in ALPHA SE mode and 
> > > > > > they
> > > > > > donot work with SMT cores. If I try to work in ALPHA FS mode, will 
> > > > > > I be able
> > > > > > to simulate SMT/CMP architecture workloads.
> > > > > > If some one has already done these kind of simulations, your
> > > > > > suggestions would be very useful. I am trying to run the 
> > > > > > simulations on
> > > > > > MacOs Leopard, will I be able to use linux-dist to build my 
> > > > > > libraries
> > > > > > properly.
> > > > > >
> > > > > > Thank you,
> > > > > > Sahithi
> > > > > >
> > > > > > _______________________________________________
> > > > > > m5-users mailing list
> > > > > > [email protected]
> > > > > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > m5-users mailing list
> > > > > [email protected]
> > > > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > m5-users mailing list
> > > > [email protected]
> > > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > > >
> > >
> > >
> > > _______________________________________________
> > > m5-users mailing list
> > > [email protected]
> > > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> > >
> >
> >
> > _______________________________________________
> > m5-users mailing list
> > [email protected]
> > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
> >
>
>
> _______________________________________________
> m5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to