Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
26758 Discussions

Slow macOS Catalina Compiling: License Issue or My Fault?

Matt_Thompson
Novice
360 Views

All,

I recently got a license for the Intel Fortran compiler for my work laptop and had the compiler installed yesterday. Hooray! But, builds are *really* slow. For a file like:

program a
end

When I compare gfortran to ifort:

❯ hyperfine 'gfortran blank.F90' 'ifort blank.F90' -w 10
Benchmark #1: gfortran blank.F90
  Time (mean ± σ):     175.8 ms ±  26.0 ms    [User: 67.8 ms, System: 88.0 ms]
  Range (min … max):   150.0 ms … 234.2 ms    17 runs

Benchmark #2: ifort blank.F90
  Time (mean ± σ):      1.211 s ±  0.209 s    [User: 517.3 ms, System: 632.9 ms]
  Range (min … max):    0.986 s …  1.588 s    10 runs

Summary
  'gfortran blank.F90' ran
    6.89 ± 1.57 times faster than 'ifort blank.F90'

Now, I'm guessing I'm hitting the bit about Slow License Checkout in the Release Notes, but I want to be sure. I say that because when I set INTEL_LMD_DEBUG=1, I see some odd behavior (snippets since I'm not sure if I should paste all the output of the LMD_DEBUG into a public forum):
 

    INTEL_LMD: checkout: about to do checkout call
    INTEL_LMD: checkout: checkout call returns rc -5

Error: A license for (Beta-Comp-FM) could not be found.
License file(s) used were (in this order):
...
Please refer https://software.intel.com/en-us/faq/licensing#invalid-license-error for more information..

    INTEL_LMD: checkout: returns NOT GRANTED / ERROR
    INTEL_LMD: checkout: entered at start_time: 1588188807  (UTC) Wed Apr 29 19:33:27 2020
...
    INTEL_LMD: checkout: checkout call returns rc 0
    INTEL_LMD: checkout: license now granted

It first says it didn't find my license but then it did find it. I mean, I can compile things so it's finding it, I just want to make sure the slowness I'm seeing is the "built-in" variety and not the "I installed things incorrectly" variety.

Thanks,

Matt

0 Kudos
7 Replies
Steve_Lionel
Black Belt Retired Employee
360 Views

For reasons I don't understand, the released compiler first checks for a beta license (Beta-Comp-FM) before checking for the regular license. I complained about this a long time ago but I see it is still there. That it checks for an unnecessary license probably slows things down more.

There may be clues in the rest of the LMD_DEBUG output, but otherwise the link you quoted is a good reference.

If you need more help, you will need to open a ticket at the Intel Online Service Center.

Matt_Thompson
Novice
360 Views

Steve,

Okay. I'll try and figure out how to open a ticket. Not sure if I or my sysadmins have the right to do so (not sure who the "license" holder is). 

Matt

Matt_Thompson
Novice
360 Views

Ticket submitted! The main page I was looking at only had links to "Priority Support" and I didn't know if I could use that. But I found "Regular Support" and used that. :)

Ron_Green
Moderator
360 Views

Doctor Fortran and Matt:  If only it were as simple as it checking a beta license. 

No, rather the issue is that on macOS Catalina, and macOS Catalina ONLY, our license checking library slowed down by 10x.  It's been traced to how the license check software uses OS locks/mutexes.  This was not a problem on Linux or prior macOS versions, it's new with Catalina.  I'm guessing Apple changed something in Catalina that slowed the particular functions this software is calling. 

I have a bug report opened on this already.  I am pushing for a fix for PSXE 2020 Update 2.

Ron

Steve_Lionel
Black Belt Retired Employee
360 Views

Ron, 

Why does the release compiler check for a beta license? I verified that it still does this.

Ron_Green
Moderator
360 Views

Classic Compilers in oneAPI are beta licensed, the license being delivered with the packages.  Common code used for Classic Compilers in both PSXE and oneAPI so we don't have to have a separate code branch for oneAPI.

Steve_Lionel
Black Belt Retired Employee
360 Views

This started way before oneAPI, though. It was being done before I retired.

Reply