Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/cfa/balance.cfa
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/cfa/balance.cfa	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/cfa/balance.cfa	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -99,5 +99,4 @@
 	} // switch
 
-    //C_TODO: make this an arg
     unsigned int qpw = 512; // queues per worker
 
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusExecutorMem
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusExecutorMem	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusExecutorMem	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,1 @@
+331MB & 139MB & 7714MB & 116MB & 549MB
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusSendDynamic
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusSendDynamic	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusSendDynamic	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -1,1 +1,1 @@
-43ns & 9501ns & 7483ns & 72ns & 5547ns
+46ns & 9501ns & 7483ns & 72ns & 5547ns
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusSendStatic
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusSendStatic	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasusSendStatic	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -1,1 +1,1 @@
-22ns & 2779ns & 59ns & 40ns & 68ns
+23ns & 2779ns & 59ns & 40ns & 68ns
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_ALL.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_ALL.txt	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_ALL.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -5,44 +5,44 @@
 CFA:
 proc	time (s)
-1	29.28
-1	29.28
-1	28.83
-1	29.24
-1	29.15
-2	23.24
-2	23.20
-2	22.96
-2	23.27
-2	23.22
-4	10.27
-4	10.26
-4	10.30
-4	10.29
-4	10.21
-8	5.32
-8	5.37
-8	5.25
-8	5.27
-8	5.15
-16	3.32
-16	3.32
-16	3.24
-16	3.30
-16	3.19
-24	2.22
-24	2.22
-24	2.24
-24	2.18
-24	2.23
-32	1.74
-32	1.73
-32	1.76
-32	1.77
-32	1.71
+1	27.89
+1	27.88
+1	27.88
+1	27.86
+1	27.88
+2	17.43
+2	16.47
+2	16.40
+2	16.59
+2	17.43
+4	8.14
+4	8.14
+4	8.14
+4	8.15
+4	8.10
+8	4.26
+8	4.27
+8	4.47
+8	4.54
+8	4.55
+16	2.34
+16	2.38
+16	2.32
+16	2.40
+16	2.44
+24	1.85
+24	1.83
+24	1.84
+24	1.84
+24	1.85
+32	1.49
+32	1.50
+32	1.49
+32	1.48
+32	1.47
+48	1.13
+48	1.14
+48	1.14
 48	1.20
-48	1.21
-48	1.19
-48	1.20
-48	1.33
+48	1.15
 CAF:
 proc	time (s)
@@ -217,44 +217,44 @@
 CFA:
 proc	time (s)
-1	105.45
-1	105.68
-1	105.35
+1	105.38
+1	105.55
+1	105.56
 1	105.39
-1	105.34
-2	52.43
-2	52.43
-2	52.44
-2	52.68
-2	52.47
-4	32.31
-4	31.79
-4	32.35
-4	32.22
-4	31.30
-8	16.83
-8	16.73
-8	15.74
-8	16.18
-8	16.42
-16	7.87
-16	7.52
+1	105.43
+2	52.48
+2	52.55
+2	52.42
+2	52.67
+2	52.61
+4	32.07
+4	31.75
+4	31.09
+4	32.10
+4	29.20
+8	16.65
+8	16.03
+8	15.40
+8	16.67
+8	16.63
 16	7.95
-16	7.83
-16	7.86
-24	5.33
-24	5.24
-24	5.24
-24	5.15
-24	5.29
-32	3.81
-32	4.02
-32	3.85
+16	7.90
+16	7.93
+16	7.59
+16	8.01
+24	5.25
+24	5.01
+24	5.26
+24	5.26
+24	5.35
+32	3.99
+32	3.89
+32	3.96
 32	4.05
-32	4.00
-48	2.74
+32	3.94
+48	2.81
 48	2.78
-48	2.83
-48	2.76
-48	2.77
+48	2.84
+48	2.78
+48	2.79
 CAF:
 proc	time (s)
@@ -429,44 +429,44 @@
 CFA:
 proc	time (s)
+1	1.21
+1	1.20
+1	1.19
 1	1.18
 1	1.19
-1	1.15
-1	1.16
-1	1.17
-2	2.44
-2	2.42
-2	2.43
-2	2.41
-2	2.43
-4	3.88
-4	4.04
-4	4.05
-4	4.05
-4	4.02
-8	9.36
-8	9.23
-8	9.86
-8	9.42
-8	9.71
-16	11.12
-16	11.29
-16	11.27
-16	11.29
-16	10.81
-24	12.48
+2	2.64
+2	2.64
+2	2.59
+2	2.57
+2	2.54
+4	4.31
+4	4.29
+4	4.33
+4	4.32
+4	4.23
+8	8.89
+8	9.38
+8	9.58
+8	9.13
+8	9.55
+16	12.10
+16	10.87
+16	12.06
+16	11.15
+16	11.03
+24	12.24
 24	12.35
-24	12.48
-24	12.32
-24	12.51
-32	11.85
-32	11.75
-32	13.12
-32	11.70
-32	13.19
-48	14.68
-48	14.96
-48	13.71
-48	13.94
-48	14.78
+24	12.12
+24	11.29
+24	12.20
+32	12.85
+32	12.88
+32	11.67
+32	11.72
+32	12.86
+48	13.91
+48	14.56
+48	13.60
+48	14.54
+48	14.36
 CAF:
 proc	time (s)
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_CFA.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_CFA.txt	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_CFA.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -5,639 +5,638 @@
 Longest-Victim:
 proc	time (s)
-1	29.22
-1	29.34
-1	28.75
-1	29.23
-1	29.30
-2	23.07
-2	23.39
-2	23.14
-2	23.32
-2	23.44
-4	10.25
-4	10.23
-4	10.25
-4	10.28
-4	10.15
-8	5.02
-8	5.34
-8	5.44
-8	5.29
-8	5.46
-16	3.24
-16	3.20
-16	3.22
-16	3.28
-16	3.26
-24	2.20
-24	2.22
+1	27.89
+1	27.89
+1	27.87
+1	27.85
+1	27.89
+2	17.40
+2	17.24
+2	16.73
+2	16.55
+2	16.37
+4	8.11
+4	8.12
+4	8.10
+4	8.10
+4	8.10
+8	4.26
+8	4.39
+8	4.19
+8	4.21
+8	4.39
+16	2.22
+16	2.42
+16	2.34
+16	2.32
+16	2.33
+24	1.78
+24	1.78
+24	1.85
+24	1.82
+24	1.80
+32	1.50
+32	1.46
+32	1.51
+32	1.50
+32	1.49
+48	1.11
+48	1.21
+48	1.16
+48	1.14
+48	1.18
+No-Stealing:
+proc	time (s)
+1	27.82
+1	27.78
+1	27.77
+1	27.76
+1	27.76
+2	17.78
+2	17.76
+2	17.81
+2	17.77
+2	17.90
+4	8.23
+4	8.14
+4	8.18
+4	8.26
+4	8.21
+8	4.37
+8	4.10
+8	4.32
+8	4.21
+8	4.25
+16	2.27
+16	2.31
+16	2.35
+16	2.31
+16	2.55
+24	1.89
+24	1.94
+24	1.74
+24	1.95
+24	1.86
+32	1.56
+32	1.53
+32	1.57
+32	1.58
+32	1.52
+48	1.16
+48	1.20
+48	1.23
+48	1.21
+48	1.28
+Random:
+proc	time (s)
+1	28.02
+1	27.99
+1	27.99
+1	27.93
+1	27.98
+2	16.55
+2	16.41
+2	16.36
+2	16.57
+2	16.47
+4	8.23
+4	8.27
+4	8.19
+4	8.28
+4	8.28
+8	4.52
+8	4.36
+8	4.66
+8	4.13
+8	4.16
+16	2.42
+16	2.69
+16	2.48
+16	2.52
+16	2.52
+24	2.15
+24	2.27
 24	2.31
-24	2.19
-24	2.19
-32	1.74
-32	1.75
-32	1.74
-32	1.73
-32	1.70
-48	1.18
-48	1.21
-48	1.18
-48	1.20
-48	1.20
-No-Stealing:
-proc	time (s)
-1	28.25
-1	28.23
-1	28.22
-1	28.19
-1	28.19
-2	21.02
-2	21.30
-2	21.66
-2	21.29
-2	21.27
-4	9.34
-4	9.41
-4	9.39
-4	9.44
-4	9.36
-8	5.01
-8	4.71
-8	5.01
-8	4.97
-8	4.90
-16	3.05
-16	3.04
-16	3.12
-16	3.08
-16	2.97
-24	2.13
-24	2.07
-24	2.15
-24	2.15
-24	2.08
-32	1.74
-32	1.70
-32	1.72
-32	1.76
-32	1.69
+24	2.18
+24	2.31
+32	1.89
+32	1.84
+32	1.91
+32	1.90
+32	1.89
 48	1.36
-48	1.23
-48	1.15
-48	1.18
-48	1.16
-Random:
-proc	time (s)
-1	28.58
-1	28.60
-1	28.43
-1	29.13
-1	29.22
-2	23.31
-2	23.18
-2	23.08
-2	22.94
-2	23.34
-4	10.32
-4	10.28
-4	10.28
-4	10.31
-4	10.33
-8	5.19
-8	5.56
-8	5.31
-8	5.63
-8	5.81
-16	3.34
-16	3.47
-16	3.37
-16	3.48
-16	3.47
-24	2.60
-24	2.47
-24	2.53
-24	2.54
-24	2.58
-32	2.15
-32	2.20
-32	2.22
-32	2.21
-32	2.32
-48	1.49
 48	1.41
-48	1.45
-48	1.49
-48	1.42
+48	1.43
+48	1.44
+48	1.38
 
 matrix
 Longest-Victim:
 proc	time (s)
-1	105.48
-1	105.67
-1	105.55
-1	106.01
-1	105.35
+1	105.38
+1	105.51
+1	105.50
+1	105.13
+1	105.58
+2	52.44
+2	52.49
+2	52.63
+2	52.59
+2	52.41
+4	31.96
+4	31.91
+4	31.16
+4	30.98
+4	30.43
+8	16.37
+8	15.48
+8	15.99
+8	16.57
+8	16.79
+16	7.92
+16	7.30
+16	7.98
+16	7.61
+16	7.82
+24	5.22
+24	5.24
+24	5.30
+24	5.33
+24	5.15
+32	4.00
+32	3.95
+32	3.96
+32	4.04
+32	4.03
+48	2.81
+48	2.79
+48	2.82
+48	2.85
+48	2.89
+No-Stealing:
+proc	time (s)
+1	106.21
+1	105.99
+1	105.84
+1	105.25
+1	105.51
+2	52.44
+2	52.50
+2	52.34
+2	52.51
+2	52.55
+4	31.94
+4	32.05
+4	31.99
+4	31.84
+4	31.88
+8	16.77
+8	16.72
+8	16.40
+8	16.55
+8	16.69
+16	7.98
+16	8.02
+16	7.94
+16	7.96
+16	7.99
+24	5.31
+24	5.48
+24	5.43
+24	5.48
+24	5.30
+32	4.23
+32	4.06
+32	4.04
+32	3.99
+32	3.98
+48	2.72
+48	2.82
+48	2.80
+48	2.80
+48	2.76
+Random:
+proc	time (s)
+1	106.47
+1	105.47
+1	105.65
+1	105.82
+1	105.78
+2	52.63
+2	52.41
 2	52.69
-2	52.54
-2	52.41
-2	52.48
-2	52.58
-4	30.68
-4	30.37
-4	32.20
-4	30.19
-4	32.16
-8	16.92
-8	16.39
-8	15.29
-8	16.65
-8	16.68
+2	52.52
+2	52.38
+4	32.23
+4	32.14
+4	31.07
+4	32.10
+4	31.09
+8	15.81
+8	16.34
+8	16.80
+8	15.92
+8	16.35
+16	8.00
+16	7.31
+16	7.44
 16	7.88
 16	8.01
-16	7.61
-16	8.04
-16	8.05
-24	5.32
-24	5.37
-24	5.25
-24	5.05
-24	5.25
-32	4.01
-32	3.93
-32	4.04
-32	4.00
-32	3.97
-48	2.76
-48	2.78
-48	2.79
-48	2.75
-48	2.96
-No-Stealing:
-proc	time (s)
-1	106.01
-1	105.52
-1	105.63
-1	105.35
-1	105.68
-2	52.64
-2	52.57
-2	52.53
-2	52.51
-2	52.44
-4	32.06
-4	31.01
-4	31.87
-4	29.61
-4	31.85
-8	16.19
-8	16.83
-8	15.62
-8	16.78
-8	16.55
-16	7.94
-16	7.90
-16	8.00
-16	8.02
-16	7.74
-24	5.23
-24	5.28
+24	4.85
+24	5.10
+24	5.09
 24	5.26
-24	5.37
-24	5.30
-32	4.23
-32	3.94
-32	3.99
-32	4.13
-32	3.96
-48	3.05
-48	2.79
-48	3.09
-48	2.78
-48	2.92
-Random:
-proc	time (s)
-1	105.91
-1	105.56
-1	105.67
-1	105.35
-1	105.33
-2	52.62
-2	52.65
-2	52.57
-2	52.53
-2	52.82
-4	32.11
-4	32.32
-4	30.03
-4	31.87
-4	32.20
-8	15.66
-8	16.04
-8	15.36
-8	16.21
-8	15.89
-16	8.02
-16	8.02
-16	7.50
-16	7.42
-16	8.01
-24	5.28
-24	4.98
-24	5.28
-24	5.18
-24	4.83
-32	3.63
-32	3.76
+24	5.14
+32	3.75
+32	3.90
+32	3.75
+32	3.64
 32	3.73
-32	3.76
-32	3.88
-48	2.64
-48	2.78
-48	2.64
-48	2.65
-48	2.67
+48	2.59
+48	2.68
+48	2.62
+48	2.69
+48	2.70
 
 repeat
 Longest-Victim:
 proc	time (s)
-1	1.17
-1	1.18
 1	1.19
-1	1.17
-1	1.20
-2	2.41
-2	2.48
-2	2.57
-2	2.48
-2	2.46
-4	4.04
-4	4.10
-4	4.03
-4	4.05
-4	4.11
-8	9.34
-8	9.42
-8	9.20
-8	9.62
-8	9.22
+1	1.19
+1	1.21
+1	1.21
+1	1.19
+2	2.60
+2	2.62
+2	2.54
+2	2.54
+2	2.62
+4	4.33
+4	4.18
+4	4.31
+4	4.32
+4	4.35
+8	9.52
+8	8.99
+8	9.41
+8	9.50
+8	9.00
+16	10.90
+16	10.82
 16	11.02
-16	10.93
-16	10.86
-16	12.00
-16	11.08
-24	11.28
-24	12.63
+16	12.10
+16	12.05
+24	11.25
+24	12.12
+24	11.23
+24	11.27
 24	12.41
-24	12.44
-24	11.16
-32	11.88
-32	11.71
-32	13.12
-32	11.71
-32	13.05
-48	14.51
-48	14.18
-48	14.52
-48	13.73
-48	14.55
+32	11.54
+32	12.92
+32	12.89
+32	12.97
+32	11.66
+48	13.57
+48	14.45
+48	14.64
+48	13.50
+48	13.50
 No-Stealing:
 proc	time (s)
-1	1.15
+1	1.25
+1	1.25
 1	1.23
-1	1.14
-1	1.16
-1	1.15
+1	1.29
+1	1.25
 2	1.94
 2	1.91
-2	1.94
-2	1.93
-2	2.02
-4	3.95
-4	3.93
-4	3.94
-4	3.94
-4	3.91
-8	8.94
-8	9.30
-8	8.92
-8	8.86
-8	9.36
-16	10.63
-16	10.56
-16	11.51
-16	11.25
-16	10.75
-24	10.84
-24	10.86
-24	10.99
-24	10.51
-24	11.81
-32	11.00
-32	11.14
-32	11.29
-32	10.85
+2	1.90
+2	1.90
+2	2.01
+4	4.05
+4	4.05
+4	4.03
+4	4.22
+4	4.19
+8	9.46
+8	9.08
+8	9.35
+8	8.62
+8	9.67
+16	10.85
+16	11.75
+16	10.52
+16	11.38
+16	11.01
+24	11.31
+24	10.49
+24	12.43
+24	12.35
+24	10.45
+32	10.89
+32	12.62
+32	11.07
+32	12.23
 32	10.99
-48	12.76
-48	12.81
-48	12.66
+48	12.72
 48	13.03
-48	12.83
+48	13.61
+48	13.08
+48	13.77
 Random:
 proc	time (s)
-1	1.15
-1	1.17
-1	1.16
-1	1.16
-1	1.16
-2	2.54
-2	2.45
-2	2.38
-2	2.34
-2	2.33
-4	4.15
+1	1.20
+1	1.20
+1	1.20
+1	1.20
+1	1.23
+2	2.63
+2	2.62
+2	2.61
+2	2.64
+2	2.60
+4	4.34
+4	4.37
+4	4.35
+4	4.34
+4	4.34
+8	9.74
+8	9.84
+8	9.57
+8	10.03
+8	9.33
+16	12.33
+16	11.23
+16	11.72
+16	11.35
+16	11.22
+24	11.78
+24	12.66
+24	12.60
+24	12.85
+24	12.93
+32	12.32
+32	13.74
+32	13.45
+32	13.69
+32	13.50
+48	15.23
+48	14.81
+48	14.82
+48	15.56
+48	15.24
+
+balance_one
+Longest-Victim:
+proc	time (s)
+1	19.78
+1	19.81
+1	19.78
+1	19.82
+1	19.82
+2	10.17
+2	10.33
+2	10.66
+2	10.62
+2	10.35
+4	5.22
+4	5.27
+4	5.29
+4	5.27
+4	5.27
+8	2.91
+8	2.91
+8	2.93
+8	2.92
+8	2.90
+16	1.71
+16	1.80
+16	1.77
+16	1.81
+16	1.78
+24	1.34
+24	1.35
+24	1.33
+24	1.34
+24	1.36
+32	1.18
+32	1.12
+32	1.06
+32	1.11
+32	1.19
+48	1.02
+48	1.01
+48	1.04
+48	1.03
+48	1.00
+No-Stealing:
+proc	time (s)
+1	19.73
+1	19.72
+1	19.78
+1	19.72
+1	19.72
+2	19.85
+2	19.70
+2	19.70
+2	19.68
+2	19.69
+4	20.24
+4	19.83
+4	19.82
+4	19.90
+4	19.83
+8	19.79
+8	19.78
+8	19.73
+8	19.67
+8	19.65
+16	19.63
+16	19.72
+16	19.65
+16	19.65
+16	19.59
+24	18.57
+24	18.56
+24	18.63
+24	18.62
+24	18.61
+32	19.61
+32	19.60
+32	19.61
+32	19.57
+32	19.61
+48	19.73
+48	19.86
+48	19.74
+48	19.70
+48	19.70
+Random:
+proc	time (s)
+1	19.79
+1	19.77
+1	19.75
+1	19.73
+1	19.76
+2	10.66
+2	10.14
+2	10.42
+2	10.30
+2	10.23
+4	5.27
+4	5.25
+4	5.28
+4	5.27
+4	5.26
+8	2.94
+8	2.93
+8	2.79
+8	2.92
+8	2.86
+16	1.76
+16	1.70
+16	1.81
+16	1.77
+16	1.73
+24	1.34
+24	1.28
+24	1.31
+24	1.28
+24	1.30
+32	1.15
+32	1.16
+32	1.07
+32	1.13
+32	1.12
+48	0.96
+48	0.98
+48	1.01
+48	0.99
+48	0.98
+
+balance_multi
+Longest-Victim:
+proc	time (s)
+1	7.99
+1	8.02
+1	7.99
+1	7.99
+1	7.99
+2	4.19
+2	4.21
+2	4.13
+2	4.15
+2	4.21
 4	4.11
 4	4.10
 4	4.08
-4	4.08
-8	9.96
-8	9.64
-8	9.55
-8	9.47
-8	9.63
-16	11.29
-16	11.14
-16	11.24
-16	12.44
-16	12.00
-24	12.69
-24	11.71
-24	11.75
-24	12.90
-24	12.87
-32	12.22
-32	13.56
-32	13.55
-32	12.34
-32	12.26
-48	15.62
-48	15.15
-48	15.05
-48	14.61
-48	14.24
-
-balance_one
-Longest-Victim:
-proc	time (s)
-1	20.06
-1	19.97
-1	19.94
-1	19.93
-1	19.93
-2	9.87
-2	9.91
-2	9.90
-2	9.94
-2	9.94
-4	5.07
-4	5.06
-4	5.04
-4	5.05
-4	5.07
-8	2.70
-8	2.68
-8	2.71
-8	2.72
-8	2.70
-16	1.46
-16	1.43
-16	1.45
-16	1.44
-16	1.43
-24	1.04
-24	1.04
-24	1.04
-24	1.06
-24	1.03
-32	1.03
-32	1.11
-32	1.06
-32	1.04
-32	0.99
-48	1.22
-48	1.21
-48	1.15
-48	1.11
-48	1.12
+4	4.11
+4	4.09
+8	4.40
+8	4.42
+8	4.41
+8	4.42
+8	4.35
+16	4.64
+16	4.69
+16	4.72
+16	4.68
+16	4.62
+24	4.91
+24	4.94
+24	4.96
+24	4.92
+24	4.90
+32	5.21
+32	5.25
+32	5.26
+32	5.22
+32	5.23
+48	6.14
+48	6.14
+48	6.18
+48	6.16
+48	6.16
 No-Stealing:
 proc	time (s)
-1	20.13
-1	20.08
-1	20.08
-1	20.08
-1	20.07
-2	19.36
-2	19.47
-2	19.43
-2	19.37
-2	19.39
-4	19.40
-4	19.43
-4	19.41
-4	19.44
-4	19.47
-8	19.75
-8	19.79
-8	19.77
-8	19.74
-8	19.79
-16	19.54
-16	19.48
-16	19.45
-16	19.46
-16	19.46
-24	19.72
-24	19.63
-24	19.54
-24	19.76
-24	19.53
-32	19.84
-32	19.94
-32	19.90
-32	19.84
-32	19.78
-48	19.95
-48	19.91
-48	19.97
-48	19.95
-48	20.00
+1	7.93
+1	7.95
+1	7.94
+1	7.95
+1	7.96
+2	8.58
+2	7.88
+2	8.01
+2	7.87
+2	8.20
+4	7.84
+4	7.87
+4	7.81
+4	7.81
+4	7.87
+8	7.99
+8	7.98
+8	7.98
+8	7.99
+8	7.99
+16	7.97
+16	8.55
+16	7.92
+16	7.95
+16	7.98
+24	7.99
+24	8.07
+24	7.96
+24	8.74
+24	7.97
+32	8.06
+32	8.08
+32	8.11
+32	8.24
+32	8.29
+48	9.31
+48	9.27
+48	9.89
+48	9.20
+48	9.30
 Random:
 proc	time (s)
-1	19.92
-1	20.01
-1	19.96
-1	19.97
-1	19.93
-2	9.92
-2	9.89
-2	9.91
-2	9.91
-2	9.89
-4	5.08
-4	5.05
-4	5.07
-4	5.08
-4	5.05
-8	2.72
-8	2.67
-8	2.70
-8	2.71
-8	2.70
-16	1.44
-16	1.46
-16	1.43
-16	1.46
-16	1.44
-24	1.05
-24	1.06
-24	1.04
-24	1.03
-24	1.04
-32	0.97
-32	1.04
-32	1.01
-32	1.00
-32	1.01
-48	1.24
-48	1.26
-48	1.19
-48	1.17
-48	1.25
-
-balance_multi
-Longest-Victim:
-proc	time (s)
-1	8.17
-1	8.09
-1	8.08
-1	8.09
-1	8.06
-2	3.98
-2	3.99
-2	4.01
-2	3.99
-2	4.02
-4	3.99
-4	3.99
-4	4.01
-4	3.99
-4	3.99
-8	4.20
-8	4.14
-8	4.11
+1	7.97
+1	7.97
+1	7.96
+1	7.98
+1	7.95
+2	4.22
+2	4.05
+2	4.08
+2	4.29
+2	4.08
+4	4.04
+4	4.06
+4	4.05
+4	4.06
+4	4.05
+8	4.19
+8	4.16
+8	4.15
 8	4.14
 8	4.14
-16	4.98
-16	4.86
-16	4.95
-16	4.89
-16	4.95
-24	4.32
-24	4.31
-24	4.35
-24	4.30
-24	4.31
-32	4.93
-32	4.89
-32	4.85
-32	4.91
-32	4.85
-48	5.71
-48	5.75
-48	5.81
-48	5.75
-48	5.68
-No-Stealing:
-proc	time (s)
-1	8.10
-1	8.12
-1	8.12
-1	8.13
-1	8.15
-2	7.78
-2	7.81
-2	7.79
-2	7.80
-2	7.78
-4	7.76
-4	7.80
-4	7.83
-4	7.79
-4	7.80
-8	7.99
-8	8.00
-8	7.95
-8	7.99
-8	7.96
-16	7.98
-16	8.01
-16	8.01
-16	7.99
-16	8.02
-24	8.02
-24	8.01
-24	8.02
-24	7.98
-24	8.01
-32	9.09
-32	9.08
-32	9.06
-32	8.24
-32	9.09
-48	9.40
-48	9.24
-48	9.35
-48	9.28
-48	9.26
-Random:
-proc	time (s)
-1	8.08
-1	8.06
-1	8.10
-1	8.08
-1	8.14
-2	3.98
-2	4.01
-2	3.99
-2	4.03
-2	3.99
-4	4.00
-4	4.00
-4	3.98
-4	4.01
-4	3.99
-8	4.09
-8	4.05
-8	4.07
-8	4.08
-8	4.12
-16	4.23
-16	4.23
-16	4.21
-16	4.23
-16	4.22
-24	4.11
-24	4.09
-24	4.10
-24	4.14
-24	4.12
+16	4.18
+16	4.16
+16	4.20
+16	4.17
+16	4.18
+24	4.19
+24	4.18
+24	4.19
+24	4.18
+24	4.19
 32	4.43
+32	4.44
 32	4.40
-32	4.39
 32	4.42
-32	4.38
+32	4.40
+48	5.02
 48	5.05
-48	5.05
-48	5.06
-48	5.06
 48	5.04
-
+48	5.04
+48	5.02
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_MEM.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_MEM.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_MEM.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,34 @@
+5
+48
+CFA CAF Akka uC++ ProtoActor 
+mem
+CFA:
+331200
+341856
+295160
+333928
+296056
+CAF:
+131952
+153228
+153912
+139912
+128816
+Akka:
+7714548
+7624968
+7528056
+7782020
+7985336
+uC++:
+114176
+115388
+117988
+119540
+116476
+ProtoActor:
+551872
+556100
+543556
+549812
+535472
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_SEND.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_SEND.txt	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/nasus_SEND.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -4,9 +4,9 @@
 static
 CFA
-22.46
-22.68
-22.48
-22.61
-22.52
+23.22
+23.57
+23.55
+23.55
+23.49
 CAF:
 2779
@@ -36,9 +36,9 @@
 dynamic
 CFA
-44.01
-43.96
-44.09
-43.96
-43.89
+46.42
+46.56
+46.38
+46.29
+46.28
 CAF:
 9649
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeExecutorMem
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeExecutorMem	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeExecutorMem	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,1 @@
+298MB & 165MB & 8046MB & 185MB & 563MB
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeSendDynamic
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeSendDynamic	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeSendDynamic	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -1,1 +1,1 @@
-56ns & 8476ns & 5972ns & 81ns & 4179ns
+58ns & 8476ns & 5972ns & 81ns & 4179ns
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeSendStatic
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeSendStatic	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pykeSendStatic	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -1,1 +1,1 @@
-23ns & 1712ns & 74ns & 40ns & 90ns
+24ns & 1712ns & 74ns & 40ns & 90ns
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_ALL.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_ALL.txt	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_ALL.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -5,44 +5,44 @@
 CFA:
 proc	time (s)
-1	27.79
-1	27.72
-1	27.75
-1	27.69
-1	27.70
-2	30.93
-2	31.14
-2	31.04
-2	31.10
-2	31.09
-4	14.85
-4	14.72
-4	14.64
-4	14.74
-4	14.58
-8	6.96
-8	6.93
-8	7.07
-8	7.02
-8	7.09
-16	4.23
-16	4.21
-16	4.22
-16	4.25
-16	4.24
-24	3.03
-24	3.02
-24	3.03
-24	3.03
-24	3.03
-32	3.43
-32	3.51
-32	3.59
-32	3.39
-32	3.40
-48	2.53
-48	2.51
-48	2.52
-48	2.53
-48	2.53
+1	26.87
+1	26.97
+1	26.78
+1	26.70
+1	26.72
+2	27.32
+2	27.14
+2	27.16
+2	26.88
+2	27.06
+4	13.66
+4	13.48
+4	13.51
+4	13.60
+4	13.51
+8	6.81
+8	6.85
+8	6.74
+8	6.86
+8	6.87
+16	3.61
+16	3.58
+16	3.59
+16	3.60
+16	3.62
+24	2.87
+24	2.87
+24	2.88
+24	2.87
+24	2.88
+32	2.63
+32	3.01
+32	2.83
+32	2.98
+32	2.94
+48	2.37
+48	2.32
+48	2.34
+48	2.33
+48	2.35
 CAF:
 proc	time (s)
@@ -217,44 +217,44 @@
 CFA:
 proc	time (s)
-1	127.18
-1	127.06
-1	126.94
-1	127.22
-1	126.94
-2	63.66
-2	63.11
-2	63.04
-2	62.91
-2	64.64
+1	126.89
+1	126.77
+1	126.86
+1	126.97
+1	126.96
+2	63.51
+2	63.35
+2	62.57
+2	63.07
+2	62.66
 4	32.16
-4	32.13
-4	32.15
-4	32.13
-4	32.19
-8	16.45
+4	32.17
+4	32.10
+4	32.12
+4	32.18
+8	16.41
 8	16.35
-8	16.32
-8	16.33
 8	16.34
+8	16.35
+8	16.35
+16	9.45
+16	9.41
+16	9.40
+16	9.40
 16	9.39
-16	9.43
-16	9.38
-16	9.45
-16	9.39
-24	6.91
+24	6.90
 24	6.93
-24	6.91
-24	6.97
-24	6.96
-32	7.60
-32	7.51
-32	7.79
-32	7.56
-32	7.70
-48	6.77
-48	6.79
-48	6.78
-48	6.81
-48	6.80
+24	6.92
+24	6.94
+24	7.05
+32	7.65
+32	8.27
+32	7.78
+32	7.67
+32	7.81
+48	6.86
+48	6.96
+48	7.00
+48	6.96
+48	6.96
 CAF:
 proc	time (s)
@@ -429,44 +429,44 @@
 CFA:
 proc	time (s)
-1	1.17
-1	1.06
-1	1.08
-1	1.07
-1	1.06
-2	3.10
-2	3.07
-2	3.13
-2	3.04
-2	3.40
-4	6.30
-4	6.21
-4	6.17
-4	6.20
-4	6.19
-8	8.07
-8	8.00
-8	8.33
-8	8.30
-8	8.27
-16	12.51
-16	12.49
-16	12.49
-16	12.24
-16	12.49
-24	16.04
-24	14.83
-24	15.15
-24	15.64
-24	14.93
-32	15.04
-32	15.20
-32	15.54
-32	15.71
-32	15.56
-48	15.63
-48	15.93
-48	15.68
-48	15.61
-48	15.38
+1	1.24
+1	1.13
+1	1.13
+1	1.14
+1	1.15
+2	3.14
+2	3.11
+2	3.03
+2	3.03
+2	3.09
+4	6.93
+4	7.06
+4	7.14
+4	6.56
+4	7.18
+8	10.23
+8	10.33
+8	10.38
+8	10.47
+8	10.19
+16	16.60
+16	16.31
+16	16.48
+16	16.92
+16	16.42
+24	22.62
+24	22.98
+24	23.07
+24	22.80
+24	22.32
+32	22.72
+32	22.12
+32	22.79
+32	22.11
+32	22.28
+48	22.17
+48	22.43
+48	22.98
+48	21.94
+48	22.15
 CAF:
 proc	time (s)
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_CFA.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_CFA.txt	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_CFA.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -5,638 +5,638 @@
 Longest-Victim:
 proc	time (s)
-1	29.04
-1	28.95
-1	28.91
-1	28.89
-1	28.94
-2	31.11
-2	31.24
-2	31.21
-2	31.27
-2	31.31
-4	14.89
-4	14.74
-4	14.70
-4	14.82
-4	14.83
-8	7.00
-8	6.97
-8	7.04
-8	6.99
-8	6.99
-16	4.25
-16	4.23
-16	4.26
-16	4.26
-16	4.23
-24	3.04
-24	3.05
-24	3.05
-24	3.03
-24	3.05
-32	3.62
-32	3.42
-32	3.49
-32	3.61
-32	3.34
-48	2.57
-48	2.57
-48	2.56
-48	2.58
-48	2.55
+1	26.88
+1	26.80
+1	26.84
+1	26.76
+1	26.83
+2	27.25
+2	27.01
+2	27.18
+2	27.37
+2	27.14
+4	13.55
+4	13.51
+4	13.65
+4	13.48
+4	13.45
+8	6.79
+8	6.78
+8	6.84
+8	6.81
+8	6.82
+16	3.60
+16	3.59
+16	3.64
+16	3.61
+16	3.61
+24	2.87
+24	2.85
+24	2.84
+24	2.86
+24	2.86
+32	2.91
+32	2.87
+32	2.70
+32	2.91
+32	2.85
+48	2.33
+48	2.33
+48	2.34
+48	2.35
+48	2.34
 No-Stealing:
 proc	time (s)
-1	28.15
-1	28.03
-1	27.99
-1	27.98
-1	27.89
-2	31.25
-2	31.34
-2	31.22
-2	31.44
-2	31.10
-4	14.99
-4	14.94
-4	15.34
-4	15.06
-4	15.16
-8	7.12
-8	7.02
-8	7.08
+1	27.40
+1	27.40
+1	27.38
+1	27.36
+1	27.34
+2	27.28
+2	26.99
+2	26.91
+2	27.05
+2	27.12
+4	13.61
+4	13.52
+4	13.56
+4	13.62
+4	13.90
+8	6.87
+8	6.83
+8	6.81
+8	6.83
+8	6.86
+16	3.60
+16	3.56
+16	3.60
+16	3.61
+16	3.60
+24	2.93
+24	2.90
+24	2.92
+24	2.93
+24	2.93
+32	3.27
+32	3.27
+32	3.20
+32	3.38
+32	3.25
+48	2.44
+48	2.45
+48	2.44
+48	2.44
+48	2.46
+Random:
+proc	time (s)
+1	27.57
+1	27.35
+1	27.42
+1	27.41
+1	27.41
+2	26.77
+2	27.17
+2	26.91
+2	27.24
+2	27.09
+4	13.60
+4	13.77
+4	13.68
+4	13.62
+4	13.77
 8	7.03
-8	7.03
-16	4.28
-16	4.25
-16	4.26
-16	4.27
-16	4.31
-24	3.04
-24	3.06
-24	3.06
+8	6.87
+8	6.82
+8	6.89
+8	6.93
+16	3.62
+16	3.70
+16	3.68
+16	3.62
+16	3.73
+24	3.10
+24	3.14
 24	3.06
 24	3.08
-32	3.98
-32	3.83
-32	3.86
-32	4.15
-32	3.89
-48	2.57
-48	2.59
-48	2.59
-48	2.59
-48	2.60
-Random:
-proc	time (s)
-1	29.06
-1	28.99
-1	29.06
-1	28.94
-1	28.93
-2	31.04
-2	31.32
-2	31.23
-2	31.15
-2	31.28
-4	15.25
-4	15.21
-4	15.26
-4	15.22
-4	14.99
-8	7.03
-8	7.13
-8	7.06
-8	7.09
-8	7.12
-16	4.28
-16	4.31
-16	4.26
-16	4.27
-16	4.32
-24	3.20
-24	3.21
-24	3.15
-24	3.15
-24	3.12
-32	4.05
-32	4.05
-32	4.06
-32	4.03
-32	4.08
-48	2.67
-48	2.64
-48	2.65
-48	2.64
-48	2.65
+24	3.13
+32	3.38
+32	3.39
+32	3.40
+32	3.42
+32	3.44
+48	2.46
+48	2.48
+48	2.47
+48	2.46
+48	2.42
 
 matrix
 Longest-Victim:
 proc	time (s)
-1	127.44
+1	127.72
+1	127.32
+1	127.49
+1	127.50
+1	127.40
+2	65.79
+2	63.67
+2	65.36
+2	65.40
+2	63.65
+4	32.23
+4	32.21
+4	32.18
+4	32.20
+4	32.15
+8	16.45
+8	16.33
+8	16.33
+8	16.37
+8	16.34
+16	9.42
+16	9.42
+16	9.40
+16	9.43
+16	9.42
+24	7.00
+24	6.92
+24	6.93
+24	6.92
+24	7.01
+32	7.71
+32	7.68
+32	7.91
+32	7.78
+32	8.06
+48	6.98
+48	6.98
+48	7.00
+48	6.90
+48	7.00
+No-Stealing:
+proc	time (s)
+1	127.12
+1	127.15
+1	127.45
+1	127.27
+1	127.20
+2	63.86
+2	64.12
+2	63.86
+2	63.52
+2	63.86
+4	32.22
+4	32.18
+4	32.17
+4	32.18
+4	32.20
+8	16.38
+8	16.32
+8	16.33
+8	16.33
+8	16.34
+16	9.42
+16	9.38
+16	9.38
+16	9.42
+16	9.40
+24	6.96
+24	7.07
+24	7.04
+24	6.94
+24	7.07
+32	9.67
+32	9.53
+32	9.68
+32	8.87
+32	9.83
+48	6.85
+48	6.91
+48	6.96
+48	6.99
+48	6.92
+Random:
+proc	time (s)
+1	127.24
+1	127.15
+1	127.20
 1	127.34
-1	127.40
-1	127.21
-1	127.21
-2	63.13
-2	62.74
-2	63.81
-2	63.12
-2	62.90
-4	32.21
-4	32.20
-4	32.18
-4	32.18
-4	32.18
-8	16.43
-8	16.36
-8	16.38
-8	16.38
-8	16.35
-16	9.41
-16	9.37
-16	9.41
-16	9.44
-16	9.38
-24	6.99
-24	6.94
-24	6.92
-24	6.96
-24	6.96
-32	7.49
-32	7.37
-32	7.42
-32	7.54
-32	7.53
-48	6.82
-48	6.80
-48	6.79
-48	6.83
-48	6.81
-No-Stealing:
-proc	time (s)
-1	127.64
-1	128.79
-1	128.15
-1	127.67
-1	127.98
-2	64.58
-2	63.79
-2	62.92
-2	63.79
-2	63.75
-4	32.21
+1	127.16
+2	63.74
+2	63.40
+2	63.42
+2	63.56
+2	63.41
+4	32.22
+4	32.15
+4	32.17
+4	32.15
 4	32.24
-4	32.23
-4	32.36
-4	32.22
-8	16.44
-8	16.40
 8	16.41
 8	16.35
 8	16.37
-16	9.46
-16	9.39
-16	9.45
-16	9.42
-16	9.37
-24	6.97
-24	6.96
-24	6.95
-24	6.94
-24	6.93
-32	9.98
-32	9.75
-32	9.64
-32	9.92
-32	9.55
-48	6.79
-48	6.78
-48	6.78
-48	6.77
-48	6.74
-Random:
-proc	time (s)
-1	127.26
-1	127.43
-1	127.34
-1	127.66
-1	127.23
-2	63.76
-2	63.04
-2	63.33
-2	64.10
-2	64.00
-4	32.25
-4	32.23
-4	32.21
-4	32.20
-4	32.19
-8	16.40
-8	16.35
-8	16.36
 8	16.35
 8	16.34
-16	9.44
+16	9.40
+16	9.41
+16	9.37
 16	9.39
-16	9.43
 16	9.40
-16	9.42
-24	6.90
+24	6.94
 24	6.96
-24	6.97
+24	6.94
 24	6.95
-24	6.93
-32	6.96
-32	6.91
-32	6.85
-32	6.96
-32	6.94
-48	6.74
-48	6.72
-48	6.76
-48	6.67
-48	6.71
+24	7.03
+32	7.04
+32	7.09
+32	7.04
+32	6.93
+32	6.99
+48	6.93
+48	6.84
+48	6.90
+48	6.90
+48	6.88
 
 repeat
 Longest-Victim:
 proc	time (s)
-1	1.16
-1	1.05
-1	1.06
-1	1.05
-1	1.05
-2	3.07
+1	1.13
+1	1.14
+1	1.13
+1	1.15
+1	1.14
+2	3.15
 2	3.01
-2	3.09
+2	3.20
+2	3.05
+2	3.20
+4	7.17
+4	6.93
+4	7.17
+4	6.90
+4	7.06
+8	10.13
+8	10.16
+8	10.43
+8	10.23
+8	10.28
+16	16.55
+16	17.05
+16	16.70
+16	16.44
+16	16.73
+24	22.90
+24	22.41
+24	22.57
+24	22.35
+24	22.56
+32	22.09
+32	23.00
+32	22.63
+32	22.98
+32	22.79
+48	22.38
+48	22.67
+48	22.67
+48	21.24
+48	21.30
+No-Stealing:
+proc	time (s)
+1	1.11
+1	1.10
+1	1.10
+1	1.08
+1	1.10
+2	2.22
+2	2.14
+2	2.85
+2	2.10
+2	3.22
+4	7.65
+4	6.87
+4	10.85
+4	7.54
+4	10.51
+8	15.62
+8	14.13
+8	8.44
+8	8.53
+8	13.37
+16	23.37
+16	24.04
+16	23.96
+16	12.30
+16	22.93
+24	29.81
+24	29.83
+24	30.09
+24	14.62
+24	29.05
+32	23.53
+32	27.43
+32	28.25
+32	25.34
+32	28.45
+48	15.54
+48	30.73
+48	30.20
+48	30.75
+48	30.34
+Random:
+proc	time (s)
+1	1.09
+1	1.09
+1	1.11
+1	1.10
+1	1.09
+2	3.10
 2	3.13
-2	3.11
-4	6.04
-4	6.36
-4	6.48
-4	6.56
-4	6.30
-8	9.22
-8	8.90
-8	9.20
-8	9.24
-8	8.92
-16	13.57
-16	13.79
-16	13.42
-16	13.73
-16	13.09
-24	17.52
-24	17.30
-24	17.23
-24	16.58
-24	16.76
-32	17.73
-32	17.86
-32	18.10
-32	17.92
-32	18.37
-48	19.01
-48	19.65
-48	18.72
-48	19.75
-48	19.71
-No-Stealing:
-proc	time (s)
-1	1.18
-1	1.06
-1	1.07
-1	1.07
-1	1.06
-2	2.41
-2	2.35
-2	2.34
-2	2.34
-2	2.35
-4	6.10
-4	5.79
-4	5.57
-4	5.89
-4	6.02
-8	8.56
-8	8.42
-8	8.39
-8	8.27
-8	8.48
-16	10.91
-16	11.49
-16	11.54
-16	11.76
-16	11.90
-24	12.93
-24	12.35
-24	13.36
-24	12.28
-24	12.48
-32	12.32
-32	13.06
-32	13.24
-32	13.09
-32	13.52
-48	14.13
-48	13.86
-48	13.70
-48	13.88
-48	13.71
-Random:
-proc	time (s)
-1	1.18
-1	1.07
-1	1.06
-1	1.06
-1	1.05
-2	3.02
-2	3.08
-2	3.07
-2	3.06
-2	2.93
-4	6.06
-4	6.38
-4	6.40
-4	6.31
-4	5.95
-8	9.26
-8	9.21
-8	9.32
-8	9.38
-8	9.25
-16	14.02
-16	14.12
-16	14.51
-16	14.21
-16	14.38
-24	18.74
-24	18.51
-24	18.45
-24	18.47
-24	17.91
-32	19.38
-32	19.58
-32	19.51
-32	19.68
-32	19.56
-48	21.48
-48	20.41
-48	21.43
-48	20.59
-48	20.54
+2	3.13
+2	3.15
+2	3.21
+4	6.72
+4	6.66
+4	6.88
+4	6.75
+4	6.60
+8	10.42
+8	10.41
+8	10.23
+8	10.26
+8	10.32
+16	17.10
+16	16.88
+16	17.19
+16	17.07
+16	16.83
+24	24.22
+24	23.14
+24	23.81
+24	23.58
+24	23.33
+32	23.88
+32	23.60
+32	23.88
+32	23.41
+32	22.89
+48	22.90
+48	23.94
+48	22.71
+48	24.10
+48	23.63
 
 balance_one
 Longest-Victim:
 proc	time (s)
-1	19.46
+1	19.12
+1	19.18
+1	19.14
+1	19.14
+1	19.17
+2	10.24
+2	10.18
+2	10.17
+2	10.19
+2	10.25
+4	5.81
+4	5.62
+4	5.63
+4	5.59
+4	5.63
+8	3.08
+8	3.20
+8	3.38
+8	3.23
+8	3.05
+16	2.05
+16	2.19
+16	2.05
+16	2.06
+16	2.22
+24	2.05
+24	1.71
+24	1.78
+24	1.85
+24	1.70
+32	2.15
+32	2.12
+32	2.06
+32	1.93
+32	2.07
+48	1.93
+48	2.04
+48	1.96
+48	2.08
+48	2.02
+No-Stealing:
+proc	time (s)
+1	19.02
+1	19.02
+1	18.99
+1	19.01
+1	19.03
+2	19.43
+2	19.34
+2	19.40
+2	19.44
+2	19.32
+4	19.92
+4	19.97
+4	19.99
+4	19.91
+4	19.92
+8	19.99
+8	19.95
+8	20.05
+8	20.01
+8	20.00
+16	22.71
+16	22.76
+16	22.75
+16	22.75
+16	22.76
+24	25.09
+24	25.05
+24	25.06
+24	25.06
+24	25.08
+32	40.82
+32	33.41
+32	27.51
+32	25.31
+32	36.45
+48	47.10
+48	47.16
+48	47.10
+48	47.14
+48	47.15
+Random:
+proc	time (s)
 1	19.35
+1	19.33
+1	19.35
+1	19.33
 1	19.34
-1	19.32
-1	19.32
-2	10.05
-2	10.06
-2	10.05
-2	10.03
-2	10.07
-4	5.56
-4	5.45
-4	5.54
-4	5.53
-4	5.52
-8	3.09
-8	3.28
-8	3.26
-8	3.13
-8	3.25
-16	2.14
-16	2.11
-16	2.11
-16	2.19
-16	2.07
-24	1.79
-24	1.73
+2	10.31
+2	10.29
+2	10.27
+2	10.25
+2	10.27
+4	5.82
+4	5.74
+4	5.78
+4	5.68
+4	5.64
+8	3.37
+8	3.22
+8	3.18
+8	3.29
+8	3.06
+16	2.09
+16	2.30
+16	2.05
+16	2.16
+16	1.98
+24	1.68
 24	1.65
-24	1.91
-24	1.67
-32	2.36
-32	2.01
-32	2.25
-32	2.29
-32	2.02
-48	1.89
+24	1.70
+24	1.63
+24	1.81
+32	1.95
+32	1.99
+32	2.08
+32	2.14
+32	1.97
 48	2.13
-48	2.77
-48	2.12
-48	2.17
-No-Stealing:
-proc	time (s)
-1	21.00
-1	20.93
-1	20.89
-1	20.87
-1	20.91
-2	20.77
-2	20.82
-2	20.77
-2	20.67
-2	20.70
-4	21.49
-4	21.46
-4	21.39
-4	21.37
-4	21.42
-8	21.65
-8	21.61
-8	21.67
-8	21.68
-8	21.64
-16	24.83
-16	24.80
-16	25.00
-16	24.79
-16	24.78
-24	27.33
-24	27.31
-24	27.33
-24	27.42
-24	27.47
-32	42.27
-32	37.89
-32	37.00
-32	43.07
-32	33.87
-48	47.49
-48	47.68
-48	47.51
-48	47.50
-48	47.72
-Random:
-proc	time (s)
-1	20.81
-1	20.81
-1	20.75
-1	20.74
-1	20.74
-2	10.81
-2	10.78
-2	10.79
-2	10.80
-2	10.72
-4	5.99
-4	5.94
-4	5.95
-4	6.06
-4	5.95
-8	3.42
-8	3.32
-8	3.30
-8	3.50
-8	3.34
-16	2.11
-16	2.21
-16	2.28
-16	2.37
-16	2.31
-24	1.83
-24	1.90
-24	1.92
-24	1.72
-24	1.79
-32	2.26
-32	2.35
-32	2.27
-32	2.08
-32	2.31
-48	2.00
+48	2.02
+48	1.95
 48	1.83
-48	2.04
-48	2.15
-48	2.02
+48	1.84
 
 balance_multi
 Longest-Victim:
 proc	time (s)
-1	7.94
-1	7.85
-1	7.84
-1	7.84
-1	7.87
-2	4.09
-2	4.04
-2	4.04
-2	4.06
-2	4.01
-4	4.38
-4	4.32
-4	4.33
-4	4.32
+1	7.80
+1	7.70
+1	7.72
+1	7.71
+1	7.72
+2	4.16
+2	4.10
+2	4.10
+2	4.10
+2	4.11
+4	4.47
+4	4.39
+4	4.44
+4	4.42
+4	4.43
+8	4.68
+8	4.71
+8	4.70
+8	4.67
+8	4.73
+16	5.82
+16	5.79
+16	5.80
+16	5.81
+16	5.68
+24	6.67
+24	6.62
+24	6.67
+24	6.72
+24	6.83
+32	9.48
+32	9.46
+32	9.57
+32	9.69
+32	9.56
+48	13.89
+48	13.70
+48	13.55
+48	13.76
+48	13.75
+No-Stealing:
+proc	time (s)
+1	7.75
+1	7.70
+1	7.69
+1	7.68
+1	7.67
+2	7.77
+2	7.77
+2	7.77
+2	7.75
+2	7.80
+4	8.24
+4	8.24
+4	8.24
+4	8.21
+4	8.22
+8	8.40
+8	8.36
+8	8.37
+8	8.37
+8	8.35
+16	9.72
+16	9.63
+16	9.64
+16	9.62
+16	9.64
+24	10.70
+24	10.70
+24	10.72
+24	10.69
+24	10.76
+32	19.39
+32	19.45
+32	19.13
+32	19.16
+32	19.03
+48	20.51
+48	20.74
+48	20.75
+48	20.73
+48	20.94
+Random:
+proc	time (s)
+1	7.79
+1	7.80
+1	7.80
+1	7.80
+1	7.80
+2	4.15
+2	4.12
+2	4.12
+2	4.13
+2	4.12
+4	4.36
+4	4.34
 4	4.35
-8	4.90
-8	4.80
-8	4.81
-8	4.88
-8	4.92
-16	5.99
-16	6.06
-16	6.17
-16	6.19
-16	6.03
-24	6.42
-24	6.46
-24	6.51
-24	6.72
-24	6.78
-32	9.53
-32	9.66
-32	9.42
-32	9.42
-32	9.57
-48	14.48
-48	14.37
-48	14.47
-48	14.38
-48	14.50
-No-Stealing:
-proc	time (s)
-1	8.48
-1	8.42
-1	8.40
-1	8.41
-1	8.41
-2	8.32
-2	8.32
-2	8.30
-2	8.31
-2	8.34
-4	8.76
-4	8.80
-4	8.77
-4	8.78
-4	8.82
-8	9.14
-8	9.11
-8	9.15
-8	9.14
-8	9.16
-16	10.42
-16	10.48
-16	10.47
-16	10.44
-16	10.43
-24	11.53
-24	11.38
-24	11.38
-24	11.39
-24	11.52
-32	19.37
-32	19.52
-32	19.15
-32	19.07
-32	19.52
-48	21.30
-48	21.21
-48	21.15
-48	21.50
-48	21.15
-Random:
-proc	time (s)
-1	8.49
-1	8.39
-1	8.40
-1	8.45
-1	8.41
-2	4.34
-2	4.35
-2	4.33
-2	4.31
-2	4.33
-4	4.61
-4	4.57
-4	4.56
-4	4.57
-4	4.58
-8	4.81
-8	4.77
-8	4.82
-8	4.80
-8	4.80
-16	5.54
-16	5.50
-16	5.48
-16	5.47
-16	5.50
-24	5.96
-24	5.97
-24	5.97
-24	6.39
-24	6.20
-32	8.04
-32	8.03
-32	7.94
-32	7.93
-32	8.03
-48	11.33
-48	11.13
-48	11.14
-48	11.21
-48	11.35
+4	4.35
+4	4.35
+8	4.44
+8	4.48
+8	4.44
+8	4.47
+8	4.44
+16	5.13
+16	5.13
+16	5.14
+16	5.13
+16	5.13
+24	5.71
+24	5.72
+24	5.72
+24	5.98
+24	6.02
+32	7.87
+32	7.88
+32	7.89
+32	7.89
+32	7.85
+48	11.00
+48	11.01
+48	11.04
+48	10.99
+48	10.99
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_MEM.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_MEM.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_MEM.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,35 @@
+5
+48
+CFA CAF Akka uC++ ProtoActor 
+mem
+CFA:
+302612
+292592
+302660
+296916
+298092
+CAF:
+165552
+179132
+165024
+159172
+152472
+Akka:
+8732320
+6941472
+7780188
+8046684
+9721544
+uC++:
+183752
+175000
+190836
+185552
+187620
+ProtoActor:
+562852
+568544
+559540
+563512
+584304
+
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_SEND.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_SEND.txt	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/data/pyke_SEND.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -4,9 +4,9 @@
 static
 CFA
-24.64
-24.18
-23.95
-23.95
-23.89
+25.56
+24.91
+24.96
+24.90
+24.91
 CAF:
 1712
@@ -36,9 +36,9 @@
 dynamic
 CFA
-56.02
-56.18
-56.29
-55.94
-55.93
+63.14
+58.90
+58.87
+58.80
+58.82
 CAF:
 8450
Index: doc/theses/colby_parsons_MMAth/benchmarks/actors/genPlots
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/actors/genPlots	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/actors/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -4,2 +4,6 @@
 python3 plotData.py data/nasus_CFA.txt nasusCFA
 python3 plotData.py data/pyke_CFA.txt pykeCFA
+python3 plotData.py data/nasus_SEND.txt nasus
+python3 plotData.py data/pyke_SEND.txt pyke
+python3 plotData.py data/nasus_MEM.txt nasus
+python3 plotData.py data/pyke_MEM.txt pyke
Index: doc/theses/colby_parsons_MMAth/benchmarks/channels/data/nasus.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/channels/data/nasus.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/channels/data/nasus.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,68 @@
+5
+2 4 8 16 24 32
+CFA Go 
+contend: 
+CFA:
+cores	throughput (entries)
+2	551286815
+2	551571851
+2	552609970
+2	550645159
+2	551408217
+4	401548741
+4	399726800
+4	400805457
+4	400374246
+4	400036245
+8	83833131
+8	85215809
+8	78675522
+8	77117062
+8	78952724
+16	45757611
+16	43434187
+16	43167191
+16	38760778
+16	38089187
+24	49974858
+24	43920833
+24	34870886
+24	38659096
+24	50407137
+32	45780022
+32	35247189
+32	33644070
+32	45037228
+32	41352523
+Go:
+cores	throughput (entries)
+2	311586714
+2	317443340
+2	306943968
+2	313532129
+2	319176028
+4	239546403
+4	237102189
+4	236127253
+4	238228033
+4	238143975
+8	106047415
+8	115591180
+8	109898737
+8	120893507
+8	114025063
+16	40950543
+16	38709696
+16	48643203
+16	48749849
+16	36154667
+24	41250340
+24	32248479
+24	34967215
+24	30199179
+24	42352113
+32	37012621
+32	42679904
+32	36861891
+32	42289651
+32	42185180
Index: doc/theses/colby_parsons_MMAth/benchmarks/channels/data/pyke.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/channels/data/pyke.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/channels/data/pyke.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,68 @@
+5
+2 4 8 16 24 32
+CFA Go 
+contend: 
+CFA:
+cores	throughput (entries)
+2	329449063
+2	337588767
+2	361434457
+2	358608413
+2	347994204
+4	149531302
+4	144861313
+4	155833698
+4	148693619
+4	147357220
+8	56837894
+8	55492836
+8	58486345
+8	61065249
+8	57501460
+16	40610682
+16	41502618
+16	40547457
+16	42161859
+16	41104030
+24	38892695
+24	37659117
+24	38517375
+24	39237104
+24	38905810
+32	34053774
+32	33262537
+32	34182192
+32	35591452
+32	33701109
+Go:
+cores	throughput (entries)
+2	262695836
+2	259522629
+2	264620424
+2	263513756
+2	261709432
+4	195640947
+4	198914691
+4	198331166
+4	199846909
+4	194256135
+8	84136662
+8	83617598
+8	82212468
+8	81249230
+8	83531222
+16	37690664
+16	32904283
+16	37513686
+16	36389425
+16	36887196
+24	31560865
+24	30341279
+24	31687458
+24	30711777
+24	30421494
+32	29845150
+32	30053899
+32	29871808
+32	29625722
+32	30007528
Index: doc/theses/colby_parsons_MMAth/benchmarks/channels/genPlots
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/channels/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/channels/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,3 @@
+#!/bin/bash -
+python3 plotData.py data/nasus.txt nasus_
+python3 plotData.py data/pyke.txt pyke_
Index: doc/theses/colby_parsons_MMAth/benchmarks/channels/plotData.py
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/channels/plotData.py	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/channels/plotData.py	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -20,5 +20,8 @@
     'font.size': 16
 })
-marker = itertools.cycle(('o', 's', 'D', 'x', 'p', '^', 'h', '*', 'v' )) 
+marker = itertools.cycle(('o', 's', 'D', 'x', 'p', '^', 'h', '*', 'v' ))
+
+def sci_format(x, pos):
+    return '{:.1e}'.format(x).replace('+0', '')
 
 readfile = open(sys.argv[1], "r")
@@ -62,6 +65,7 @@
 procCount = 0
 currVariant = 0
-experiment_duration = 10
+experiment_duration = 10.0
 name = ""
+title = ""
 var_name = ""
 sendData = [0.0 for j in range(numVariants)]
@@ -74,5 +78,6 @@
     if currBench == Bench.Unset:
         if line == "contend:":
-            name = "Channel Contention"
+            name = "Channel_Contention"
+            title = "Channel Contention"
             currBench = Bench.Contend
         elif line == "zero:":
@@ -126,11 +131,16 @@
             if currVariant == numVariants:
                 fig, ax = plt.subplots(layout='constrained')
-                plt.title(name + " Benchmark")
-                plt.ylabel("Throughput (channel operations)")
+                if title != "":
+                    plt.title(title + " Benchmark")
+                    title = ""
+                else:
+                    plt.title(name + " Benchmark")
+                plt.ylabel("Throughput (channel operations per second)")
                 plt.xlabel("Cores")
+                ax.yaxis.set_major_formatter(ticks.FuncFormatter(sci_format))
                 for idx, arr in enumerate(data):
                     plt.errorbar( procs, arr, [bars[idx][0], bars[idx][1]], capsize=2, marker=next(marker) )
                 marker = itertools.cycle(('o', 's', 'D', 'x', 'p', '^', 'h', '*', 'v' )) 
-                plt.yscale("log")
+                # plt.yscale("log")
                 # plt.ylim(1, None)
                 # ax.get_yaxis().set_major_formatter(ticks.ScalarFormatter())
Index: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/data/nasus.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/data/nasus.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/data/nasus.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,826 @@
+11
+2 4 8 16 24 32
+2 4 8 
+CFA-baseline CPP-baseline CFA-rand CPP-rand 
+locks: 2
+CFA-baseline:
+cores	throughput (entries)
+2	77079493
+2	77146030
+2	78647422
+2	78351981
+2	78665763
+2	77624285
+2	78744619
+2	77439962
+2	77081095
+2	77554735
+2	78577864
+4	50537314
+4	60737039
+4	50523683
+4	50461536
+4	50426952
+4	50559428
+4	51138857
+4	51205573
+4	50674923
+4	50425730
+4	50465707
+8	24281863
+8	26629412
+8	26662506
+8	24230920
+8	24602094
+8	26688981
+8	26580917
+8	25967548
+8	23680294
+8	24187135
+8	23644833
+16	19158111
+16	20213031
+16	18096541
+16	18064819
+16	19134101
+16	19986908
+16	18058102
+16	19090520
+16	24054563
+16	20314381
+16	19861678
+24	18241849
+24	18288540
+24	19127375
+24	21489265
+24	18154181
+24	19468045
+24	18305226
+24	19701077
+24	19438093
+24	18085407
+24	18194915
+32	17729433
+32	19365158
+32	17672719
+32	17683978
+32	17635729
+32	18715801
+32	17726868
+32	17719413
+32	17787385
+32	17717981
+32	17646357
+CPP-baseline:
+cores	throughput (entries)
+2	82587107
+2	82711263
+2	82623017
+2	82642460
+2	82673739
+2	82598099
+2	82639820
+2	82657708
+2	82528616
+2	82659003
+2	82634209
+4	89336994
+4	89997420
+4	77356141
+4	89491167
+4	89433094
+4	78268165
+4	89054019
+4	77516059
+4	91976879
+4	78873945
+4	89899845
+8	29312436
+8	29345105
+8	29899699
+8	29935004
+8	26572631
+8	29704910
+8	29004298
+8	27729805
+8	29880618
+8	29313571
+8	29319006
+16	24157367
+16	18893499
+16	20009432
+16	23138058
+16	23096888
+16	23127360
+16	18508406
+16	23115140
+16	19582723
+16	19694168
+16	18585765
+24	19025036
+24	18749003
+24	19129834
+24	22778610
+24	22827063
+24	22843323
+24	18591656
+24	22841697
+24	22812195
+24	18949500
+24	19033235
+32	21900566
+32	18058318
+32	18336453
+32	18392635
+32	18197834
+32	18239837
+32	18051066
+32	21905523
+32	21895774
+32	18735399
+32	21892301
+
+CFA-rand:
+cores	throughput (entries)
+2	67139387
+2	66656679
+2	68342611
+2	66788128
+2	67299518
+2	65896926
+2	66471034
+2	68759389
+2	67552322
+2	66248961
+2	67150860
+4	46871177
+4	46624286
+4	46497395
+4	46788288
+4	46681442
+4	46616364
+4	46801563
+4	46850742
+4	46527634
+4	46558708
+4	46357016
+8	22107339
+8	22587414
+8	22115461
+8	22919226
+8	22972821
+8	22103001
+8	23353413
+8	23169571
+8	22979592
+8	23167534
+8	23305547
+16	18234246
+16	18469382
+16	18086195
+16	17988734
+16	17493708
+16	18292656
+16	17642842
+16	18431304
+16	18045331
+16	18262918
+16	18491455
+24	17286996
+24	16944935
+24	16534843
+24	17421477
+24	17148508
+24	17235441
+24	17609202
+24	17171639
+24	16276763
+24	17070252
+24	17186997
+32	16897860
+32	16547348
+32	16398899
+32	16455905
+32	16451258
+32	16258591
+32	15786629
+32	15877174
+32	17024260
+32	17870606
+32	16918078
+CPP-rand:
+cores	throughput (entries)
+2	108425436
+2	106293778
+2	106393027
+2	106317669
+2	107794080
+2	106300083
+2	106466077
+2	108423252
+2	107601674
+2	108457677
+2	106393644
+4	4957214
+4	5044765
+4	5316815
+4	9111156
+4	4823367
+4	7769757
+4	3869847
+4	4574277
+4	4510715
+4	8084596
+4	4381546
+8	575794
+8	1203972
+8	1213130
+8	769499
+8	1090241
+8	906807
+8	920102
+8	888107
+8	1292919
+8	1096541
+8	513445
+16	279465
+16	46820
+16	256772
+16	296206
+16	48272
+16	280982
+16	3668733
+16	51490
+16	38343
+16	46313
+16	51192
+24	29006
+24	34424
+24	30018
+24	309384
+24	30237
+24	347162
+24	300419
+24	223239
+24	304041
+24	28660
+24	26010
+32	265608
+32	28252
+32	170908
+32	164815
+32	28847
+32	166579
+32	27385
+32	36578
+32	155500
+32	25657
+32	164097
+locks: 4
+CFA-baseline:
+cores	throughput (entries)
+2	42763531
+2	42953663
+2	43045349
+2	42907110
+2	43021016
+2	42549260
+2	42987288
+2	43061089
+2	42860049
+2	43096837
+2	42584212
+4	27287823
+4	26175516
+4	26179220
+4	26137863
+4	26451405
+4	27280339
+4	26133597
+4	26697346
+4	26137653
+4	26181121
+4	26122063
+8	12345741
+8	15297441
+8	14153084
+8	13159610
+8	13263952
+8	13330421
+8	14237918
+8	13244888
+8	13189405
+8	13174601
+8	12600224
+16	11894560
+16	11385532
+16	12020652
+16	9813102
+16	9979086
+16	10879622
+16	9860504
+16	11155194
+16	9962784
+16	9841527
+16	11711464
+24	11478107
+24	11417068
+24	11338054
+24	9479472
+24	9339826
+24	9606268
+24	11485165
+24	9717959
+24	9324302
+24	9649451
+24	10619765
+32	9218616
+32	10835069
+32	9417323
+32	9376572
+32	8997220
+32	9272967
+32	9123809
+32	9126840
+32	10469107
+32	11125665
+32	11020739
+CPP-baseline:
+cores	throughput (entries)
+2	51593584
+2	52154199
+2	51552657
+2	51569018
+2	51572845
+2	51604895
+2	51631998
+2	51811325
+2	51774329
+2	51497464
+2	51553663
+4	25376402
+4	25389226
+4	25377526
+4	25378370
+4	25376248
+4	25383173
+4	25402324
+4	25387353
+4	25352354
+4	25376768
+4	25366071
+8	14436849
+8	15375544
+8	12697115
+8	14506260
+8	14482185
+8	12999013
+8	14705680
+8	14601357
+8	13591593
+8	14471215
+8	13328574
+16	8996403
+16	8967821
+16	10565459
+16	10592706
+16	9784821
+16	9123499
+16	11965588
+16	9620717
+16	9855331
+16	9055267
+16	9466203
+24	8942634
+24	9020629
+24	10085121
+24	10043927
+24	10093053
+24	9102109
+24	10104539
+24	8977564
+24	10090371
+24	8987234
+24	10131129
+32	8733031
+32	8807371
+32	8679281
+32	8797127
+32	9841057
+32	9793819
+32	9831018
+32	8755738
+32	8638545
+32	9830079
+32	8692572
+
+CFA-rand:
+cores	throughput (entries)
+2	32126163
+2	32233664
+2	32363690
+2	32317382
+2	32248365
+2	32414979
+2	32749840
+2	32486438
+2	32810777
+2	31766818
+2	32243817
+4	23266695
+4	22512584
+4	23039738
+4	23657257
+4	23094497
+4	23112792
+4	23254176
+4	23286400
+4	23244442
+4	22457828
+4	23345564
+8	10586582
+8	10584917
+8	10644232
+8	10466176
+8	10575050
+8	10642702
+8	11046376
+8	10780824
+8	10778359
+8	10722428
+8	10226265
+16	8586858
+16	8508105
+16	8532439
+16	7470233
+16	7481213
+16	7308526
+16	8539278
+16	7742156
+16	7012706
+16	8513057
+16	9177299
+24	6603939
+24	7006508
+24	8186051
+24	6789561
+24	8110902
+24	6854980
+24	8162017
+24	6958466
+24	6737649
+24	6996253
+24	6730200
+32	8439025
+32	6509502
+32	8014270
+32	6562828
+32	6595786
+32	7962308
+32	7891463
+32	6590890
+32	6639842
+32	8896283
+32	6503589
+CPP-rand:
+cores	throughput (entries)
+2	19493422
+2	19579521
+2	19743496
+2	19741567
+2	20354480
+2	20145079
+2	18961059
+2	17895926
+2	18510876
+2	19375134
+2	19633170
+4	96410
+4	89726
+4	87132
+4	86790
+4	79421
+4	78239
+4	87250
+4	81480
+4	83751
+4	82020
+4	92220
+8	120210
+8	196902
+8	128404
+8	127461
+8	142551
+8	142119
+8	166110
+8	139413
+8	148845
+8	106506
+8	135714
+16	2382
+16	5905
+16	2992
+16	2626
+16	3086
+16	5369
+16	45884
+16	46846
+16	4975
+16	7933
+16	5879
+24	9370
+24	2149
+24	9342
+24	2758
+24	9609
+24	6553
+24	3234
+24	3276
+24	4288
+24	1187
+24	2547
+32	5204
+32	2287
+32	4896
+32	2860
+32	5340
+32	5391
+32	6772
+32	4656
+32	3163
+32	4529
+32	5691
+locks: 8
+CFA-baseline:
+cores	throughput (entries)
+2	44460716
+2	44393108
+2	44156750
+2	44189538
+2	44524595
+2	43979623
+2	44434622
+2	44258555
+2	44459537
+2	44268062
+2	44203298
+4	29635920
+4	29496925
+4	28605121
+4	29062508
+4	29118731
+4	29039079
+4	28576993
+4	29426814
+4	29535861
+4	29257177
+4	29702661
+8	16005789
+8	14303725
+8	15710107
+8	14199556
+8	15325487
+8	14704819
+8	17149301
+8	15774372
+8	13736289
+8	13939914
+8	13776759
+16	9878170
+16	10388006
+16	10772009
+16	9966168
+16	9488732
+16	10083514
+16	12042884
+16	10011675
+16	11470139
+16	10287473
+16	10504158
+24	11710683
+24	10231089
+24	11911501
+24	9925885
+24	10298595
+24	12102893
+24	12697802
+24	10938300
+24	9725875
+24	9607654
+24	10805664
+32	10268709
+32	9335944
+32	9571362
+32	9722845
+32	11718582
+32	10938651
+32	11783060
+32	9623929
+32	11281835
+32	9381442
+32	10587343
+CPP-baseline:
+cores	throughput (entries)
+2	122140484
+2	122022476
+2	122073213
+2	122069297
+2	122033222
+2	122069228
+2	122074505
+2	122106609
+2	122140836
+2	122190624
+2	122121100
+4	86030601
+4	85475167
+4	85974521
+4	85597069
+4	85984154
+4	85935554
+4	86050302
+4	86411721
+4	85220577
+4	85290663
+4	85300473
+8	44462964
+8	44662419
+8	45186644
+8	44711292
+8	36679011
+8	36628941
+8	33289328
+8	35238771
+8	33235005
+8	36692420
+8	35309639
+16	24075586
+16	25383997
+16	24234705
+16	22360365
+16	24107880
+16	33983173
+16	24222747
+16	33932863
+16	33780992
+16	24266493
+16	33569897
+24	27304928
+24	23696946
+24	26286106
+24	23669674
+24	24080013
+24	22276554
+24	23684497
+24	23672623
+24	24396513
+24	21824275
+24	23899391
+32	21942735
+32	21845396
+32	22816220
+32	22932044
+32	22848081
+32	21349450
+32	21716576
+32	22886705
+32	22827018
+32	21798928
+32	22479631
+
+CFA-rand:
+cores	throughput (entries)
+2	90701593
+2	90774413
+2	91006658
+2	90776662
+2	90802363
+2	90762346
+2	90831501
+2	90610185
+2	90836992
+2	90581412
+2	90573679
+4	79836592
+4	79407058
+4	79861701
+4	79174677
+4	79342028
+4	79529590
+4	79559025
+4	79272106
+4	79022372
+4	80165125
+4	79393320
+8	40124043
+8	38645852
+8	36847286
+8	43930913
+8	37154256
+8	38469537
+8	41798561
+8	42647820
+8	38373332
+8	38779609
+8	40260279
+16	28989096
+16	27330135
+16	30495840
+16	27209027
+16	30168499
+16	30611337
+16	26719304
+16	30515194
+16	27237317
+16	30694449
+16	30386777
+24	29053795
+24	25344093
+24	25423850
+24	28713970
+24	29351918
+24	29122414
+24	29235799
+24	29297417
+24	26841037
+24	29241995
+24	29236657
+32	28372188
+32	24980635
+32	28265451
+32	31275045
+32	28376733
+32	24834516
+32	28197942
+32	28135299
+32	24617974
+32	30854056
+32	27029341
+CPP-rand:
+cores	throughput (entries)
+2	1273726
+2	1266301
+2	1273360
+2	1266823
+2	1161903
+2	1228276
+2	1220034
+2	1173954
+2	1149322
+2	1270525
+2	1226638
+4	6177
+4	4949
+4	5026
+4	4985
+4	4612
+4	5054
+4	4685
+4	4469
+4	5143
+4	4476
+4	5057
+8	6030
+8	4532
+8	5141
+8	5220
+8	4645
+8	4020
+8	4762
+8	4817
+8	4784
+8	4713
+8	6519
+16	1103
+16	2093
+16	719
+16	3474
+16	1724
+16	779
+16	848
+16	1100
+16	1264
+16	1013
+16	430
+24	1945
+24	842
+24	1019
+24	1291
+24	706
+24	709
+24	781
+24	968
+24	617
+24	981
+24	912
+32	1287
+32	908
+32	878
+32	936
+32	1148
+32	976
+32	1560
+32	1141
+32	1096
+32	1048
+32  917
Index: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/data/pyke.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/data/pyke.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/data/pyke.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,826 @@
+11
+2 4 8 16 24 32
+2 4 8 
+CFA-baseline CPP-baseline CFA-rand CPP-rand 
+locks: 2
+CFA-baseline:
+cores	throughput (entries)
+2	156366158
+2	148111668
+2	159629122
+2	134037579
+2	148363001
+2	160092915
+2	146218812
+2	146118888
+2	141380117
+2	133185157
+2	153249300
+4	91137162
+4	85307123
+4	90583036
+4	88993345
+4	97152950
+4	88994716
+4	92020657
+4	90893559
+4	94315083
+4	96629020
+4	90650596
+8	60589364
+8	62638563
+8	61452745
+8	60911801
+8	57536571
+8	62330455
+8	61135417
+8	62640850
+8	62035864
+8	60550487
+8	60600112
+16	36064721
+16	38654303
+16	37316087
+16	38437522
+16	32070645
+16	35236779
+16	35942584
+16	36368641
+16	34545365
+16	36951002
+16	38243137
+24	21494423
+24	21100010
+24	20958711
+24	21285651
+24	22389314
+24	21561489
+24	21905807
+24	22592519
+24	21370689
+24	22016897
+24	20887672
+32	19748567
+32	19982770
+32	19646182
+32	19613980
+32	20432581
+32	20977464
+32	18127230
+32	19121974
+32	19136698
+32	19235555
+32	19592493
+CPP-baseline:
+cores	throughput (entries)
+2	151210672
+2	134516398
+2	116676205
+2	151482430
+2	145433033
+2	143905239
+2	129918506
+2	134823272
+2	133313381
+2	162301104
+2	159500652
+4	94898333
+4	92065909
+4	92164482
+4	99042941
+4	88047898
+4	88700692
+4	92610246
+4	92220134
+4	91329571
+4	94267761
+4	97371529
+8	61783411
+8	62487151
+8	62725596
+8	59854754
+8	59710905
+8	62478781
+8	62279537
+8	60085059
+8	60919669
+8	62488709
+8	61418331
+16	35988504
+16	38134118
+16	37430655
+16	35759683
+16	34876487
+16	35348408
+16	31616025
+16	34309336
+16	32909305
+16	38106267
+16	35747966
+24	20171838
+24	21477659
+24	20937327
+24	20087253
+24	20762949
+24	21405455
+24	19924126
+24	20960597
+24	19701885
+24	19923754
+24	20209564
+32	18656038
+32	18879418
+32	19511896
+32	18877539
+32	19309024
+32	16668604
+32	18896579
+32	18443510
+32	19278271
+32	19172682
+32	18650766
+
+CFA-rand:
+cores	throughput (entries)
+2	106079280
+2	109165899
+2	106190013
+2	100326267
+2	110431610
+2	108718402
+2	109506259
+2	109675263
+2	100580426
+2	116689631
+2	106202366
+4	69138814
+4	73462806
+4	71424631
+4	71151913
+4	68105124
+4	72686268
+4	68582485
+4	72329445
+4	72170487
+4	71483148
+4	67140081
+8	50764592
+8	48199516
+8	46106930
+8	48532941
+8	51517921
+8	48191264
+8	49870530
+8	54434678
+8	47067107
+8	47617661
+8	45909903
+16	24992687
+16	24121238
+16	25899927
+16	27442485
+16	26877458
+16	25653984
+16	25812918
+16	24693172
+16	24104591
+16	25468770
+16	26472584
+24	10905658
+24	14298009
+24	10350625
+24	13112774
+24	10772959
+24	10404123
+24	16342552
+24	11210621
+24	11992280
+24	12227502
+24	11815758
+32	12222764
+32	11680368
+32	10371906
+32	9340757
+32	9654677
+32	9705358
+32	11592471
+32	10740592
+32	9789984
+32	11439019
+32	9430501
+CPP-rand:
+cores	throughput (entries)
+2	92838726
+2	76195187
+2	99905117
+2	85732395
+2	93561773
+2	75513848
+2	102682517
+2	100912364
+2	82308583
+2	91049192
+2	92561312
+4	31856100
+4	30499024
+4	30654715
+4	33819774
+4	30735212
+4	31695838
+4	32184832
+4	31466638
+4	34003046
+4	29306871
+4	32000755
+8	12336616
+8	11364691
+8	11732449
+8	12739864
+8	12558313
+8	11754654
+8	11439510
+8	11413638
+8	11606840
+8	11926763
+8	11478250
+16	3384302
+16	3593102
+16	3338151
+16	3220539
+16	3332480
+16	3271850
+16	3378613
+16	3613377
+16	3261974
+16	3164858
+16	3616664
+24	1406599
+24	1513729
+24	1380970
+24	1420562
+24	1556399
+24	1344496
+24	1407984
+24	1565402
+24	1371450
+24	1372076
+24	1314823
+32	582501
+32	631640
+32	617462
+32	704006
+32	558714
+32	636503
+32	597397
+32	690868
+32	645501
+32	554080
+32	674478
+locks: 4
+CFA-baseline:
+cores	throughput (entries)
+2	74572214
+2	73599665
+2	73045722
+2	73752628
+2	72977303
+2	64785522
+2	81273579
+2	78320960
+2	82142093
+2	79633186
+2	86710390
+4	57155036
+4	54788331
+4	54405324
+4	52036712
+4	50336203
+4	56718137
+4	49424302
+4	49997233
+4	55969488
+4	49685248
+4	48225669
+8	34159238
+8	33956350
+8	33732196
+8	36489417
+8	36737175
+8	34373180
+8	34870362
+8	35783027
+8	36534563
+8	34539063
+8	34442974
+16	18937797
+16	18223052
+16	18803849
+16	19239276
+16	20221702
+16	18873636
+16	19272185
+16	19118586
+16	18906145
+16	18223772
+16	19431151
+24	10673517
+24	11506627
+24	11311012
+24	11851819
+24	11514449
+24	10480698
+24	12044293
+24	11137068
+24	11297991
+24	12751258
+24	10437187
+32	10927127
+32	10229682
+32	10469391
+32	11170565
+32	10531838
+32	10205346
+32	10154719
+32	9676394
+32	10375384
+32	11216535
+32	9633823
+CPP-baseline:
+cores	throughput (entries)
+2	71702386
+2	90229423
+2	86558775
+2	93272884
+2	82763619
+2	86225344
+2	73057508
+2	89452129
+2	76509616
+2	81931032
+2	91136729
+4	54019437
+4	55680412
+4	58185510
+4	58754890
+4	59008402
+4	53572862
+4	58912038
+4	50882340
+4	54796163
+4	56311157
+4	51776671
+8	34870909
+8	34208326
+8	33874707
+8	37449725
+8	35864280
+8	37531608
+8	37579471
+8	35967318
+8	37658220
+8	35973782
+8	35765052
+16	18704562
+16	17976805
+16	18185239
+16	18378242
+16	17023046
+16	18278925
+16	19724692
+16	17963925
+16	18201576
+16	19530748
+16	19365283
+24	11686208
+24	11887163
+24	11725871
+24	11967357
+24	11305411
+24	11169012
+24	11610056
+24	10356276
+24	11891141
+24	10288080
+24	10399111
+32	10897538
+32	9185536
+32	10197031
+32	9957906
+32	10552963
+32	10226746
+32	10293025
+32	10070229
+32	10730855
+32	9227790
+32	10596969
+
+CFA-rand:
+cores	throughput (entries)
+2	55529865
+2	53589086
+2	47417988
+2	53681235
+2	54840979
+2	54833260
+2	52167055
+2	55727582
+2	55839212
+2	57968776
+2	54314968
+4	34583895
+4	31096771
+4	34914705
+4	31614947
+4	30183593
+4	31312779
+4	33040695
+4	31871387
+4	30181583
+4	33108489
+4	30181625
+8	20280119
+8	21481414
+8	20247645
+8	20717673
+8	20615346
+8	21125408
+8	20911578
+8	20738211
+8	21137492
+8	20813471
+8	20819543
+16	11043276
+16	10969651
+16	11414321
+16	11126229
+16	11137692
+16	11094415
+16	11434467
+16	11385693
+16	11200892
+16	10752556
+16	11242886
+24	7458082
+24	6189620
+24	6488852
+24	6873022
+24	6480462
+24	6727812
+24	5997943
+24	6511122
+24	6806277
+24	6680014
+24	6974965
+32	6074127
+32	6171854
+32	5865507
+32	5790871
+32	6636287
+32	5928924
+32	6317618
+32	6285653
+32	6478048
+32	6018550
+32	6178487
+CPP-rand:
+cores	throughput (entries)
+2	30003735
+2	29760867
+2	30191524
+2	28370136
+2	30199420
+2	27632223
+2	30116577
+2	33045126
+2	25979933
+2	31535792
+2	30837445
+4	3561868
+4	3591917
+4	3549972
+4	3559668
+4	3577996
+4	3325733
+4	4400495
+4	3613703
+4	3824405
+4	3164609
+4	3546560
+8	544043
+8	568011
+8	478995
+8	520688
+8	532861
+8	539778
+8	524540
+8	546038
+8	618736
+8	493616
+8	604406
+16	45623
+16	39069
+16	42605
+16	46023
+16	43667
+16	41976
+16	44198
+16	42908
+16	44344
+16	45386
+16	46274
+24	6315
+24	7977
+24	6172
+24	6136
+24	7228
+24	7048
+24	6117
+24	9114
+24	6580
+24	7329
+24	7818
+32	1252
+32	964
+32	2284
+32	1245
+32	1300
+32	1241
+32	1430
+32	986
+32	1964
+32	1585
+32	781
+locks: 8
+CFA-baseline:
+cores	throughput (entries)
+2	22433593
+2	26550816
+2	27636603
+2	24387208
+2	35014033
+2	28720762
+2	26354372
+2	20336612
+2	34298294
+2	34549479
+2	26350778
+4	13520454
+4	14311410
+4	15346205
+4	15201666
+4	15530020
+4	15440640
+4	14239420
+4	15819069
+4	15359524
+4	14089239
+4	15525304
+8	9677577
+8	9623556
+8	9441403
+8	9357335
+8	9569391
+8	9714570
+8	9464709
+8	9449374
+8	9568505
+8	9434951
+8	9755125
+16	5565968
+16	5655771
+16	5350111
+16	5556743
+16	5548857
+16	5503230
+16	5584022
+16	5550360
+16	5548839
+16	5518520
+16	5610178
+24	3827271
+24	3919165
+24	3578281
+24	3641686
+24	3699840
+24	3756187
+24	3592296
+24	3915120
+24	3648277
+24	3956082
+24	3777164
+32	3859832
+32	3903090
+32	4122578
+32	3885833
+32	3698076
+32	3827179
+32	4013008
+32	4025455
+32	4077961
+32	3699286
+32	3844692
+CPP-baseline:
+cores	throughput (entries)
+2	36207876
+2	36218947
+2	42357750
+2	37633505
+2	34196379
+2	42352388
+2	32302725
+2	41492575
+2	31100356
+2	37619825
+2	41472442
+4	20968332
+4	21469416
+4	20555170
+4	21156880
+4	19496837
+4	20576520
+4	19493259
+4	19976920
+4	19314278
+4	20939077
+4	19320713
+8	14021166
+8	13745752
+8	13996013
+8	13857263
+8	13904897
+8	13896616
+8	13899683
+8	13288080
+8	13783912
+8	13664592
+8	13789265
+16	8119300
+16	8109975
+16	8187901
+16	8148346
+16	8150290
+16	8189135
+16	8165201
+16	8014526
+16	8325693
+16	8065831
+16	8194973
+24	5830256
+24	5735657
+24	5508715
+24	5745431
+24	5812531
+24	5906039
+24	5806701
+24	5655812
+24	5536875
+24	5776330
+24	5571196
+32	6012983
+32	5701237
+32	5998791
+32	5989481
+32	5935354
+32	5406465
+32	5520759
+32	6042646
+32	5622098
+32	6007002
+32	5800606
+
+CFA-rand:
+cores	throughput (entries)
+2	27630005
+2	26912090
+2	35549306
+2	29342689
+2	30952653
+2	33780282
+2	33404300
+2	28894568
+2	31534156
+2	33685503
+2	29071537
+4	21900036
+4	23157690
+4	21468492
+4	22349192
+4	21550780
+4	22356702
+4	20534751
+4	22764482
+4	21716955
+4	20870144
+4	21771351
+8	14741806
+8	14806424
+8	15016903
+8	15482928
+8	15224076
+8	15380205
+8	15197410
+8	14897598
+8	15497937
+8	14914078
+8	15204993
+16	8894365
+16	8879538
+16	9466888
+16	8879456
+16	9263671
+16	8921486
+16	8862871
+16	9251377
+16	9269423
+16	8759995
+16	9042402
+24	5866504
+24	5924279
+24	5790075
+24	5930767
+24	5908426
+24	5827639
+24	5973014
+24	6387156
+24	5980731
+24	5747428
+24	6231893
+32	5344695
+32	5859757
+32	5290792
+32	5490732
+32	5760855
+32	5640510
+32	5591138
+32	5577256
+32	5568656
+32	5593450
+32	5662584
+CPP-rand:
+cores	throughput (entries)
+2	6952898
+2	5616112
+2	8194137
+2	6807206
+2	7303290
+2	7658001
+2	8180017
+2	7790225
+2	7668761
+2	7293482
+2	7583175
+4	408891
+4	415242
+4	462674
+4	512325
+4	487870
+4	478360
+4	481546
+4	447057
+4	464713
+4	433304
+4	432892
+8	16768
+8	14701
+8	15307
+8	13244
+8	14275
+8	20416
+8	15766
+8	13817
+8	15545
+8	13708
+8	15833
+16	495
+16	635
+16	850
+16	1201
+16	571
+16	1035
+16	443
+16	752
+16	386
+16	1022
+16	318
+24	167
+24	424
+24	1482
+24	260
+24	648
+24	109
+24	527
+24	187
+24	93
+24	228
+24	137
+32	880
+32	75
+32	618
+32	197
+32	469
+32	1072
+32	203
+32	236
+32	145
+32	119
+32	415
Index: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/genPlots
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,3 @@
+#!/bin/bash -
+python3 plotData.py data/nasus.txt nasus_
+python3 plotData.py data/pyke.txt pyke_
Index: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/plotData.py
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/plotData.py	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/plotData.py	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -60,5 +60,5 @@
 name = "Aggregate Lock"
 var_name = ""
-experiment_duration = 10
+experiment_duration = 10.0
 sendData = [0.0 for j in range(numVariants)]
 data = [[0.0 for i in range(len(procs))] for j in range(numVariants)]
@@ -87,6 +87,6 @@
         data[currVariant][procCount] = currMedian
         lower, upper = st.t.interval(0.95, numTimes - 1, loc=np.mean(tempData), scale=st.sem(tempData))
-        bars[currVariant][0][procCount] = currMedian - lower
-        bars[currVariant][1][procCount] = upper - currMedian
+        bars[currVariant][0][procCount] = max( 0, currMedian - lower )
+        bars[currVariant][1][procCount] = max( 0, upper - currMedian )
         count = 0
         procCount += 1
@@ -100,5 +100,5 @@
                 fig, ax = plt.subplots(layout='constrained')
                 plt.title(name + " Benchmark: " + str(currLocks) + " Locks")
-                plt.ylabel("Throughput (entries)")
+                plt.ylabel("Throughput (critical section entries per second)")
                 plt.xlabel("Cores")
                 for idx, arr in enumerate(data):
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/cfa/order.cfa
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/cfa/order.cfa	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/cfa/order.cfa	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,77 @@
+#include <select.hfa>
+#include <thread.hfa>
+#include <channel.hfa>
+#include <locks.hfa>
+#include <fstream.hfa>
+#include <stdio.h>
+#include <time.hfa>
+#include <string.h>
+
+size_t ChannelSize = 100, Channels = 2;
+
+channel(size_t) * chans;
+
+size_t globalTotal = 0;
+int cons_counter = 0, prod_counter = 0;
+
+thread SelectConsumer {};
+void main( SelectConsumer & this ) {
+    size_t val, i = 0;
+    try {
+        for(;; i++ ) {
+            waituntil( val << chans[0] ) {} or waituntil( val << chans[1] ) {}
+        }
+    } catch( channel_closed * e ) {}
+    __atomic_fetch_add( &globalTotal, i, __ATOMIC_SEQ_CST );
+}
+
+thread SelectProducer {};
+void main( SelectProducer & this ) {
+    try {
+        for( size_t i = 0;; i++ ) {
+            waituntil( i >> chans[0] ) {} or waituntil( i >> chans[1] ) {}
+        }
+    } catch( channel_closed * e ) {}
+}
+
+thread Consumer {};
+void main( Consumer & this ) {
+    size_t val, i = 0;
+    try {
+        for(;; i++ ) {
+            remove( chans[1] );
+        }
+    } catch( channel_closed * e ) {}
+    __atomic_fetch_add( &globalTotal, i, __ATOMIC_SEQ_CST );
+}
+
+thread Producer {};
+void main( Producer & this ) {
+    try {
+        for( size_t i = 0;; i++ ) {
+            insert( chans[1], i );
+        }
+    } catch( channel_closed * e ) {}
+}
+
+int main( int argc, char * argv[] ) {
+    processor p[3];
+
+    chans = aalloc( Channels );
+    for ( i; Channels )
+        chans[i]{ ChannelSize };
+
+    {
+        Producer p;
+        SelectProducer sp;
+        Consumer c;
+        SelectConsumer sc;
+
+        sleep(10`s);
+
+        for ( i; Channels )
+            close( chans[i] );
+    }
+    adelete( chans );
+    printf("%zu\n", globalTotal);
+}
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,464 @@
+5
+2 4 8 16 24 32
+6 12 18 24 30
+CFA Go 
+contend2: 
+CFA:
+cores	throughput (entries)
+2	19898679
+2	19894150
+2	20137125
+2	19991476
+2	19234635
+4	24597417
+4	23137681
+4	23918947
+4	23122373
+4	24953526
+8	10070010
+8	9620363
+8	9545751
+8	9424066
+8	9460164
+16	6753442
+16	6886566
+16	7291622
+16	6762093
+16	6695073
+24	5786637
+24	6567375
+24	6523225
+24	6611613
+24	6535767
+32	6227126
+32	5669331
+32	5618844
+32	6231765
+32	5572424
+Go:
+cores	throughput (entries)
+2	40037157
+2	38945848
+2	37571150
+2	39936025
+2	37039238
+4	32175550
+4	31962675
+4	32105762
+4	31933749
+4	31992633
+8	15195906
+8	16230217
+8	15627983
+8	15570514
+8	16559040
+16	7221728
+16	6952933
+16	7086069
+16	7031895
+16	7093710
+24	4978681
+24	5140366
+24	5128459
+24	4630814
+24	4676848
+32	4131795
+32	4105783
+32	4481729
+32	4272797
+32	4268574
+contend4: 
+CFA:
+cores	throughput (entries)
+2	16339398
+2	14695219
+2	13848084
+2	16291888
+2	15029757
+4	19966677
+4	20854760
+4	19653169
+4	19833858
+4	21023458
+8	10699611
+8	11219280
+8	10511145
+8	11041690
+8	10967281
+16	7290494
+16	7218116
+16	7842921
+16	7623273
+16	7330702
+24	6109672
+24	6581276
+24	6395101
+24	6472148
+24	6199770
+32	6673246
+32	6836995
+32	6767080
+32	6038521
+32	6864899
+Go:
+cores	throughput (entries)
+2	20077486
+2	20275897
+2	20038097
+2	19919690
+2	20116470
+4	20032686
+4	19957974
+4	20134395
+4	20067732
+4	20055099
+8	11869308
+8	12165199
+8	11236909
+8	12228766
+8	12011988
+16	8018777
+16	8040533
+16	8026976
+16	7952682
+16	7853705
+24	6857428
+24	6334115
+24	6325502
+24	7042792
+24	6902630
+32	4949042
+32	4967659
+32	6227926
+32	6243556
+32	5023701
+contend8: 
+CFA:
+cores	throughput (entries)
+2	3915791
+2	3886691
+2	3959442
+2	4981399
+2	3941817
+4	11127006
+4	11221830
+4	11079265
+4	11151398
+4	11224959
+8	9223444
+8	9024163
+8	9123901
+8	9087014
+8	9453781
+16	7377324
+16	7136077
+16	6563752
+16	7158678
+16	6541387
+24	5955510
+24	5996812
+24	5746359
+24	6361212
+24	5918614
+32	6357515
+32	5691522
+32	6263042
+32	6347267
+32	6368643
+Go:
+cores	throughput (entries)
+2	11062704
+2	11834447
+2	11977981
+2	10213219
+2	11076487
+4	15936414
+4	15949952
+4	15949080
+4	15934646
+4	15939730
+8	8723728
+8	8543977
+8	8526952
+8	9357181
+8	9139019
+16	6443224
+16	6722238
+16	7064065
+16	7531808
+16	7044549
+24	5340807
+24	5546286
+24	6487048
+24	5620639
+24	6466995
+32	4698418
+32	3932033
+32	5878789
+32	4682276
+32	5956515
+spin2: 
+CFA:
+cores	throughput (entries)
+2	17117536
+2	20202783
+2	20556179
+2	20392088
+2	20470298
+4	25887873
+4	25952265
+4	25848766
+4	25837700
+4	25801944
+8	11134838
+8	11555854
+8	11188929
+8	11128470
+8	11699863
+16	8258208
+16	8448259
+16	7713563
+16	7775916
+16	8421946
+24	7250842
+24	7302187
+24	7447901
+24	7262134
+24	6677079
+32	6216074
+32	6948262
+32	6200769
+32	6901374
+32	6114399
+Go:
+cores	throughput (entries)
+2	51893214
+2	51889467
+2	51939463
+2	51801002
+2	51903499
+4	48397770
+4	48273065
+4	48357522
+4	48414843
+4	48354460
+8	17017886
+8	15747240
+8	17507556
+8	16836401
+8	16991476
+16	9864825
+16	9736384
+16	9466884
+16	10636287
+16	11018805
+24	8878797
+24	8309111
+24	8382343
+24	8208643
+24	8267685
+32	7726655
+32	8676947
+32	9565782
+32	7378698
+32	8821379
+spin4: 
+CFA:
+cores	throughput (entries)
+2	10885361
+2	10986228
+2	10922593
+2	10981854
+2	10802839
+4	20170365
+4	20575238
+4	21331044
+4	20673253
+4	18556265
+8	11737217
+8	11748248
+8	11486998
+8	12242609
+8	12343969
+16	7973731
+16	8434888
+16	7739464
+16	8085925
+16	8451073
+24	7494298
+24	7770603
+24	6847549
+24	6848642
+24	6955404
+32	6283388
+32	6267627
+32	6394047
+32	7238228
+32	6447263
+Go:
+cores	throughput (entries)
+2	24474628
+2	24450635
+2	24464130
+2	24388835
+2	24399848
+4	21964092
+4	21927900
+4	21917894
+4	21907439
+4	21919829
+8	9292641
+8	9897648
+8	10087481
+8	9856804
+8	9352230
+16	6875204
+16	7275156
+16	7308155
+16	6185134
+16	7332646
+24	5314855
+24	6130990
+24	6137104
+24	6149285
+24	6138690
+32	5794913
+32	4410110
+32	5699670
+32	5804679
+32	5715486
+spin8: 
+CFA:
+cores	throughput (entries)
+2	7533145
+2	7594283
+2	7638398
+2	7594530
+2	7485690
+4	16766189
+4	18061179
+4	17993902
+4	18011040
+4	16460498
+8	10867024
+8	10843424
+8	11083909
+8	10948061
+8	10822110
+16	7501685
+16	8353481
+16	7320773
+16	7526689
+16	8246035
+24	7236819
+24	6972608
+24	6408133
+24	6354528
+24	6509391
+32	5836946
+32	6608952
+32	6641278
+32	6795005
+32	5860346
+Go:
+cores	throughput (entries)
+2	13790874
+2	14567852
+2	14205324
+2	14504228
+2	14384568
+4	16067014
+4	16066057
+4	16073591
+4	16030101
+4	16061818
+8	9578833
+8	9532381
+8	8701030
+8	9584525
+8	8916123
+16	6552319
+16	6587695
+16	6573825
+16	7169936
+16	7405217
+24	6641876
+24	6621158
+24	5759567
+24	6683788
+24	5741050
+32	4853916
+32	6089821
+32	4777627
+32	4775830
+32	4797652
+sidechan: 
+CFA:
+cores	throughput (entries)
+6	52350358
+6	51089420
+6	51599645
+6	49724864
+6	50690583
+12	22415327
+12	20081063
+12	21935873
+12	21880536
+12	20033232
+18	15456025
+18	15387442
+18	14382883
+18	14035015
+18	15592819
+24	11865714
+24	12301650
+24	12088656
+24	12576841
+24	12162360
+30	13853077
+30	12833176
+30	13571913
+30	12692339
+30	12684621
+Go:
+cores	throughput (entries)
+6	45626050
+6	45619431
+6	44683942
+6	43678277
+6	45086748
+12	35205036
+12	34228171
+12	33791468
+12	35703621
+12	35832911
+18	26240847
+18	25969956
+18	21891404
+18	23696718
+18	24735429
+24	15259398
+24	14293074
+24	15512026
+24	15143365
+24	14071826
+30	11492999
+30	11337248
+30	12332749
+30	12230220
+30	12142768
+order: 
+CFA:
+cores	throughput (entries)
+4	153212169
+4	157994884
+4	158642649
+4	158440202
+4	158443807
+Go:
+cores	throughput (entries)
+4	69227256
+4	68925276
+4	68974826
+4	69283275
+4	69040020
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus_Order
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus_Order	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus_Order	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,1 @@
+15844020 & 6904002
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus_future.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus_future.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/nasus_future.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,64 @@
+5
+2
+6
+CFA 
+future OR:
+CFA:
+cores	throughput (entries)
+2	15566828
+2	15086557
+2	15067263
+2	15120455
+2	15358905
+uC++:
+cores	throughput (entries)
+2	6900123
+2	7041717
+2	6856625
+2	7099780
+2	7001880
+future AND:
+CFA:
+cores	throughput (entries)
+2	12229605
+2	11796118
+2	11763758
+2	11973787
+2	11975449
+uC++:
+cores	throughput (entries)
+2	4431174
+2	4426260
+2	4494870
+2	4481836
+2	4521053
+future ANDOR:
+CFA:
+cores	throughput (entries)
+2	13551357
+2	13524679
+2	13222745
+2	13556235
+2	13315978
+uC++:
+cores	throughput (entries)
+2	10932140
+2	10528383
+2	10136509
+2	8971750
+2	10027387
+future ORAND:
+CFA:
+cores	throughput (entries)
+2	13020750
+2	13202965
+2	13277704
+2	13179737
+2	13017765
+uC++:
+cores	throughput (entries)
+2	5293289
+2	5185935
+2	5188311
+2	5175251
+2	5191507
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,465 @@
+5
+2 4 8 16 24 32
+6 12 18 24 30
+CFA Go 
+contend2: 
+CFA:
+cores	throughput (entries)
+2	9967035
+2	9800656
+2	9930224
+2	9985950
+2	9866750
+4	15365587
+4	15230284
+4	14863936
+4	14792464
+4	14456437
+8	11177325
+8	11399628
+8	11247990
+8	11116979
+8	11180166
+16	8630393
+16	8413553
+16	8586178
+16	8452667
+16	8510492
+24	8172246
+24	8190544
+24	8037263
+24	8029636
+24	8330698
+32	8403854
+32	8472348
+32	8493152
+32	8362818
+32	8390131
+Go:
+cores	throughput (entries)
+2	44914185
+2	45769369
+2	37580742
+2	41070461
+2	39787488
+4	32818773
+4	33049966
+4	33188220
+4	33045833
+4	33316967
+8	15983204
+8	15830646
+8	15569769
+8	15914976
+8	15894024
+16	9079211
+16	8908247
+16	9129370
+16	8989494
+16	9110099
+24	7927422
+24	7855155
+24	7915465
+24	7877308
+24	7971973
+32	7126295
+32	7450573
+32	7349965
+32	7480862
+32	7325246
+contend4: 
+CFA:
+cores	throughput (entries)
+2	7711287
+2	7636048
+2	7879877
+2	7632539
+2	7716597
+4	13538861
+4	13570963
+4	14061876
+4	13745413
+4	13435094
+8	11783506
+8	11835871
+8	11305173
+8	11595505
+8	11776842
+16	9314177
+16	9267802
+16	9198536
+16	9329322
+16	9120626
+24	8519394
+24	8350923
+24	8526669
+24	8506273
+24	8454808
+32	8212978
+32	8161628
+32	8197493
+32	8326109
+32	8335861
+Go:
+cores	throughput (entries)
+2	19305443
+2	18617443
+2	18798213
+2	18900110
+2	18730396
+4	16583610
+4	16976951
+4	16601629
+4	17066647
+4	16921525
+8	10182191
+8	10151597
+8	10274864
+8	10132974
+8	10313177
+16	8112814
+16	8154933
+16	8177719
+16	8144694
+16	8210164
+24	7494676
+24	7424790
+24	7503452
+24	7489997
+24	7457173
+32	7464628
+32	7597947
+32	7465098
+32	7578292
+32	7146705
+contend8: 
+CFA:
+cores	throughput (entries)
+2	4553172
+2	4358948
+2	4633044
+2	4298938
+2	4433528
+4	9268621
+4	9316788
+4	9134321
+4	9317794
+4	9096543
+8	11281989
+8	12106942
+8	12155325
+8	12070751
+8	11840874
+16	10199853
+16	10248616
+16	10268593
+16	10303374
+16	10322409
+24	8729770
+24	8707377
+24	8718720
+24	8638369
+24	8586905
+32	7948616
+32	8162892
+32	7993031
+32	7895951
+32	8222873
+Go:
+cores	throughput (entries)
+2	9455116
+2	9529410
+2	8207766
+2	7795882
+2	7684988
+4	7758234
+4	8248808
+4	8204068
+4	8252258
+4	7820115
+8	7224181
+8	7156840
+8	7248816
+8	7169039
+8	7250521
+16	6412117
+16	6429773
+16	6414842
+16	6474895
+16	6493768
+24	5910867
+24	5943544
+24	5889434
+24	5960548
+24	5854276
+32	5574433
+32	5501965
+32	5660822
+32	5525961
+32	5571871
+spin2: 
+CFA:
+cores	throughput (entries)
+2	11091685
+2	10716028
+2	10263026
+2	11024866
+2	10141356
+4	13458646
+4	12675243
+4	13601822
+4	12493029
+4	13526328
+8	11857151
+8	12449743
+8	12402808
+8	12115910
+8	12328377
+16	9285877
+16	9431990
+16	9498253
+16	9288202
+16	9314209
+24	9134958
+24	9037642
+24	8894318
+24	8878258
+24	8870078
+32	9574533
+32	9558834
+32	8891248
+32	9425577
+32	9575672
+Go:
+cores	throughput (entries)
+2	41407277
+2	41185974
+2	42546942
+2	41599985
+2	41537281
+4	18274724
+4	19403137
+4	19174836
+4	19832568
+4	20434642
+8	12161534
+8	11877215
+8	12092572
+8	11870295
+8	11953849
+16	9400275
+16	9379035
+16	9121639
+16	9313220
+16	9156810
+24	8163137
+24	8212680
+24	7718772
+24	8329378
+24	8242728
+32	8698636
+32	8738083
+32	8712188
+32	8968355
+32	9000456
+spin4: 
+CFA:
+cores	throughput (entries)
+2	8543234
+2	8548877
+2	8428083
+2	8904947
+2	8478075
+4	11365692
+4	12109844
+4	11446726
+4	11515624
+4	11992092
+8	11984771
+8	12153123
+8	11709308
+8	12103916
+8	11953110
+16	9904786
+16	9763922
+16	9743041
+16	9913004
+16	9661295
+24	8960227
+24	8932460
+24	8985062
+24	8957904
+24	9030960
+32	9189691
+32	9389309
+32	9431123
+32	9307976
+32	9216590
+Go:
+cores	throughput (entries)
+2	15669478
+2	15308587
+2	15510092
+2	15437039
+2	15227836
+4	10451307
+4	10417069
+4	9804714
+4	10495039
+4	9877950
+8	7258556
+8	7318110
+8	7471921
+8	7382093
+8	7262086
+16	6219816
+16	6146980
+16	6202815
+16	6120133
+16	6224194
+24	5730137
+24	5586527
+24	5596617
+24	5623077
+24	5682422
+32	5926340
+32	5851871
+32	5871301
+32	5875055
+32	5845408
+spin8: 
+CFA:
+cores	throughput (entries)
+2	5364493
+2	5298352
+2	5343768
+2	5369572
+2	5384383
+4	9898690
+4	9968625
+4	10025418
+4	9986221
+4	10228985
+8	11846407
+8	11885865
+8	11941307
+8	12353081
+8	12148637
+16	10518783
+16	10615015
+16	10459213
+16	10403451
+16	10398262
+24	8988384
+24	8997726
+24	8966938
+24	9034410
+24	9048297
+32	8790460
+32	8967228
+32	8962159
+32	8753670
+32	8859608
+Go:
+cores	throughput (entries)
+2	9066062
+2	9737392
+2	9142101
+2	9187665
+2	9519920
+4	7574448
+4	8050344
+4	7698715
+4	7666895
+4	7638515
+8	7160856
+8	7127596
+8	7059170
+8	7122960
+8	7130382
+16	6412929
+16	6486433
+16	6438736
+16	6485939
+16	6078041
+24	5900909
+24	5962074
+24	5956968
+24	5956481
+24	5970036
+32	5608255
+32	5671451
+32	5571902
+32	5565332
+32	5599883
+sidechan: 
+CFA:
+cores	throughput (entries)
+6	72354348
+6	71860298
+6	72277047
+6	73041939
+6	73059623
+12	25204538
+12	25305309
+12	24503906
+12	25391473
+12	25444230
+18	21692078
+18	22384941
+18	22535288
+18	22239042
+18	22360659
+24	18246388
+24	18267877
+24	17924009
+24	18457526
+24	17959192
+30	22892750
+30	22855602
+30	21234954
+30	22781023
+30	23008437
+Go:
+cores	throughput (entries)
+6	47262886
+6	47522972
+6	47191097
+6	47649131
+6	47126015
+12	37610289
+12	38562781
+12	37069115
+12	37159580
+12	38417947
+18	20760742
+18	20449941
+18	20645451
+18	20441743
+18	20929537
+24	14620575
+24	14475628
+24	14995888
+24	14401480
+24	14549618
+30	12383406
+30	11910359
+30	10780129
+30	12028827
+30	12367389
+order: 
+CFA:
+cores	throughput (entries)
+4	68683961
+4	69299441
+4	62515413
+4	68207586
+4	68368563
+Go:
+cores	throughput (entries)
+4	60368130
+4	60454358
+4	60967535
+4	59271747
+4	61334120
+
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke_Order
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke_Order	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke_Order	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,1 @@
+6836856 & 6045435
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke_future.txt
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke_future.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/data/pyke_future.txt	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,64 @@
+5
+2
+6
+CFA 
+future OR:
+CFA:
+cores	throughput (entries)
+2	7979542
+2	8195420
+2	8339041
+2	7735845
+2	8279155
+uC++:
+cores	throughput (entries)
+2	4648297
+2	4766391
+2	4631747
+2	4600202
+2	4683445
+future AND:
+CFA:
+cores	throughput (entries)
+2	5400791
+2	5792970
+2	6061253
+2	6034621
+2	5792246
+uC++:
+cores	throughput (entries)
+2	4190818
+2	4127246
+2	4026182
+2	4219090
+2	4203589
+future ANDOR:
+CFA:
+cores	throughput (entries)
+2	6889728
+2	6644816
+2	6871689
+2	6713521
+2	6881730
+uC++:
+cores	throughput (entries)
+2	4465233
+2	4371764
+2	4374007
+2	4109526
+2	4262671
+future ORAND:
+CFA:
+cores	throughput (entries)
+2	6393712
+2	6276503
+2	6238200
+2	6444010
+2	6433157
+uC++:
+cores	throughput (entries)
+2	4198438
+2	4312017
+2	3417079
+2	3350573
+2	3331244
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/genPlots
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/genPlots	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,5 @@
+#!/bin/bash -
+python3 plotData.py data/nasus.txt nasus_
+python3 plotData.py data/pyke.txt pyke_
+python3 plotData.py data/nasus_future.txt nasus_
+python3 plotData.py data/pyke_future.txt pyke_
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/go/order/go.mod
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/go/order/go.mod	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/go/order/go.mod	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,3 @@
+module order
+
+go 1.18
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/go/order/order.go
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/go/order/order.go	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/go/order/order.go	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,109 @@
+package main
+
+import (
+	"fmt"
+	"sync"
+	"time"
+	"runtime"
+)
+
+var Channels, ChannelSize int = 2, 100
+var cons_done, prod_done bool = false, false;
+var total_operations uint64 = 0
+var m sync.Mutex
+
+var prodJoin chan int = make(chan int)
+var consJoin chan int = make(chan int)
+
+func selectconsumer( chans [] chan uint64 ) {
+	var count uint64 = 0
+	for {
+		if cons_done { break }		
+		select {
+			case <- chans[0]:
+			case <- chans[1]:
+		}
+		if ! prod_done { count++ }
+	}
+	m.Lock()
+	total_operations += count
+	m.Unlock()
+	consJoin <- 0
+}
+
+func consumer( chans [] chan uint64 ) {
+	var count uint64 = 0
+	for {
+		if cons_done { break }		
+		<-chans[1]
+		if ! prod_done { count++ }
+	}
+	m.Lock()
+	total_operations += count
+	m.Unlock()
+	consJoin <- 0
+}
+
+func selectproducer( chans [] chan uint64 ) {
+	var count uint64 = 0
+	var checksum uint64 = 0
+	for {
+		if prod_done { break }
+		checksum = checksum ^ count
+		select {
+			case chans[0] <- count:
+			case chans[1] <- count:
+		}
+		count++
+	}
+	prodJoin <- 0
+}
+
+func producer( chans [] chan uint64 ) {
+	var count uint64 = 0
+	var checksum uint64 = 0
+	for {
+		if prod_done { break }
+		checksum = checksum ^ count
+		chans[1] <- count
+		count++
+	}
+	prodJoin <- 0
+}
+
+
+func main() {
+	runtime.GOMAXPROCS( 4 );
+
+	// fmt.Println("Processors: ",Processors," Channels: ",Channels," ProdsPerChan: ",ProdsPerChan," ConsPerChan: ",ConsPerChan," Channel Size: ",ChannelSize)
+	
+	chans := make( [] chan uint64, Channels )
+	for i := range chans {
+		chans[i] = make(chan uint64, ChannelSize)
+	}
+
+	
+	go selectproducer( chans )
+	go selectconsumer( chans )
+	go producer( chans )
+	go consumer( chans )
+	
+
+	// wait 10 seconds
+	time.Sleep(time.Second * 10)
+	// fmt.Println("prod done\n")
+	prod_done = true
+	for j := 0; j < 2; j++ {
+		<-prodJoin
+	}
+	// fmt.Println("cons done\n")
+	cons_done = true
+	for i := range chans {
+		close(chans[i])
+	}
+	
+	for j := 0; j < 2; j++{
+		<-consJoin
+	}
+    fmt.Println(total_operations)
+}
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/plotData.py
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/plotData.py	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/plotData.py	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -0,0 +1,273 @@
+import os
+import sys
+import time
+import itertools
+import matplotlib.pyplot as plt
+import matplotlib.ticker as ticks
+import math
+from scipy import stats as st
+import numpy as np
+from enum import Enum
+from statistics import median
+
+import matplotlib
+matplotlib.use("pgf")
+matplotlib.rcParams.update({
+    "pgf.texsystem": "pdflatex",
+    'font.family': 'serif',
+    'text.usetex': True,
+    'pgf.rcfonts': False,
+    'font.size': 16
+})
+marker = itertools.cycle(('o', 's', 'D', 'x', 'p', '^', 'h', '*', 'v' )) 
+
+readfile = open(sys.argv[1], "r")
+
+machineName = ""
+
+if len(sys.argv) > 2:
+    machineName = sys.argv[2]
+
+# first line has num times per experiment
+line = readfile.readline()
+numTimes = int(line)
+
+# second line has processor args
+line = readfile.readline()
+procs = []
+for val in line.split():
+    procs.append(int(val))
+
+# 3rd line has processor for side_chan bench
+line = readfile.readline()
+sideChanProcs = []
+for val in line.split():
+    sideChanProcs.append(int(val))
+
+# 4th line has number of variants
+line = readfile.readline()
+names = line.split()
+numVariants = len(names)
+
+lines = (line.rstrip() for line in readfile) # All lines including the blank ones
+lines = (line for line in lines if line) # Non-blank lines
+
+def sci_format(x, pos):
+    return '{:.1e}'.format(x).replace('+0', '')
+
+def sci_format_label(x):
+    return '{:.2e}'.format(x).replace('+0', '')
+
+class Bench(Enum):
+    Unset = 0
+    Contend2 = 1
+    Contend4 = 2
+    Contend8 = 3
+    Spin2 = 4
+    Spin4 = 5
+    Spin8 = 6
+    SideChan = 7
+    Future = 8
+    Order = 9
+
+nameSet = False
+currBench = Bench.Unset # default val
+count = 0
+procCount = 0
+currVariant = 0
+name = ""
+title = ""
+experiment_duration = 10.0
+var_name = ""
+future_variants=["CFA", "uC++"]
+future_names=["OR", "AND", "AND-OR", "OR-AND"]
+future_data=[[0.0 for i in range(len(future_names))] for j in range(2)]
+future_bars=[[[0.0 for i in range(len(future_names))],[0.0 for k in range(len(future_names))]] for j in range(2)]
+curr_future=0
+sendData = [0.0 for j in range(numVariants)]
+data = [[0.0 for i in range(len(procs))] for j in range(numVariants)]
+bars = [[[0.0 for i in range(len(procs))],[0.0 for k in range(len(procs))]] for j in range(numVariants)]
+sideData = [[0.0 for i in range(len(sideChanProcs))] for j in range(numVariants)]
+sideBars = [[[0.0 for i in range(len(sideChanProcs))],[0.0 for k in range(len(sideChanProcs))]] for j in range(numVariants)]
+tempData = [0.0 for i in range(numTimes)]
+orderData = [0.0 for i in range(numVariants)]
+for idx, line in enumerate(lines):
+    # print(line)
+    
+    if currBench == Bench.Unset:
+        if line == "contend2:":
+            name = "Contend_2"
+            title = "2 Clause Contend"
+            currBench = Bench.Contend2
+        elif line == "contend4:":
+            name = "Contend_4"
+            title = "4 Clause Contend"
+            currBench = Bench.Contend4
+        elif line == "contend8:":
+            name = "Contend_8"
+            title = "8 Clause Contend"
+            currBench = Bench.Contend8
+        elif line == "spin2:":
+            name = "Spin_2"
+            title = "2 Clause Spin"
+            currBench = Bench.Spin2
+        elif line == "spin4:":
+            name = "Spin_4"
+            title = "4 Clause Spin"
+            currBench = Bench.Spin4
+        elif line == "spin8:":
+            name = "Spin_8"
+            title = "8 Clause Spin"
+            currBench = Bench.Spin8
+        elif line == "sidechan:":
+            name = "Sidechan"
+            currBench = Bench.SideChan
+        elif line[0:6] == "future":
+            name = "Future"
+            title = "Future Synchronization"
+            currBench = Bench.Future
+        elif line == "order:":
+            name = "order"
+            currBench = Bench.Order
+        else:
+            print("Expected benchmark name")
+            print("Line: " + line)
+            sys.exit()
+        continue
+
+    if line[0:5] == "cores":
+        continue
+
+    if not nameSet:
+        nameSet = True
+        continue
+    
+    lineArr = line.split()
+    tempData[count] = float(lineArr[-1]) / experiment_duration
+    count += 1
+
+    if currBench == Bench.Future:
+        if count == numTimes:
+            currMedian = median( tempData )
+            future_data[currVariant][curr_future] = currMedian
+            lower, upper = st.t.interval(0.95, numTimes - 1, loc=np.mean(tempData), scale=st.sem(tempData))
+            future_bars[currVariant][0][curr_future] = currMedian - lower
+            future_bars[currVariant][1][curr_future] = upper - currMedian
+            count = 0
+            nameSet = False
+            currVariant += 1
+            if currVariant == 2:
+                curr_future += 1
+                # reset
+                currBench = Bench.Unset
+                currVariant = 0
+                if curr_future == len(future_names):
+                    x = np.arange(len(future_names))  # the label locations
+                    width = 0.45  # the width of the bars
+                    multiplier = .5
+                    fig, ax = plt.subplots(layout='constrained')
+                    plt.title(title + " Benchmark")
+                    plt.ylabel("Throughput (statement completions per second)")
+                    plt.xlabel("Operation")
+                    ax.yaxis.set_major_formatter(ticks.FuncFormatter(sci_format))
+                    for idx, arr in enumerate(future_data):
+                        offset = width * multiplier
+                        rects = ax.bar(x + offset, arr, width, label=future_variants[idx], yerr=[future_bars[idx][0], future_bars[idx][1]])
+                        # ax.bar_label(rects, padding=3, fmt='%.1e')
+                        ax.bar_label(rects, padding=3, fmt=sci_format_label)
+                        multiplier += 1
+                    plt.xticks(x + width, future_names)
+                    
+                    ax.legend(future_variants, loc='lower right')
+                    # fig.savefig("plots/" + machineName + name + ".png")
+                    plt.savefig("plots/" + machineName + name + ".pgf")
+                    fig.clf()
+
+    elif currBench == Bench.Order:
+        if count == numTimes:
+            currMedian = median( tempData )
+            orderData[currVariant] = currMedian
+            count = 0
+            currVariant += 1
+            procCount = 0
+            nameSet = False
+            if currVariant == numVariants:
+                fileName = "data/" + machineName + "Order"
+                f = open(fileName, 'w')
+                f.write(" & ".join(map(lambda a: str(int(a)), orderData)))
+                
+                # reset
+                currBench = Bench.Unset
+                currVariant = 0
+
+    elif currBench == Bench.SideChan:
+        if count == numTimes:
+            currMedian = median( tempData )
+            sideData[currVariant][procCount] = currMedian
+            lower, upper = st.t.interval(0.95, numTimes - 1, loc=np.mean(tempData), scale=st.sem(tempData))
+            sideBars[currVariant][0][procCount] = currMedian - lower
+            sideBars[currVariant][1][procCount] = upper - currMedian
+            count = 0
+            procCount += 1
+            if procCount == len(sideChanProcs):
+                procCount = 0
+                nameSet = False
+                currVariant += 1
+
+                if currVariant == numVariants:
+                    fig, ax = plt.subplots()
+                    plt.title(name + " Benchmark")
+                    plt.ylabel("Throughput (channel operations per second)")
+                    plt.xlabel("Cores")
+                    ax.yaxis.set_major_formatter(ticks.FuncFormatter(sci_format))
+                    for idx, arr in enumerate(sideData):
+                        plt.errorbar( sideChanProcs, arr, [sideBars[idx][0], sideBars[idx][1]], capsize=2, marker=next(marker) )
+                    plt.xticks(sideChanProcs)
+                    marker = itertools.cycle(('o', 's', 'D', 'x', 'p', '^', 'h', '*', 'v' )) 
+                    # plt.yscale("log")
+                    ax.legend(names)
+                    # fig.savefig("plots/" + machineName + name + ".png")
+                    plt.savefig("plots/" + machineName + name + ".pgf")
+                    fig.clf()
+
+                    # reset
+                    currBench = Bench.Unset
+                    currVariant = 0
+    else:
+        if count == numTimes:
+            currMedian = median( tempData )
+            data[currVariant][procCount] = currMedian
+            lower, upper = st.t.interval(0.95, numTimes - 1, loc=np.mean(tempData), scale=st.sem(tempData))
+            bars[currVariant][0][procCount] = currMedian - lower
+            bars[currVariant][1][procCount] = upper - currMedian
+            count = 0
+            procCount += 1
+
+            if procCount == len(procs):
+                procCount = 0
+                nameSet = False
+                currVariant += 1
+
+                if currVariant == numVariants:
+                    fig, ax = plt.subplots(layout='constrained')
+                    plt.title(title + " Benchmark")
+                    plt.ylabel("Throughput (channel operations per second)")
+                    plt.xlabel("Cores")
+                    ax.yaxis.set_major_formatter(ticks.FuncFormatter(sci_format))
+                    for idx, arr in enumerate(data):
+                        plt.errorbar( procs, arr, [bars[idx][0], bars[idx][1]], capsize=2, marker=next(marker) )
+                    plt.xticks(procs)
+                    marker = itertools.cycle(('o', 's', 'D', 'x', 'p', '^', 'h', '*', 'v' )) 
+                    # plt.yscale("log")
+                    # plt.ylim(1, None)
+                    # ax.get_yaxis().set_major_formatter(ticks.ScalarFormatter())
+                    # else:
+                    #     plt.ylim(0, None)
+                    ax.legend(names)
+                    # fig.savefig("plots/" + machineName + name + ".png")
+                    plt.savefig("plots/" + machineName + name + ".pgf")
+                    fig.clf()
+
+                    # reset
+                    currBench = Bench.Unset
+                    currVariant = 0
Index: doc/theses/colby_parsons_MMAth/benchmarks/waituntil/run
===================================================================
--- doc/theses/colby_parsons_MMAth/benchmarks/waituntil/run	(revision 917e1fda57f8a41eccff6a6e0ab336b41d4b6e98)
+++ doc/theses/colby_parsons_MMAth/benchmarks/waituntil/run	(revision 508671e9dbeb6b5151c94cd279ea6e19f95e65b5)
@@ -85,5 +85,5 @@
 }
 
-numtimes=3
+numtimes=5
 # numtimes=1
 
@@ -103,15 +103,17 @@
 sidechan=${true}
 future=${true}
+order=${true}
 spin=${false}
 contend=${false}
-# sidechan=${false}
+sidechan=${false}
 future=${false}
+# order=${false}
 
 runCFA=${true}
 runGO=${true}
-runUCPP=${true}
+# runUCPP=${true}
 # runCFA=${false}
-runGO=${false}
-# runUCPP=${false}
+# runGO=${false}
+runUCPP=${false}
 
 cfa=~/cfa-cc/driver/cfa
@@ -165,4 +167,10 @@
 }
 
+run_order() {
+    affinity 4
+    preprint="4\t"
+    repeat_command taskset -c ${taskset} ./a.${hostname}
+}
+
 run_future() {
     affinity 2
@@ -246,5 +254,5 @@
         ${cfa} ${cfa_flags} sidechan.cfa -o a.${hostname} > /dev/null 2>&1
         run_side_chan
-        # rm a.${hostname}
+        rm a.${hostname}
         cd - > /dev/null
     fi # done CFA
@@ -284,2 +292,23 @@
 fi
 
+if [ ${order} -eq ${true} ] ; then
+    echo "order: "
+    post_args=${chan_size}
+    if [ ${runCFA} -eq ${true} ] ; then
+        cd cfa # CFA RUN
+        print_header 'CFA'
+        ${cfa} ${cfa_flags} order.cfa -o a.${hostname} > /dev/null 2>&1
+        run_order
+        rm a.${hostname}
+        cd - > /dev/null
+    fi # done CFA
+
+    if [ ${runGO} -eq ${true} ] ; then
+        cd go/order
+        print_header 'Go'
+        go build -o a.${hostname} > /dev/null 2>&1
+        run_order
+        rm a.${hostname}
+        cd - > /dev/null
+    fi # done Go
+fi
