se.py: Modify script to make multiprogramming much easier.
authorLisa Hsu <Lisa.Hsu@amd.com>
Sun, 20 Mar 2011 04:12:59 +0000 (21:12 -0700)
committerLisa Hsu <Lisa.Hsu@amd.com>
Sun, 20 Mar 2011 04:12:59 +0000 (21:12 -0700)
Now, instead of --bench benchname, you can do --bench bench1-bench2-bench3 and it will
set up a simulation that instantiates those three workloads.  Only caveat is that now,
for sanity checking, your -n X must match the number of benches in the list.

configs/example/se.py

index 7cf11603ecd06c3d4ba1a6e1d49cf88c5f09512b..8076e160209b5275a17a6da874932f445e12009b 100644 (file)
@@ -76,20 +76,30 @@ if args:
     print "Error: script doesn't take any positional arguments"
     sys.exit(1)
 
+multiprocesses = []
+apps = []
+
 if options.bench:
-    try:
-        if buildEnv['TARGET_ISA'] != 'alpha':
-            print >>sys.stderr, "Simpoints code only works for Alpha ISA at this time"
-            sys.exit(1)
-        exec("workload = %s('alpha', 'tru64', 'ref')" % options.bench)
-        process = workload.makeLiveProcess()
-    except:
-        print >>sys.stderr, "Unable to find workload for %s" % options.bench
+    apps = options.bench.split("-")
+    if len(apps) != options.num_cpus:
+        print "number of benchmarks not equal to set num_cpus!"
         sys.exit(1)
+
+    for app in apps:
+        try:
+            if buildEnv['TARGET_ISA'] != 'alpha':
+                print >>sys.stderr, "Simpoints code only works for Alpha ISA at this time"
+                sys.exit(1)
+            exec("workload = %s('alpha', 'tru64', 'ref')" % app)
+            multiprocesses.append(workload.makeLiveProcess())
+        except:
+            print >>sys.stderr, "Unable to find workload for %s" % app
+            sys.exit(1)
 else:
     process = LiveProcess()
     process.executable = options.cmd
     process.cmd = [options.cmd] + options.options.split()
+    multiprocesses.append(process)
 
 
 if options.input != "":
@@ -151,7 +161,7 @@ system.physmem.port = system.membus.port
 CacheConfig.config_cache(options, system)
 
 for i in xrange(np):
-    system.cpu[i].workload = process
+    system.cpu[i].workload = multiprocesses[i]
 
     if options.fastmem:
         system.cpu[0].physmem_port = system.physmem.port