On Thu, Jun 10, 2010 at 11:33 AM, John Peterson
<[email protected]> wrote:
> On Thu, Jun 10, 2010 at 11:22 AM, Lorenzo Alessio Botti
> <[email protected]> wrote:
>>
>> Hi all,
>> is there any compiler option to run on heterogeneous clusters?
>>
>> I'm compiling on the frontend node which is a xeon and on all the xeon nodes 
>> everything works, but when I try to run on opteron nodes I just get "Illegal 
>> instruction".
>> I'm using icpc.
>>
>> Does anyone know how to solve this problem? I'm having trouble because the 
>> cluster is half xeon and half opteron...
>
> Sounds pretty schizophrenic!
>
> You *might* be able to get a single executable that will run on both
> xeon and opteron nodes at the same time, at a minimum you will have to
> turn off all the SSE instructions which are specific to one chip or
> another.
>
> Under intel these are -ax[S,T,P,B,N,W,K].  By default, it looks like
> libmesh sets -xW for you which, according to my compiler docs, "Can
> generate specialized code paths for SSE2 and SSE instructions for
> Intel processors".

Wait, that is for -axW.  -xW is what's set by LibMesh:

"Can generate SSE2 and SSE instructions, and it can optimize for
Intel(R) Pentium(R) 4 processors and Intel(R) Xeon(R) processors with
SSE2. This is the default on Linux systems using Intel(R) 64
architecture.  This option is the same as specifying -march=pentium4."

So if your front-end is a xeon, the compiler likely generated
xeon-specific code that won't run on opteron.

-- 
John

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to