Browse Source

The 2^26 experiments won't run in just 16 GB of RAM

Ian Goldberg 3 months ago
parent
commit
c3623c6c23
4 changed files with 36 additions and 3 deletions
  1. 9 1
      repro/generate_raw_data_bs.sh
  2. 8 1
      repro/generate_raw_data_heap.sh
  3. 8 1
      repro/generate_raw_data_reads.sh
  4. 11 0
      repro/repro

+ 9 - 1
repro/generate_raw_data_bs.sh

@@ -7,10 +7,18 @@ if [ "$1" != "" ]; then
     nitrs="$1"
 fi
 
+# Check whether we have enough RAM to do the largest experiment
+if [ "$RAMEN_MAXGB" -gt 39 ]; then
+    large_exps="26"
+else
+    large_exps=""
+fi
+
+
 cd ..
 mkdir -p repro/data
 for itr in $(seq 1 $nitrs); do
-    for size in 16 18 20 22 24 26; do
+    for size in 16 18 20 22 24 $large_exps; do
         now=`date`; echo "$now: Running 1 search on DB of size 2^${size} ..."
         Docker/run-experiment ${size} ${size} >> repro/data/log_${size}_1_bs.out
     done

+ 8 - 1
repro/generate_raw_data_heap.sh

@@ -7,10 +7,17 @@ if [ "$1" != "" ]; then
     nitrs="$1"
 fi
 
+# Check whether we have enough RAM to do the largest experiment
+if [ "$RAMEN_MAXGB" -gt 39 ]; then
+    large_exps="26"
+else
+    large_exps=""
+fi
+
 cd ..
 mkdir -p repro/data
 for itr in $(seq 1 $nitrs); do
-    for size in 16 18 20 22 24 26; do
+    for size in 16 18 20 22 24 $large_exps; do
         ops=$(( (size-1) * 6))
         now=`date`; echo "$now: Running heap extract on heapsize of 2^${size} ..."
 	Docker/run-experiment ${size} ${ops} >> repro/data/log_${size}_1_heap.out

+ 8 - 1
repro/generate_raw_data_reads.sh

@@ -7,10 +7,17 @@ if [ "$1" != "" ]; then
     nitrs="$1"
 fi
 
+# Check whether we have enough RAM to do the largest experiment
+if [ "$RAMEN_MAXGB" -gt 39 ]; then
+    large_exps="26"
+else
+    large_exps=""
+fi
+
 cd ..
 mkdir -p repro/data
 for itr in $(seq 1 $nitrs); do
-    for size in 16 18 20 22 24 26; do
+    for size in 16 18 20 22 24 $large_exps; do
         now=`date`; echo "$now: Running 10 reads on DB of size 2^${size} ..."
         Docker/run-experiment ${size} 10 >> repro/data/log_${size}_10_reads.out
     done

+ 11 - 0
repro/repro

@@ -22,6 +22,17 @@ if [ "$RAMEN_NUMA_P2" == "" -a "$PRAC_NUMA_P2" != "" ]; then
     export RAMEN_NUMA_P2="$PRAC_NUMA_P2"
 fi
 
+# If the PRAC memory usage is set, use it for Ramen.
+if [ "$PRAC_P0_MAXGB" != "" ]; then
+    export RAMEN_MAXGB=$((3*PRAC_P0_MAXGB))
+elif [ "$PRAC_P02_MAXGB" != "" ]; then
+    export RAMEN_MAXGB=$((2*PRAC_P02_MAXGB))
+elif [ "$PRAC_MAXGB" != "" ]; then
+    export RAMEN_MAXGB=$PRAC_MAXGB
+else
+    export RAMEN_MAXGB=16
+fi
+
 # Allow running only subsets of the experiment suite.  Valid values are
 # "test", "all", "none".  ("none" is useful if you just want to re-parse
 # the output of existing logs.)  You can also say "single" followed by