diff options
author | Juan Gomez Luna <juan.gomez@safari.ethz.ch> | 2021-06-16 19:46:05 +0200 |
---|---|---|
committer | Juan Gomez Luna <juan.gomez@safari.ethz.ch> | 2021-06-16 19:46:05 +0200 |
commit | 3de4b495fb176eba9a0eb517a4ce05903cb67acb (patch) | |
tree | fc6776a94549d2d4039898f183dbbeb2ce013ba9 /run_strong_rank.py | |
parent | ef5c3688c486b80a56d3c1cded25f2b2387f2668 (diff) |
PrIM -- first commit
Diffstat (limited to 'run_strong_rank.py')
-rw-r--r-- | run_strong_rank.py | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/run_strong_rank.py b/run_strong_rank.py new file mode 100644 index 0000000..6763bc7 --- /dev/null +++ b/run_strong_rank.py @@ -0,0 +1,133 @@ +import os +import sys +import getpass + +rootdir = "/" # Include path to repo +print("Root dir: " + rootdir) + +applications = {"VA" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 2621440 -x 1"], + "GEMV" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/gemv_host -m 8192 -n 1024"], + "SpMV" : ["NR_DPUS=X NR_TASKLETS=Y make all", "./bin/host_code -v 0"], + "SEL" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 3932160 -x 1"], + "UNI" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 3932160 -x 1"], + "BS" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/bs_host -i 262144"], + "TS" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/ts_host -n 524288"], + "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 8192 -n 1024"], + "NW" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z BL_IN=2 make all", "./bin/nw_host -w 0 -e 1 -n 2560"], + "HST-S" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -b 256 -x 1"], + "HST-L" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -b 256 -x 1"], + "RED" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z VERSION=SINGLE make all", "./bin/host_code -w 0 -e 1 -i 6553600 -x 1"], + "SCAN-SSA" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 3932160 -x 1"], + "SCAN-RSS" : ["NR_DPUS=X NR_TASKLETS=Y BL=Z make all", "./bin/host_code -w 0 -e 1 -i 3932160 -x 1"], + "TRNS" : ["NR_DPUS=X NR_TASKLETS=Y make all", "./bin/host_code -w 0 -e 1 -p 64 -o 12288 -x 1"],} + +def run(app_name): + + NR_TASKLETS = [1, 2, 4, 8, 16] + NR_DPUS = [1, 4, 16, 64] + 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)) + if (app_name == "NW"): + if (r == 1): + m = m.replace("Z", str(2560)) + elif (r == 4): + m = m.replace("Z", str(640)) + elif (r == 16): + m = m.replace("Z", str(160)) + elif (r == 64): + m = m.replace("Z", str(40)) + else: + 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/outs_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() |