<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>