Although this problem is not related to OMPI *at all*, I think it is good
to tell the others what was going on. Finally, I caught the illegal
instruction :)

Briefly, I built the serial version of Siesta on the frontend and ran it
directly on the compute node. Fortunately, "x/i $pc" from GDB showed that
the illegal instruction was a FMA3 instruction. More detail is available at

According to the Wikipedia,

   - *FMA4* is supported in AMD
   <> processors
   starting with the Bulldozer
   architecture. FMA4 was realized in hardware before FMA3.
   - *FMA3* is supported in AMD processors starting with the Piledriver
   architecture and Intel <>
   starting with Haswell processors
   <> and
   <> since

Therefore, the frontend (piledriver) inserts a FMA3 instruction while the
compute node (Bulldozer) doesn't recognize it.

The solution was (as stated by guys) building Siesta on the compute node. I
have to say that I tested all related programs (OMPI
Scalapack, OpenBLAS
​) sequentially on the compute node in order to find who generate the
illegal instruction.

Anyway... thanks a lot for your comments. Hope this helps others in the

users mailing list

Reply via email to