Compare commits

...

3 Commits

Author SHA1 Message Date
966574dd1f Change default sieve size to 10485760.
I don't know why yet, but this seems to be the near optimal sieve size
when testing with the benchmarking script. It's equal to `1024^2 * 10`.
2025-12-10 14:59:52 +01:00
41bc18a17c Change test to 1,000,000,000 primes. 2025-12-10 14:59:33 +01:00
5dde94ae8c Add custom sieve and trials arguments to benchmark script. 2025-12-10 14:45:59 +01:00
2 changed files with 22 additions and 5 deletions

View File

@@ -1,9 +1,10 @@
#!/bin/bash
BIN="./target/release/indivisible"
EXE="./target/release/indivisible"
OPTIONS=()
TRIALS=20
if ! [ -f "$BIN" ]
if ! [ -f "$EXE" ]
then
>&2 echo "Release build not available. Please run 'cargo build -r'."
exit 1
@@ -15,11 +16,27 @@ then
exit 1
fi
echo "Calculating primes up to 100,000,000"
while getopts "t:s:" opt
do
case "$opt" in
s)
OPTIONS=("${OPTIONS[@]}" -s "$OPTARG")
;;
t)
TRIALS="$OPTARG"
;;
*)
>&2 echo "Uknown option $opt"
exit 1
;;
esac
done
echo "Calculating primes up to 1,000,000,000"
TOTAL="0"
for _ in $(seq "$TRIALS")
do
TIME=$(command time -f "%e" "$BIN" 100000000 2>&1 >/dev/null)
TIME=$(command time -f "%e" "$EXE" "${OPTIONS[@]}" 1000000000 2>&1 >/dev/null)
TOTAL=$(calc "$TOTAL + $TIME")
done

View File

@@ -35,7 +35,7 @@ struct Opt {
test:bool,
#[structopt(help = "Max of the prime to generate or number to test for primality")]
num:usize,
#[structopt(short, long, name = "SIZE", default_value = "1000", help = "Set a custom sieve size")]
#[structopt(short, long, name = "SIZE", default_value = "10485760", help = "Set a custom sieve size")]
sieve:usize,
//#[structopt(short, long, name = "n", default_value = "1", help = "Number of threads to spawn")]
//jobs:u64,