<p dir="ltr">Hi Jasiek,</p>
<p dir="ltr">Phi is identified as an x86_64 but is not completely compatible. Looks like (s,l,m)fence need to be replaced by serializing instructions according to:</p>
<p dir="ltr"><a href="http://lists.lttng.org/pipermail/lttng-dev/2013-December/022111.html">http://lists.lttng.org/pipermail/lttng-dev/2013-December/022111.html</a></p>
<p dir="ltr">Would be very interested if you make progress here! Good luck!</p>
<p dir="ltr">Cheers,</p>
<p dir="ltr">Darach.</p>
<div class="gmail_quote">On 16 Sep 2015 04:40, "Jasiek Stypka" <<a href="mailto:jasiek.stypka@wp.pl">jasiek.stypka@wp.pl</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello everyone,<br>
<br>
Does anybody have any experience with running Erlang programs on Intel Xeon Phi coprocessor? I would like to carry out some experiments on this platform concerning multicore computing, however I am struggling to run Erlang VM on that architecture.<br>
<br>
It seems to be binary incompatible with x86_64 architectures. When I try to run the normal Erlang VM v17.3 on it, I get:<br>
/home/me/lib/erlang/bin/erl: line 28: /home/me/lib/erlang/erts-6.1/bin/erlexec: cannot execute binary file<br>
/home/me/lib/erlang/bin/erl: line 28: /home/me/lib/erlang/erts-6.1/bin/erlexec: Success<br>
<br>
So I figured out that I need to use cross compilation to compile the VM specially for this architecture. After some reading and numerous trials and errors, I ended up compiling the EVM with these commands:<br>
<br>
$ ./configure --host=k1om-unknown-linux-gnu --build=x86_64-pc-linux-gnu --without-termcap --prefix=$HOME/lib/my_erlang_compilation-17.3 CC=icc CFLAGS=-mmic<br>
$ make<br>
<br>
The first command somehow finishes without any errors, but when running `make` I finally get:<br>
<br>
/tmp/iccvaLP3vas_.s: Assembler messages:<br>
/tmp/iccvaLP3vas_.s:25794: Error: `mfence' is not supported on `k1om'<br>
/tmp/iccvaLP3vas_.s:25800: Error: `mfence' is not supported on `k1om'<br>
/tmp/iccvaLP3vas_.s:26388: Error: `mfence' is not supported on `k1om'<br>
/tmp/iccvaLP3vas_.s:26394: Error: `mfence' is not supported on `k1om'<br>
make[3]: *** [obj/k1om-unknown-linux-gnu/opt/smp/erl_alloc_util.o] Error 1<br>
<br>
This seem to be connected with memory barrier instructions and looks like it's incompatible. Does this mean that the Erlang VM cannot be run on this architecture?<br>
<br>
Thanks in advance for any suggestions,<br>
Jan Stypka<br>
<br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div>