Preliminary, untuned SOSP benchmark scripts.
This commit is contained in:
parent
65b613a67c
commit
663b54d5cf
1 changed files with 231 additions and 0 deletions
231
benchmarks/SOSP/generateScripts.pl
Executable file
231
benchmarks/SOSP/generateScripts.pl
Executable file
|
@ -0,0 +1,231 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use strict;
|
||||
|
||||
my $num_threads = 50;
|
||||
|
||||
#
|
||||
# Script to generate benchmarking scripts for the SOSP submission.
|
||||
#
|
||||
# This supports the following graphs:
|
||||
#
|
||||
# * Comparison with Berkeley DB:
|
||||
#
|
||||
# - Single-threaded raw throughput for LLADD's opeartions and
|
||||
# Berkeley DB's storage methods.
|
||||
#
|
||||
# - Multithreaded hash-based transactions per second.
|
||||
#
|
||||
# - Multithreaded response time distributions
|
||||
#
|
||||
# * Object serialization benchmarks:
|
||||
#
|
||||
# - OASYS memory footprint (@todo: How to limit berkeley db's
|
||||
# memory footprint?)
|
||||
# o Three graphs (fixed memory pool size)
|
||||
#
|
||||
# 100% object changed / update
|
||||
# 50%
|
||||
# 10%
|
||||
#
|
||||
# o Three lines per Graph: LLADD diff, LLADD naive, Berkeley DB
|
||||
#
|
||||
# * Validation of flexibilty / ability to perform optimizations
|
||||
#
|
||||
# - Load burst absorption (LLADD w/ async vs LLADD w/out async)
|
||||
#
|
||||
# - Transitive closure (oo7 subset) (LLADD naive vs LLADD
|
||||
# optimized: async + TsetRange())
|
||||
#
|
||||
# - CHT: Throughput vs number of replica groups: Disk Force vs
|
||||
# Two sites in RAM.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
## This perl script generates the input to timer.pl, which in turn
|
||||
## generates the input to plotting.pl, which generates performance
|
||||
## graphs. :)
|
||||
|
||||
|
||||
## Single threaded raw-throughput graph:
|
||||
|
||||
open(LLADD_NTA_HASH, ">LLADD_NTA_HASH.script");
|
||||
open(LLADD_FAST_HASH, ">LLADD_FAST_HASH.script");
|
||||
open(LLADD_ARRAY_LIST, ">LLADD_ARRAY_LIST.script");
|
||||
open(LLADD_LINKED_LIST, ">LLADD_LINKED_LIST.script");
|
||||
open(LLADD_RECORDID, ">LLADD_RECORDID.script");
|
||||
open(BDB_HASH, ">BDB_HASH.script");
|
||||
open(BDB_RAW, ">BDB_RAW.script");
|
||||
open(BULK_LOAD, ">BULK_LOAD.script");
|
||||
|
||||
for(my $i = 1; $i <= 10; $i ++) {
|
||||
my $insert_count = $i * 100000;
|
||||
|
||||
my $thread_count = 200;
|
||||
my $threaded_insert_count = $insert_count / 200;
|
||||
|
||||
print LLADD_NTA_HASH "../linearHashNTAThreaded 1 $insert_count\n";
|
||||
print LLADD_FAST_HASH "../logicalHash 1 $insert_count\n"; # could do ./naiveHash instead...
|
||||
print LLADD_ARRAY_LIST "../arrayListSet 1 $insert_count\n";
|
||||
print LLADD_LINKED_LIST "../pageOrientedList 1 $insert_count\n"; # could do ./linkedList instead...
|
||||
print LLADD_RECORDID "../rawSet 1 $insert_count\n";
|
||||
print BDB_HASH "../berkeleyDB/bdbHashThreaded 1 $insert_count 0 1\n";
|
||||
print BDB_RAW "../berkeleyDB/bdbHashThreaded 1 $insert_count 0 0\n";
|
||||
|
||||
print BULK_LOAD "../linearHashNTAThreaded 1 $insert_count\n";
|
||||
print BULK_LOAD "../logicalHash 1 $insert_count\n"; # could do ./naiveHash instead...
|
||||
print BULK_LOAD "../arrayListSet 1 $insert_count\n";
|
||||
print BULK_LOAD "../pageOrientedList 1 $insert_count\n"; # could do ./linkedList instead...
|
||||
print BULK_LOAD "../rawSet 1 $insert_count\n";
|
||||
print BULK_LOAD "../berkeleyDB/bdbHashThreaded 1 $insert_count 0 1\n";
|
||||
print BULK_LOAD "../berkeleyDB/bdbHashThreaded 1 $insert_count 0 0\n";
|
||||
|
||||
}
|
||||
|
||||
close(LLADD_NTA_HASH);
|
||||
close(LLADD_FAST_HASH);
|
||||
close(LLADD_ARRAY_LIST);
|
||||
close(LLADD_LINKED_LIST);
|
||||
close(LLADD_RECORDID);
|
||||
close(BDB_HASH);
|
||||
close(BDB_RAW);
|
||||
close(BULK_LOAD);
|
||||
|
||||
## Throughput vs. number of transactions
|
||||
|
||||
open(LLADD_HASH_TPS, ">LLADD_HASH_TPS.script");
|
||||
open(BDB_HASH_TPS, ">BDB_HASH_TPS.script");
|
||||
|
||||
open(LLADD_RECNO_TPS, ">LLADD_RECNO_TPS.script");
|
||||
open(BDB_RECNO_TPS, ">BDB_RECNO_TPS.script");
|
||||
|
||||
open(TPS, ">TPS.script");
|
||||
|
||||
for(my $i = 0; $i <= 200; $i ++ ) {
|
||||
my $insert_threads = $i * 10;
|
||||
if($insert_threads == 0) {
|
||||
$insert_threads = 1;
|
||||
}
|
||||
|
||||
my $insert_per_thread = 1000; # / $insert_threads;
|
||||
|
||||
print LLADD_HASH_TPS "../linearHashNTAThreaded $insert_threads $insert_per_thread 1\n";
|
||||
print BDB_HASH_TPS "../berkeleyDB/bdbHashThreaded $insert_threads $insert_per_thread 1 1\n";
|
||||
|
||||
print TPS "../linearHashNTAThreaded $insert_threads $insert_per_thread 1\n";
|
||||
print TPS "../berkeleyDB/bdbHashThreaded $insert_threads $insert_per_thread 1 1\n";
|
||||
|
||||
}
|
||||
|
||||
close(TPS);
|
||||
|
||||
## Response time degradation
|
||||
|
||||
open(LLADD_SEDA, ">LLADD_SEDA.script");
|
||||
open(BDB_SEDA, ">BDB_SEDA.script");
|
||||
|
||||
open(SEDA, ">SEDA.script");
|
||||
|
||||
for(my $i = 1; $i <= 20; $i ++) {
|
||||
# my $insert_count = $i * 100000;
|
||||
my $num_threads = $i * 20;
|
||||
my $tps_per_thread = 10;
|
||||
print LLADD_SEDA "../linearHashNTAWriteRequests $num_threads $tps_per_thread 1\n";
|
||||
print BDB_SEDA "../berkeleyDB/bdbHashWriteRequests $num_threads $tps_per_thread 1\n";
|
||||
|
||||
print SEDA "../linearHashNTAWriteRequests $num_threads $tps_per_thread 1\n";
|
||||
print SEDA "../berkeleyDB/bdbHashWriteRequests $num_threads $tps_per_thread 1\n";
|
||||
|
||||
}
|
||||
|
||||
close LLADD_SEDA;
|
||||
close BDB_SEDA;
|
||||
close SEDA;
|
||||
|
||||
exit;
|
||||
## ---------------- OASYS STUFF ---------------------------
|
||||
|
||||
# blah blah blah
|
||||
|
||||
## ---------------- ASYNC STUFF --------------------------
|
||||
|
||||
# load bursts
|
||||
|
||||
# trans closure
|
||||
|
||||
|
||||
## ---------------- CHT STUFF -----------------------------
|
||||
|
||||
#cht vs # hosts.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#open(LLADD_THREADED, ">LLADD_THREADED.script" );
|
||||
#open(LLADD_LOGICAL, ">LLADD_LOGICAL.script" );
|
||||
#open(LLADD_PHYSICAL, ">LLADD_PHYSICAL.script" );
|
||||
#open(LLADD_RAW_PHYSICAL, ">LLADD_RAW_PHYSICAL.script");
|
||||
#open(BDB_RAW_INSERT, ">BDB_RAW_INSERT.script" );
|
||||
#open(BDB_HASH_INSERT, ">BDB_HASH_INSERT.script" );
|
||||
|
||||
# New tests
|
||||
|
||||
#open(LLADD_NTA, ">LLADD_NTA.script");
|
||||
#open(LLADD_LINKED_LIST, ">LLADD_LINKED_LIST.script");
|
||||
#open(LLADD_PAGED_LIST, ">LLADD_PAGED_LIST.script");
|
||||
#open(BDB_HASH_THREADED, ">BDB_HASH_THREADED.script");
|
||||
|
||||
#open(EVERYTHING, ">EVERYTHING.script" );
|
||||
|
||||
|
||||
|
||||
for(my $i = 1; $i <= 10; $i += .5) {
|
||||
my $insert_count = $i * 100000;
|
||||
|
||||
my $threaded_insert_count = $insert_count / $num_threads;
|
||||
|
||||
print LLADD_THREADED "./linearHashNTAThreaded $num_threads $threaded_insert_count\n";
|
||||
print LLADD_LOGICAL "./logicalHash 1 $insert_count\n";
|
||||
print LLADD_PHYSICAL "./naiveHash 1 $insert_count\n";
|
||||
print LLADD_RAW_PHYSICAL "./arrayListSet 1 $insert_count\n";
|
||||
print BDB_RAW_INSERT "./berkeleyDB/bdbRaw 1 $insert_count\n";
|
||||
print BDB_HASH_INSERT "./berkeleyDB/bdbHash 1 $insert_count\n";
|
||||
|
||||
print LLADD_NTA "./linearHashNTA 1 $insert_count\n";
|
||||
print LLADD_LINKED_LIST "./linkedListNTA 1 $insert_count\n";
|
||||
print LLADD_PAGED_LIST "./pageOrientedListNTA 1 $insert_count\n";
|
||||
|
||||
print BDB_HASH_THREADED "./berkeleyDB/bdbHashThreaded $num_threads $threaded_insert_count\n";
|
||||
|
||||
|
||||
print EVERYTHING "./linearHashNTAThreaded $num_threads $threaded_insert_count\n";
|
||||
print EVERYTHING "./logicalHash 1 $insert_count\n";
|
||||
print EVERYTHING "./naiveHash 1 $insert_count\n";
|
||||
print EVERYTHING "./arrayListSet 1 $insert_count\n";
|
||||
print EVERYTHING "./berkeleyDB/bdbRaw 1 $insert_count\n";
|
||||
|
||||
print EVERYTHING "./linearHashNTA 1 $insert_count\n";
|
||||
print EVERYTHING "./linkedListNTA 1 $insert_count\n";
|
||||
print EVERYTHING "./pageOrientedListNTA 1 $insert_count\n";
|
||||
|
||||
if($i < 4) {
|
||||
print EVERYTHING "./berkeleyDB/bdbHashThreaded $num_threads $threaded_insert_count\n";
|
||||
print EVERYTHING "./berkeleyDB/bdbHash 1 $insert_count\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
close(LLADD_THREADED);
|
||||
close(LLADD_LOGICAL);
|
||||
close(LLADD_PHYSICAL);
|
||||
close(LLADD_RAW_PHYSICAL);
|
||||
close(BDB_RAW_INSERT);
|
||||
close(BDB_HASH_INSERT);
|
||||
close(EVERYTHING);
|
||||
close(LLADD_NTA);
|
||||
close(LLADD_LINKED_LIST);
|
||||
close(LLADD_PAGED_LIST);
|
||||
close(BDB_HASH_THREADED);
|
Loading…
Reference in a new issue