On Sun, Sep 18, 2016 at 4:24 PM, Roland Haas <rhaas@illinois.edu> wrote:
Hello Erik,

> It's strange that code without "-xHost" does not run on the head node. What
> other compiler options are there? The only reason I can see is that the
> Intel compiler has been installed in a special way to use additional
> compiler flags, and these flags make the code not work any more on Sandy
> Bridge.
It is some runtime detection that fails. I get:
--8<--
Please verify that both the operating system and the processor support Intel(R) F16C instructions.
--8<--
and adding -xHost complains that "icc: command line warning #10121:
overriding '-xCORE-AVX-I' with '-xHost'" so it seesm as if some vectorization is enabled by the cray cc wrapper.

> To my knowledge, the processors accept the same machine instructions. The
> CPU tuning might be different.
Is this also true for vectorization? Or maybe this really is just a
lack of OS support for the AVX registers on the login nodes. -xAVX
seems to work fine and the only difference (according to the man page
for icpc) are "Float-16 conversion instructions and the RDRND
instruction". Float16 conversion would fit the F16C acronym in the error message.

The best option for us is then probably "-xHost -axCORE-AVX-I". This ensures (-x) that the code runs on the front end, but it will apply code optimizations (-ax) for the compute nodes.

-erik

--