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
|
import os
import argparse
import subprocess
import time
parser = argparse.ArgumentParser(description = "Collects entropy for different data patterns")
parser.add_argument('dimm', help="DIMM label under test")
parser.add_argument('temperature', help="DIMM temperature in centigrades")
parser.add_argument('iters', help="How many times do we QUAC to find entropy")
parser.add_argument('stride', help="Stride (in rows) used to skim through segments, default: 4")
args = parser.parse_args()
# ---------------- SETUP DIRECTORIES -------------------
if not os.path.isdir("data"):
os.mkdir("data")
if not os.path.isdir("data/" + args.dimm):
os.mkdir("data/" + args.dimm)
if not os.path.isdir("data/" + args.dimm + "/ent"):
os.mkdir("data/" + args.dimm + "/ent")
if not os.path.isdir("data/" + args.dimm + "/ent/" + args.temperature + "C"):
os.mkdir("data/" + args.dimm + "/ent/" + args.temperature + "C")
outdir = os.path.normpath("data/" + args.dimm + "/ent/" + args.temperature + "C")
# -------------------- RUN TESTS -----------------------
placements = ["1000", "1001", "1010", "1011", "1100" , "1101", "1110", "1111", \
"0111", "0110", "0101", "0100", "0011" , "0010", "0001", "0000"]
ent_path = os.path.normpath("bin/ENT")
results_path = outdir
stride = args.stride
iters = args.iters
for placement in placements:
print("sudo " + ent_path + " " + results_path + " " + placement + " " + stride + " " + iters)
os.system("sudo " + ent_path + " " + results_path + " " + placement + " " + stride + " " + iters)
|