Index: doc/papers/IBM_CASCON19/ThreadingModels.fig
===================================================================
--- doc/papers/IBM_CASCON19/ThreadingModels.fig	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
+++ doc/papers/IBM_CASCON19/ThreadingModels.fig	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
@@ -0,0 +1,140 @@
+#FIG 3.2  Produced by xfig version 3.2.5b
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2700 3300 150 150 2700 3300 2850 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 3300 150 150 3150 3300 3300 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 3300 150 150 4050 3300 4200 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4500 3300 150 150 4500 3300 4650 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3300 150 150 4950 3300 5100 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5400 3300 150 150 5400 3300 5550 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 3300 150 150 5850 3300 6000 3300
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 3300 150 150 3600 3300 3750 3300
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6450 3150 100 100 6450 3150 6550 3150
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 1800 2175 150 150 1800 2175 1950 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 3000 2175 150 150 3000 2175 3150 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 3450 2175 150 150 3450 2175 3600 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 3900 2175 150 150 3900 2175 4050 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 5100 2175 150 150 5100 2175 5250 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 6300 2175 150 150 6300 2175 6450 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 6750 2175 150 150 6750 2175 6900 2175
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 7200 2175 150 150 7200 2175 7350 2175
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 1800 2175 100 100 1800 2175 1900 2175
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 3000 2175 100 100 3000 2175 3100 2175
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 3450 2175 100 100 3450 2175 3550 2175
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 3900 2175 100 100 3900 2175 4000 2175
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 4650 1425 100 100 4650 1425 4750 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 4950 1425 100 100 4950 1425 5050 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 5250 1425 100 100 5250 1425 5350 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 5550 1425 100 100 5550 1425 5650 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6300 1425 100 100 6300 1425 6400 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6600 1425 100 100 6600 1425 6700 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6900 1425 100 100 6900 1425 7000 1425
+1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 7200 1425 100 100 7200 1425 7300 1425
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6450 3600 150 150 6450 3600 6600 3600
+1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 6450 3600 100 100 6450 3600 6550 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 1800 2175 2700 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3000 2175 3150 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3450 2175 3600 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3900 2175 4050 3300
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4500 3300 5100 2175
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4950 3300 6300 2175
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5400 3300 6750 2175
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5850 3300 7200 2175
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2775 3450 3825 3675
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3225 3450 3900 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3675 3450 4050 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4125 3450 4200 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4500 3450 4350 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4950 3450 4500 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5400 3450 4650 3600
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5850 3450 4725 3675
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 3825 3750 3375 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4200 3750 3975 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4350 3750 4575 3900
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 3750 5175 3900
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3225 3900 3525 3900 3525 4200 3225 4200 3225 3900
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 3825 3900 4125 3900 4125 4200 3825 4200 3825 3900
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4425 3900 4725 3900 4725 4200 4425 4200 4425 3900
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 5025 3900 5325 3900 5325 4200 5025 4200 5025 3900
+2 2 0 2 4 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2400 3000 6150 3000 6150 4350 2400 4350 2400 3000
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6300 3975 6600 3975 6600 4275 6300 4275 6300 3975
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4950 1500 5100 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5250 1500 5100 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 4650 1500 4875 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5550 1500 5325 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 5100 1800 5100 2025
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6600 1500 6750 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6900 1500 6750 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 1500 6525 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7200 1500 6975 1650
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6750 1800 6750 2025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 4500 1275 5700 1275 5700 2400 4500 2400 4500 1275
+2 2 0 2 4 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 6000 1275 7500 1275 7500 2400 6000 2400 6000 1275
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 2700 1275 4200 1275 4200 2400 2700 2400 2700 1275
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 1200 1275 2400 1275 2400 2400 1200 2400 1200 1275
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6600 1800 6300 2025
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6900 1800 7200 2025
+4 1 0 50 -1 0 12 0.0000 2 135 435 1800 2775 1:1:4\001
+4 1 0 50 -1 0 12 0.0000 2 135 435 3450 2775 3:3:4\001
+4 1 0 50 -1 0 12 0.0000 2 135 435 5100 2775 4:1:4\001
+4 1 0 50 -1 0 12 0.0000 2 135 435 6750 2775 4:3:4\001
+4 2 0 50 -1 0 12 0.0000 2 180 585 2250 3975 System\001
+4 2 0 50 -1 0 12 0.0000 2 180 810 2250 3750 Operating\001
+4 1 0 50 -1 0 12 0.0000 2 135 780 4275 3750 scheduler\001
+4 0 0 50 -1 0 12 0.0000 2 135 885 6750 3225 user thread\001
+4 0 0 50 -1 0 12 0.0000 2 135 1065 6750 3675 kernel thread\001
+4 0 0 50 -1 0 12 0.0000 2 135 375 6750 4200 CPU\001
+4 1 0 50 -1 0 12 0.0000 2 180 1020 1800 1200 Process$_1$\001
+4 1 0 50 -1 0 12 0.0000 2 180 1020 3450 1200 Process$_2$\001
+4 1 0 50 -1 0 12 0.0000 2 180 1020 5100 1200 Process$_3$\001
+4 1 0 50 -1 0 12 0.0000 2 180 1020 6750 1200 Process$_4$\001
+4 1 0 50 -1 0 11 0.0000 2 120 675 5100 1800 scheduler\001
+4 1 0 50 -1 0 11 0.0000 2 120 675 6750 1800 scheduler\001
Index: doc/papers/IBM_CASCON19/ThreadingModels.svg
===================================================================
--- doc/papers/IBM_CASCON19/ThreadingModels.svg	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
+++ doc/papers/IBM_CASCON19/ThreadingModels.svg	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
@@ -0,0 +1,683 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.1"
+   id="svg4438"
+   viewBox="1188 1041 6669 3331"
+   height="2.8in"
+   width="5.6in">
+  <metadata
+     id="metadata4640">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4638" />
+  <g
+     transform="translate(185.25001,-26.464286)"
+     id="g4440"
+     style="fill:none;stroke-width:0.025in">
+    <!-- Circle -->
+    <circle
+       id="circle4442"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="2700" />
+    <!-- Circle -->
+    <circle
+       id="circle4444"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="3150" />
+    <!-- Circle -->
+    <circle
+       id="circle4446"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="4050" />
+    <!-- Circle -->
+    <circle
+       id="circle4448"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="4500" />
+    <!-- Circle -->
+    <circle
+       id="circle4450"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="4950" />
+    <!-- Circle -->
+    <circle
+       id="circle4452"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="5400" />
+    <!-- Circle -->
+    <circle
+       id="circle4454"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="5850" />
+    <!-- Circle -->
+    <circle
+       id="circle4456"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3300"
+       cx="3600" />
+    <!-- Circle -->
+    <circle
+       id="circle4458"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="3150"
+       cx="6450" />
+    <!-- Circle -->
+    <circle
+       id="circle4460"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="1800" />
+    <!-- Circle -->
+    <circle
+       id="circle4462"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="3000" />
+    <!-- Circle -->
+    <circle
+       id="circle4464"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="3450" />
+    <!-- Circle -->
+    <circle
+       id="circle4466"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="3900" />
+    <!-- Circle -->
+    <circle
+       id="circle4468"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="5100" />
+    <!-- Circle -->
+    <circle
+       id="circle4470"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="6300" />
+    <!-- Circle -->
+    <circle
+       id="circle4472"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="6750" />
+    <!-- Circle -->
+    <circle
+       id="circle4474"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="150"
+       cy="2175"
+       cx="7200" />
+    <!-- Circle -->
+    <circle
+       id="circle4476"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="2175"
+       cx="1800" />
+    <!-- Circle -->
+    <circle
+       id="circle4478"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="2175"
+       cx="3000" />
+    <!-- Circle -->
+    <circle
+       id="circle4480"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="2175"
+       cx="3450" />
+    <!-- Circle -->
+    <circle
+       id="circle4482"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="2175"
+       cx="3900" />
+    <!-- Circle -->
+    <circle
+       id="circle4484"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="4650" />
+    <!-- Circle -->
+    <circle
+       id="circle4486"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="4950" />
+    <!-- Circle -->
+    <circle
+       id="circle4488"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="5250" />
+    <!-- Circle -->
+    <circle
+       id="circle4490"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="5550" />
+    <!-- Circle -->
+    <circle
+       id="circle4492"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="6300" />
+    <!-- Circle -->
+    <circle
+       id="circle4494"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="6600" />
+    <!-- Circle -->
+    <circle
+       id="circle4496"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="6900" />
+    <!-- Circle -->
+    <circle
+       id="circle4498"
+       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
+       r="100"
+       cy="1425"
+       cx="7200" />
+    <!-- Circle -->
+    <circle
+       id="circle4500"
+       style="stroke:#000000;stroke-width:7"
+       r="150"
+       cy="3600"
+       cx="6450" />
+    <!-- Circle -->
+    <circle
+       id="circle4502"
+       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
+       r="100"
+       cy="3600"
+       cx="6450" />
+    <!-- Line -->
+    <polyline
+       id="polyline4504"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="1800,2175 2700,3300 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4506"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="3000,2175 3150,3300 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4508"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="3450,2175 3600,3300 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4510"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="3900,2175 4050,3300 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4512"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4500,3300 5100,2175 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4514"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4950,3300 6300,2175 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4516"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5400,3300 6750,2175 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4518"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5850,3300 7200,2175 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4520"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="2775,3450 3825,3675 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4522"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="3225,3450 3900,3600 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4524"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="3675,3450 4050,3600 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4526"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4125,3450 4200,3600 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4528"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4500,3450 4350,3600 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4530"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4950,3450 4500,3600 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4532"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5400,3450 4650,3600 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4534"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5850,3450 4725,3675 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4536"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="3825,3750 3375,3900 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4538"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4200,3750 3975,3900 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4540"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4350,3750 4575,3900 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4542"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4650,3750 5175,3900 " />
+    <!-- Line: box -->
+    <rect
+       id="rect4544"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="300"
+       width="300"
+       y="3900"
+       x="3225" />
+    <!-- Line: box -->
+    <rect
+       id="rect4546"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="300"
+       width="300"
+       y="3900"
+       x="3825" />
+    <!-- Line: box -->
+    <rect
+       id="rect4548"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="300"
+       width="300"
+       y="3900"
+       x="4425" />
+    <!-- Line: box -->
+    <rect
+       id="rect4550"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="300"
+       width="300"
+       y="3900"
+       x="5025" />
+    <!-- Line: box -->
+    <rect
+       id="rect4552"
+       style="stroke:#ff0000;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="1350"
+       width="3750"
+       y="3000"
+       x="2400" />
+    <!-- Line: box -->
+    <rect
+       id="rect4554"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="300"
+       width="300"
+       y="3975"
+       x="6300" />
+    <!-- Line -->
+    <polyline
+       id="polyline4556"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4950,1500 5100,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4558"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5250,1500 5100,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4560"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="4650,1500 4875,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4562"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5550,1500 5325,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4564"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="5100,1800 5100,2025 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4566"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="6600,1500 6750,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4568"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="6900,1500 6750,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4570"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="6300,1500 6525,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4572"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="7200,1500 6975,1650 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4574"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="6750,1800 6750,2025 " />
+    <!-- Line: box -->
+    <rect
+       id="rect4576"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="1125"
+       width="1200"
+       y="1275"
+       x="4500" />
+    <!-- Line: box -->
+    <rect
+       id="rect4578"
+       style="stroke:#ff0000;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="1125"
+       width="1500"
+       y="1275"
+       x="6000" />
+    <!-- Line: box -->
+    <rect
+       id="rect4580"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="1125"
+       width="1500"
+       y="1275"
+       x="2700" />
+    <!-- Line: box -->
+    <rect
+       id="rect4582"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       rx="0"
+       height="1125"
+       width="1200"
+       y="1275"
+       x="1200" />
+    <!-- Line -->
+    <polyline
+       id="polyline4584"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="6600,1800 6300,2025 " />
+    <!-- Line -->
+    <polyline
+       id="polyline4586"
+       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
+       points="6900,1800 7200,2025 " />
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4588"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="2775"
+       x="1800"
+       xml:space="preserve">1:1</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4590"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="2775"
+       x="3450"
+       xml:space="preserve">3:3</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4592"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="2775"
+       x="5100"
+       xml:space="preserve">4:1</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4594"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="2775"
+       x="6750"
+       xml:space="preserve">4:3</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:end;fill:#000000"
+       id="text4596"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="3975"
+       x="2250"
+       xml:space="preserve">System</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:end;fill:#000000"
+       id="text4598"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="3750"
+       x="2250"
+       xml:space="preserve">Operating</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4600"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="3750"
+       x="4275"
+       xml:space="preserve">scheduler</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:start;fill:#000000"
+       id="text4602"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="3225"
+       x="6750"
+       xml:space="preserve">user thread</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:start;fill:#000000"
+       id="text4604"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="3675"
+       x="6750"
+       xml:space="preserve">kernel thread</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:start;fill:#000000"
+       id="text4606"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="4200"
+       x="6750"
+       xml:space="preserve">CPU</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4608"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="1200"
+       x="1800"
+       xml:space="preserve">Process<tspan
+   style="font-size:96px"
+   id="tspan4610"
+   dy="35"
+   font-size="96">1</tspan><tspan
+   id="tspan4612"
+   dy="-35" /></text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4614"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="1200"
+       x="3450"
+       xml:space="preserve">Process<tspan
+   style="font-size:96px"
+   id="tspan4616"
+   dy="35"
+   font-size="96">2</tspan><tspan
+   id="tspan4618"
+   dy="-35" /></text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4620"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="1200"
+       x="5100"
+       xml:space="preserve">Process<tspan
+   style="font-size:96px"
+   id="tspan4622"
+   dy="35"
+   font-size="96">3</tspan><tspan
+   id="tspan4624"
+   dy="-35" /></text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4626"
+       font-size="144"
+       font-weight="normal"
+       font-style="normal"
+       y="1200"
+       x="6750"
+       xml:space="preserve">Process<tspan
+   style="font-size:96px"
+   id="tspan4628"
+   dy="35"
+   font-size="96">4</tspan><tspan
+   id="tspan4630"
+   dy="-35" /></text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:132px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4632"
+       font-size="132"
+       font-weight="normal"
+       font-style="normal"
+       y="1800"
+       x="5100"
+       xml:space="preserve">scheduler</text>
+    <!-- Text -->
+    <text
+       style="font-style:normal;font-weight:normal;font-size:132px;font-family:Times;text-anchor:middle;fill:#000000"
+       id="text4634"
+       font-size="132"
+       font-weight="normal"
+       font-style="normal"
+       y="1800"
+       x="6750"
+       xml:space="preserve">scheduler</text>
+  </g>
+</svg>
Index: doc/papers/IBM_CASCON19/abstract.txt
===================================================================
--- doc/papers/IBM_CASCON19/abstract.txt	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
+++ doc/papers/IBM_CASCON19/abstract.txt	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
@@ -0,0 +1,40 @@
+Synchronous Programming with User-Level Threads in C∀
+
+When computations cannot be satisfied immediately, programmers must use
+one of two paradigms, Synchronous Programming and Asynchronous Programming.
+This presentation discusses the benefits Synchronous Programming over
+Asynchronous Programming and what requirements exist to use this paradigm.
+It also discusses how C∀, a concurrent and backwards-compatible extension
+of the C programming language, has powerful tools available for simple and
+efficient Synchronous Programming. These tools include user-level threads
+and high-level locking mechanisms which simply solve common problems.
+Finally, the presentation shows different techniques to combine these
+features with existing code to either uses blocking operations provided by
+the kernel or is built according to an asynchronous paradigm.
+
+
+
+
+
+
+
+
+
+C∀ is a polymorphic, non-object-oriented, concurrent, backwards-compatible
+extension of the C programming language. This paper discusses the design
+philosophy and implementation of its advanced control-flow and concurrent/parallel
+features, along with the supporting runtime written in C∀. These features
+are created from scratch as ISO C has only low-level and/or unimplemented
+concurrency, so C programmers continue to rely on library features like pthreads.
+C∀ introduces modern language-level control-flow mechanisms, like generators,
+coroutines, user-level threading, and monitors for mutual exclusion and
+synchronization. The runtime provides significant programmer simplification
+and safety by eliminating spurious wakeup and monitor barging. The runtime
+also ensures multiple monitors can be safely acquired simultaneously (deadlock free),
+and this feature is fully integrated with all monitor synchronization mechanisms.
+All control-flow features integrate with the C∀ polymorphic type-system and
+exception handling, while respecting the expectations and style of C programmers.
+Experimental results show comparable performance of the new features with similar
+mechanisms in other concurrent programming languages.
+KEYWORDS
+generator, coroutine, concurrency, parallelism, thread, monitor, runtime, C, C∀ (Cforall)
Index: doc/papers/IBM_CASCON19/client.cfa
===================================================================
--- doc/papers/IBM_CASCON19/client.cfa	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
+++ doc/papers/IBM_CASCON19/client.cfa	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
@@ -0,0 +1,63 @@
+// Original
+void sum_many_async(int[] inputs, lambda_t callback);
+
+// Target
+int  sum_many      (int[] inputs);
+
+//==================================
+
+int  sum_many(int[] inputs) {
+	// setup required data
+	int result;
+	semaphore_t sem = { 0 };
+
+	// call async function
+	sum_many_async( inputs, (int sum) {
+		result = sum;
+		V(sem);
+	});
+
+	// wait for result
+	P(sem);
+
+	// return
+	return result;
+}
+
+
+int sum_many_block(int[] inputs);
+int sum_many      (int[] inputs);
+
+//==================================
+
+struct request_t {
+	int[] inputs;
+	int result;
+	semaphore_t sem = { 0 };
+};
+
+void * call_sum_many_block(void * args) {
+	request_t * req = (request_t *) args;
+	req->result = sum_many_block(req->inputs);
+	V(req->sem);
+}
+
+int  sum_many(int[] inputs) {
+	// setup required data
+	request_t req = { inputs };
+
+	// create thread to
+	pthread_t thrd;
+	int err = pthread_fork(&thrd, 0p, call_sum_many_block, &req);
+	handle(err);
+
+	// wait
+	P(req.sem);
+
+	// Cleanup pthread
+	err = pthread_join(&thrd, 0p);
+	handle(err);
+
+	// get result
+	return req.result;
+}
Index: doc/papers/IBM_CASCON19/server.cfa
===================================================================
--- doc/papers/IBM_CASCON19/server.cfa	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
+++ doc/papers/IBM_CASCON19/server.cfa	(revision b859f59ebd77d3938fa0f3ac53bcd0b8d708f3b4)
@@ -0,0 +1,13 @@
+
+
+volatile bool shutdown = false;
+
+large_compute_async(unsigned code, int lhs, int rhs, lambda_t callback);
+
+
+void main() {
+	while(!shutdown) {
+
+
+	}
+}
Index: doc/papers/ibm_CASCON19/ThreadingModels.fig
===================================================================
--- doc/papers/ibm_CASCON19/ThreadingModels.fig	(revision 17d621465d929ac811a08895ecb1eb113d795a18)
+++ 	(revision )
@@ -1,140 +1,0 @@
-#FIG 3.2  Produced by xfig version 3.2.5b
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2700 3300 150 150 2700 3300 2850 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3150 3300 150 150 3150 3300 3300 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 3300 150 150 4050 3300 4200 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4500 3300 150 150 4500 3300 4650 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4950 3300 150 150 4950 3300 5100 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5400 3300 150 150 5400 3300 5550 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5850 3300 150 150 5850 3300 6000 3300
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3600 3300 150 150 3600 3300 3750 3300
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6450 3150 100 100 6450 3150 6550 3150
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 1800 2175 150 150 1800 2175 1950 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 3000 2175 150 150 3000 2175 3150 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 3450 2175 150 150 3450 2175 3600 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 3900 2175 150 150 3900 2175 4050 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 5100 2175 150 150 5100 2175 5250 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 6300 2175 150 150 6300 2175 6450 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 6750 2175 150 150 6750 2175 6900 2175
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 7200 2175 150 150 7200 2175 7350 2175
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 1800 2175 100 100 1800 2175 1900 2175
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 3000 2175 100 100 3000 2175 3100 2175
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 3450 2175 100 100 3450 2175 3550 2175
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 3900 2175 100 100 3900 2175 4000 2175
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 4650 1425 100 100 4650 1425 4750 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 4950 1425 100 100 4950 1425 5050 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 5250 1425 100 100 5250 1425 5350 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 5550 1425 100 100 5550 1425 5650 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6300 1425 100 100 6300 1425 6400 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6600 1425 100 100 6600 1425 6700 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 6900 1425 100 100 6900 1425 7000 1425
-1 3 0 1 0 7 50 -1 15 0.000 1 0.0000 7200 1425 100 100 7200 1425 7300 1425
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6450 3600 150 150 6450 3600 6600 3600
-1 3 1 1 0 7 50 -1 -1 4.000 1 0.0000 6450 3600 100 100 6450 3600 6550 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 1800 2175 2700 3300
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3000 2175 3150 3300
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3450 2175 3600 3300
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3900 2175 4050 3300
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4500 3300 5100 2175
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4950 3300 6300 2175
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5400 3300 6750 2175
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5850 3300 7200 2175
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 2775 3450 3825 3675
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3225 3450 3900 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3675 3450 4050 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4125 3450 4200 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4500 3450 4350 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4950 3450 4500 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5400 3450 4650 3600
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5850 3450 4725 3675
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3825 3750 3375 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4200 3750 3975 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4350 3750 4575 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4650 3750 5175 3900
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3225 3900 3525 3900 3525 4200 3225 4200 3225 3900
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3825 3900 4125 3900 4125 4200 3825 4200 3825 3900
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4425 3900 4725 3900 4725 4200 4425 4200 4425 3900
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5025 3900 5325 3900 5325 4200 5025 4200 5025 3900
-2 2 0 2 4 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2400 3000 6150 3000 6150 4350 2400 4350 2400 3000
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6300 3975 6600 3975 6600 4275 6300 4275 6300 3975
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4950 1500 5100 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5250 1500 5100 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4650 1500 4875 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5550 1500 5325 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5100 1800 5100 2025
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 6600 1500 6750 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 6900 1500 6750 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 6300 1500 6525 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 7200 1500 6975 1650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 6750 1800 6750 2025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4500 1275 5700 1275 5700 2400 4500 2400 4500 1275
-2 2 0 2 4 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6000 1275 7500 1275 7500 2400 6000 2400 6000 1275
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2700 1275 4200 1275 4200 2400 2700 2400 2700 1275
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 1275 2400 1275 2400 2400 1200 2400 1200 1275
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 6600 1800 6300 2025
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 6900 1800 7200 2025
-4 1 0 50 -1 0 12 0.0000 2 135 435 1800 2775 1:1:4\001
-4 1 0 50 -1 0 12 0.0000 2 135 435 3450 2775 3:3:4\001
-4 1 0 50 -1 0 12 0.0000 2 135 435 5100 2775 4:1:4\001
-4 1 0 50 -1 0 12 0.0000 2 135 435 6750 2775 4:3:4\001
-4 2 0 50 -1 0 12 0.0000 2 180 585 2250 3975 System\001
-4 2 0 50 -1 0 12 0.0000 2 180 810 2250 3750 Operating\001
-4 1 0 50 -1 0 12 0.0000 2 135 780 4275 3750 scheduler\001
-4 0 0 50 -1 0 12 0.0000 2 135 885 6750 3225 user thread\001
-4 0 0 50 -1 0 12 0.0000 2 135 1065 6750 3675 kernel thread\001
-4 0 0 50 -1 0 12 0.0000 2 135 375 6750 4200 CPU\001
-4 1 0 50 -1 0 12 0.0000 2 180 1020 1800 1200 Process$_1$\001
-4 1 0 50 -1 0 12 0.0000 2 180 1020 3450 1200 Process$_2$\001
-4 1 0 50 -1 0 12 0.0000 2 180 1020 5100 1200 Process$_3$\001
-4 1 0 50 -1 0 12 0.0000 2 180 1020 6750 1200 Process$_4$\001
-4 1 0 50 -1 0 11 0.0000 2 120 675 5100 1800 scheduler\001
-4 1 0 50 -1 0 11 0.0000 2 120 675 6750 1800 scheduler\001
Index: doc/papers/ibm_CASCON19/ThreadingModels.svg
===================================================================
--- doc/papers/ibm_CASCON19/ThreadingModels.svg	(revision 17d621465d929ac811a08895ecb1eb113d795a18)
+++ 	(revision )
@@ -1,683 +1,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   id="svg4438"
-   viewBox="1188 1041 6669 3331"
-   height="2.8in"
-   width="5.6in">
-  <metadata
-     id="metadata4640">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4638" />
-  <g
-     transform="translate(185.25001,-26.464286)"
-     id="g4440"
-     style="fill:none;stroke-width:0.025in">
-    <!-- Circle -->
-    <circle
-       id="circle4442"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="2700" />
-    <!-- Circle -->
-    <circle
-       id="circle4444"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="3150" />
-    <!-- Circle -->
-    <circle
-       id="circle4446"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="4050" />
-    <!-- Circle -->
-    <circle
-       id="circle4448"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="4500" />
-    <!-- Circle -->
-    <circle
-       id="circle4450"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="4950" />
-    <!-- Circle -->
-    <circle
-       id="circle4452"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="5400" />
-    <!-- Circle -->
-    <circle
-       id="circle4454"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="5850" />
-    <!-- Circle -->
-    <circle
-       id="circle4456"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3300"
-       cx="3600" />
-    <!-- Circle -->
-    <circle
-       id="circle4458"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="3150"
-       cx="6450" />
-    <!-- Circle -->
-    <circle
-       id="circle4460"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="1800" />
-    <!-- Circle -->
-    <circle
-       id="circle4462"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="3000" />
-    <!-- Circle -->
-    <circle
-       id="circle4464"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="3450" />
-    <!-- Circle -->
-    <circle
-       id="circle4466"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="3900" />
-    <!-- Circle -->
-    <circle
-       id="circle4468"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="5100" />
-    <!-- Circle -->
-    <circle
-       id="circle4470"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="6300" />
-    <!-- Circle -->
-    <circle
-       id="circle4472"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="6750" />
-    <!-- Circle -->
-    <circle
-       id="circle4474"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="150"
-       cy="2175"
-       cx="7200" />
-    <!-- Circle -->
-    <circle
-       id="circle4476"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="2175"
-       cx="1800" />
-    <!-- Circle -->
-    <circle
-       id="circle4478"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="2175"
-       cx="3000" />
-    <!-- Circle -->
-    <circle
-       id="circle4480"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="2175"
-       cx="3450" />
-    <!-- Circle -->
-    <circle
-       id="circle4482"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="2175"
-       cx="3900" />
-    <!-- Circle -->
-    <circle
-       id="circle4484"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="4650" />
-    <!-- Circle -->
-    <circle
-       id="circle4486"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="4950" />
-    <!-- Circle -->
-    <circle
-       id="circle4488"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="5250" />
-    <!-- Circle -->
-    <circle
-       id="circle4490"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="5550" />
-    <!-- Circle -->
-    <circle
-       id="circle4492"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="6300" />
-    <!-- Circle -->
-    <circle
-       id="circle4494"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="6600" />
-    <!-- Circle -->
-    <circle
-       id="circle4496"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="6900" />
-    <!-- Circle -->
-    <circle
-       id="circle4498"
-       style="fill:#bfbfbf;stroke:#000000;stroke-width:7"
-       r="100"
-       cy="1425"
-       cx="7200" />
-    <!-- Circle -->
-    <circle
-       id="circle4500"
-       style="stroke:#000000;stroke-width:7"
-       r="150"
-       cy="3600"
-       cx="6450" />
-    <!-- Circle -->
-    <circle
-       id="circle4502"
-       style="stroke:#000000;stroke-width:7;stroke-dasharray:40, 40"
-       r="100"
-       cy="3600"
-       cx="6450" />
-    <!-- Line -->
-    <polyline
-       id="polyline4504"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="1800,2175 2700,3300 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4506"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="3000,2175 3150,3300 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4508"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="3450,2175 3600,3300 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4510"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="3900,2175 4050,3300 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4512"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4500,3300 5100,2175 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4514"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4950,3300 6300,2175 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4516"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5400,3300 6750,2175 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4518"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5850,3300 7200,2175 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4520"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="2775,3450 3825,3675 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4522"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="3225,3450 3900,3600 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4524"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="3675,3450 4050,3600 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4526"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4125,3450 4200,3600 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4528"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4500,3450 4350,3600 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4530"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4950,3450 4500,3600 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4532"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5400,3450 4650,3600 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4534"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5850,3450 4725,3675 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4536"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="3825,3750 3375,3900 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4538"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4200,3750 3975,3900 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4540"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4350,3750 4575,3900 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4542"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4650,3750 5175,3900 " />
-    <!-- Line: box -->
-    <rect
-       id="rect4544"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="300"
-       width="300"
-       y="3900"
-       x="3225" />
-    <!-- Line: box -->
-    <rect
-       id="rect4546"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="300"
-       width="300"
-       y="3900"
-       x="3825" />
-    <!-- Line: box -->
-    <rect
-       id="rect4548"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="300"
-       width="300"
-       y="3900"
-       x="4425" />
-    <!-- Line: box -->
-    <rect
-       id="rect4550"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="300"
-       width="300"
-       y="3900"
-       x="5025" />
-    <!-- Line: box -->
-    <rect
-       id="rect4552"
-       style="stroke:#ff0000;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="1350"
-       width="3750"
-       y="3000"
-       x="2400" />
-    <!-- Line: box -->
-    <rect
-       id="rect4554"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="300"
-       width="300"
-       y="3975"
-       x="6300" />
-    <!-- Line -->
-    <polyline
-       id="polyline4556"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4950,1500 5100,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4558"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5250,1500 5100,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4560"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="4650,1500 4875,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4562"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5550,1500 5325,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4564"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="5100,1800 5100,2025 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4566"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="6600,1500 6750,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4568"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="6900,1500 6750,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4570"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="6300,1500 6525,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4572"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="7200,1500 6975,1650 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4574"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="6750,1800 6750,2025 " />
-    <!-- Line: box -->
-    <rect
-       id="rect4576"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="1125"
-       width="1200"
-       y="1275"
-       x="4500" />
-    <!-- Line: box -->
-    <rect
-       id="rect4578"
-       style="stroke:#ff0000;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="1125"
-       width="1500"
-       y="1275"
-       x="6000" />
-    <!-- Line: box -->
-    <rect
-       id="rect4580"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="1125"
-       width="1500"
-       y="1275"
-       x="2700" />
-    <!-- Line: box -->
-    <rect
-       id="rect4582"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       rx="0"
-       height="1125"
-       width="1200"
-       y="1275"
-       x="1200" />
-    <!-- Line -->
-    <polyline
-       id="polyline4584"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="6600,1800 6300,2025 " />
-    <!-- Line -->
-    <polyline
-       id="polyline4586"
-       style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
-       points="6900,1800 7200,2025 " />
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4588"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="2775"
-       x="1800"
-       xml:space="preserve">1:1</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4590"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="2775"
-       x="3450"
-       xml:space="preserve">3:3</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4592"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="2775"
-       x="5100"
-       xml:space="preserve">4:1</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4594"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="2775"
-       x="6750"
-       xml:space="preserve">4:3</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:end;fill:#000000"
-       id="text4596"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="3975"
-       x="2250"
-       xml:space="preserve">System</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:end;fill:#000000"
-       id="text4598"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="3750"
-       x="2250"
-       xml:space="preserve">Operating</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4600"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="3750"
-       x="4275"
-       xml:space="preserve">scheduler</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:start;fill:#000000"
-       id="text4602"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="3225"
-       x="6750"
-       xml:space="preserve">user thread</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:start;fill:#000000"
-       id="text4604"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="3675"
-       x="6750"
-       xml:space="preserve">kernel thread</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:start;fill:#000000"
-       id="text4606"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="4200"
-       x="6750"
-       xml:space="preserve">CPU</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4608"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="1200"
-       x="1800"
-       xml:space="preserve">Process<tspan
-   style="font-size:96px"
-   id="tspan4610"
-   dy="35"
-   font-size="96">1</tspan><tspan
-   id="tspan4612"
-   dy="-35" /></text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4614"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="1200"
-       x="3450"
-       xml:space="preserve">Process<tspan
-   style="font-size:96px"
-   id="tspan4616"
-   dy="35"
-   font-size="96">2</tspan><tspan
-   id="tspan4618"
-   dy="-35" /></text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4620"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="1200"
-       x="5100"
-       xml:space="preserve">Process<tspan
-   style="font-size:96px"
-   id="tspan4622"
-   dy="35"
-   font-size="96">3</tspan><tspan
-   id="tspan4624"
-   dy="-35" /></text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:144px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4626"
-       font-size="144"
-       font-weight="normal"
-       font-style="normal"
-       y="1200"
-       x="6750"
-       xml:space="preserve">Process<tspan
-   style="font-size:96px"
-   id="tspan4628"
-   dy="35"
-   font-size="96">4</tspan><tspan
-   id="tspan4630"
-   dy="-35" /></text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:132px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4632"
-       font-size="132"
-       font-weight="normal"
-       font-style="normal"
-       y="1800"
-       x="5100"
-       xml:space="preserve">scheduler</text>
-    <!-- Text -->
-    <text
-       style="font-style:normal;font-weight:normal;font-size:132px;font-family:Times;text-anchor:middle;fill:#000000"
-       id="text4634"
-       font-size="132"
-       font-weight="normal"
-       font-style="normal"
-       y="1800"
-       x="6750"
-       xml:space="preserve">scheduler</text>
-  </g>
-</svg>
Index: doc/papers/ibm_CASCON19/abstract.txt
===================================================================
--- doc/papers/ibm_CASCON19/abstract.txt	(revision 17d621465d929ac811a08895ecb1eb113d795a18)
+++ 	(revision )
@@ -1,40 +1,0 @@
-Synchronous Programming with User-Level Threads in C∀
-
-When computations cannot be satisfied immediately, programmers must use
-one of two paradigms, Synchronous Programming and Asynchronous Programming.
-This presentation discusses the benefits Synchronous Programming over
-Asynchronous Programming and what requirements exist to use this paradigm.
-It also discusses how C∀, a concurrent and backwards-compatible extension
-of the C programming language, has powerful tools available for simple and
-efficient Synchronous Programming. These tools include user-level threads
-and high-level locking mechanisms which simply solve common problems.
-Finally, the presentation shows different techniques to combine these
-features with existing code to either uses blocking operations provided by
-the kernel or is built according to an asynchronous paradigm.
-
-
-
-
-
-
-
-
-
-C∀ is a polymorphic, non-object-oriented, concurrent, backwards-compatible
-extension of the C programming language. This paper discusses the design
-philosophy and implementation of its advanced control-flow and concurrent/parallel
-features, along with the supporting runtime written in C∀. These features
-are created from scratch as ISO C has only low-level and/or unimplemented
-concurrency, so C programmers continue to rely on library features like pthreads.
-C∀ introduces modern language-level control-flow mechanisms, like generators,
-coroutines, user-level threading, and monitors for mutual exclusion and
-synchronization. The runtime provides significant programmer simplification
-and safety by eliminating spurious wakeup and monitor barging. The runtime
-also ensures multiple monitors can be safely acquired simultaneously (deadlock free),
-and this feature is fully integrated with all monitor synchronization mechanisms.
-All control-flow features integrate with the C∀ polymorphic type-system and
-exception handling, while respecting the expectations and style of C programmers.
-Experimental results show comparable performance of the new features with similar
-mechanisms in other concurrent programming languages.
-KEYWORDS
-generator, coroutine, concurrency, parallelism, thread, monitor, runtime, C, C∀ (Cforall)
Index: doc/papers/ibm_CASCON19/client.cfa
===================================================================
--- doc/papers/ibm_CASCON19/client.cfa	(revision 17d621465d929ac811a08895ecb1eb113d795a18)
+++ 	(revision )
@@ -1,63 +1,0 @@
-// Original
-void sum_many_async(int[] inputs, lambda_t callback);
-
-// Target
-int  sum_many      (int[] inputs);
-
-//==================================
-
-int  sum_many(int[] inputs) {
-	// setup required data
-	int result;
-	semaphore_t sem = { 0 };
-
-	// call async function
-	sum_many_async( inputs, (int sum) {
-		result = sum;
-		V(sem);
-	});
-
-	// wait for result
-	P(sem);
-
-	// return
-	return result;
-}
-
-
-int sum_many_block(int[] inputs);
-int sum_many      (int[] inputs);
-
-//==================================
-
-struct request_t {
-	int[] inputs;
-	int result;
-	semaphore_t sem = { 0 };
-};
-
-void * call_sum_many_block(void * args) {
-	request_t * req = (request_t *) args;
-	req->result = sum_many_block(req->inputs);
-	V(req->sem);
-}
-
-int  sum_many(int[] inputs) {
-	// setup required data
-	request_t req = { inputs };
-
-	// create thread to
-	pthread_t thrd;
-	int err = pthread_fork(&thrd, 0p, call_sum_many_block, &req);
-	handle(err);
-
-	// wait
-	P(req.sem);
-
-	// Cleanup pthread
-	err = pthread_join(&thrd, 0p);
-	handle(err);
-
-	// get result
-	return req.result;
-}
Index: doc/papers/ibm_CASCON19/server.cfa
===================================================================
--- doc/papers/ibm_CASCON19/server.cfa	(revision 17d621465d929ac811a08895ecb1eb113d795a18)
+++ 	(revision )
@@ -1,13 +1,0 @@
-
-
-volatile bool shutdown = false;
-
-large_compute_async(unsigned code, int lhs, int rhs, lambda_t callback);
-
-
-void main() {
-	while(!shutdown) {
-
-
-	}
-}
