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.
Running short tests or compiled utilities on the head nodes is very convenient. I would continue to make sure the code runs everywhere until there is a proven performance benefit.
Yes, that is what I would do as well.
Yours, Roland