-
Notifications
You must be signed in to change notification settings - Fork 50
/
run_strong_full.py
122 lines (100 loc) · 5.12 KB
/
run_strong_full.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import os
import sys
import getpass
rootdir = "/" # Include path to repo
applications = {"VA" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 167772160 -x 1"],
"GEMV" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/gemv_host -m 163840 -n 4096"],
"SpMV" : ["NR_DPUS=X NR_TASKLETS=Y make all", "./bin/host_code -v 0 -f data/bcsstk30.mtx.64.mtx"],
"SEL" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 251658240 -x 1"],
"UNI" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 251658240 -x 1"],
"BS" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/bs_host -i 16777216"],
"TS" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/ts_host -n 33554432"],
"BFS" : ["NR_DPUS=X NR_TASKLETS=Y make all", "./bin/host_code -v 0 -f data/loc-gowalla_edges.txt"],
"MLP" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/mlp_host -m 163840 -n 4096"],
"NW" : ["NR_DPUS=X NR_TASKLETS=Y BL=32 BL_IN=2 make all", "./bin/nw_host -w 0 -e 1 -n 65536"],
"HST-S" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -b 256 -x 2"],
"HST-L" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -b 256 -x 2"],
"RED" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z VERSION=SINGLE make all", "./bin/host_code -w 0 -e 1 -i 419430400 -x 1"],
"SCAN-SSA" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 251658240 -x 1"],
"SCAN-RSS" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 251658240 -x 1"],
"TRNS" : ["NR_DPUS=X NR_TASKLETS=Y make all", "./bin/host_code -w 0 -e 1 -p 2048 -o 12288 -x 1"],}
def run(app_name):
NR_TASKLETS = [1, 2, 4, 8, 16]
NR_DPUS = [256, 512, 1024, 2048]
BL = [10]
if app_name in applications:
print ("------------------------ Running: "+app_name+"----------------------")
print ("--------------------------------------------------------------------")
if(len(applications[app_name]) > 1):
make = applications[app_name][0]
run_cmd = applications[app_name][1]
os.chdir(rootdir + "/"+app_name)
os.getcwd()
os.system("make clean")
try:
os.mkdir(rootdir + "/"+ app_name +"/bin")
except OSError:
print ("Creation of the direction /bin failed")
try:
os.mkdir(rootdir + "/"+ app_name +"/log")
except OSError:
print ("Creation of the direction /log failed")
try:
os.mkdir(rootdir + "/"+ app_name +"/log/host")
except OSError:
print ("Creation of the direction /log/host failed")
try:
os.mkdir(rootdir + "/"+ app_name +"/profile")
except OSError:
print ("Creation of the direction /profile failed")
for r in NR_DPUS:
for t in NR_TASKLETS:
for b in BL:
m = make.replace("X", str(r))
m = m.replace("Y", str(t))
m = m.replace("Z", str(b))
print ("Running = " + m)
try:
os.system(m)
except:
pass
r_cmd = run_cmd.replace("#ranks", str(r))
r_cmd = r_cmd + " >> profile/outss_tl"+str(t)+"_bl"+str(b)+"_dpus"+str(r)
print ("Running = " + app_name + " -> "+ r_cmd)
try:
os.system(r_cmd)
except:
pass
else:
make = applications[app_name]
os.chdir(rootdir + "/"+app_name)
os.getcwd()
try:
os.mkdir(rootdir + "/"+ app_name +"/bin")
os.mkdir(rootdir + "/"+ app_name +"/log")
os.mkdir(rootdir + "/"+ app_name +"/log/host")
os.mkdir(rootdir + "/"+ app_name +"/profile")
except OSError:
print ("Creation of the direction failed")
print (make)
os.system(make + ">& profile/out")
else:
print ( "Application "+app_name+" not available" )
def main():
if(len(sys.argv) < 2):
print ("Usage: python run.py application")
print ("Applications available: ")
for key, value in applications.items():
print (key )
print ("All")
else:
cmd = sys.argv[1]
print ("Application to run is: " + cmd )
if cmd == "All":
for key, value in applications.items():
run(key)
os.chdir(rootdir)
else:
run(cmd)
if __name__ == "__main__":
main()