<div dir="ltr">Johannes:<div><br></div><div>I'm happy to report that I was able to do this experiment, and it indeed worked just fine. I compiled a toy program (along the lines of "hello world") using GHC-8.0.1; took the generated binary to a KNL machine, and ran it without any issues. I then repeated the same with a much bigger interactive Haskell program, and while I didn't test all aspects of it, I was able to start it on the KNL machine as well. (This latter program has quite a bit of dependencies on various Haskell libraries.) So, at least from those two experiments, I think there's a lot of hope that you can just copy over a GHC generated binary and expect it to run unmodified.</div><div><br></div><div>The machine I compiled it on have the following characteristics:</div><div><br></div><div><div><font face="monospace, monospace">$ ghc --version</font></div><div><font face="monospace, monospace">The Glorious Glasgow Haskell Compilation System, version 8.0.1</font></div><div><font face="monospace, monospace">$ lscpu</font></div><div><font face="monospace, monospace">Architecture: x86_64</font></div><div><font face="monospace, monospace">CPU op-mode(s): 32-bit, 64-bit</font></div><div><font face="monospace, monospace">Byte Order: Little Endian</font></div><div><font face="monospace, monospace">CPU(s): 16</font></div><div><font face="monospace, monospace">On-line CPU(s) list: 0-15</font></div><div><font face="monospace, monospace">Thread(s) per core: 1</font></div><div><font face="monospace, monospace">Core(s) per socket: 8</font></div><div><font face="monospace, monospace">Socket(s): 2</font></div><div><font face="monospace, monospace">NUMA node(s): 2</font></div><div><font face="monospace, monospace">Vendor ID: GenuineIntel</font></div><div><font face="monospace, monospace">CPU family: 6</font></div><div><font face="monospace, monospace">Model: 45</font></div><div><font face="monospace, monospace">Stepping: 7</font></div><div><font face="monospace, monospace">CPU MHz: 1200.000</font></div><div><font face="monospace, monospace">BogoMIPS: 5199.87</font></div><div><font face="monospace, monospace">Virtualization: VT-x</font></div><div><font face="monospace, monospace">L1d cache: 32K</font></div><div><font face="monospace, monospace">L1i cache: 32K</font></div><div><font face="monospace, monospace">L2 cache: 256K</font></div><div><font face="monospace, monospace">L3 cache: 20480K</font></div><div><font face="monospace, monospace">NUMA node0 CPU(s): 0-7</font></div><div><font face="monospace, monospace">NUMA node1 CPU(s): 8-15</font></div></div><div><br></div><div>And the machine I ran it on (which doesn't have ghc installed):</div><div><br></div><div><div><font face="monospace, monospace">$ lscpu</font></div><div><font face="monospace, monospace">Architecture: x86_64</font></div><div><font face="monospace, monospace">CPU op-mode(s): 32-bit, 64-bit</font></div><div><font face="monospace, monospace">Byte Order: Little Endian</font></div><div><font face="monospace, monospace">CPU(s): 68</font></div><div><font face="monospace, monospace">On-line CPU(s) list: 0-67</font></div><div><font face="monospace, monospace">Thread(s) per core: 1</font></div><div><font face="monospace, monospace">Core(s) per socket: 68</font></div><div><font face="monospace, monospace">Socket(s): 1</font></div><div><font face="monospace, monospace">NUMA node(s): 1</font></div><div><font face="monospace, monospace">Vendor ID: GenuineIntel</font></div><div><font face="monospace, monospace">CPU family: 6</font></div><div><font face="monospace, monospace">Model: 87</font></div><div><font face="monospace, monospace">Model name: Intel(R) Xeon Phi(TM) CPU 7250 @ 1.40GHz</font></div><div><font face="monospace, monospace">Stepping: 1</font></div><div><font face="monospace, monospace">CPU MHz: 1400.000</font></div><div><font face="monospace, monospace">BogoMIPS: 2793.32</font></div><div><font face="monospace, monospace">Virtualization: VT-x</font></div><div><font face="monospace, monospace">L1d cache: 32K</font></div><div><font face="monospace, monospace">L1i cache: 32K</font></div><div><font face="monospace, monospace">L2 cache: 1024K</font></div><div><font face="monospace, monospace">NUMA node0 CPU(s): 0-67</font></div></div><div><br></div><div><br></div><div>So, it does appear that Intel's "binary-compatible" claim is indeed holding up. I'd be happy to do some "small" experiments if you're particularly worried about some particular feature; let me know.</div><div><br></div><div>Cheers,</div><div><br></div><div>-Levent.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 21, 2017 at 10:29 AM, Johannes Waldmann <span dir="ltr"><<a href="mailto:johannes.waldmann@htwk-leipzig.de" target="_blank">johannes.waldmann@htwk-leipzig.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Levent,<br>
<span class=""><br>
> The whole point of the Xeon-phi is the availability of<br>
> large-vector sized floating-point support and many-many cores.<br>
<br>
</span>Sure, that's what I'm contemplating - use the many options<br>
of writing parallel and concurrent Haskell programs.<br>
<br>
So, GHC's RTS should "just work"?<br>
<br>
I was hoping someone already had actually seen this<br>
on their machine.<br>
<span class="HOEnZb"><font color="#888888"><br>
- J.<br>
</font></span></blockquote></div><br></div>