Re: [AMBER] Intel Compilers, SSE_TYPES, and auto CPU dispatch

From: Scott Brozell <>
Date: Wed, 14 Jan 2015 12:52:58 -0500


Two comments:

Yes the AmberTools/src/configure2 distributed with Amber14 (including bugfixes)
does not have the SSE_TYPES corrections from Brent (and those corrections
do fix this issue as already stated).

On Wed, Jan 14, 2015 at 11:05:29AM -0500, Novosielski, Ryan wrote:
> Well, as it turns out, the only hassle is that confusing -xHost define being in there. Otherwise it is very easy to get a binary that theoretically should perform best on whatever you specify (Intel compiler only obviously). I would have an easy time running some tests to see if there is any performance difference between the permutations, since I've built Amber so many times in the last week or so. I can share the results with the list. I'm thinking I'll test configure -nosse, setting -xHost to -xSSE3 and using -axSSE4.1,SSE4.2 and setting -xSSE4.1 and -xSSE4.2.
> I think I consider a couple percent worth it considering the solution is just changing a couple of -xHost to -xSSE3 or whatever else you pick.
> On Monday, January 12, 2015, Novosielski, Ryan <<>
> I recently ran into the following error at runtime:
> "Please verify that both the operating system and the processor support
> Intel(R) SSE4_2 and POPCNT instructions."
> The reason for this is that we have some nodes with Nehalem chipsets and
> some with Harpertown chipsets on our cluster, and the master node is a
> newer machine that supports some of the newer instructions. Looking through
> the ???full-help configure option, I saw that I could define SSE_TYPES to say
> which CPU instructions should be supportable at runtime. However, I tried
> building with SSE types set to SSE4.2,SSE4.1 and the reverse even though I
> doubted that would make any difference. It appears as if it does add
> -axSSE4.2,SSE4.1 to the appropriate places during the build, which from my
> read of the Intel documentation is exactly what it should do. However, when
> built, the code behaves the same way with the same error messages on the
> Harpertown nodes. I don???t see a way to disable POPCNT, but it appears as if
> SSE4.1 machines don???t support it, so I would assume it is not used when the
> runtime dispatcher selects SSE4.1.
> I was not aware of auto CPU dispatch before today, so I???m not sure if I???m
> doing something wrong somehow. Amber version is 14, Intel compilers are
> 15.0.1.

This mpicc is not based on Intel compilers ( icc does support -ip and -ax,
and cc1 is not part of the Intel compilers ).

On Tue, Jan 13, 2015 at 02:23:40PM -0500, Novosielski, Ryan wrote:
> I can say for sure that that does not work with a fully up-to-date copy of Amber 14. I even tried SSE_TYPES=SSE3 and did a build. I still got complaints about not supporting SSE4.2 and POPCNT. I had to make those two changes to configure2. I am using Intel 15.0.1, but I don???t think that makes any difference, as it appears to behave how it behaves simply based on whether the compilers are 11 or newer.
> I???m happy to have gotten past this hurdle by making that change to configure2, but unfortunately I hit the next roadblock soon after. mpicc does not support the -ax flag, so when I try a build after ./configure -mpi intel, the resulting configured source will not build. For example:
> mpicc -c -Dflex -ip -ip -O3 -axSSE4.1,SSE4.2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DBINTRAJ -DHASGZ -DHASBZ2 -DMPI -I/opt/sw/packages/Amber/amber14a/include -o xminC.o xminC.c
> cc1: error: unrecognized command line option "-ip"
> cc1: error: unrecognized command line option "-ip"
> cc1: error: unrecognized command line option "-axSSE4.1,SSE4.2???


AMBER mailing list
Received on Wed Jan 14 2015 - 10:00:06 PST
Custom Search