diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh
index 0ade27c0f421fdd9e27e944ffc1bd45399c9ef68..fcd1fa7e2e0f309d0c1af400f435640c86d04ef4 100644
--- a/experiments/memcached.shared.sh
+++ b/experiments/memcached.shared.sh
@@ -51,7 +51,7 @@ run_mutilate() {
     fi
     echo "Running mutilate with $CONNS connections per agent (core) and QPS = $QPS"
     perf_stat_start "$1"
-    sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1.txt
+    sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1$EXP_AUX_SUFFIX.txt
     perf_stat_stop
     NO_RUNS=$((NO_RUNS + 1))
 }
diff --git a/experiments/perf.shared.sh b/experiments/perf.shared.sh
index db84939e8e284bc1717f89258c02256795a1d44c..6012f24a608899f03d9edbfbf7bfc2d7d92eab96 100644
--- a/experiments/perf.shared.sh
+++ b/experiments/perf.shared.sh
@@ -1,5 +1,5 @@
 perf_stat_start() {
-    $PERF stat -C 0-$((THREADS - 1)) -e LLC-load-misses:u,LLC-load-misses:k,mem_load_uops_retired.llc_miss,mem_uops_retired.all_loads,cycles,cycles:u,cycles:k,instructions,instructions:u,instructions:k,stalled-cycles-frontend,stalled-cycles-backend -o "$DATA_OUT/stat_$1.txt" &
+    $PERF stat -C 0-$((THREADS - 1)) -e LLC-load-misses:u,LLC-load-misses:k,mem_load_uops_retired.llc_miss,mem_uops_retired.all_loads,cycles,cycles:u,cycles:k,instructions,instructions:u,instructions:k,stalled-cycles-frontend,stalled-cycles-backend -o "$DATA_OUT/stat_$1$EXP_AUX_SUFFIX.txt" &
     PERF_STAT_PID=$!
 }
 
diff --git a/run.sh b/run.sh
index 47c2facd387ad8630710e24980e9f59c60bcd8b7..02eb196b21c6ee8ea5a596491da9a9771313de44 100755
--- a/run.sh
+++ b/run.sh
@@ -46,6 +46,15 @@ while [[ $# -gt 0 ]]; do
             USERSTACK=true
             shift
             ;;
+        -f|--force)
+            FORCE_REMOVE=true
+            shift
+            ;;
+        --aux)
+            EXP_AUX_SUFFIX="_aux$2"
+            shift
+            shift
+            ;;
         *)
             echo "Unknown option $1"
             exit 1
@@ -122,8 +131,16 @@ fi
 
 DATA_OUT="$EXP_ROOT/data/$EXPERIMENT_NAME"
 
-rm -rf "$DATA_OUT"
-mkdir -p "$DATA_OUT"
+if [ -d "$DATA_OUT" ] && [ -z "$EXP_AUX_SUFFIX" ]; then
+    if [ "$FORCE_REMOVE" == "true" ]; then
+        rm -rf "$DATA_OUT"
+    else
+        echo "Experiment directory $DATA_OUT already exists. Remove it manually or use --force. To run auxillary experiments for multiple sets of data, use --aux <num>"
+        exit 1
+    fi
+else
+    mkdir -p "$DATA_OUT"
+fi
 
 run_exp