Skip to content

Commit 06f1a72

Browse files
author
Jinglei Ren
committed
Adds scripts for running/parsing evaluation.
1 parent 4b06714 commit 06f1a72

File tree

8 files changed

+96
-3
lines changed

8 files changed

+96
-3
lines changed

parse_result.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/python
2+
3+
import sys
4+
import os
5+
import numpy
6+
7+
# Main
8+
9+
if len(sys.argv) != 2:
10+
print "Usage: %s FileName" % sys.argv[0]
11+
sys.exit(-1)
12+
13+
path = sys.argv[1]
14+
15+
lines = [line.strip().split('\t') for line in open(path)]
16+
17+
results = { }
18+
19+
db_index = set() # db name
20+
tn_index = set() # thread number
21+
22+
for line in lines:
23+
if line[0][0] == '#':
24+
continue
25+
db_name = line[0]
26+
db_index.add(db_name)
27+
28+
dir_name, workload = os.path.split(line[1])
29+
workload = os.path.splitext(workload)[0]
30+
31+
num_threads = int(line[2])
32+
tn_index.add(num_threads)
33+
34+
throughput = float(line[3])
35+
if not results.has_key(workload):
36+
results[workload] = { }
37+
if not results[workload].has_key(db_name):
38+
results[workload][db_name] = { }
39+
if not results[workload][db_name].has_key(num_threads):
40+
results[workload][db_name][num_threads] = [ ]
41+
results[workload][db_name][num_threads].append(throughput)
42+
43+
db_index = sorted(db_index)
44+
tn_index = sorted(tn_index)
45+
46+
for wl in sorted(results.keys()):
47+
out_file = open(os.path.join(dir_name, wl + ".result"), 'w+')
48+
# Prints header
49+
line = "#"
50+
for db in db_index:
51+
line += '\t' + db
52+
out_file.write(line + '\n')
53+
# Prints results
54+
for tn in tn_index:
55+
line = str(tn)
56+
for db in db_index:
57+
data = results[wl][db][tn]
58+
line += '\t' + str(numpy.median(numpy.array(data)))
59+
out_file.write(line + '\n')
60+

run.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#/bin/bash
2+
3+
repeat_num=3
4+
db_names=(
5+
"lock_stl"
6+
"lock_slib"
7+
"tbb_rand"
8+
"tbb_scan"
9+
"svm_stl"
10+
"svm_slib"
11+
)
12+
13+
trap 'kill $(jobs -p)' SIGINT
14+
15+
if [ $# -ne 1 ]; then
16+
echo "Usage: $0 [dir of workload specs]"
17+
exit 1
18+
fi
19+
20+
workload_dir=$1
21+
22+
for file_name in $workload_dir/workload*.spec; do
23+
for ((tn=1; tn<=8; tn=tn*2)); do
24+
for db_name in ${db_names[@]}; do
25+
for ((i=1; i<=repeat_num; ++i)); do
26+
echo "Running $db_name with $tn threads for $file_name"
27+
./ycsbc -db $db_name -threads $tn -P $file_name 2>>ycsbc.output &
28+
wait
29+
done
30+
done
31+
done
32+
done
33+
File renamed without changes.
File renamed without changes.

workloads/workloadc renamed to workloads/workloadc.spec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
# Default data size: 1 KB records (10 fields, 100 bytes each, plus key)
77
# Request distribution: zipfian
88

9-
recordcount=1000
10-
operationcount=1000
9+
recordcount=100000
10+
operationcount=1000000
1111
workload=com.yahoo.ycsb.workloads.CoreWorkload
1212

1313
readallfields=true
File renamed without changes.

workloads/workloade renamed to workloads/workloade.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# key, and then request a number of records; this works fine even for hashed insertion.
1313

1414
recordcount=100000
15-
operationcount=10000
15+
operationcount=50000
1616
workload=com.yahoo.ycsb.workloads.CoreWorkload
1717

1818
readallfields=true
File renamed without changes.

0 commit comments

Comments
 (0)