summaryrefslogtreecommitdiff
path: root/run_strong_full.py
diff options
context:
space:
mode:
authorJuan Gomez Luna <juan.gomez@safari.ethz.ch>2021-06-16 19:46:05 +0200
committerJuan Gomez Luna <juan.gomez@safari.ethz.ch>2021-06-16 19:46:05 +0200
commit3de4b495fb176eba9a0eb517a4ce05903cb67acb (patch)
treefc6776a94549d2d4039898f183dbbeb2ce013ba9 /run_strong_full.py
parentef5c3688c486b80a56d3c1cded25f2b2387f2668 (diff)
PrIM -- first commit
Diffstat (limited to 'run_strong_full.py')
-rw-r--r--run_strong_full.py122
1 files changed, 122 insertions, 0 deletions
diff --git a/run_strong_full.py b/run_strong_full.py
new file mode 100644
index 0000000..5f60698
--- /dev/null
+++ b/run_strong_full.py
@@ -0,0 +1,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.iteritems():
+ print (key )
+ print ("All")
+
+ else:
+ cmd = sys.argv[1]
+ print ("Application to run is: " + cmd )
+ if cmd == "All":
+ for key, value in applications.iteritems():
+ run(key)
+ os.chdir(rootdir)
+ else:
+ run(cmd)
+
+if __name__ == "__main__":
+ main()