Re: [AMBER-Developers] SSE-based compile flags for intel

From: Scott Brozell <sbrozell.rci.rutgers.edu>
Date: Sun, 18 Mar 2012 23:42:03 -0400

Hi,

Yes that is the reason i used in amber11 pmemd.MPI with intel 12.1:
-ipo -O3 -no-prec-div -xHost -static-intel
as close to -fast as i was able to get.

I started to test sander with intel 12.1 on -ip vs -ipo
but i encountered problems...

scott


On Sun, Mar 18, 2012 at 06:39:42PM -0700, Ross Walker wrote:
> If I remember rightly one of the issues with using '-fast' was that it
> implies -static and there is no way to turn this off. This means unless you
> build your mpi installation specifically to support static linking then you
> can't build the parallel version of the code using -fast. That is a BIG let
> down with the -fast option unfortunately and I never found a way to fix it.
> :-(
>
> > -----Original Message-----
> > From: Scott Brozell [mailto:sbrozell.rci.rutgers.edu]
> > Sent: Sunday, March 18, 2012 2:32 PM
> > To: AMBER Developers Mailing List
> > Subject: Re: [AMBER-Developers] SSE-based compile flags for intel
> >
> > Hi,
> >
> > The -xP for pmemd is clearly wrong as your build demonstrates.
> > Assuming some compilers for pmemd still cannot handle -ipo then
> > the only difference between pmemd and sander should be -ip vs -ipo.
> > However, assuming -ipo doesn't enhance sander then we arrive at
> > -ip -O3 -no-prec-div -xHost
> > for versions 11 and 12.
> > For older versions:
> > -ip -O3 -no-prec-div -axSTPW
> > (So the difference between mine and Ross's is -no-prec-div
> > which is supported at least back to 9.1.)
> >
> > Ideally we should be using -fast for all versions and programs
> > (and be ignoring heterogenous platforms).
> > I built amber11 pmemd with 12.1.0 and
> > -ipo -O3 -no-prec-div -xSSE4.2 -static-intel
> > which is almost equivalent to -fast (-static-intel vs -static a local
> > issue)
> > So has anyone tried to build amber12 pmemd with fast on new compilers ?
> > Perhaps we should just use -fast for new compilers ?
> > Perhaps we should break equilvalence between sander and pmemd
> > and use -fast for sander ?
> >
> >
> > On Sun, Mar 18, 2012 at 10:00:18AM -0700, Ross Walker wrote:
> > > I think this is mostly historical divergence.
> > >
> > > Ideally we should have:
> > >
> > > old compilers = -fast
> > >
> > > new compilers = -ipo -xhost
> >
> > Why ? -fast for version 12 equals
> > -ipo -O3 -no-prec-div -xHost -static
> >
> > scott
> >
> >
> > > The issue is that -fast enables -ipo by default and this caused
> > compiler
> > > crashes when trying to link pmemd. Thus pmemd was switched back to -
> > ip -O3
> > > -xP
> > >
> > > I am not sure when it got changed to -xP though. For new compilers
> > (11 and
> > > newer?) you just specify -xhost and it will use the optimum vector
> > > parameters for the host you are compiling on. This means it won't run
> > on
> > > different chip versions so causes problems with people with
> > heterogeneous
> > > clusters but maybe we shouldn't worry about that and let them figure
> > it for
> > > themselves?
> > >
> > > Otherwise we have to specify all of the SSE vectorization options and
> > the
> > > problem is that Intel keeps changing the options as well as the
> > syntax with
> > > every compiler.
> > >
> > > For the pre 11 compilers I think one uses the -xAAA options. Here -x
> > means
> > > create vector code only. -ax also means generate generic x86 code.
> > Thus -axP
> > > will make an executable that always works but it will only run fast
> > on chip
> > > versions that support the 'P' vectorization options. Once can try to
> > add
> > > them all which is what is in sander and is probably what SHOULD be in
> > pmemd.
> > > So for intel <11 it should probably be:
> > >
> > > -ip -O3 -axSTPW
> > >
> > > I 'think' this will work with all ifort versions from 9 to 10 and
> > should be
> > > optimum performance (although a massive executable) on most Intel and
> > AMD
> > > chips exluding the latest Sandybridge chips but I think one should
> > probably
> > > use ifort v12 for those anyway which would then use -xhost since from
> > 11
> > > onwards it changed to /QhostBLAH in which case we should just use -
> > xhost and
> > > let the compiler figure it automatically.
> > >
> > > All the best
> > > Ross
> > >
> > > > -----Original Message-----
> > > > From: case [mailto:case.biomaps.rutgers.edu]
> > > > Sent: Sunday, March 18, 2012 5:51 AM
> > > > To: amber-developers.ambermd.org
> > > > Subject: [AMBER-Developers] SSE-based compile flags for intel
> > > >
> > > > Does anyone understand why we use the flags we do for Intel
> > compilers?
> > > >
> > > > For sander, we have -ip -O3 -axSTPW; for pmemd, it is -ipo -O3 -no-
> > > > prec-div
> > > > -xP. Is there a good reason for the difference?
> > > >
> > > > For me, with intel compiler 10.1, pmemd with the default install
> > > > creates
> > > > an unusable executable ("Fatal Error: This program was not built to
> > run
> > > > on the processor in your system. The allowed processors are:
> > Intel(R)
> > > > Pentium(R) 4 and compatible Intel processors with Streaming SIMD
> > > > Extensions 3 (SSE3) instruction support.)
> > > >
> > > > Rather oddly(?), pmemd.amoeba, which seems to be compiled with the
> > same
> > > > options, is OK. (Code for pmemd.amoeba has changed very little
> > from
> > > > Amber
> > > > 11).
> > > >
> > > > If I change -xP to -axP, pmemd is fine for ifort 10.1.
> > > >
> > > > So: why are sander optimizations different than pmemd? Are we
> > > > somewhere near
> > > > optimal? Do users really need to learn the ins and outs of
> > SSE_TYPES?
> > > > What
> > > > is the best thing to do for pmemd on ifort 10? (e.g. would
> > changing -
> > > > xP to
> > > > -axP do harm on ifort 11 or 12?)
> > > >
> > > > ...thx...dac
> >
> > _______________________________________________
> > AMBER-Developers mailing list
> > AMBER-Developers.ambermd.org
> > http://lists.ambermd.org/mailman/listinfo/amber-developers
>
>
> _______________________________________________
> AMBER-Developers mailing list
> AMBER-Developers.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber-developers

_______________________________________________
AMBER-Developers mailing list
AMBER-Developers.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber-developers
Received on Sun Mar 18 2012 - 21:00:03 PDT
Custom Search