<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Devs & Cafe,<div class=""><br class=""></div><div class="">I would report back my progress on it, actually I've got a rough conclusion that TL;DR:</div><div class=""><br class=""></div><div class="">> For data-intensive workloads, x86_64 ISA has its cache of CPU chips being a hardware bottleneck, it's very hard to scale up with added number of cores, so long as they share the cache as being in a single chip.</div><div class=""><br class=""></div><div class="">For the details -</div><div class=""><br class=""></div><div class="">I developed a minimal script interpreter for diagnostic purpose, dependent only on libraries bundled with GHC, the source repository is at: <a href="https://github.com/complyue/txs" class="">https://github.com/complyue/txs</a></div><div class=""><br class=""></div><div class="">I benchmarked on my machine with a single 6-core Xeon E5 CPU chip, for contention-free read/write performance scaling, got numbers at: <a href="https://github.com/complyue/txs/blob/master/results/baseline.csv" class="">https://github.com/complyue/txs/blob/master/results/baseline.csv</a></div><div class=""><br class=""></div><div class=""><table cellspacing="0" cellpadding="0" style="border-collapse: collapse" class="">
<tbody class="">
<tr class="">
<td valign="top" style="width: 42.0px; height: 23.0px; background-color: #b0b3b2; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 24.0px; height: 23.0px; background-color: #b0b3b2; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class=""><b class="">conc</b></font></div>
</td>
<td valign="top" style="width: 35.0px; height: 23.0px; background-color: #b0b3b2; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class=""><b class="">thread avg tps</b></font></div>
</td>
<td valign="top" style="width: 25.0px; height: 23.0px; background-color: #b0b3b2; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class=""><b class="">scale</b></font></div>
</td>
<td valign="top" style="width: 19.0px; height: 23.0px; background-color: #b0b3b2; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class=""><b class="">eff</b></font></div>
</td>
</tr>
<tr class="">
<td rowspan="6" valign="top" style="width: 42.0px; height: 112.0px; background-color: #d4d4d4; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class=""><b class="">populate</b></font></div>
</td>
<td valign="top" style="width: 24.0px; height: 12.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 12.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1741</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 12.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.00</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 12.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.00</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1285</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.48</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.74</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">3</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1028</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.77</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.59</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">4</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">843</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.94</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.48</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">5</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">696</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2.00</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.40</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">6</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">600</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2.07</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.34</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 42.0px; height: 11.0px; background-color: #d4d4d4; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
</tr>
<tr class="">
<td rowspan="6" valign="top" style="width: 42.0px; height: 111.0px; background-color: #d4d4d4; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class=""><b class="">scan</b></font></div>
</td>
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1565</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.00</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.00</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1285</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.64</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.82</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">3</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1018</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">1.95</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.65</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">4</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">843</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2.15</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.54</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">5</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">696</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2.22</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.44</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">6</font></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">586</font></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">2.25</font></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px;" class=""><font face="Helvetica Neue" color="#000000" style="font-stretch: normal; font-size: 10px; line-height: normal; font-family: "Helvetica Neue"; font-variant-ligatures: common-ligatures; color: rgb(0, 0, 0);" class="">0.37</font></div>
</td>
</tr>
<tr class="">
<td valign="top" style="width: 42.0px; height: 11.0px; background-color: #d4d4d4; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 24.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 35.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 25.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
<td valign="top" style="width: 19.0px; height: 11.0px; border-style: solid; border-width: 1.0px 1.0px 1.0px 1.0px; border-color: #000000 #000000 #000000 #000000; padding: 4.0px 4.0px 4.0px 4.0px" class=""><div style="margin: 0px; font-stretch: normal; font-size: 12px; line-height: normal; min-height: 14px;" class=""><br class=""></div>
</td>
</tr>
</tbody>
</table></div><div class=""><br class=""></div><div class="">The script is at: <a href="https://github.com/complyue/txs/blob/master/scripts/scan.txs" class="">https://github.com/complyue/txs/blob/master/scripts/scan.txs</a></div><div class=""><br class=""></div><div class="">GHC cmdl is at: <a href="https://github.com/complyue/txs/blob/master/metric.bash" class="">https://github.com/complyue/txs/blob/master/metric.bash</a></div><div class=""><br class=""></div><div class=""><div style="color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Menlo, Monaco, "Courier New", monospace; line-height: 18px; white-space: pre;" class=""><div class="">ghc --make -Wall -threaded -rtsopts -prof -o txs -outputdir <span style="color: #dcdcaa;" class="">.</span> -stubdir <span style="color: #dcdcaa;" class="">.</span> -i../src ../src/Main.hs && (</div><br class=""><div class="">  ./txs +RTS -N10 -A32m -H256m -qg -I0 -M5g -T -s <../scripts/<span style="color: #ce9178;" class="">"</span><span style="color: #9cdcfe;" class="">${SCRIPT}</span><span style="color: #ce9178;" class="">"</span>.txs</div><br class=""><div class="">)</div></div></div><div class=""><br class=""></div><div class="">I intended to use a single Haskell based process to handle meta data about many ndarrays being crunched, acting as a centralized graph database, as it turned out, many clients queued to query/insert meta data against a single database node, will create such high data throughput that just few CPU chips can't handle well, we didn't expect this but apparently we'll have to deploy more machines as for such a database instance, with data partitioned and distributed to more nodes for load balancing. (A single machine with many sockets for CPU thus many NUMA nodes is neither an option for us.) While the flexibility a central graph database would provide, is not currently a crucial requirement of our business,  so we are not interested to further develop this database system.</div><div class=""><br class=""></div><div class=""><div class="">We currently have CPU intensive workloads handled by some cluster of machines running Python processes (crunching numbers with Numpy and C++ tensors), while some Haskell based number crunching software are still under development, it may turn out some day in the future, that some heavier computation be bound with the db access, effectively creating some CPU intensive workloads for the database functionality, then we'll have the opportunity to dive deeper into the database implementation. And in case more flexibility required in near future, I think I'll tend to implement embedded database instances in those worker processes, in contrast to centralized db servers.</div></div><div class=""><br class=""></div><div class="">I wonder if ARM servers will have up scaling of data intensive workloads easier, though that's neither a near feasible option for us.</div><div class=""><br class=""></div><div class="">Thanks for everyone that have been helpful!</div><div class=""><br class=""></div><div class="">Best regards,</div><div class="">Compl</div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 2020-07-31, at 22:35, YueCompl via Haskell-Cafe <<a href="mailto:haskell-cafe@haskell.org" class="">haskell-cafe@haskell.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Ben,<br class=""><br class="">Thanks as always for your great support! And at the moment I'm working on a minimum working example to reproduce the symptoms, I intend to work out a program depends only on libraries bundled with GHC, so it can be easily diagnosed without my complex env,  but so far no reprod yet. I'll come with some piece of code once it can reproduce something.<br class=""><br class="">Thanks in advance.<br class=""><br class="">Sincerely,<br class="">Compl<br class=""><br class=""><br class=""><blockquote type="cite" class="">On 2020-07-31, at 21:36, Ben Gamari <<a href="mailto:ben@well-typed.com" class="">ben@well-typed.com</a>> wrote:<br class=""><br class="">Simon Peyton Jones via Haskell-Cafe <<a href="mailto:haskell-cafe@haskell.org" class="">haskell-cafe@haskell.org</a>> writes:<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Compl’s problem is (apparently) that execution becomes dominated by<br class="">GC. That doesn’t sound like a constant-factor overhead from TVars, no<br class="">matter how efficient (or otherwise) they are. It sounds more like a<br class="">space leak to me; perhaps you need some strict evaluation or<br class="">something.<br class=""></blockquote><br class="">My point is only: before re-engineering STM it would make sense to get<br class="">a much more detailed insight into what is actually happening, and<br class="">where the space and time is going. We have tools to do this (heap<br class="">profiling, Threadscope, …) but I know they need some skill and insight<br class="">to use well. But we don’t have nearly enough insight to draw<br class="">meaningful conclusions yet.<br class=""><br class="">Maybe someone with experience of performance debugging might feel able<br class="">to help Compl?<br class=""><br class=""></blockquote>Compl,<br class=""><br class="">If you want to discuss the issue feel free to get in touch on IRC. I<br class="">would be happy to help.<br class=""><br class="">It would be great if we had something of a decision tree for performance<br class="">tuning of Haskell code in the users guide or Wiki. We have so many tools<br class="">yet there isn't a comprehensive overview of<br class=""><br class="">1. what factors might affect which runtime characteristics of your<br class="">   program<br class="">2. which tools can be used to measure which factors<br class="">3. how these factors can be improved<br class=""><br class="">Cheers,<br class=""><br class="">- Ben<br class="">_______________________________________________<br class="">Haskell-Cafe mailing list<br class="">To (un)subscribe, modify options or view archives go to:<br class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="">Only members subscribed via the mailman list are allowed to post.<br class=""></blockquote><br class="">_______________________________________________<br class="">Haskell-Cafe mailing list<br class="">To (un)subscribe, modify options or view archives go to:<br class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="">Only members subscribed via the mailman list are allowed to post.</div></div></blockquote></div><br class=""></div></body></html>