forked from mcai/gem5_ccnuma
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_all_experiments_ALPHA_no_checkpoints.py
executable file
·86 lines (64 loc) · 2.77 KB
/
run_all_experiments_ALPHA_no_checkpoints.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/python
#
# A Python script to run all multi-core experiments for PARSEC 2.1 benchmarks.
#
# Copyright (C) Min Cai 2015
#
import os
import multiprocessing as mp
def run(bench, input_set, l2_size, l2_assoc, l2_tags, num_threads):
dir = 'results/alpha_no_checkpoints/' + bench + '/' + input_set + '/' + l2_size + '/' + str(l2_assoc) + 'way/' + l2_tags + '/' + str(num_threads) + 'c/'
os.system('rm -fr ' + dir)
os.system('mkdir -p ' + dir)
cmd_run = 'build/ALPHA_MESI_Two_Level/gem5.opt -d ' + dir + ' configs/example/fs.py --two-phase --cpu-type=timing --num-cpus=' \
+ str(num_threads) + ' --script=ext/parsec/2.1/run_scripts/' \
+ bench + '_' + str(num_threads) + 'c_' + input_set + '.rcS' \
+ ' --caches --l2cache --num-l2caches=1' \
+ ' --l1d_size=32kB --l1i_size=32kB --l2_size=' + l2_size + ' --l2_assoc=' + str(l2_assoc) + ' --l2_tags=' + l2_tags
print cmd_run
os.system(cmd_run)
def run_as_task(task):
bench, input_set, l2_size, l2_assoc, l2_tags, num_threads = task
run(bench, input_set, l2_size, l2_assoc, l2_tags, num_threads)
tasks = []
def run_experiments():
num_processes = mp.cpu_count()
pool = mp.Pool(num_processes)
pool.map(run_as_task, tasks)
pool.close()
pool.join()
def add_task(bench, input_set, l2_size, l2_assoc, l2_tags, num_threads):
task = bench, input_set, l2_size, l2_assoc, l2_tags, num_threads
tasks.append(task)
# input_sets = ['simsmall', 'simmedium', 'simlarge']
# input_sets = ['simsmall']
# input_sets = ['simmedium']
input_sets = ['simlarge']
def add_tasks(bench, input_set):
add_task(bench, input_set, '256kB', 8, 'LRU', 4)
add_task(bench, input_set, '512kB', 8, 'LRU', 4)
add_task(bench, input_set, '1MB', 8, 'LRU', 4)
add_task(bench, input_set, '2MB', 8, 'LRU', 4)
add_task(bench, input_set, '4MB', 8, 'LRU', 4)
add_task(bench, input_set, '8MB', 8, 'LRU', 4)
add_task(bench, input_set, '256kB', 8, 'LRU', 1)
add_task(bench, input_set, '256kB', 8, 'LRU', 2)
add_task(bench, input_set, '256kB', 8, 'LRU', 8)
add_task(bench, input_set, '256kB', 8, 'LRU', 16)
add_task(bench, input_set, '256kB', 8, 'IbRDP', 4)
add_task(bench, input_set, '256kB', 8, 'RRIP', 4)
add_task(bench, input_set, '256kB', 8, 'DBRSP', 4)
for input_set in input_sets:
add_tasks('blackscholes', input_set)
add_tasks('bodytrack', input_set)
add_tasks('canneal', input_set)
add_tasks('dedup', input_set)
add_tasks('facesim', input_set)
add_tasks('ferret', input_set)
add_tasks('fluidanimate', input_set)
add_tasks('freqmine', input_set)
add_tasks('streamcluster', input_set)
add_tasks('swaptions', input_set)
add_tasks('vips', input_set)
add_tasks('x264', input_set)
run_experiments()