Compare commits

...
Author SHA1 Message Date
Eric Biggers bc02ba9d2f Optimization 2 2016-06-04 13:07:42 -05:00
Eric Biggers 4c5d30387a Optimization 2016-06-04 13:07:41 -05:00
4 changed files with 65 additions and 0 deletions
@@ -0,0 +1,4 @@
VARIABLE MIN INITIAL MAX
BLOCK_SIZE_SHIFT 0 12 20
BLOCK_CUTOFF 0 200 2000
OBSERVATIONS_PER_CHECK 10 512 10000
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/Rscript
PARAMS = read.table("block_split_params.txt", header=TRUE, row.names=1)
fn = function(params) {
params = as.integer(params)
params = pmax(params, PARAMS$MIN)
params = pmin(params, PARAMS$MAX)
env = paste(rownames(PARAMS), "=", params, sep='', collapse=' ')
cat(env, "\n")
result = system(paste(env, "./try_block_params.sh"), intern=TRUE)
stopifnot(attr(result, "status") == 0)
result = as.numeric(result)
cat(result, "\n")
return(result)
}
result = optim(PARAMS$INITIAL, fn)
print(result)
+15
View File
@@ -0,0 +1,15 @@
testdata -6:
BLOCK_SIZE_SHIFT=20 BLOCK_CUTOFF=182 MIN_BLOCK_LENGTH=8071 MAX_BLOCK_LENGTH=299707 OBSERVATIONS_PER_CHECK=553
8727764
moby.txt -12:
BLOCK_SIZE_SHIFT=20 BLOCK_CUTOFF=239 MIN_BLOCK_LENGTH=36336 MAX_BLOCK_LENGTH=303025 OBSERVATIONS_PER_CHECK=772
476063
silesia -6:
BLOCK_SIZE_SHIFT=20 BLOCK_CUTOFF=189 MIN_BLOCK_LENGTH=10225 MAX_BLOCK_LENGTH=323665 OBSERVATIONS_PER_CHECK=556
67927205
0b7d62c8-1ae5-11e6-818e-ca27821f62e9.png -12:
BLOCK_SIZE_SHIFT=20 BLOCK_CUTOFF=193 MIN_BLOCK_LENGTH=21726 MAX_BLOCK_LENGTH=300470 OBSERVATIONS_PER_CHECK=517
596524
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
set -e
if [ -z "$LEVEL" -o -z "$INPUTFILE" ]; then
echo "Must specify LEVEL and INPUTFILE" 1>&2
exit 1
fi
topdir="$(dirname "$0")/../.."
git checkout -f "$topdir/src" > /dev/null
sed -i -e \
"
s/\<block_size >> 12\>/block_size >> $BLOCK_SIZE_SHIFT/
s/\<200 \* stats->num_observations/$BLOCK_CUTOFF * stats->num_observations/
s/num_new_observations < 512\>/num_new_observations < $OBSERVATIONS_PER_CHECK/
" \
"$topdir/src/deflate_compress.c"
make -C "$topdir" -j BUILD_BENCHMARK_PROGRAM=yes > /dev/null
"$topdir/benchmark" -l $LEVEL -s 100000000 $INPUTFILE | grep Compressed | cut -f 4 -d ' '