Dear all
I wanted to try out the Intel ifort compiler. For the Makefile, I tried
FC ?= ifort
FFLAGS ?= -Ofast -qopenmp
...which works great, except that its performance is the same as for gfortran.
I have tried
FFLAGS ?= -integer-size 64 -Ofast -qopenmp
FFLAGS ?= -Ofast -qopenmp -static-intel
...and many more... without any performance boost.
There is however a flag called -ipo, which is very interesting. To use it, I have tried
FFLAGS ?= -ipo -Ofast -qopenmp
I have also tried to add linking info like
LFLAGS += -ffat-lto-objects
...or... LFLAGS += -fno-fat-lto-objects
...or... LFLAGS += $(FFLAGS) -ffat-lto-objects
...or... LFLAGS += $(FFLAGS) -fno-fat-lto-objects
as explained at
intel.com
However, the problem with the -ipo, regardless what I try, is that the corresponding binary appears to be generated by missing half of the geoclaw code and just produce rubbish (the resulting output seems to only AMR level 1, (going by memory here, since everything is at home and I am at work now)).
Does anybody have experience using the -ipo flag in the ifort compiler?
Cheers,...
Jon
P.s. you can download a "free" Intel compiler for testing. You do it by modify your repo info as explained at
intel.com and thereafter do something like sudo dnf/yum/apt install ifort.
P.s2.. I am using 5.7.1, and the ifort is the newest version.
Ps3. I also tried the beta version of ifx, without any apparent performance boost. But I need to test it more to be sure