Josh Hursey, le Thu 09 Jun 2011 17:03:29 +0200, a écrit :
> Program terminated with signal 4, Illegal instruction.
> #0 0x000000000041d8d9 in hwloc_weight_long ()
> 0x000000000041d8d9 <hwloc_weight_long+8>: popcnt 0xfffffffffffffff8(%rbp),%rax
This is SSE4 indeed. You could check in grep sse4 /proc/cpuinfo that the frontend
has it while the computation nodes don't.
Gcc does not emit such instruction unless being instructed to (and
hwloc does not). Since it does on your machine, there must be something
on your frontend toolchain which forces -march=native or -march=sse4,
and you will have other appearances of such bugs, where gcc adds
SSE4-specific instructions with will SIGILL on the computation nodes,
and it's probably only by luck that you have not encountered it yet.