I'd expect this slow code is due to the switching off of optimization
(-O0), and not due to a general problem of ifx with complex numbers.
If you do -O0 globally, the code will obviously be MUCH slower, exactly
as you have found out.
Compilation with ifx would need a "special" strategy, compiling only the
routines where optimization fails with -O0, all the rest with -O, like:
Makefile with -O
make
compile the routine where it fails by hand:
ifx -O0 .... -c failing_routine.f
make
continue the 2 lines above until it finishes. As far as I remember, -O0
was required only for non-time-critical routines.
Obviously, this is only a solution for experts. I'll see if I can come
up with more specific Makefiles for ifx, where the problematic routines
are compiled automatically without optimization.
In any case, it would be interesting to see, if the code produced by
this scheme is (almost) as fast as the ifort code.
Best regards
Peter
Am 26.12.2024 um 12:10 schrieb Michael Fechtelkord via Wien:
Hello all,
thanks Gavin for your efforts concerning the ifx compiler and the
complete compilation of the code.
The compilation of the code with ifx is much faster, but the compiled
WIEN2k code is much faster when compiled with ifort 2021.13.1.
I have run a NMR calculation of KAlF4 with ifx and ifort compiled code
and the ifort compiled code takes half of the time of the ifx compiled
code (16 minutes vs. 28 minutes).
This is due to the fact that the handling of complex data is still
better done with ifort compiled code. I read a few postings concerning
this fact and I think this is still valid for the current version of ifx.
https://community.intel.com/t5/Intel-Fortran-Compiler/IFX-vs-IFORT-
performance-difference/m-p/1472018#M165800
Happy Christmas to all!
Michael
Am 21.12.2024 um 18:02 schrieb Gavin Abo:
Thanks for the hint about using -O0 when using ifx 2025.0.4.
I compiled WIEN2k 24.1 with it, and it built without errors. I was
even able to compile elpa with it.
I documented the steps I used should others be interested in them and
put them in a file that should be at:
https://github.com/gsabo/WIEN2k-Docs/blob/main/
WIEN2k24.1_Ubuntu22.04_Install_with_OneAPI(ifx).pdf
The TiC example also ran fine. Screenshots of it are in another file
here:
https://github.com/gsabo/WIEN2k-Docs/blob/main/
WIEN2k24.1%20TiC%20Example(ifx).pdf
Gavin
WIEN2k user
On 10/30/2024 7:03 AM, Michael Fechtelkord via Wien wrote:
I just compiled the WIEN2k code with ifx (2025.0.0) again, regarding
Peter's recommendations .. and only a few errors remain now (all
compiled without optimisation using -O0 flag) :
SRC_3ddens/compile.msg:make: *** [Makefile:65: 3ddens] Fehler 1
SRC_reformat/compile.msg:reformat.c:3:1: Fehler: Rückgabetyp ist auf
»int« voreingestellt [-Wimplicit-int]
SRC_reformat/compile.msg:make: *** [Makefile:40: reformat.o] Fehler 1
SRC_3ddens
ifx -o ./3ddens modules.o fft_modules.o 3ddens.o setfft2.o stern.o
rotdef.o rotato.o rotat.o charge.o calculate_neighbours.o ylm.o
radial.o sum.o interp.
o gener.o vnorm.o latgen.o rotate.o reduc.o write_xsf.o write_stm.o
primitive_cell.o read_struct.o atom_sphere_dens.o -L/usr/local/lib64
-lfftw3 -lfftw3
_omp -O0 -xAVX2 -FR -mp1 -w -prec_div -pc80 -pad -ip -DINTEL_VML -
traceback -assume buffered_io -I/opt/intel/oneapi/mkl/2025.0/include
-DFFTW3 -DFFTW_OMP
-I/usr/local/include -qopenmp -L/opt/intel/oneapi/mkl/2025.0/lib/ -
lpthread -lm -ldl -liomp5
/usr/lib64/gcc/x86_64-suse-linux/14/../../../../x86_64-suse-linux/
bin/ld: 3ddens.o: in function `dfftw_init_threads_.t1225p':
ifx24sU4Q.i:(.text+0xf797): undefined reference to `dfftw_init_threads_'
/usr/lib64/gcc/x86_64-suse-linux/14/../../../../x86_64-suse-linux/
bin/ld: 3ddens.o: in function `dfftw_plan_with_nthreads_.t1230p':
ifx24sU4Q.i:(.text+0xf7b7): undefined reference to
`dfftw_plan_with_nthreads_'
make: *** [Makefile:65: 3ddens] Fehler 1
SRC_reformat
rm -f reformat.o
cc -c reformat.c
reformat.c:3:1: Fehler: Rückgabetyp ist auf »int« voreingestellt [-
Wimplicit-int]
3 | main(argc,argv)
| ^~~~
make: *** [Makefile:40: reformat.o] Fehler 1
Best regards,
Michael
--
Dr. Michael Fechtelkord
Institut für Geologie, Mineralogie und Geophysik
Ruhr-Universität Bochum
Universitätsstr. 150
D-44780 Bochum
Phone: +49 (234) 32-24380
Fax: +49 (234) 32-04380
Email:[email protected]
Web Page:https://www.ruhr-uni-bochum.de/kristallographie/kc/mitarbeiter/
fechtelkord/
_______________________________________________
Wien mailing list
[email protected]
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST
at:http://www.mail-archive.com/[email protected]/index.html
--
Dr. Michael Fechtelkord
Institut für Geologie, Mineralogie und Geophysik
Ruhr-Universität Bochum
Universitätsstr. 150
D-44780 Bochum
Phone: +49 (234) 32-24380
Fax: +49 (234) 32-04380
Email:[email protected]
Web
Page:https://www.ruhr-uni-bochum.de/kristallographie/kc/mitarbeiter/fechtelkord/
_______________________________________________
Wien mailing list
[email protected]
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at:
http://www.mail-archive.com/[email protected]/index.html
--
-----------------------------------------------------------------------
Peter Blaha, Inst. f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-158801165300
Email: [email protected]
WWW: http://www.imc.tuwien.ac.at WIEN2k: http://www.wien2k.at
-------------------------------------------------------------------------
_______________________________________________
Wien mailing list
[email protected]
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at:
http://www.mail-archive.com/[email protected]/index.html