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
