2022-04-17 16:18:54 +00:00
|
|
|
import argparse
|
|
|
|
from time import sleep
|
2022-04-16 12:20:44 +00:00
|
|
|
import subprocess as sub
|
|
|
|
|
2022-04-17 16:18:54 +00:00
|
|
|
# Construct an argument parser
|
|
|
|
all_args = argparse.ArgumentParser()
|
|
|
|
|
|
|
|
all_args.add_argument("-b", "--Value1", action="store", dest="b",
|
|
|
|
type=int, choices=range(1,6), help="Bayesian model of size x")
|
|
|
|
all_args.add_argument("-f", "--Value2", action="store", dest="f",
|
|
|
|
type=int, choices=range(1,6), help="Frequentist model of size x")
|
|
|
|
args = vars(all_args.parse_args())
|
|
|
|
|
|
|
|
|
|
|
|
check = list(args.values())
|
|
|
|
if all(v is None for v in check):
|
|
|
|
raise Exception("One argument required")
|
|
|
|
elif None in check:
|
|
|
|
if args['f'] is not None:
|
|
|
|
cmd = ["python", "main_frequentist.py"]
|
|
|
|
elif args['b'] is not None:
|
|
|
|
cmd = ["python", "main_bayesian.py"]
|
|
|
|
else:
|
|
|
|
raise Exception("Only one argument allowed")
|
|
|
|
|
|
|
|
|
|
|
|
wide = args["f"] or args["b"]
|
|
|
|
|
|
|
|
with open("tmp", "w") as file:
|
|
|
|
file.write(str(wide))
|
|
|
|
|
|
|
|
sleep(3)
|
|
|
|
|
|
|
|
|
|
|
|
if cmd[1] == "main_frequentist.py":
|
|
|
|
cmd2 = ["./cpu_watt.sh", "freq_{}_cpu_watts".format(wide)]
|
|
|
|
cmd3 = ["./mem_free.sh", "freq_{}_ram_use".format(wide)]
|
|
|
|
with open("frq", "w") as file:
|
|
|
|
file.write(str(1))
|
|
|
|
with open("bay", "w") as file:
|
|
|
|
file.write(str(0))
|
|
|
|
elif cmd[1] == "main_bayesian.py":
|
|
|
|
cmd2 = ["./cpu_watt.sh", "bayes_{}_cpu_watts".format(wide)]
|
|
|
|
cmd3 = ["./mem_free.sh", "bayes_{}_ram_use".format(wide)]
|
|
|
|
with open("bay", "w") as file:
|
|
|
|
file.write(str(1))
|
|
|
|
with open("frw", "w") as file:
|
|
|
|
file.write(str(0))
|
2022-04-16 12:20:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
path = sub.check_output(['pwd'])
|
|
|
|
path = path.decode()
|
|
|
|
path = path.replace('\n', '')
|
|
|
|
|
2022-04-17 16:18:54 +00:00
|
|
|
#startWattCounter = 'python ' + path + '/gpu_sample_draw.py'
|
2022-04-16 12:20:44 +00:00
|
|
|
|
|
|
|
#test = startNODE.split()
|
|
|
|
#test.append(pythonEnd)
|
|
|
|
#test.append(pythonEnd2)
|
|
|
|
|
|
|
|
#startNODE = test
|
|
|
|
|
|
|
|
##print(startNODE)
|
|
|
|
##print(startWattCounter)
|
|
|
|
|
|
|
|
p1 = sub.Popen(cmd)
|
|
|
|
#p2 = sub.Popen(startWattCounter.split())
|
|
|
|
p3 = sub.Popen(cmd2)
|
|
|
|
p4 = sub.Popen(cmd3)
|
|
|
|
|
|
|
|
retcode = p1.wait()
|
2022-04-17 16:18:54 +00:00
|
|
|
print("Return code: {}".format(retcode))
|
2022-04-16 12:20:44 +00:00
|
|
|
|
|
|
|
p1.kill()
|
|
|
|
#p2.kill()
|
|
|
|
p3.kill()
|
|
|
|
p4.kill()
|