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

From: Novosielski, Ryan <novosirj.ca.rutgers.edu>
Date: Tue, 13 Jan 2015 14:23:40 -0500

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”

…this one seems relatively easy to fix too. I have to imagine there is a way to get CFLAGS and the like through to the actual compiler; anyone happen to know what it is? I would expect I might then have the same problem with nvcc, though that isn’t important since our master node and GPU nodes all have the same instruction set.

> On Jan 13, 2015, at 2:10 PM, Brent Krueger <kruegerb.hope.edu> wrote:
>
> Jason you remember correctly that I was the one dealing with this.
>
> It has been quite some time since I thought about this, so I'm not sure my
> memory is exactly right. However, at least with my experience with the two
> architectures that we use locally the configure script in AMBER14 does work
> correctly. I think it was an early AMBER14 release that was troubled and
> we got it fixed before the final release.
>
> Anyway, I set my SSE_TYPES environment variable before initiating the
> configure process and everything works fine for me without any other
> modification. I understand what Ryan is describing -- in the past
> (AMBER11-12-13) I did have to modify the configure script by hand to get
> multiple SSE instructions into the final code.
>
> To be specific, I set the following environment variable:
> export SSE_TYPES=SSE4.2,SSE3
>
> and then just run
> ./configure intel
>
> The resulting code works for me on both Intel X5650 and AMD Opeteron252
> processors. I am using AMBER14 with version 12.0.0 of the Intel compilers
> including the MKL.
>
>
> Sorry if this isn't helpful to your situation, Ryan.
>
>
> Cheers,
> Brent
>
>
> On Tue, Jan 13, 2015 at 1:53 PM, Novosielski, Ryan <novosirj.ca.rutgers.edu>
> wrote:
>
>>
>>> On Jan 13, 2015, at 1:18 PM, Jason Swails <jason.swails.gmail.com>
>> wrote:
>>>
>>> On Tue, 2015-01-13 at 12:46 -0500, Novosielski, Ryan wrote:
>>>
>>>> I was pretty suspicious of -xHost. I'm not a developer, and my
>>>> experience is limited with the Intel compiler as I've just started
>>>> using it this year, but I know -xSSE3 is what I've seen recommended.
>>>> So I figured there might be some connection here.
>>>>
>>>> The recommendations I've seen from others talking about the Intel
>>>> compiler auto CPU dispatching is to start with that as a baseline, and
>>>> then -ax to add specific processor sets that you'd like to include.
>>>>
>>>> Thank you for your response. I had a vague hunch that this was
>>>> something that maybe just never got finished properly. Does anyone
>>>> happen to know if SSE_TYPES is just something used by Amber, or if
>>>> it's something that the Intel compiler respects?
>>>
>>> I had thought it was an Amber configure thing. In particular,
>>> configure2 processes this variable into "-ax$SSE_TYPES" in the COPT and
>>> FOPT flags.
>>>
>>> I don't know for sure that Intel makes no use of this variable, but I
>>> suspect it is just Amber's configure. If I'm wrong here, hopefully
>>> someone will correct me.
>>
>> Looks like the problem is in $AMBERHOME/AmberTools/src/configure2, on
>> lines 1105 and 1110 specifically. I’ve compiled with those two lines,
>> changing -xHost to -xSSE3 and setting SSE_TYPES to SSE4.1,SSE4.2 before
>> configure and that appears to have worked. I couldn’t swear that it’s
>> bothering to invoke the SSE4.1/4.2 instructions on the hosts (I can
>> probably check with Intel for how to figure it out), but at least I’ve
>> theoretically got something workable.
>>
>> --
>> ____ *Note: UMDNJ is now Rutgers-Biomedical and Health Sciences*
>> || \\UTGERS |---------------------*O*---------------------
>> ||_// Biomedical | Ryan Novosielski - Senior Technologist
>> || \\ and Health | novosirj.rutgers.edu - 973/972.0922 (2x0922)
>> || \\ Sciences | OIRT/High Perf & Res Comp - MSB C630, Newark
>> `'
>>
>> _______________________________________________
>> AMBER mailing list
>> AMBER.ambermd.org
>> http://lists.ambermd.org/mailman/listinfo/amber
>>
>
>
>
> --
> _______________________________________________
> Brent P. Krueger.....................phone: 616 395 7629
> Professor................................fax: 616 395 7118
> Hope College..........................Schaap Hall 2120
> Department of Chemistry
> Holland, MI 49423
> _______________________________________________
> AMBER mailing list
> AMBER.ambermd.org
> http://lists.ambermd.org/mailman/listinfo/amber

____ *Note: UMDNJ is now Rutgers-Biomedical and Health Sciences*
|| \\UTGERS |---------------------*O*---------------------
||_// Biomedical | Ryan Novosielski - Senior Technologist
|| \\ and Health | novosirj.rutgers.edu - 973/972.0922 (2x0922)
|| \\ Sciences | OIRT/High Perf & Res Comp - MSB C630, Newark
     `'

_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Tue Jan 13 2015 - 11:30:03 PST
Custom Search