Index: doc/theses/colby_parsons_MMAth/benchmarks/channels/plotData.py
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/channels/plotData.py	(revision e2f827f9e2081dbb0e6aa5328faacc19f8633e06)
+++ doc/theses/colby_parsons_MMAth/benchmarks/channels/plotData.py	(revision 9082d7e82d9a7493aed9e548946de1837caa325a)
@@ -36,11 +36,5 @@
     procs.append(int(val))
 
-# 3rd line has num locks args
-line = readfile.readline()
-locks = []
-for val in line.split():
-    locks.append(int(val))
-
-# 4th line has number of variants
+# 3rd line has number of variants
 line = readfile.readline()
 names = line.split()
@@ -50,10 +44,20 @@
 lines = (line for line in lines if line) # Non-blank lines
 
+class Bench(Enum):
+    Unset = 0
+    Contend = 1
+    Zero = 2
+    Barrier = 3
+    Churn = 4
+    Daisy_Chain = 5
+    Hot_Potato = 6
+    Pub_Sub = 7
+
 nameSet = False
-currLocks = -1 # default val
+currBench = Bench.Unset # default val
 count = 0
 procCount = 0
 currVariant = 0
-name = "Aggregate Lock"
+name = ""
 var_name = ""
 sendData = [0.0 for j in range(numVariants)]
@@ -64,7 +68,30 @@
     # print(line)
     
-    if currLocks == -1:
-        lineArr = line.split()
-        currLocks = lineArr[-1]
+    if currBench == Bench.Unset:
+        if line == "contend:":
+            name = "Contend"
+            currBench = Bench.Contend
+        elif line == "zero:":
+            name = "Zero"
+            currBench = Bench.Zero
+        elif line == "barrier:":
+            name = "Barrier"
+            currBench = Bench.Barrier
+        elif line == "churn:":
+            name = "Churn"
+            currBench = Bench.Churn
+        elif line == "daisy_chain:":
+            name = "Daisy_Chain"
+            currBench = Bench.Daisy_Chain
+        elif line == "hot_potato:":
+            name = "Hot_Potato"
+            currBench = Bench.Hot_Potato
+        elif line == "pub_sub:":
+            name = "Pub_Sub"
+            currBench = Bench.Pub_Sub
+        else:
+            print("Expected benchmark name")
+            print("Line: " + line)
+            sys.exit()
         continue
 
@@ -95,17 +122,22 @@
             if currVariant == numVariants:
                 fig, ax = plt.subplots()
-                plt.title(name + " Benchmark: " + str(currLocks) + " Locks")
-                plt.ylabel("Throughput (entries)")
+                plt.title(name + " Benchmark")
+                plt.ylabel("Throughput (channel operations)")
                 plt.xlabel("Cores")
                 for idx, arr in enumerate(data):
                     plt.errorbar( procs, arr, [bars[idx][0], bars[idx][1]], capsize=2, marker='o' )
+                
                 plt.yscale("log")
+                # plt.ylim(1, None)
+                # ax.get_yaxis().set_major_formatter(ticks.ScalarFormatter())
+                # else:
+                #     plt.ylim(0, None)
                 plt.xticks(procs)
                 ax.legend(names)
-                # fig.savefig("plots/" + machineName + "Aggregate_Lock_" + str(currLocks) + ".png")
-                plt.savefig("plots/" + machineName + "Aggregate_Lock_" + str(currLocks) + ".pgf")
+                # fig.savefig("plots/" + machineName + name + ".png")
+                plt.savefig("plots/" + machineName + name + ".pgf")
                 fig.clf()
 
                 # reset
-                currLocks = -1
+                currBench = Bench.Unset
                 currVariant = 0
Index: doc/theses/colby_parsons_MMAth/benchmarks/channels/run
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/channels/run	(revision e2f827f9e2081dbb0e6aa5328faacc19f8633e06)
+++ doc/theses/colby_parsons_MMAth/benchmarks/channels/run	(revision 9082d7e82d9a7493aed9e548946de1837caa325a)
@@ -85,26 +85,24 @@
 }
 
-numtimes=11
-
-# locks=('-DLOCKS=L1' '-DLOCKS=L2' '-DLOCKS=L3' '-DLOCKS=L4' '-DLOCKS=L5' '-DLOCKS=L6' '-DLOCKS=L7' '-DLOCKS=L8')
-# locks='1 2 3 4 5 6 7 8'
-lock_flags=('-DLOCKS=L2' '-DLOCKS=L4' '-DLOCKS=L8')
-locks=('2' '4' '8')
+numtimes=5
 
 num_threads='2 4 8 16 24 32'
-# num_threads='2 4 8'
+# num_threads='2'
 
 # toggle benchmarks
-order=${true}
-rand=${true}
-baseline=${true}
+zero=${false}
+contend=${true}
+barrier=${false}
+churn=${false}
+daisy_chain=${false}
+hot_potato=${false}
+pub_sub=${false}
 
 runCFA=${true}
-runCPP=${true}
+runGO=${true}
 # runCFA=${false}
-# runCPP=${false}
+# runGO=${false}
 
 cfa=~/cfa-cc/driver/cfa
-cpp=g++
 
 # Helpers to minimize code duplication
@@ -152,26 +150,9 @@
 echo $num_threads
 
-for i in ${!locks[@]}; do
-        echo -n ${locks[$i]}' '
-done
-echo ""
-
-if [ ${runCFA} -eq ${true} ] && [ ${order} -eq ${true} ]; then
-    echo -n 'CFA-order '
-fi
-if [ ${runCPP} -eq ${true} ] && [ ${order} -eq ${true} ]; then
-    echo -n 'CPP-order '
-fi
-if [ ${runCFA} -eq ${true} ] && [ ${baseline} -eq ${true} ]; then
-    echo -n 'CFA-baseline '
-fi
-if [ ${runCPP} -eq ${true} ] && [ ${baseline} -eq ${true} ]; then
-    echo -n 'CPP-baseline '
-fi
-if [ ${runCFA} -eq ${true} ] && [ ${rand} -eq ${true} ]; then
-    echo -n 'CFA-rand '
-fi
-if [ ${runCPP} -eq ${true} ] && [ ${rand} -eq ${true} ]; then
-    echo -n 'CPP-rand '
+if [ ${runCFA} -eq ${true} ]; then
+    echo -n 'CFA '
+fi
+if [ ${runGO} -eq ${true} ]; then
+    echo -n 'Go '
 fi
 echo ""
@@ -182,16 +163,13 @@
 cfa_flags='-quiet -O3 -nodebug -DNDEBUG'
 
-# cpp flagse
-cpp_flags='-O3 -std=c++17 -lpthread -pthread -DNDEBUG'
-
 # run the benchmarks
 
-run_order() {
+run_contend() {
     post_args=${1}
 
     if [ ${runCFA} -eq ${true} ] ; then
         cd cfa # CFA RUN
-        print_header 'CFA-'${3}
-        ${cfa} ${cfa_flags} ${2} ${3}.cfa -o a.${hostname} > /dev/null 2>&1
+        print_header 'CFA'
+        ${cfa} ${cfa_flags} ${2}.cfa -o a.${hostname} > /dev/null 2>&1
         run_bench
         rm a.${hostname}
@@ -199,28 +177,47 @@
     fi # done CFA
 
-    if [ ${runCPP} -eq ${true} ] ; then
-        cd cpp # CPP RUN
-        print_header 'CPP-'${3}
-        ${cpp} ${cpp_flags} ${2} ${3}.cc -o a.${hostname} > /dev/null 2>&1
+    if [ ${runGO} -eq ${true} ] ; then
+        cd go/${2} # Go RUN
+        print_header 'Go'
+        go build -o a.${hostname} > /dev/null 2>&1
         run_bench
         rm a.${hostname}
         cd - > /dev/null
-    fi # done CPP
+    fi # done Go
 }
 
 # /usr/bin/time -f "%Uu %Ss %Er %Mkb"
-
-for i in ${!locks[@]}; do
-    echo "locks: "${locks[$i]}
-    if [ ${order} -eq ${true} ] ; then
-        run_order ${locks[$i]} ${lock_flags[$i]} 'order'
-    fi
-    if [ ${baseline} -eq ${true} ] ; then
-        run_order ${locks[$i]} ${lock_flags[$i]} 'baseline'
-    fi
-    if [ ${rand} -eq ${true} ] ; then
-        run_order ${locks[$i]} '-DLOCKS=L8' 'rand'
-    fi
-done
-
-
+if [ ${contend} -eq ${true} ] ; then
+    echo "contend: "
+    run_contend '128' 'contend'
+fi
+
+if [ ${zero} -eq ${true} ] ; then
+    echo "zero: "
+    run_contend '0' 'contend'
+fi
+
+if [ ${barrier} -eq ${true} ] ; then
+    echo "barrier: "
+    run_contend '' 'barrier'
+fi
+
+if [ ${churn} -eq ${true} ] ; then
+    echo "churn: "
+    run_contend '' 'churn'
+fi
+
+if [ ${daisy_chain} -eq ${true} ] ; then
+    echo "daisy_chain: "
+    run_contend '' 'daisy_chain'
+fi
+
+if [ ${hot_potato} -eq ${true} ] ; then
+    echo "hot_potato: "
+    run_contend '' 'hot_potato'
+fi
+
+if [ ${pub_sub} -eq ${true} ] ; then
+    echo "pub_sub: "
+    run_contend '' 'pub_sub'
+fi
