Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29234 Discussions

But -O2 and -O3 produce the symbol lookup error: __svml_expf1

AlbaWolf
Beginner
406 Views

Good day

since ifort is now retired we have recently installed ifx on a linux box

 
Operating System: Linux Mint 21
Kernel: Linux 5.15.0-138-generic
Architecture: x86-64
 


ifx -logo
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2025.1.1 Build 20250418
Copyright (C) 1985-2025 Intel Corporation. All rights reserved.


However we are experiencing issues in compiling the code that were not
present in ifort

Here is a description of our problems with ifx

 

After compiling with ifx, I encounter a run-time undefined symbol

12:36hoyle> link bowl
Thu 17 Apr 12:36:21 BST 2025
Thu 17 Apr 12:36:21 BST 2025
linking bowl ...
ifx -O3 -extend-source -save -mcmodel=medium -parallel
done.
Thu 17 Apr 12:36:32 BST 2025
Thu 17 Apr 12:36:32 BST 2025
12:36hoyle> run bowl
Thu 17 Apr 12:36:47 BST 2025
bowl.exe: symbol lookup error: bowl.exe: undefined symbol: __svml_expf1
Thu 17 Apr 12:36:47 BST 2025
12:36hoyle>

---------------------------------------------------------------------------------------

If I turn down the optimisation -O0 and -O1 work ok.

But -O2 and -O3 produce the symbol lookup error:

bowl.exe: symbol lookup error: bowl.exe: undefined symbol: __svml_expf1

---------------------------------------------------------------------------------------

From Porting Guide
 


---------------------------------------------------------------------------------------

I have tried many possible options as follows:

# OK AND FAST (PARALLEL PROCESSING)
alias for 'ifort -O3 -extend-source -save -parallel'
alias for 'ifort -O3 -extend-source -save -mcmodel=medium -parallel'

# OK BUT SLOW (NO PARALLEL PROCESSING)
alias for gfortran -O3 -fno-automatic -ffixed-line-length-132
-mcmodel=medium -fbounds-check -fallow-argument-mismatch
alias for 'ifx -O0 -extend-source -save -mcmodel=medium -parallel
-traceback -g -CB'
alias for 'ifx -O1 -extend-source -save -mcmodel=medium -parallel
-traceback -g -CB'
alias for 'ifx -O2 -extend-source -save -parallel -traceback -g -CB'
alias for 'ifx -O3 -xHost -extend-source -save -traceback -g -CB'
alias for 'ifx -O3 -xHost -extend-source -save -parallel -traceback -g
-CB'
alias for 'ifx -O3 -xHost -extend-source -save -parallel'

# FAILS TO COMPILE
alias for 'ifx -O2 -extend-source -save -mcmodel=medium -parallel
-traceback -g -CB'
alias for 'ifort -O3 -extend-source -save -mcmodel=medium -parallel -fast'
alias for 'ifort -O3 -extend-source -save -parallel -fast -ipo'
alias for 'ifort -O3 -extend-source -save -parallel -fast'
alias for 'ifx -extend-source -save -fast'

Thus I have discovered no way to get ifx to implement parallel processing.

------------------------------------------------------------------------------------------------------------

This option is listed under man ifx as follows:

-parallel (L*X only)
Tells the compiler to attempt to generate multithreaded
code for DO CONCURRENT loops.
Arguments:
None
Default:
OFF Multithreaded code is not generated for
loops that can be safely executed in parallel
Description:
This option tells the compiler to attempt to generate
multithreaded code for DO CONCURRENT loops.
To attempt to create a multithreaded parallel version of
the loop, the compiler will insert an OpenMP*
PARALLEL DO directive before each DO CONCURRENT loop.
To use this option, you must also specify option O2 or O3.
Alternate Options:
None


------------------------------------------------------------------------------------------------------------

Any advise/help that would allow us to resolve what we are doing wrong would be sincerely appreciated


Thanking you

Yours sincerely


Ian 

0 Kudos
1 Reply
Shiquan_Su
Moderator
305 Views

Hi,

Would you please also provide your test code so we can investigate? Recently, there are similar issues reported.


Shiquan


0 Kudos
Reply